mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-05-17 22:32:58 +02:00
Fix jumping to the correct line from the staging view (#2919)
This commit is contained in:
commit
08624b8ef7
@ -97,12 +97,12 @@ func (self *Patch) LineNumberOfLine(idx int) int {
|
|||||||
idxInHunk := idx - hunkStartIdx
|
idxInHunk := idx - hunkStartIdx
|
||||||
|
|
||||||
if idxInHunk == 0 {
|
if idxInHunk == 0 {
|
||||||
return hunk.oldStart
|
return hunk.newStart
|
||||||
}
|
}
|
||||||
|
|
||||||
lines := hunk.bodyLines[:idxInHunk-1]
|
lines := hunk.bodyLines[:idxInHunk-1]
|
||||||
offset := nLinesWithKind(lines, []PatchLineKind{ADDITION, CONTEXT})
|
offset := nLinesWithKind(lines, []PatchLineKind{ADDITION, CONTEXT})
|
||||||
return hunk.oldStart + offset
|
return hunk.newStart + offset
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns hunk index containing the line at the given patch line index
|
// Returns hunk index containing the line at the given patch line index
|
||||||
|
@ -67,6 +67,29 @@ index e48a11c..b2ab81b 100644
|
|||||||
...
|
...
|
||||||
`
|
`
|
||||||
|
|
||||||
|
const twoHunksWithMoreAdditionsThanRemovals = `diff --git a/filename b/filename
|
||||||
|
index bac359d75..6e5b89f36 100644
|
||||||
|
--- a/filename
|
||||||
|
+++ b/filename
|
||||||
|
@@ -1,5 +1,6 @@
|
||||||
|
apple
|
||||||
|
-grape
|
||||||
|
+orange
|
||||||
|
+kiwi
|
||||||
|
...
|
||||||
|
...
|
||||||
|
...
|
||||||
|
@@ -8,6 +9,8 @@ grape
|
||||||
|
...
|
||||||
|
...
|
||||||
|
...
|
||||||
|
+pear
|
||||||
|
+lemon
|
||||||
|
...
|
||||||
|
...
|
||||||
|
...
|
||||||
|
`
|
||||||
|
|
||||||
const twoChangesInOneHunk = `diff --git a/filename b/filename
|
const twoChangesInOneHunk = `diff --git a/filename b/filename
|
||||||
index 9320895..6d79956 100644
|
index 9320895..6d79956 100644
|
||||||
--- a/filename
|
--- a/filename
|
||||||
@ -572,6 +595,12 @@ func TestLineNumberOfLine(t *testing.T) {
|
|||||||
indexes: []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 1000},
|
indexes: []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 1000},
|
||||||
expecteds: []int{1, 1, 1, 1, 1, 1, 2, 2, 3, 4, 5, 8, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15},
|
expecteds: []int{1, 1, 1, 1, 1, 1, 2, 2, 3, 4, 5, 8, 8, 9, 10, 11, 12, 13, 14, 15, 15, 15, 15, 15, 15},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
testName: "twoHunksWithMoreAdditionsThanRemovals",
|
||||||
|
patchStr: twoHunksWithMoreAdditionsThanRemovals,
|
||||||
|
indexes: []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 1000},
|
||||||
|
expecteds: []int{1, 1, 1, 1, 1, 1, 2, 2, 3, 4, 5, 6, 9, 9, 10, 11, 12, 13, 14, 15, 16, 16, 16, 16, 16, 16},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, s := range scenarios {
|
for _, s := range scenarios {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user