From 001c76eca1c431371badf1f48bff3f6e4dcbb282 Mon Sep 17 00:00:00 2001 From: Yves Biener Date: Thu, 3 Oct 2024 09:12:07 +0200 Subject: [PATCH 1/2] mod(debug): only provide debugging files when using environment for debugging --- main.go | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/main.go b/main.go index cf2c368..dcfb3b7 100644 --- a/main.go +++ b/main.go @@ -347,16 +347,22 @@ func main() { os.Exit(1) } - var fileErr error - logFile, fileErr := os.OpenFile("debug.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) - if fileErr == nil { - log.SetOutput(logFile) - log.SetTimeFormat(time.Kitchen) - log.SetReportCaller(true) - log.SetLevel(log.DebugLevel) - defer logFile.Close() - log.SetOutput(logFile) - log.Debug("Starting diffnav, logging to debug.log") + if os.Getenv("DEBUG") == "true" { + var fileErr error + logFile, fileErr := os.OpenFile("debug.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) + defer logFile.Close() + + logger, _ := tea.LogToFile("debug.log", "debug") + defer logger.Close() + + if fileErr == nil { + log.SetOutput(logFile) + log.SetTimeFormat(time.Kitchen) + log.SetReportCaller(true) + log.SetLevel(log.DebugLevel) + log.SetOutput(logFile) + log.Debug("Starting diffnav, logging to debug.log") + } } reader := bufio.NewReader(os.Stdin) @@ -374,11 +380,6 @@ func main() { } } - if os.Getenv("DEBUG") == "true" { - logger, _ := tea.LogToFile("debug.log", "debug") - defer logger.Close() - } - input := ansi.Strip(b.String()) if strings.TrimSpace(input) == "" { fmt.Println("No input provided, exiting") From 1d0259918c774e65f9d14d292d83e82a024bb236 Mon Sep 17 00:00:00 2001 From: Yves Biener Date: Thu, 3 Oct 2024 09:44:12 +0200 Subject: [PATCH 2/2] mod(keys): keybinding changes t: Toggle file tree /: Search J: Down in file tree K: Up in file tree j,k,ctrl+d,ctrl+u support for embedded delta view (viewport) --- diffviewer.go | 14 +++----------- keys.go | 20 ++++++++++---------- main.go | 28 +++++++--------------------- 3 files changed, 20 insertions(+), 42 deletions(-) diff --git a/diffviewer.go b/diffviewer.go index fe66e82..f354144 100644 --- a/diffviewer.go +++ b/diffviewer.go @@ -37,17 +37,9 @@ func (m diffModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { cmds := make([]tea.Cmd, 0) switch msg := msg.(type) { case tea.KeyMsg: - switch msg.String() { - case "down", "j": - break - case "up", "k": - break - default: - vp, vpCmd := m.vp.Update(msg) - cmds = append(cmds, vpCmd) - m.vp = vp - } - + vp, vpCmd := m.vp.Update(msg) + cmds = append(cmds, vpCmd) + m.vp = vp case diffContentMsg: m.vp.SetContent(msg.text) case dimensionsMsg: diff --git a/keys.go b/keys.go index 609fee8..6a9294f 100644 --- a/keys.go +++ b/keys.go @@ -14,28 +14,28 @@ type KeyMap struct { var keys = &KeyMap{ Up: key.NewBinding( - key.WithKeys("up", "k"), - key.WithHelp("↑/k", "prev file"), + key.WithKeys("up", "K"), + key.WithHelp("↑/K", "prev file"), ), Down: key.NewBinding( - key.WithKeys("down", "j"), - key.WithHelp("↓/j", "next file"), + key.WithKeys("down", "J"), + key.WithHelp("↓/J", "next file"), ), CtrlD: key.NewBinding( key.WithKeys("ctrl+d"), - key.WithHelp("ctrl+d", "diff down"), + key.WithHelp("j/ctrl+d", "diff down"), ), CtrlU: key.NewBinding( key.WithKeys("ctrl+u"), - key.WithHelp("ctrl+u", "diff up"), + key.WithHelp("k/ctrl+u", "diff up"), ), ToggleFileTree: key.NewBinding( - key.WithKeys("e"), - key.WithHelp("e", "toggle file tree"), + key.WithKeys("t"), + key.WithHelp("t", "toggle file tree"), ), Search: key.NewBinding( - key.WithKeys("t"), - key.WithHelp("t", "search files"), + key.WithKeys("/"), + key.WithHelp("/", "search files"), ), Quit: key.NewBinding( key.WithKeys("q", "ctrl+c"), diff --git a/main.go b/main.go index dcfb3b7..c813275 100644 --- a/main.go +++ b/main.go @@ -63,7 +63,7 @@ func newModel(input string) mainModel { m.search.KeyMap.AcceptSuggestion = key.NewBinding(key.WithKeys("tab")) m.search.Prompt = " " m.search.PromptStyle = lipgloss.NewStyle().Foreground(lipgloss.Color("8")) - m.search.Placeholder = "Filter files 🅃" + m.search.Placeholder = "Filter files" m.search.PlaceholderStyle = lipgloss.NewStyle().MaxWidth(lipgloss.Width(m.search.Placeholder)).Foreground(lipgloss.Color("8")) m.search.Width = constants.OpenFileTreeWidth - 5 @@ -139,24 +139,10 @@ func (m mainModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { switch msg := msg.(type) { case tea.KeyMsg: - if m.searching { - switch msg.String() { - case "ctrl+n": - if m.searching { - m.resultsCursor = min(len(m.files)-1, m.resultsCursor+1) - m.resultsVp.LineDown(1) - } - case "ctrl+p": - if m.searching { - m.resultsCursor = max(0, m.resultsCursor-1) - m.resultsVp.LineUp(1) - } - } - } switch msg.String() { case "ctrl+c", "q": return m, tea.Quit - case "t": + case "/": m.searching = true m.search.Width = m.sidebarWidth() - 5 m.search.SetValue("") @@ -170,18 +156,18 @@ func (m mainModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { m.diffViewer = df cmds = append(cmds, m.search.Focus()) return m, tea.Batch(cmds...) - case "e": + case "t": m.isShowingFileTree = !m.isShowingFileTree df, dfCmd := m.setDiffViewerDimensions() m.diffViewer = df return m, dfCmd - case "up", "k", "ctrl+p": + case "up", "K", "ctrl+p": if m.cursor > 0 { m.cursor-- m.diffViewer, cmd = m.diffViewer.(diffModel).SetFilePatch(m.files[m.cursor]) cmds = append(cmds, cmd) } - case "down", "j", "ctrl+n": + case "down", "J", "ctrl+n": if m.cursor < len(m.files)-1 { m.cursor++ m.diffViewer, cmd = m.diffViewer.(diffModel).SetFilePatch(m.files[m.cursor]) @@ -343,8 +329,8 @@ func main() { } if stat.Mode()&os.ModeNamedPipe == 0 && stat.Size() == 0 { - fmt.Println("Try piping in some text.") - os.Exit(1) + fmt.Println("No diff") + os.Exit(0) } if os.Getenv("DEBUG") == "true" {