Skip to content

Commit

Permalink
Set SelectedPath to SelectedCommitFilePath in CommitFiles context
Browse files Browse the repository at this point in the history
  • Loading branch information
stefanhaller committed Aug 17, 2024
1 parent 22f0d9c commit 7fb758c
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 2 deletions.
11 changes: 9 additions & 2 deletions pkg/gui/services/custom_commands/session_state_loader.go
Original file line number Diff line number Diff line change
Expand Up @@ -193,9 +193,16 @@ func (self *SessionStateLoader) call() *SessionState {
selectedCommit = selectedSubCommit
}

selectedPath := self.c.Contexts().Files.GetSelectedPath()
selectedCommitFilePath := self.c.Contexts().CommitFiles.GetSelectedPath()

if self.c.Context().IsCurrent(self.c.Contexts().CommitFiles) {
selectedPath = selectedCommitFilePath
}

return &SessionState{
SelectedFile: fileShimFromModelFile(self.c.Contexts().Files.GetSelectedFile()),
SelectedPath: self.c.Contexts().Files.GetSelectedPath(),
SelectedPath: selectedPath,
SelectedLocalCommit: selectedLocalCommit,
SelectedReflogCommit: selectedReflogCommit,
SelectedSubCommit: selectedSubCommit,
Expand All @@ -206,7 +213,7 @@ func (self *SessionStateLoader) call() *SessionState {
SelectedTag: tagShimFromModelRemote(self.c.Contexts().Tags.GetSelected()),
SelectedStashEntry: stashEntryShimFromModelRemote(self.c.Contexts().Stash.GetSelected()),
SelectedCommitFile: commitFileShimFromModelRemote(self.c.Contexts().CommitFiles.GetSelectedFile()),
SelectedCommitFilePath: self.c.Contexts().CommitFiles.GetSelectedPath(),
SelectedCommitFilePath: selectedCommitFilePath,
SelectedWorktree: worktreeShimFromModelRemote(self.c.Contexts().Worktrees.GetSelected()),
CheckedOutBranch: branchShimFromModelBranch(self.refsHelper.GetCheckedOutRef()),
}
Expand Down
44 changes: 44 additions & 0 deletions pkg/integration/tests/custom_commands/selected_path.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package custom_commands

import (
"github.com/jesseduffield/lazygit/pkg/config"
. "github.com/jesseduffield/lazygit/pkg/integration/components"
)

var SelectedPath = NewIntegrationTest(NewIntegrationTestArgs{
Description: "Use the {{ .SelectedPath }} template variable in different contexts",
ExtraCmdArgs: []string{},
Skip: false,
SetupRepo: func(shell *Shell) {
shell.CreateDir("folder1")
shell.CreateFileAndAdd("folder1/file1", "")
shell.Commit("commit")
shell.CreateDir("folder2")
shell.CreateFile("folder2/file2", "")
},
SetupConfig: func(cfg *config.AppConfig) {
cfg.UserConfig.CustomCommands = []config.CustomCommand{
{
Key: "X",
Context: "global",
Command: "printf '%s' '{{ .SelectedPath }}' > file.txt",
},
}
},
Run: func(t *TestDriver, keys config.KeybindingConfig) {
t.Views().Files().
Focus().
NavigateToLine(Contains("file2"))
t.GlobalPress("X")
t.FileSystem().FileContent("file.txt", Equals("folder2/file2"))

t.Views().Commits().
Focus().
PressEnter()
t.Views().CommitFiles().
IsFocused().
NavigateToLine(Contains("file1"))
t.GlobalPress("X")
t.FileSystem().FileContent("file.txt", Equals("folder1/file1"))
},
})
1 change: 1 addition & 0 deletions pkg/integration/tests/test_list.go
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,7 @@ var tests = []*components.IntegrationTest{
custom_commands.MultipleContexts,
custom_commands.MultiplePrompts,
custom_commands.SelectedCommit,
custom_commands.SelectedPath,
custom_commands.ShowOutputInPanel,
custom_commands.SuggestionsCommand,
custom_commands.SuggestionsPreset,
Expand Down

0 comments on commit 7fb758c

Please sign in to comment.