File tree Expand file tree Collapse file tree 2 files changed +34
-1
lines changed
lib/language_server/providers Expand file tree Collapse file tree 2 files changed +34
-1
lines changed Original file line number Diff line number Diff line change @@ -36,7 +36,7 @@ defmodule ElixirLS.LanguageServer.Providers.Rename do
36
36
)
37
37
end
38
38
39
- definition_references ++ repack_references ( references , start_uri )
39
+ Enum . uniq ( definition_references ++ repack_references ( references , start_uri ) )
40
40
else
41
41
_ ->
42
42
[ ]
Original file line number Diff line number Diff line change @@ -81,6 +81,39 @@ defmodule ElixirLS.LanguageServer.Providers.RenameTest do
81
81
82
82
assert sort_edit_by_start_line ( edits ) == expected_edits
83
83
end
84
+
85
+ test "renaming a variable definition works original -> new_original" do
86
+ text = """
87
+ defmodule MyModule do
88
+ def hello do
89
+ original = "original"
90
+ new = original <> " new stuff"
91
+ end
92
+ end
93
+ """
94
+
95
+ # new = "#{original} + new stuff!"
96
+ { line , char } = { 3 , 6 }
97
+
98
+ edits =
99
+ Rename . rename (
100
+ % SourceFile { text: text , version: 0 } ,
101
+ @ fake_uri ,
102
+ line ,
103
+ char ,
104
+ "new_original"
105
+ )
106
+ |> assert_return_structure_and_get_edits ( @ fake_uri , nil )
107
+
108
+ expected_edits =
109
+ [
110
+ % { line: 2 , start_char: 4 , end_char: 12 } ,
111
+ % { line: 3 , start_char: 10 , end_char: 18 }
112
+ ]
113
+ |> get_expected_edits ( "new_original" )
114
+
115
+ assert sort_edit_by_start_line ( edits ) == expected_edits
116
+ end
84
117
end
85
118
86
119
describe "renaming local function" do
You can’t perform that action at this time.
0 commit comments