mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-03-23 21:51:07 +02:00
This wasn't necessary before, because the only available branch sorting option was by recency, so the sort order couldn't change except by checking out branches. Now, you can sort by committer date, so the branch order can change by fetching; in this case it's important to keep the same branch selected. One important use case is to rebase the checked-out branch onto master; you select master, press "f" to fetch it (this can now change its position in the list), and then press "r" to rebase. To make this work smoothly it's important to keep master selected after pressing "f".
67 lines
1.7 KiB
Go
67 lines
1.7 KiB
Go
package custom_commands
|
|
|
|
import (
|
|
"github.com/jesseduffield/lazygit/pkg/config"
|
|
. "github.com/jesseduffield/lazygit/pkg/integration/components"
|
|
)
|
|
|
|
var SuggestionsCommand = NewIntegrationTest(NewIntegrationTestArgs{
|
|
Description: "Using a custom command that uses a suggestions command in a prompt step",
|
|
ExtraCmdArgs: []string{},
|
|
Skip: false,
|
|
SetupRepo: func(shell *Shell) {
|
|
shell.NewBranch("branch-one")
|
|
shell.EmptyCommit("blah")
|
|
shell.NewBranch("branch-two")
|
|
shell.EmptyCommit("blah")
|
|
shell.NewBranch("branch-three")
|
|
shell.EmptyCommit("blah")
|
|
shell.NewBranch("branch-four")
|
|
shell.EmptyCommit("blah")
|
|
},
|
|
SetupConfig: func(cfg *config.AppConfig) {
|
|
cfg.UserConfig.CustomCommands = []config.CustomCommand{
|
|
{
|
|
Key: "a",
|
|
Context: "localBranches",
|
|
Command: `git checkout {{.Form.Branch}}`,
|
|
Prompts: []config.CustomCommandPrompt{
|
|
{
|
|
Key: "Branch",
|
|
Type: "input",
|
|
Title: "Enter a branch name",
|
|
Suggestions: config.CustomCommandSuggestions{
|
|
Command: "git branch --format='%(refname:short)'",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
},
|
|
Run: func(t *TestDriver, keys config.KeybindingConfig) {
|
|
t.Views().Branches().
|
|
Focus().
|
|
Lines(
|
|
Contains("branch-four").IsSelected(),
|
|
Contains("branch-three"),
|
|
Contains("branch-two"),
|
|
Contains("branch-one"),
|
|
).
|
|
Press("a")
|
|
|
|
t.ExpectPopup().Prompt().
|
|
Title(Equals("Enter a branch name")).
|
|
Type("three").
|
|
SuggestionLines(Contains("branch-three")).
|
|
ConfirmFirstSuggestion()
|
|
|
|
t.Views().Branches().
|
|
Lines(
|
|
Contains("branch-three"),
|
|
Contains("branch-four").IsSelected(),
|
|
Contains("branch-two"),
|
|
Contains("branch-one"),
|
|
)
|
|
},
|
|
})
|