File tree Expand file tree Collapse file tree 2 files changed +13
-0
lines changed
apps/language_server/lib/language_server Expand file tree Collapse file tree 2 files changed +13
-0
lines changed Original file line number Diff line number Diff line change @@ -1120,6 +1120,7 @@ defmodule ElixirLS.LanguageServer.Server do
1120
1120
|> set_dialyzer_enabled ( enable_dialyzer )
1121
1121
|> add_watched_extensions ( additional_watched_extensions )
1122
1122
1123
+ maybe_rebuild ( state )
1123
1124
state = create_gitignore ( state )
1124
1125
Tracer . set_project_dir ( state . project_dir )
1125
1126
trigger_build ( % { state | settings: settings } )
@@ -1298,4 +1299,12 @@ defmodule ElixirLS.LanguageServer.Server do
1298
1299
_ -> false
1299
1300
end )
1300
1301
end
1302
+
1303
+ defp maybe_rebuild ( state = % __MODULE__ { } ) do
1304
+ # detect if we are opening a project that has been compiled without a tracer
1305
+ if is_binary ( state . project_dir ) and state . mix_project and File . dir? ( Path . join ( [ project_dir , ".elixir_ls" ] ) ) and not Tracer . has_databases? ( project_dir ) do
1306
+ Logger . info ( "DETS databases rebuild will be rebuilt" )
1307
+ Build . clean ( true )
1308
+ end
1309
+ end
1301
1310
end
Original file line number Diff line number Diff line change @@ -95,6 +95,10 @@ defmodule ElixirLS.LanguageServer.Tracer do
95
95
:ok
96
96
end
97
97
98
+ def has_databases? ( project_dir ) do
99
+ File . exists? ( dets_path ( project_dir , hd ( @ tables ) ) )
100
+ end
101
+
98
102
defp dets_path ( project_dir , table ) do
99
103
Path . join ( [ project_dir , ".elixir_ls" , "#{ table } .dets" ] )
100
104
end
You can’t perform that action at this time.
0 commit comments