Skip to content

Commit b690319

Browse files
committed
✨ Improve functions auto complete
1 parent 4e567a3 commit b690319

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

assets/svelte/functions/Edit.svelte

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@
8282
export let usedByConsumers: Consumer[] = [];
8383
export let initialCodeMap: Record<string, string>;
8484
export let functionTransformsEnabled: boolean;
85-
export let functionCompletions: Array<{
85+
export let completions: Array<{
8686
label: string;
8787
type: string;
8888
info: string;
@@ -218,7 +218,7 @@
218218
219219
return {
220220
from: word.from,
221-
options: [...variableCompletions, ...functionCompletions],
221+
options: [...variableCompletions, ...completions],
222222
};
223223
};
224224

lib/sequin_web/live/functions/auto_complete.ex

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
defmodule SequinWeb.FunctionLive.AutoComplete do
22
@moduledoc false
3+
@reserved_words ~w(do if else end case cond for with fn)
34
@function_completion_modules [
45
Date,
56
DateTime,
@@ -13,6 +14,14 @@ defmodule SequinWeb.FunctionLive.AutoComplete do
1314
Base
1415
]
1516

17+
def all_completions do
18+
reserved_completions() ++ function_completions()
19+
end
20+
21+
def reserved_completions do
22+
Enum.map(@reserved_words, &%{label: &1, type: "keyword"})
23+
end
24+
1625
def function_completions do
1726
Enum.flat_map(@function_completion_modules, &function_completions/1)
1827
end

lib/sequin_web/live/functions/edit.ex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ defmodule SequinWeb.FunctionsLive.Edit do
216216

217217
# We generate the function completions at compile time because
218218
# docs are not available at runtime in our release.
219-
@function_completions AutoComplete.function_completions()
219+
@all_completions AutoComplete.all_completions()
220220

221221
@impl Phoenix.LiveView
222222
def mount(params, _session, socket) do
@@ -264,7 +264,7 @@ defmodule SequinWeb.FunctionsLive.Edit do
264264
selected_table_oid: nil,
265265
synthetic_test_message: Consumers.synthetic_message(),
266266
initial_code: @initial_code_map,
267-
function_completions: @function_completions,
267+
all_completions: @all_completions,
268268
function_transforms_enabled: Sequin.feature_enabled?(current_account_id(socket), :function_transforms)
269269
)
270270
|> assign_encoded_messages()
@@ -292,7 +292,7 @@ defmodule SequinWeb.FunctionsLive.Edit do
292292
initialCodeMap: @initial_code,
293293
initialCode: "glugma",
294294
functionTransformsEnabled: @function_transforms_enabled,
295-
functionCompletions: @function_completions
295+
completions: @all_completions
296296
}
297297
}
298298
socket={@socket}

0 commit comments

Comments
 (0)