From 01cbdf8545bb9ef9b01b119f90a3cd0ee069b897 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Sun, 1 Feb 2026 18:12:51 +0100 Subject: [PATCH] fix: `every_keystroke` completion mode should fallback to `automatic` when active This prevents `every_keystroke` mode from re-triggering on every keystroke if a completion suggestions are already available. Instead it will now filter the returned suggestions normally. This dramatically reduces load on the LSP. closes #479 --- src/tui/editor.zig | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/tui/editor.zig b/src/tui/editor.zig index 0974e3b..4af99ac 100644 --- a/src/tui/editor.zig +++ b/src/tui/editor.zig @@ -6552,7 +6552,15 @@ pub const Editor = struct { } pub fn run_triggers(self: *Self, cursel: *const CurSel, char: u8, event: TriggerEvent) void { - switch (tui.config().completion_trigger) { + var mode = tui.config().completion_trigger; + + if (mode == .every_keystroke) { + const update_completion = "update_completion"; + const in_completion = command.get_id(update_completion) != null; + mode = if (in_completion) .automatic else .every_keystroke; + } + + switch (mode) { .manual => return, .every_keystroke => return self.run_triggers_every_keystroke(cursel, char, event), .automatic => {},