|
6 | 6 |
|
7 | 7 | defmodule ElixirLS.LanguageServer.Providers.References.LocatorTest do
|
8 | 8 | use ExUnit.Case, async: true
|
9 |
| - # TODO remove |
10 | 9 | alias ElixirSense.Core.References.Tracer
|
11 |
| - # TODO remove |
12 | 10 | alias ElixirSense.Core.Source
|
13 | 11 | alias ElixirLS.LanguageServer.Providers.References.Locator
|
14 | 12 |
|
@@ -887,8 +885,8 @@ defmodule ElixirLS.LanguageServer.Providers.References.LocatorTest do
|
887 | 885 | assert [
|
888 | 886 | %{
|
889 | 887 | range: %{
|
890 |
| - start: %{line: 8, column: 9}, |
891 |
| - end: %{line: 8, column: 9} |
| 888 | + start: %{line: 8, column: 3}, |
| 889 | + end: %{line: 8, column: 3} |
892 | 890 | },
|
893 | 891 | uri: nil
|
894 | 892 | },
|
@@ -970,7 +968,7 @@ defmodule ElixirLS.LanguageServer.Providers.References.LocatorTest do
|
970 | 968 | references_2 = Locator.references(buffer, 3, 58, trace)
|
971 | 969 |
|
972 | 970 | assert references_1 == references_2
|
973 |
| - assert [_, _, _] = references_1 |
| 971 | + assert [_, _, _, _] = references_1 |
974 | 972 | end
|
975 | 973 |
|
976 | 974 | test "find references with cursor over a function call from an aliased module", %{trace: trace} do
|
@@ -1227,6 +1225,13 @@ defmodule ElixirLS.LanguageServer.Providers.References.LocatorTest do
|
1227 | 1225 | references = Locator.references(buffer, 7, 15, trace)
|
1228 | 1226 |
|
1229 | 1227 | assert references == [
|
| 1228 | + %{ |
| 1229 | + range: %{ |
| 1230 | + start: %{line: 2, column: 13}, |
| 1231 | + end: %{line: 2, column: 13} |
| 1232 | + }, |
| 1233 | + uri: nil |
| 1234 | + }, |
1230 | 1235 | %{
|
1231 | 1236 | range: %{
|
1232 | 1237 | start: %{line: 7, column: 13},
|
@@ -1871,7 +1876,6 @@ defmodule ElixirLS.LanguageServer.Providers.References.LocatorTest do
|
1871 | 1876 | references = Locator.references(buffer, 3, 53, trace)
|
1872 | 1877 |
|
1873 | 1878 | assert [
|
1874 |
| - # TODO should be 2, 13 |
1875 | 1879 | %{
|
1876 | 1880 | range: %{
|
1877 | 1881 | start: %{line: 3, column: 5},
|
@@ -2032,6 +2036,87 @@ defmodule ElixirLS.LanguageServer.Providers.References.LocatorTest do
|
2032 | 2036 | end
|
2033 | 2037 | end
|
2034 | 2038 |
|
| 2039 | + describe "alias" do |
| 2040 | + test "find references of alias", %{trace: trace} do |
| 2041 | + buffer = """ |
| 2042 | + defmodule MyModule do |
| 2043 | + # ^ |
| 2044 | + @type t :: %MyModule{ |
| 2045 | + field: String.t() |
| 2046 | + } |
| 2047 | + defstruct field: "" |
| 2048 | + |
| 2049 | + def my_fun(arg) do |
| 2050 | + :ok |
| 2051 | + end |
| 2052 | + end |
| 2053 | + |
| 2054 | + defmodule Caller do |
| 2055 | + alias MyModule, as: M |
| 2056 | + |
| 2057 | + @spec process(MyModule.t()) :: :ok |
| 2058 | + def process(%MyModule{} = struct) do |
| 2059 | + MyModule.my_fun(struct) |
| 2060 | + end |
| 2061 | + end |
| 2062 | + """ |
| 2063 | + |
| 2064 | + references = Locator.references(buffer, 1, 11, trace) |
| 2065 | + |
| 2066 | + assert [ |
| 2067 | + %{ |
| 2068 | + range: %{ |
| 2069 | + start: %{line: 3, column: 15}, |
| 2070 | + end: %{line: 3, column: 15} |
| 2071 | + }, |
| 2072 | + uri: nil |
| 2073 | + }, |
| 2074 | + %{ |
| 2075 | + range: %{ |
| 2076 | + start: %{line: 14, column: 3}, |
| 2077 | + end: %{line: 14, column: 3} |
| 2078 | + }, |
| 2079 | + uri: nil |
| 2080 | + }, |
| 2081 | + %{ |
| 2082 | + range: %{ |
| 2083 | + end: %{column: 27, line: 16}, |
| 2084 | + start: %{column: 26, line: 16} |
| 2085 | + }, |
| 2086 | + uri: nil |
| 2087 | + }, |
| 2088 | + %{ |
| 2089 | + range: %{ |
| 2090 | + start: %{line: 16, column: 26}, |
| 2091 | + end: %{line: 16, column: 27} |
| 2092 | + }, |
| 2093 | + uri: nil |
| 2094 | + }, |
| 2095 | + %{ |
| 2096 | + range: %{ |
| 2097 | + end: %{column: 16, line: 17}, |
| 2098 | + start: %{column: 16, line: 17} |
| 2099 | + }, |
| 2100 | + uri: nil |
| 2101 | + }, |
| 2102 | + %{ |
| 2103 | + range: %{ |
| 2104 | + start: %{line: 18, column: 5}, |
| 2105 | + end: %{line: 18, column: 5} |
| 2106 | + }, |
| 2107 | + uri: nil |
| 2108 | + }, |
| 2109 | + %{ |
| 2110 | + range: %{ |
| 2111 | + start: %{line: 18, column: 14}, |
| 2112 | + end: %{line: 18, column: 20} |
| 2113 | + }, |
| 2114 | + uri: nil |
| 2115 | + } |
| 2116 | + ] = references |
| 2117 | + end |
| 2118 | + end |
| 2119 | + |
2035 | 2120 | defp read_line(file, range) do
|
2036 | 2121 | {line, column} = {range.start.line, range.start.column}
|
2037 | 2122 |
|
|
0 commit comments