diff options
| author | Grail Finder <wohilas@gmail.com> | 2026-02-18 22:00:52 +0300 |
|---|---|---|
| committer | Grail Finder <wohilas@gmail.com> | 2026-02-18 22:00:52 +0300 |
| commit | 931b646c303af84192c36b2825293b86524dd6f3 (patch) | |
| tree | b05c79f4688a639ab71fa6a861f42c6137ca0e45 /tables.go | |
| parent | f560ecf70baa163b7f384b4d8162bf41026e80f9 (diff) | |
Enha: codingdir for coding assistant
Diffstat (limited to 'tables.go')
| -rw-r--r-- | tables.go | 33 |
1 files changed, 32 insertions, 1 deletions
@@ -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() |
