From c8eb1b24c38aad7b1d0375f4e09738f72ca1c929 Mon Sep 17 00:00:00 2001 From: adamdottv <2363879+adamdottv@users.noreply.github.com> Date: Mon, 16 Jun 2025 12:34:34 -0500 Subject: [PATCH] feat: believe it or not, even faster tui init --- .../internal/components/dialog/complete.go | 20 +++++++++---------- packages/tui/internal/page/chat.go | 5 ++--- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/packages/tui/internal/components/dialog/complete.go b/packages/tui/internal/components/dialog/complete.go index 0f460ba30..7a15c8c70 100644 --- a/packages/tui/internal/components/dialog/complete.go +++ b/packages/tui/internal/components/dialog/complete.go @@ -190,14 +190,17 @@ func (c *completionDialogComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) { return c, tea.Batch(cmds...) } else { - items, err := c.completionProvider.GetChildEntries("") - if err != nil { - // status.Error(err.Error()) + cmd := func() tea.Msg { + items, err := c.completionProvider.GetChildEntries("") + if err != nil { + // status.Error(err.Error()) + } + return items } - - c.list.SetItems(items) + cmds = append(cmds, cmd) + cmds = append(cmds, c.pseudoSearchTextArea.Focus()) c.pseudoSearchTextArea.SetValue(msg.String()) - return c, c.pseudoSearchTextArea.Focus() + return c, tea.Batch(cmds...) } case tea.WindowSizeMsg: c.width = msg.Width @@ -247,11 +250,6 @@ func (c *completionDialogComponent) IsEmpty() bool { func (c *completionDialogComponent) SetProvider(provider CompletionProvider) { if c.completionProvider.GetId() != provider.GetId() { c.completionProvider = provider - items, err := provider.GetChildEntries("") - if err != nil { - // status.Error(err.Error()) - } - c.list.SetItems(items) } } diff --git a/packages/tui/internal/page/chat.go b/packages/tui/internal/page/chat.go index d97171e16..b96f52b2c 100644 --- a/packages/tui/internal/page/chat.go +++ b/packages/tui/internal/page/chat.go @@ -98,7 +98,6 @@ func (p *chatPage) Update(msg tea.Msg) (tea.Model, tea.Cmd) { // Get the current text from the editor to determine which provider to use editorModel := p.editor.GetContent().(interface{ GetValue() string }) currentInput := editorModel.GetValue() - provider := p.completionManager.GetProvider(currentInput) p.completionDialog.SetProvider(provider) @@ -106,9 +105,9 @@ func (p *chatPage) Update(msg tea.Msg) (tea.Model, tea.Cmd) { p.completionDialog = context.(dialog.CompletionDialog) cmds = append(cmds, contextCmd) - // Doesn't forward event if enter key is pressed and there are completions + // Doesn't forward event if enter key is pressed if keyMsg, ok := msg.(tea.KeyMsg); ok { - if keyMsg.String() == "enter" { // && !p.completionDialog.IsEmpty() { + if keyMsg.String() == "enter" { return p, tea.Batch(cmds...) } }