diff options
author | Grail Finder <wohilas@gmail.com> | 2025-10-21 10:04:16 +0300 |
---|---|---|
committer | Grail Finder <wohilas@gmail.com> | 2025-10-21 10:04:16 +0300 |
commit | 988529537be098713211cd2042f0808b2046ff3d (patch) | |
tree | b7f4c42171b0cd12f394c88dc5ca7f25b5acb45a | |
parent | d098aadf99823dc94111856a9e14ea0bd51a1e7b (diff) |
Enha: show dynamic status line in help page
-rw-r--r-- | main.go | 1 | ||||
-rw-r--r-- | tui.go | 27 |
2 files changed, 17 insertions, 11 deletions
@@ -11,6 +11,7 @@ import ( var ( botRespMode = false editMode = false + injectRole = true selectedIndex = int(-1) indexLine = "F12 to show keys help | bot resp mode: [orange:-:b]%v[-:-:-] (F6) | card's char: [orange:-:b]%s[-:-:-] (ctrl+s) | chat: [orange:-:b]%s[-:-:-] (F1) | toolUseAdviced: [orange:-:b]%v[-:-:-] (ctrl+k) | model: [orange:-:b]%s[-:-:-] (ctrl+l) | skip LLM resp: [orange:-:b]%v[-:-:-] (F10)\nAPI_URL: [orange:-:b]%s[-:-:-] (ctrl+v) | ThinkUse: [orange:-:b]%v[-:-:-] (ctrl+p) | Log Level: [orange:-:b]%v[-:-:-] (ctrl+p) | Recording: [orange:-:b]%v[-:-:-] (ctrl+r) | Writing as: [orange:-:b]%s[-:-:-] (ctrl+q)" indexLineCompletion = "F12 to show keys help | bot resp mode: [orange:-:b]%v[-:-:-] (F6) | card's char: [orange:-:b]%s[-:-:-] (ctrl+s) | chat: [orange:-:b]%s[-:-:-] (F1) | toolUseAdviced: [orange:-:b]%v[-:-:-] (ctrl+k) | model: [orange:-:b]%s[-:-:-] (ctrl+l) | skip LLM resp: [orange:-:b]%v[-:-:-] (F10)\nAPI_URL: [orange:-:b]%s[-:-:-] (ctrl+v) | ThinkUse: [orange:-:b]%v[-:-:-] (ctrl+p) | Log Level: [orange:-:b]%v[-:-:-] (ctrl+p) | Recording: [orange:-:b]%v[-:-:-] (ctrl+r) | Writing as: [orange:-:b]%s[-:-:-] (ctrl+q) | Bot will write as [orange:-:b]%s[-:-:-] (ctrl+x)" @@ -75,6 +75,8 @@ var ( [yellow]Ctrl+q[white]: cycle through mentioned chars in chat, to pick persona to send next msg as [yellow]Ctrl+x[white]: cycle through mentioned chars in chat, to pick persona to send next msg as (for llm) +%s + Press Enter to go back ` colorschemes = map[string]tview.Theme{ @@ -214,7 +216,7 @@ func colorText() { textView.SetText(text) } -func updateStatusLine() { +func makeStatusLine() string { isRecording := false if asr != nil { isRecording = asr.IsRecording() @@ -223,17 +225,18 @@ func updateStatusLine() { if cfg.WriteNextMsgAs != "" { persona = cfg.WriteNextMsgAs } - if strings.Contains(cfg.CurrentAPI, "chat") { - position.SetText(fmt.Sprintf(indexLine, botRespMode, cfg.AssistantRole, activeChatName, cfg.ToolUse, chatBody.Model, - cfg.SkipLLMResp, cfg.CurrentAPI, cfg.ThinkUse, logLevel.Level(), isRecording, persona)) - return - } botPersona := cfg.AssistantRole if cfg.WriteNextMsgAsCompletionAgent != "" { botPersona = cfg.WriteNextMsgAsCompletionAgent } - position.SetText(fmt.Sprintf(indexLineCompletion, botRespMode, cfg.AssistantRole, activeChatName, cfg.ToolUse, chatBody.Model, - cfg.SkipLLMResp, cfg.CurrentAPI, cfg.ThinkUse, logLevel.Level(), isRecording, persona, botPersona)) + statusLine := fmt.Sprintf(indexLineCompletion, botRespMode, cfg.AssistantRole, activeChatName, cfg.ToolUse, chatBody.Model, + cfg.SkipLLMResp, cfg.CurrentAPI, cfg.ThinkUse, logLevel.Level(), isRecording, persona, botPersona) + return statusLine +} + +func updateStatusLine() { + position.SetText(makeStatusLine()) + helpView.SetText(fmt.Sprintf(helpText, makeStatusLine())) } func initSysCards() ([]string, error) { @@ -533,9 +536,11 @@ func init() { return event }) // - helpView = tview.NewTextView().SetDynamicColors(true).SetText(helpText).SetDoneFunc(func(key tcell.Key) { - pages.RemovePage(helpPage) - }) + helpView = tview.NewTextView().SetDynamicColors(true). + SetText(fmt.Sprintf(helpText, makeStatusLine())). + SetDoneFunc(func(key tcell.Key) { + pages.RemovePage(helpPage) + }) helpView.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey { switch event.Key() { case tcell.KeyEsc, tcell.KeyEnter: |