mirror of
https://github.com/jorgerojas26/lazysql.git
synced 2026-05-06 08:56:58 -04:00
Merge pull request #271 from carlosflorencio/feat/json-viewer-word-wrap
feat: add JSON viewer word wrap setting and toggle keybinding
This commit is contained in:
@@ -26,6 +26,7 @@ func defaultConfig() *Config {
|
||||
SidebarOverlay: false,
|
||||
MaxQueryHistoryPerConnection: 100,
|
||||
TreeWidth: 30,
|
||||
JSONViewerWordWrap: false,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -172,6 +172,7 @@ var Keymaps = KeymapSystem{
|
||||
Bind{Key: Key{Char: 'Z'}, Cmd: cmd.ShowRowJSONViewer, Description: "Toggle JSON viewer"},
|
||||
Bind{Key: Key{Char: 'z'}, Cmd: cmd.ShowCellJSONViewer, Description: "Toggle JSON viewer"},
|
||||
Bind{Key: Key{Char: 'y'}, Cmd: cmd.Copy, Description: "Copy value to clipboard"},
|
||||
Bind{Key: Key{Char: 'w'}, Cmd: cmd.ToggleJSONViewerWrap, Description: "Toggle word wrap"},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -73,6 +73,7 @@ const (
|
||||
ToggleSidebar
|
||||
ShowRowJSONViewer
|
||||
ShowCellJSONViewer
|
||||
ToggleJSONViewerWrap
|
||||
|
||||
// Connection
|
||||
NewConnection
|
||||
@@ -221,6 +222,8 @@ func (c Command) String() string {
|
||||
return "ShowRowJSONViewer"
|
||||
case ShowCellJSONViewer:
|
||||
return "ShowCellJSONViewer"
|
||||
case ToggleJSONViewerWrap:
|
||||
return "ToggleJSONViewerWrap"
|
||||
case ExportCSV:
|
||||
return "ExportCSV"
|
||||
}
|
||||
|
||||
@@ -20,13 +20,15 @@ type JSONViewer struct {
|
||||
TextView *tview.TextView
|
||||
Pages *tview.Pages
|
||||
primitiveToFocus tview.Primitive
|
||||
wrapEnabled bool
|
||||
}
|
||||
|
||||
func NewJSONViewer(pages *tview.Pages) *JSONViewer {
|
||||
wrapEnabled := app.App.Config().JSONViewerWordWrap
|
||||
textView := tview.NewTextView().
|
||||
SetDynamicColors(true).
|
||||
SetScrollable(true).
|
||||
SetWrap(false)
|
||||
SetWrap(wrapEnabled)
|
||||
textView.SetBorder(true).SetTitle(" JSON Viewer ")
|
||||
|
||||
flex := tview.NewFlex().
|
||||
@@ -38,9 +40,10 @@ func NewJSONViewer(pages *tview.Pages) *JSONViewer {
|
||||
AddItem(nil, 0, 1, false)
|
||||
|
||||
jsonViewer := &JSONViewer{
|
||||
Flex: flex,
|
||||
TextView: textView,
|
||||
Pages: pages,
|
||||
Flex: flex,
|
||||
TextView: textView,
|
||||
Pages: pages,
|
||||
wrapEnabled: wrapEnabled,
|
||||
}
|
||||
|
||||
pages.AddPage(pageNameJSONViewer, jsonViewer, true, false)
|
||||
@@ -58,6 +61,10 @@ func NewJSONViewer(pages *tview.Pages) *JSONViewer {
|
||||
logger.Error("Error copying JSON to clipboard", map[string]any{"error": err.Error()})
|
||||
}
|
||||
return nil
|
||||
} else if command == commands.ToggleJSONViewerWrap {
|
||||
jsonViewer.wrapEnabled = !jsonViewer.wrapEnabled
|
||||
jsonViewer.TextView.SetWrap(jsonViewer.wrapEnabled)
|
||||
return nil
|
||||
}
|
||||
return event
|
||||
})
|
||||
|
||||
@@ -12,6 +12,7 @@ type AppConfig struct {
|
||||
SidebarOverlay bool
|
||||
MaxQueryHistoryPerConnection int
|
||||
TreeWidth int
|
||||
JSONViewerWordWrap bool
|
||||
}
|
||||
|
||||
type Connection struct {
|
||||
|
||||
Reference in New Issue
Block a user