summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2025-10-21 10:04:16 +0300
committerGrail Finder <wohilas@gmail.com>2025-10-21 10:04:16 +0300
commit988529537be098713211cd2042f0808b2046ff3d (patch)
treeb7f4c42171b0cd12f394c88dc5ca7f25b5acb45a
parentd098aadf99823dc94111856a9e14ea0bd51a1e7b (diff)
Enha: show dynamic status line in help page
-rw-r--r--main.go1
-rw-r--r--tui.go27
2 files changed, 17 insertions, 11 deletions
diff --git a/main.go b/main.go
index 82027c6..0b54495 100644
--- a/main.go
+++ b/main.go
@@ -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)"
diff --git a/tui.go b/tui.go
index d97a9f3..dc8a17a 100644
--- a/tui.go
+++ b/tui.go
@@ -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: