Skip to content

Commit

Permalink
Add user config expandedSidePanelWeight
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanhaller committed May 31, 2024
1 parent bac3541 commit d0d3b69
Show file tree
Hide file tree
Showing 5 changed files with 55 additions and 1 deletion.
4 changes: 4 additions & 0 deletions docs/Config.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,10 @@ gui:
# If true, increase the height of the focused side window; creating an accordion effect.
expandFocusedSidePanel: false

# The weight of the expanded side panel, relative to the other panels. 2 means
# twice as heigh 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.
# Options are:
# - 'horizontal': split the window horizontally
Expand Down
4 changes: 4 additions & 0 deletions pkg/config/user_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ type GuiConfig struct {
SidePanelWidth float64 `yaml:"sidePanelWidth" jsonschema:"maximum=1,minimum=0"`
// If true, increase the height of the focused side window; creating an accordion effect.
ExpandFocusedSidePanel bool `yaml:"expandFocusedSidePanel"`
// The weight of the expanded side panel, relative to the other panels. 2 means
// twice as heigh 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.
// Options are:
// - 'horizontal': split the window horizontally
Expand Down Expand Up @@ -651,6 +654,7 @@ func GetDefaultConfig() *UserConfig {
SkipStashWarning: false,
SidePanelWidth: 0.3333,
ExpandFocusedSidePanel: false,
ExpandedSidePanelWeight: 2,
MainPanelSplitMode: "flexible",
EnlargedSideViewLocation: "left",
Language: "auto",
Expand Down
2 changes: 1 addition & 1 deletion pkg/gui/controllers/helpers/window_arrangement_helper.go
Original file line number Diff line number Diff line change
Expand Up @@ -443,7 +443,7 @@ func sidePanelChildren(args WindowArrangementArgs) func(width int, height int) [
if accordionMode && defaultBox.Window == args.CurrentSideWindow {
return &boxlayout.Box{
Window: defaultBox.Window,
Weight: 2,
Weight: args.UserConfig.Gui.ExpandedSidePanelWeight,
}
}

Expand Down
41 changes: 41 additions & 0 deletions pkg/gui/controllers/helpers/window_arrangement_helper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,47 @@ func TestGetWindowDimensions(t *testing.T) {
B: information
`,
},
{
name: "expandSidePanelWeight",
mutateArgs: func(args *WindowArrangementArgs) {
args.UserConfig.Gui.ExpandFocusedSidePanel = true
args.UserConfig.Gui.ExpandedSidePanelWeight = 4
},
expected: `
╭status─────────────────╮╭main────────────────────────────────────────────╮
│ ││ │
╰───────────────────────╯│ │
╭files──────────────────╮│ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
│ ││ │
╰───────────────────────╯│ │
╭branches───────────────╮│ │
│ ││ │
│ ││ │
╰───────────────────────╯│ │
╭commits────────────────╮│ │
│ ││ │
│ ││ │
╰───────────────────────╯│ │
╭stash──────────────────╮│ │
│ ││ │
╰───────────────────────╯╰────────────────────────────────────────────────╯
<options──────────────────────────────────────────────────────>A<B────────>
A: statusSpacer1
B: information
`,
},
{
name: "half screen mode, enlargedSideViewLocation left",
mutateArgs: func(args *WindowArrangementArgs) {
Expand Down
5 changes: 5 additions & 0 deletions schema/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,11 @@
"description": "If true, increase the height of the focused side window; creating an accordion effect.",
"default": false
},
"expandedSidePanelWeight": {
"type": "integer",
"description": "The weight of the expanded side panel, relative to the other panels. 2 means\ntwice as heigh as the other panels. Only relevant if `expandFocusedSidePanel` is true.",
"default": 2
},
"mainPanelSplitMode": {
"type": "string",
"enum": [
Expand Down

0 comments on commit d0d3b69

Please sign in to comment.