@@ -5,20 +5,17 @@ defmodule Expert.Configuration do
55
66 alias Expert.Configuration.Support
77 alias Expert.Dialyzer
8- alias Forge.Project
98 alias Forge.Protocol.Id
109 alias GenLSP.Notifications.WorkspaceDidChangeConfiguration
1110 alias GenLSP.Requests
1211 alias GenLSP.Structures
1312
14- defstruct projects: [ ] ,
15- support: nil ,
13+ defstruct support: nil ,
1614 client_name: nil ,
1715 additional_watched_extensions: nil ,
1816 dialyzer_enabled?: false
1917
2018 @ type t :: % __MODULE__ {
21- projects: [ Project . t ( ) ] ,
2219 support: support | nil ,
2320 client_name: String . t ( ) | nil ,
2421 additional_watched_extensions: [ String . t ( ) ] | nil ,
@@ -29,16 +26,11 @@ defmodule Expert.Configuration do
2926
3027 @ dialyzer { :nowarn_function , set_dialyzer_enabled: 2 }
3128
32- @ spec new ( [ Structures.WorkspaceFolder . t ( ) ] , map ( ) , String . t ( ) | nil ) :: t
33- def new ( workspace_folders , % Structures.ClientCapabilities { } = client_capabilities , client_name ) do
29+ @ spec new ( map ( ) , String . t ( ) | nil ) :: t
30+ def new ( % Structures.ClientCapabilities { } = client_capabilities , client_name ) do
3431 support = Support . new ( client_capabilities )
3532
36- projects =
37- for % { uri: uri } <- workspace_folders do
38- Project . new ( uri )
39- end
40-
41- % __MODULE__ { support: support , projects: projects , client_name: client_name }
33+ % __MODULE__ { support: support , client_name: client_name }
4234 |> tap ( & set / 1 )
4335 end
4436
@@ -147,30 +139,4 @@ defmodule Expert.Configuration do
147139 defp maybe_add_watched_extensions ( % __MODULE__ { } = old_config , _ ) do
148140 { :ok , old_config }
149141 end
150-
151- @ spec add_projects ( t , [ Project . t ( ) ] ) :: t
152- def add_projects ( % __MODULE__ { } = config , projects ) do
153- new_config =
154- for project <- projects , reduce: config do
155- config ->
156- if Enum . any? ( config . projects , & ( & 1 . root_uri == project . root_uri ) ) do
157- config
158- else
159- projects = [ project | config . projects ]
160- % __MODULE__ { config | projects: projects }
161- end
162- end
163-
164- set ( new_config )
165-
166- new_config
167- end
168-
169- @ spec remove_projects ( t , [ String . t ( ) ] ) :: t
170- def remove_projects ( % __MODULE__ { } = config , projects ) do
171- new_projects = Enum . reject ( config . projects , & ( & 1 . root_uri in projects ) )
172- new_config = % __MODULE__ { config | projects: new_projects }
173- set ( new_config )
174- new_config
175- end
176142end
0 commit comments