Skip to content

Commit b126569

Browse files
authored
Merge pull request #1136 from Rogach/pr/no-do-snippet
do not return snippet for "do" reserved word if client doesn't support snippets
2 parents 17e5660 + 5a8da9e commit b126569

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

apps/language_server/lib/language_server/providers/completion.ex

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ defmodule ElixirLS.LanguageServer.Providers.Completion do
258258
)
259259
|> maybe_reject_derived_functions(context, options)
260260
|> Enum.map(&from_completion_item(&1, context, options))
261-
|> maybe_add_do(context)
261+
|> maybe_add_do(context, options)
262262
|> maybe_add_keywords(context)
263263
|> Enum.reject(&is_nil/1)
264264
|> sort_items()
@@ -296,7 +296,7 @@ defmodule ElixirLS.LanguageServer.Providers.Completion do
296296
{:ok, %{"isIncomplete" => is_incomplete(items_json), "items" => items_json}}
297297
end
298298

299-
defp maybe_add_do(completion_items, context) do
299+
defp maybe_add_do(completion_items, context, options) do
300300
hint =
301301
case Regex.scan(~r/(?<=\s|^)[a-z]+$/u, context.text_before_cursor) do
302302
[] -> ""
@@ -309,7 +309,15 @@ defmodule ElixirLS.LanguageServer.Providers.Completion do
309309
kind: :keyword,
310310
detail: "reserved word",
311311
insert_text:
312-
if(String.trim(context.text_after_cursor) == "", do: "do\n $0\nend", else: "do: "),
312+
if String.trim(context.text_after_cursor) == "" do
313+
if Keyword.get(options, :snippets_supported, false) do
314+
"do\n $0\nend"
315+
else
316+
"do"
317+
end
318+
else
319+
"do: "
320+
end,
313321
tags: [],
314322
priority: 0,
315323
# force selection over other longer not exact completions

0 commit comments

Comments
 (0)