summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--helpfuncs.go26
-rw-r--r--main.go20
-rw-r--r--popups.go4
-rw-r--r--tables.go1
-rw-r--r--tui.go1
5 files changed, 26 insertions, 26 deletions
diff --git a/helpfuncs.go b/helpfuncs.go
index 09751e3..d407d1e 100644
--- a/helpfuncs.go
+++ b/helpfuncs.go
@@ -354,10 +354,15 @@ func makeStatusLine() string {
}
// Get model color based on load status for local llama.cpp models
modelColor := getModelColor()
- statusLine := fmt.Sprintf(indexLineCompletion, boolColors[botRespMode], botRespMode, activeChatName,
+ statusLine := fmt.Sprintf(statusLineTempl, boolColors[botRespMode], botRespMode, activeChatName,
boolColors[cfg.ToolUse], cfg.ToolUse, modelColor, chatBody.Model, boolColors[cfg.SkipLLMResp],
cfg.SkipLLMResp, cfg.CurrentAPI, boolColors[isRecording], isRecording, persona,
- botPersona, boolColors[injectRole], injectRole)
+ botPersona)
+ // completion endpoint
+ if !strings.Contains(cfg.CurrentAPI, "chat") {
+ roleInject := fmt.Sprintf(" | role injection [%s:-:b]%v[-:-:-] (alt+7)", boolColors[injectRole], injectRole)
+ statusLine += roleInject
+ }
return statusLine + imageInfo + shellModeInfo
}
@@ -741,7 +746,6 @@ func scanFiles(dir, filter string) []string {
const maxDepth = 3
const maxFiles = 50
var files []string
-
var scanRecursive func(currentDir string, currentDepth int, relPath string)
scanRecursive = func(currentDir string, currentDepth int, relPath string) {
if len(files) >= maxFiles {
@@ -750,39 +754,33 @@ func scanFiles(dir, filter string) []string {
if currentDepth > maxDepth {
return
}
-
entries, err := os.ReadDir(currentDir)
if err != nil {
return
}
-
for _, entry := range entries {
if len(files) >= maxFiles {
return
}
-
name := entry.Name()
if strings.HasPrefix(name, ".") {
continue
}
-
fullPath := name
if relPath != "" {
fullPath = relPath + "/" + name
}
-
if entry.IsDir() {
// Recursively scan subdirectories
scanRecursive(filepath.Join(currentDir, name), currentDepth+1, fullPath)
- } else {
- // Check if file matches filter
- if filter == "" || strings.HasPrefix(strings.ToLower(fullPath), strings.ToLower(filter)) {
- files = append(files, fullPath)
- }
+ continue
+ }
+ // Check if file matches filter
+ if filter == "" || strings.HasPrefix(strings.ToLower(fullPath), strings.ToLower(filter)) {
+ files = append(files, fullPath)
}
}
}
-
scanRecursive(dir, 0, "")
return files
}
diff --git a/main.go b/main.go
index 7557d04..2347139 100644
--- a/main.go
+++ b/main.go
@@ -5,16 +5,16 @@ import (
)
var (
- boolColors = map[bool]string{true: "green", false: "red"}
- botRespMode = false
- editMode = false
- roleEditMode = false
- injectRole = true
- selectedIndex = int(-1)
- shellMode = false
- thinkingCollapsed = false
- indexLineCompletion = "F12 to show keys help | llm turn: [%s:-:b]%v[-:-:-] (F6) | chat: [orange:-:b]%s[-:-:-] (F1) | toolUseAdviced: [%s:-:b]%v[-:-:-] (ctrl+k) | model: [%s:-:b]%s[-:-:-] (ctrl+l) | skip LLM resp: [%s:-:b]%v[-:-:-] (F10)\nAPI: [orange:-:b]%s[-:-:-] (ctrl+v) | recording: [%s:-:b]%v[-:-:-] (ctrl+r) | writing as: [orange:-:b]%s[-:-:-] (ctrl+q) | bot will write as [orange:-:b]%s[-:-:-] (ctrl+x) | role injection (alt+7) [%s:-:b]%v[-:-:-]"
- focusSwitcher = map[tview.Primitive]tview.Primitive{}
+ boolColors = map[bool]string{true: "green", false: "red"}
+ botRespMode = false
+ editMode = false
+ roleEditMode = false
+ injectRole = true
+ selectedIndex = int(-1)
+ shellMode = false
+ thinkingCollapsed = false
+ statusLineTempl = "help (F12) | llm turn: [%s:-:b]%v[-:-:-] (F6) | chat: [orange:-:b]%s[-:-:-] (F1) |tool-use: [%s:-:b]%v[-:-:-] (ctrl+k) | model: [%s:-:b]%s[-:-:-] (ctrl+l) | skip LLM resp: [%s:-:b]%v[-:-:-] (F10)\nAPI: [orange:-:b]%s[-:-:-] (ctrl+v) | voice recording: [%s:-:b]%v[-:-:-] (ctrl+r) | writing as: [orange:-:b]%s[-:-:-] (ctrl+q) | bot will write as [orange:-:b]%s[-:-:-] (ctrl+x)"
+ focusSwitcher = map[tview.Primitive]tview.Primitive{}
)
func main() {
diff --git a/popups.go b/popups.go
index f584f3c..b0ee4ae 100644
--- a/popups.go
+++ b/popups.go
@@ -388,7 +388,7 @@ func showFileCompletionPopup(filter string) {
app.SetFocus(widget)
}
-func updateWidgetColors(theme tview.Theme) {
+func updateWidgetColors(theme *tview.Theme) {
bgColor := theme.PrimitiveBackgroundColor
fgColor := theme.PrimaryTextColor
borderColor := theme.BorderColor
@@ -476,7 +476,7 @@ func showColorschemeSelectionPopup() {
tview.Styles = theme
go func() {
app.QueueUpdateDraw(func() {
- updateWidgetColors(theme)
+ updateWidgetColors(&theme)
})
}()
}
diff --git a/tables.go b/tables.go
index a69bb1a..f25c7e1 100644
--- a/tables.go
+++ b/tables.go
@@ -1046,6 +1046,7 @@ func makeFilePicker() *tview.Flex {
if bracketPos := strings.Index(itemText, " ["); bracketPos != -1 {
actualItemName = itemText[:bracketPos]
}
+ // nolint: gocritic
if strings.HasPrefix(actualItemName, "../") {
targetDir = path.Dir(currentDisplayDir)
} else if strings.HasSuffix(actualItemName, "/") {
diff --git a/tui.go b/tui.go
index 018e7e4..588e368 100644
--- a/tui.go
+++ b/tui.go
@@ -835,6 +835,7 @@ func init() {
lastMsg := chatBody.Messages[len(chatBody.Messages)-1]
cleanedText := models.CleanText(lastMsg.Content)
if cleanedText != "" {
+ // nolint: errcheck
go orator.Speak(cleanedText)
}
}