Skip to content

Commit 40618e2

Browse files
committed
Use the new API for go-to-definition
1 parent d4a0ca4 commit 40618e2

File tree

3 files changed

+17
-9
lines changed

3 files changed

+17
-9
lines changed

apps/language_server/lib/language_server/providers/definition.ex

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,28 @@ defmodule ElixirLS.LanguageServer.Providers.Definition do
44
"""
55

66
alias ElixirLS.LanguageServer.SourceFile
7+
alias ElixirSense.Providers.Definition.Location
78

8-
def definition(text, line, character) do
9+
def definition(uri, text, line, character) do
910
case ElixirSense.definition(text, line + 1, character + 1) do
10-
{"non_existing", nil} ->
11+
%Location{found: false} ->
1112
{:ok, []}
1213

13-
{file, line} ->
14+
%Location{file: file, line: line, column: column} ->
1415
line = line || 0
15-
uri = SourceFile.path_to_uri(file)
16+
column = column || 0
17+
uri =
18+
case file do
19+
nil -> uri
20+
_ -> SourceFile.path_to_uri(file)
21+
end
1622

1723
{:ok,
1824
%{
1925
"uri" => uri,
2026
"range" => %{
21-
"start" => %{"line" => line - 1, "character" => 0},
22-
"end" => %{"line" => line - 1, "character" => 0}
27+
"start" => %{"line" => line - 1, "character" => column - 1},
28+
"end" => %{"line" => line - 1, "character" => column - 1}
2329
}
2430
}}
2531
end

apps/language_server/lib/language_server/server.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ defmodule ElixirLS.LanguageServer.Server do
333333

334334
defp handle_request(definition_req(_id, uri, line, character), state) do
335335
fun = fn ->
336-
Definition.definition(state.source_files[uri].text, line, character)
336+
Definition.definition(uri, state.source_files[uri].text, line, character)
337337
end
338338

339339
{:async, fun, state}

apps/language_server/test/server_test.exs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,13 @@ defmodule ElixirLS.LanguageServer.ServerTest do
8888

8989
assert_receive response(1, %{
9090
"range" => %{
91-
"end" => %{"character" => 0, "line" => 0},
92-
"start" => %{"character" => 0, "line" => 0}
91+
"end" => %{"character" => column, "line" => 0},
92+
"start" => %{"character" => column, "line" => 0}
9393
},
9494
"uri" => ^uri
9595
})
96+
97+
assert column > 0
9698
end
9799

98100
test "requests cancellation", %{server: server} do

0 commit comments

Comments
 (0)