diff options
| author | adamdottv <[email protected]> | 2025-06-16 12:23:58 -0500 |
|---|---|---|
| committer | adamdottv <[email protected]> | 2025-06-16 12:24:18 -0500 |
| commit | b9f894f1e94e0bd21cd1cc6080f21498d674e371 (patch) | |
| tree | da7d37ad74cada38bb11f79211c8016157123c20 | |
| parent | 7c0d10a4cec17d4cb2e04793c56363f2e746278b (diff) | |
| download | opencode-b9f894f1e94e0bd21cd1cc6080f21498d674e371.tar.gz opencode-b9f894f1e94e0bd21cd1cc6080f21498d674e371.zip | |
feat: even faster tui init
| -rw-r--r-- | packages/tui/internal/components/chat/messages.go | 4 | ||||
| -rw-r--r-- | packages/tui/internal/components/dialog/complete.go | 33 |
2 files changed, 22 insertions, 15 deletions
diff --git a/packages/tui/internal/components/chat/messages.go b/packages/tui/internal/components/chat/messages.go index b59f96761..d0d839845 100644 --- a/packages/tui/internal/components/chat/messages.go +++ b/packages/tui/internal/components/chat/messages.go @@ -396,8 +396,8 @@ func NewMessagesComponent(app *app.App) layout.ModelWithView { } s := spinner.New(spinner.WithSpinner(customSpinner)) - vp := viewport.New() //(0, 0) - attachments := viewport.New() //(0, 0) + vp := viewport.New() + attachments := viewport.New() vp.KeyMap.PageUp = messageKeys.PageUp vp.KeyMap.PageDown = messageKeys.PageDown vp.KeyMap.HalfPageUp = messageKeys.HalfPageUp diff --git a/packages/tui/internal/components/dialog/complete.go b/packages/tui/internal/components/dialog/complete.go index 9bde1fd04..0f460ba30 100644 --- a/packages/tui/internal/components/dialog/complete.go +++ b/packages/tui/internal/components/dialog/complete.go @@ -141,6 +141,8 @@ func (c *completionDialogComponent) close() tea.Cmd { func (c *completionDialogComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) { var cmds []tea.Cmd switch msg := msg.(type) { + case []CompletionItemI: + c.list.SetItems(msg) case tea.KeyMsg: if c.pseudoSearchTextArea.Focused() { if !key.Matches(msg, completionDialogKeys.Complete) { @@ -155,18 +157,20 @@ func (c *completionDialogComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) { } if query != c.query { - items, err := c.completionProvider.GetChildEntries(query) - if err != nil { - // status.Error(err.Error()) - } - - c.list.SetItems(items) c.query = query + cmd = func() tea.Msg { + items, err := c.completionProvider.GetChildEntries(query) + if err != nil { + // status.Error(err.Error()) + } + // c.list.SetItems(items) + return items + } + cmds = append(cmds, cmd) } u, cmd := c.list.Update(msg) c.list = u.(list.List[CompletionItemI]) - cmds = append(cmds, cmd) } @@ -254,18 +258,21 @@ func (c *completionDialogComponent) SetProvider(provider CompletionProvider) { func NewCompletionDialogComponent(completionProvider CompletionProvider) CompletionDialog { ti := textarea.New() - items, err := completionProvider.GetChildEntries("") - if err != nil { - // status.Error(err.Error()) - } - li := list.NewListComponent( - items, + []CompletionItemI{}, 7, "No matches", false, ) + go func() { + items, err := completionProvider.GetChildEntries("") + if err != nil { + // status.Error(err.Error()) + } + li.SetItems(items) + }() + return &completionDialogComponent{ query: "", completionProvider: completionProvider, |
