Skip to content

Commit 5bde640

Browse files
authored
Fix crash in code actions (#1565)
1 parent ed1daaa commit 5bde640

File tree

1 file changed

+36
-26
lines changed

1 file changed

+36
-26
lines changed

apps/els_lsp/src/els_code_actions.erl

+36-26
Original file line numberDiff line numberDiff line change
@@ -138,19 +138,24 @@ define_macro(Uri, Range, _Data, [Macro0]) ->
138138
[module, include, include_lib, define],
139139
BeforeRange
140140
),
141-
#{range := #{to := {Line, _}}} = lists:last(els_poi:sort(POIs)),
142-
[
143-
make_edit_action(
144-
Uri,
145-
<<"Define ", Macro0/binary>>,
146-
?CODE_ACTION_KIND_QUICKFIX,
147-
NewText,
148-
els_protocol:range(#{
149-
to => {Line + 1, 1},
150-
from => {Line + 1, 1}
151-
})
152-
)
153-
].
141+
case POIs of
142+
[] ->
143+
[];
144+
_ ->
145+
#{range := #{to := {Line, _}}} = lists:last(els_poi:sort(POIs)),
146+
[
147+
make_edit_action(
148+
Uri,
149+
<<"Define ", Macro0/binary>>,
150+
?CODE_ACTION_KIND_QUICKFIX,
151+
NewText,
152+
els_protocol:range(#{
153+
to => {Line + 1, 1},
154+
from => {Line + 1, 1}
155+
})
156+
)
157+
]
158+
end.
154159

155160
-spec define_record(uri(), range(), binary(), [binary()]) -> [map()].
156161
define_record(Uri, Range, _Data, [Record]) ->
@@ -163,19 +168,24 @@ define_record(Uri, Range, _Data, [Record]) ->
163168
[module, include, include_lib, record],
164169
BeforeRange
165170
),
166-
Line = end_line(lists:last(els_poi:sort(POIs))),
167-
[
168-
make_edit_action(
169-
Uri,
170-
<<"Define record ", Record/binary>>,
171-
?CODE_ACTION_KIND_QUICKFIX,
172-
NewText,
173-
els_protocol:range(#{
174-
to => {Line + 1, 1},
175-
from => {Line + 1, 1}
176-
})
177-
)
178-
].
171+
case POIs of
172+
[] ->
173+
[];
174+
_ ->
175+
Line = end_line(lists:last(els_poi:sort(POIs))),
176+
[
177+
make_edit_action(
178+
Uri,
179+
<<"Define record ", Record/binary>>,
180+
?CODE_ACTION_KIND_QUICKFIX,
181+
NewText,
182+
els_protocol:range(#{
183+
to => {Line + 1, 1},
184+
from => {Line + 1, 1}
185+
})
186+
)
187+
]
188+
end.
179189

180190
-spec end_line(els_poi:poi()) -> non_neg_integer().
181191
end_line(#{data := #{value_range := #{to := {Line, _}}}}) ->

0 commit comments

Comments
 (0)