File tree Expand file tree Collapse file tree 2 files changed +19
-2
lines changed Expand file tree Collapse file tree 2 files changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -390,9 +390,13 @@ defmodule ElixirLS.LanguageServer.Server do
390
390
end
391
391
392
392
defp handle_notification ( did_change_watched_files ( changes ) , state ) do
393
+ changes = Enum . filter ( changes , & match? ( % { "uri" => "file:" <> _ } , & 1 ) )
394
+
393
395
needs_build =
394
- Enum . any? ( changes , fn % { "uri" => uri , "type" => type } ->
395
- Path . extname ( uri ) in @ watched_extensions and
396
+ Enum . any? ( changes , fn % { "uri" => uri = "file:" <> _ , "type" => type } ->
397
+ path = SourceFile . path_from_uri ( uri )
398
+
399
+ Path . extname ( path ) in @ watched_extensions and
396
400
( type in [ 1 , 3 ] or not Map . has_key? ( state . source_files , uri ) or
397
401
state . source_files [ uri ] . dirty? )
398
402
end )
@@ -422,6 +426,7 @@ defmodule ElixirLS.LanguageServer.Server do
422
426
end
423
427
424
428
_ ->
429
+ # file not open or not dirty
425
430
acc
426
431
end
427
432
end )
Original file line number Diff line number Diff line change @@ -629,6 +629,18 @@ defmodule ElixirLS.LanguageServer.ServerTest do
629
629
state = :sys . get_state ( server )
630
630
assert state . needs_build?
631
631
end
632
+
633
+ test "gracefully skip not supported URI scheme" , % { server: server } do
634
+ uri = "git://github.com/user/repo.git"
635
+ fake_initialize ( server )
636
+
637
+ Server . receive_packet (
638
+ server ,
639
+ did_change_watched_files ( [ % { "uri" => uri , "type" => 2 } ] )
640
+ )
641
+
642
+ :sys . get_state ( server )
643
+ end
632
644
end
633
645
634
646
test "hover" , % { server: server } do
You can’t perform that action at this time.
0 commit comments