Просмотр исходного кода

feat: believe it or not, even faster tui init

adamdottv 8 месяцев назад
Родитель
Сommit
c8eb1b24c3

+ 9 - 11
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)
 	}
 }
 

+ 2 - 3
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...)
 			}
 		}