1
0
mirror of https://github.com/jesseduffield/lazygit.git synced 2025-05-29 23:17:32 +02:00

Add user config gui.expandedSidePanelWeight (#3623)

- **PR Description**

Add a user config `gui.expandedSidePanelWeight` which lets you change
the default weight of 2 that gets assigned to the expanded side panel if
`expandFocusedSidePanel` is true.

Closes #3621.

- **Please check if the PR fulfills these requirements**

* [x] Cheatsheets are up-to-date (run `go generate ./...`)
* [x] Code has been formatted (see
[here](https://github.com/jesseduffield/lazygit/blob/master/CONTRIBUTING.md#code-formatting))
* [x] Tests have been added/updated (see
[here](https://github.com/jesseduffield/lazygit/blob/master/pkg/integration/README.md)
for the integration test guide)
* [ ] Text is internationalised (see
[here](https://github.com/jesseduffield/lazygit/blob/master/CONTRIBUTING.md#internationalisation))
* [x] Docs have been updated if necessary
* [x] You've read through your own file changes for silly mistakes etc
This commit is contained in:
Stefan Haller 2024-06-01 08:25:30 +02:00 committed by GitHub
commit f085d10c46
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 95 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.
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.
# Options are:
# - 'horizontal': split the window horizontally

View File

@ -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 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.
// Options are:
// - 'horizontal': split the window horizontally
@ -651,6 +654,7 @@ func GetDefaultConfig() *UserConfig {
SkipStashWarning: false,
SidePanelWidth: 0.3333,
ExpandFocusedSidePanel: false,
ExpandedSidePanelWeight: 2,
MainPanelSplitMode: "flexible",
EnlargedSideViewLocation: "left",
Language: "auto",

View File

@ -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,
}
}

View File

@ -121,6 +121,87 @@ func TestGetWindowDimensions(t *testing.T) {
B: information
`,
},
{
name: "expandFocusedSidePanel",
mutateArgs: func(args *WindowArrangementArgs) {
args.UserConfig.Gui.ExpandFocusedSidePanel = true
},
expected: `
statusmain
files
branches
commits
stash
<options>A<B>
A: statusSpacer1
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",
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.",
"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": {
"type": "string",
"enum": [