From 931b646c303af84192c36b2825293b86524dd6f3 Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Wed, 18 Feb 2026 22:00:52 +0300 Subject: Enha: codingdir for coding assistant --- tables.go | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'tables.go') diff --git a/tables.go b/tables.go index 086bdf7..a69bb1a 100644 --- a/tables.go +++ b/tables.go @@ -820,7 +820,7 @@ func makeFilePicker() *tview.Flex { } // Create UI elements listView := tview.NewList() - listView.SetBorder(true).SetTitle("Files & Directories").SetTitleAlign(tview.AlignLeft) + listView.SetBorder(true).SetTitle("Files & Directories [c: set CodingDir]").SetTitleAlign(tview.AlignLeft) // Status view for selected file information statusView := tview.NewTextView() statusView.SetBorder(true).SetTitle("Selected File").SetTitleAlign(tview.AlignLeft) @@ -1032,6 +1032,37 @@ func makeFilePicker() *tview.Flex { refreshList(currentDisplayDir, "") return nil } + if event.Rune() == 'c' { + // Set CodingDir to current directory + itemIndex := listView.GetCurrentItem() + if itemIndex >= 0 && itemIndex < listView.GetItemCount() { + itemText, _ := listView.GetItemText(itemIndex) + // Get the actual directory path + var targetDir string + if strings.HasPrefix(itemText, "Exit") || strings.HasPrefix(itemText, "Select this directory") { + targetDir = currentDisplayDir + } else { + actualItemName := itemText + if bracketPos := strings.Index(itemText, " ["); bracketPos != -1 { + actualItemName = itemText[:bracketPos] + } + if strings.HasPrefix(actualItemName, "../") { + targetDir = path.Dir(currentDisplayDir) + } else if strings.HasSuffix(actualItemName, "/") { + dirName := strings.TrimSuffix(actualItemName, "/") + targetDir = path.Join(currentDisplayDir, dirName) + } else { + targetDir = currentDisplayDir + } + } + cfg.CodingDir = targetDir + if err := notifyUser("CodingDir", "Set to: "+targetDir); err != nil { + logger.Error("failed to notify user", "error", err) + } + pages.RemovePage(filePickerPage) + return nil + } + } case tcell.KeyEnter: // Get the currently highlighted item in the list itemIndex := listView.GetCurrentItem() -- cgit v1.2.3