Skip to content

Commit 8639b56

Browse files
Fixed regression in vertical range target (#735)
1 parent dce732d commit 8639b56

File tree

2 files changed

+64
-1
lines changed

2 files changed

+64
-1
lines changed

src/processTargets/processTargets.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ import { ProcessedTargetsContext } from "../typings/Types";
1010
import { ensureSingleEditor } from "../util/targetUtils";
1111
import getMarkStage from "./getMarkStage";
1212
import getModifierStage from "./getModifierStage";
13+
import PlainTarget from "./targets/PlainTarget";
14+
import PositionTarget from "./targets/PositionTarget";
1315

1416
/**
1517
* Converts the abstract target descriptions provided by the user to a concrete
@@ -144,7 +146,17 @@ function processVerticalRangeTarget(
144146
anchorTarget.contentRange.end.character
145147
);
146148

147-
results.push(anchorTarget.withContentRange(contentRange));
149+
if (anchorTarget instanceof PositionTarget) {
150+
results.push(anchorTarget.withContentRange(contentRange));
151+
} else {
152+
results.push(
153+
new PlainTarget({
154+
editor: anchorTarget.editor,
155+
isReversed: anchorTarget.isReversed,
156+
contentRange,
157+
})
158+
);
159+
}
148160

149161
if (i === activeLine) {
150162
return results;
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
languageId: plaintext
2+
command:
3+
spokenForm: chuck line risk slice made
4+
version: 2
5+
targets:
6+
- type: range
7+
anchor:
8+
type: primitive
9+
mark: {type: decoratedSymbol, symbolColor: default, character: r}
10+
modifiers:
11+
- type: containingScope
12+
scopeType: {type: line}
13+
active:
14+
type: primitive
15+
mark: {type: decoratedSymbol, symbolColor: default, character: m}
16+
excludeAnchor: false
17+
excludeActive: false
18+
rangeType: vertical
19+
usePrePhraseSnapshot: true
20+
action: {name: remove}
21+
initialState:
22+
documentContents: |-
23+
short
24+
something longer
25+
something even longer
26+
selections:
27+
- anchor: {line: 0, character: 0}
28+
active: {line: 0, character: 0}
29+
marks:
30+
default.r:
31+
start: {line: 0, character: 0}
32+
end: {line: 0, character: 5}
33+
default.m:
34+
start: {line: 2, character: 0}
35+
end: {line: 2, character: 9}
36+
finalState:
37+
documentContents: |-
38+
39+
hing longer
40+
hing even longer
41+
selections:
42+
- anchor: {line: 0, character: 0}
43+
active: {line: 0, character: 0}
44+
thatMark:
45+
- anchor: {line: 0, character: 0}
46+
active: {line: 0, character: 0}
47+
- anchor: {line: 1, character: 0}
48+
active: {line: 1, character: 0}
49+
- anchor: {line: 2, character: 0}
50+
active: {line: 2, character: 0}
51+
fullTargets: [{type: range, excludeAnchor: false, excludeActive: false, rangeType: vertical, anchor: {type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: r}, modifiers: &ref_0 [{type: containingScope, scopeType: {type: line}}]}, active: {type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: m}, modifiers: *ref_0}}]

0 commit comments

Comments
 (0)