Add user config expandedSidePanelWeight

This commit is contained in:
Stefan Haller 2024-05-31 21:37:10 +02:00
parent 557dfc5a6d
commit 1269938ee6
5 changed files with 55 additions and 1 deletions

View file

@ -68,6 +68,10 @@ gui:
# If true, increase the height of the focused side window; creating an accordion effect. # If true, increase the height of the focused side window; creating an accordion effect.
expandFocusedSidePanel: false expandFocusedSidePanel: false
# The weight of the expanded side panel, relative to the other panels. 2 means
# twice as tall as the other panels. Only relevant if `expandFocusedSidePanel` is true.
expandedSidePanelWeight: 2
# Sometimes the main window is split in two (e.g. when the selected file has both staged and unstaged changes). This setting controls how the two sections are split. # Sometimes the main window is split in two (e.g. when the selected file has both staged and unstaged changes). This setting controls how the two sections are split.
# Options are: # Options are:
# - 'horizontal': split the window horizontally # - 'horizontal': split the window horizontally

View file

@ -77,6 +77,9 @@ type GuiConfig struct {
SidePanelWidth float64 `yaml:"sidePanelWidth" jsonschema:"maximum=1,minimum=0"` SidePanelWidth float64 `yaml:"sidePanelWidth" jsonschema:"maximum=1,minimum=0"`
// If true, increase the height of the focused side window; creating an accordion effect. // If true, increase the height of the focused side window; creating an accordion effect.
ExpandFocusedSidePanel bool `yaml:"expandFocusedSidePanel"` ExpandFocusedSidePanel bool `yaml:"expandFocusedSidePanel"`
// The weight of the expanded side panel, relative to the other panels. 2 means
// twice as tall as the other panels. Only relevant if `expandFocusedSidePanel` is true.
ExpandedSidePanelWeight int `yaml:"expandedSidePanelWeight"`
// Sometimes the main window is split in two (e.g. when the selected file has both staged and unstaged changes). This setting controls how the two sections are split. // Sometimes the main window is split in two (e.g. when the selected file has both staged and unstaged changes). This setting controls how the two sections are split.
// Options are: // Options are:
// - 'horizontal': split the window horizontally // - 'horizontal': split the window horizontally
@ -651,6 +654,7 @@ func GetDefaultConfig() *UserConfig {
SkipStashWarning: false, SkipStashWarning: false,
SidePanelWidth: 0.3333, SidePanelWidth: 0.3333,
ExpandFocusedSidePanel: false, ExpandFocusedSidePanel: false,
ExpandedSidePanelWeight: 2,
MainPanelSplitMode: "flexible", MainPanelSplitMode: "flexible",
EnlargedSideViewLocation: "left", EnlargedSideViewLocation: "left",
Language: "auto", Language: "auto",

View file

@ -443,7 +443,7 @@ func sidePanelChildren(args WindowArrangementArgs) func(width int, height int) [
if accordionMode && defaultBox.Window == args.CurrentSideWindow { if accordionMode && defaultBox.Window == args.CurrentSideWindow {
return &boxlayout.Box{ return &boxlayout.Box{
Window: defaultBox.Window, Window: defaultBox.Window,
Weight: 2, Weight: args.UserConfig.Gui.ExpandedSidePanelWeight,
} }
} }

View file

@ -161,6 +161,47 @@ func TestGetWindowDimensions(t *testing.T) {
B: information B: information
`, `,
}, },
{
name: "expandSidePanelWeight",
mutateArgs: func(args *WindowArrangementArgs) {
args.UserConfig.Gui.ExpandFocusedSidePanel = true
args.UserConfig.Gui.ExpandedSidePanelWeight = 4
},
expected: `
statusmain
files
branches
commits
stash
<options>A<B>
A: statusSpacer1
B: information
`,
},
{ {
name: "half screen mode, enlargedSideViewLocation left", name: "half screen mode, enlargedSideViewLocation left",
mutateArgs: func(args *WindowArrangementArgs) { mutateArgs: func(args *WindowArrangementArgs) {

View file

@ -76,6 +76,11 @@
"description": "If true, increase the height of the focused side window; creating an accordion effect.", "description": "If true, increase the height of the focused side window; creating an accordion effect.",
"default": false "default": false
}, },
"expandedSidePanelWeight": {
"type": "integer",
"description": "The weight of the expanded side panel, relative to the other panels. 2 means\ntwice as tall as the other panels. Only relevant if `expandFocusedSidePanel` is true.",
"default": 2
},
"mainPanelSplitMode": { "mainPanelSplitMode": {
"type": "string", "type": "string",
"enum": [ "enum": [