From dada878305a3d72bd69e2b79926ab9fdc0f1f541 Mon Sep 17 00:00:00 2001
From: Pokey Rule <755842+pokey@users.noreply.github.com>
Date: Tue, 13 Jun 2023 09:16:03 -0400
Subject: [PATCH 1/7] Fix `"instance first three chars"` (#1520)
The problem was that constructing a character range inadvertently
resulted in a target with `isToken = true`, because when we clone the
anchor target to create the new range target, we forgot to include the
`isToken = false`.
## Checklist
- [ ] I have added
[tests](https://www.cursorless.org/docs/contributing/test-case-recorder/)
- [ ] I have updated the
[docs](https://github.com/cursorless-dev/cursorless/tree/main/docs) and
[cheatsheet](https://github.com/cursorless-dev/cursorless/tree/main/cursorless-talon/src/cheatsheet)
- [ ] I have not broken the cheatsheet
---
.../src/processTargets/targets/PlainTarget.ts | 7 +++-
.../clearTwoInstancesFirstThreeCarsAir.yml | 37 +++++++++++++++++++
2 files changed, 43 insertions(+), 1 deletion(-)
create mode 100644 packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/modifiers/instance/clearTwoInstancesFirstThreeCarsAir.yml
diff --git a/packages/cursorless-engine/src/processTargets/targets/PlainTarget.ts b/packages/cursorless-engine/src/processTargets/targets/PlainTarget.ts
index 492f97b1ac5..4f4841db078 100644
--- a/packages/cursorless-engine/src/processTargets/targets/PlainTarget.ts
+++ b/packages/cursorless-engine/src/processTargets/targets/PlainTarget.ts
@@ -20,5 +20,10 @@ export default class PlainTarget extends BaseTarget {
getTrailingDelimiterTarget = () => undefined;
getRemovalRange = () => this.contentRange;
- protected getCloneParameters = () => this.state;
+ protected getCloneParameters() {
+ return {
+ ...this.state,
+ isToken: this.isToken,
+ };
+ }
}
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/modifiers/instance/clearTwoInstancesFirstThreeCarsAir.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/modifiers/instance/clearTwoInstancesFirstThreeCarsAir.yml
new file mode 100644
index 00000000000..be70aeac535
--- /dev/null
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/modifiers/instance/clearTwoInstancesFirstThreeCarsAir.yml
@@ -0,0 +1,37 @@
+languageId: plaintext
+command:
+ version: 5
+ spokenForm: clear two instances first three cars air
+ action: {name: clearAndSetSelection}
+ targets:
+ - type: primitive
+ modifiers:
+ - type: relativeScope
+ scopeType: {type: instance}
+ offset: 0
+ length: 2
+ direction: forward
+ - type: ordinalScope
+ scopeType: {type: character}
+ start: 0
+ length: 3
+ mark: {type: decoratedSymbol, symbolColor: default, character: a}
+ usePrePhraseSnapshot: true
+initialState:
+ documentContents: |
+ aaabbb aaaccc
+ selections:
+ - anchor: {line: 1, character: 0}
+ active: {line: 1, character: 0}
+ marks:
+ default.a:
+ start: {line: 0, character: 0}
+ end: {line: 0, character: 6}
+finalState:
+ documentContents: |
+ bbb ccc
+ selections:
+ - anchor: {line: 0, character: 0}
+ active: {line: 0, character: 0}
+ - anchor: {line: 0, character: 4}
+ active: {line: 0, character: 4}
From 441a8e9d572aa669f045172dbfab2dd42b19f814 Mon Sep 17 00:00:00 2001
From: Pokey Rule <755842+pokey@users.noreply.github.com>
Date: Tue, 13 Jun 2023 09:41:01 -0400
Subject: [PATCH 2/7] Fix `"forward"` in cheatsheet (#1525)
This is how `"backward"` looks:
But `"forward"` didn't have the same special treatment:
This PR makes it look as follows:
I also updated the cheatsheet json that we use to generate the [generic
cheatsheet](https://www.cursorless.org/cheatsheet) while I was here
## Checklist
- [ ] I have added
[tests](https://www.cursorless.org/docs/contributing/test-case-recorder/)
- [x] I have updated the
[docs](https://github.com/cursorless-dev/cursorless/tree/main/docs) and
[cheatsheet](https://github.com/cursorless-dev/cursorless/tree/main/cursorless-talon/src/cheatsheet)
- [x] I have not broken the cheatsheet
---
.../src/cheatsheet/sections/modifiers.py | 5 ++
.../lib/sampleSpokenFormInfos/defaults.json | 58 +++++++++++++++++++
2 files changed, 63 insertions(+)
diff --git a/cursorless-talon/src/cheatsheet/sections/modifiers.py b/cursorless-talon/src/cheatsheet/sections/modifiers.py
index cb7251761ba..24cbc02dac9 100644
--- a/cursorless-talon/src/cheatsheet/sections/modifiers.py
+++ b/cursorless-talon/src/cheatsheet/sections/modifiers.py
@@ -26,6 +26,7 @@ def get_modifiers():
"previous",
"next",
"backward",
+ "forward",
]
simple_modifiers = {
key: value
@@ -125,6 +126,10 @@ def get_modifiers():
"spokenForm": f" {complex_modifiers['backward']}",
"description": "single instance of including target, going backwards",
},
+ {
+ "spokenForm": f" {complex_modifiers['forward']}",
+ "description": "single instance of including target, going forwards",
+ },
{
"spokenForm": f" s {complex_modifiers['backward']}",
"description": " instances of including target, going backwards",
diff --git a/packages/cheatsheet/src/lib/sampleSpokenFormInfos/defaults.json b/packages/cheatsheet/src/lib/sampleSpokenFormInfos/defaults.json
index 31efed2fb23..79f12a23519 100644
--- a/packages/cheatsheet/src/lib/sampleSpokenFormInfos/defaults.json
+++ b/packages/cheatsheet/src/lib/sampleSpokenFormInfos/defaults.json
@@ -708,6 +708,16 @@
}
]
},
+ {
+ "id": "inferPreviousMark",
+ "type": "modifier",
+ "variations": [
+ {
+ "spokenForm": "its",
+ "description": "Infer previous mark"
+ }
+ ]
+ },
{
"id": "interiorOnly",
"type": "modifier",
@@ -794,6 +804,14 @@
"spokenForm": "previous s",
"description": "previous instances of "
},
+ {
+ "spokenForm": " backward",
+ "description": "single instance of including target, going backwards"
+ },
+ {
+ "spokenForm": " forward",
+ "description": "single instance of including target, going forwards"
+ },
{
"spokenForm": " s backward",
"description": " instances of including target, going backwards"
@@ -1056,6 +1074,16 @@
}
]
},
+ {
+ "id": "branch",
+ "type": "scopeType",
+ "variations": [
+ {
+ "spokenForm": "branch",
+ "description": "Branch"
+ }
+ ]
+ },
{
"id": "chapter",
"type": "scopeType",
@@ -1186,6 +1214,16 @@
}
]
},
+ {
+ "id": "identifier",
+ "type": "scopeType",
+ "variations": [
+ {
+ "spokenForm": "identifier",
+ "description": "Identifier"
+ }
+ ]
+ },
{
"id": "ifStatement",
"type": "scopeType",
@@ -1196,6 +1234,16 @@
}
]
},
+ {
+ "id": "instance",
+ "type": "scopeType",
+ "variations": [
+ {
+ "spokenForm": "instance",
+ "description": "Instance"
+ }
+ ]
+ },
{
"id": "line",
"type": "scopeType",
@@ -1386,6 +1434,16 @@
}
]
},
+ {
+ "id": "unit",
+ "type": "scopeType",
+ "variations": [
+ {
+ "spokenForm": "unit",
+ "description": "Unit"
+ }
+ ]
+ },
{
"id": "url",
"type": "scopeType",
From 7ebc4e255e568af3b939b5ff177ba634b5a50fb6 Mon Sep 17 00:00:00 2001
From: Pokey Rule <755842+pokey@users.noreply.github.com>
Date: Tue, 13 Jun 2023 09:51:48 -0400
Subject: [PATCH 3/7] Fix snippet insertion indentation (#1528)
- Fixes #1527
## Checklist
- [x] I have added
[tests](https://www.cursorless.org/docs/contributing/test-case-recorder/)
- [x] I have updated the
[docs](https://github.com/cursorless-dev/cursorless/tree/main/docs) and
[cheatsheet](https://github.com/cursorless-dev/cursorless/tree/main/cursorless-talon/src/cheatsheet)
- [x] I have not broken the cheatsheet
---------
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
---
.../processTargets/targets/PositionTarget.ts | 9 +++++-
.../elseBranch.cursorless-snippets | 22 +++++++++++++
.../recorded/positions/snipElseAfterThis.yml | 31 +++++++++++++++++++
3 files changed, 61 insertions(+), 1 deletion(-)
create mode 100644 packages/cursorless-vscode-e2e/src/suite/fixtures/cursorless-snippets/elseBranch.cursorless-snippets
create mode 100644 packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/positions/snipElseAfterThis.yml
diff --git a/packages/cursorless-engine/src/processTargets/targets/PositionTarget.ts b/packages/cursorless-engine/src/processTargets/targets/PositionTarget.ts
index a0180b078ed..c25e91be73f 100644
--- a/packages/cursorless-engine/src/processTargets/targets/PositionTarget.ts
+++ b/packages/cursorless-engine/src/processTargets/targets/PositionTarget.ts
@@ -44,8 +44,15 @@ export default class PositionTarget extends BaseTarget {
if (
this.insertionDelimiter === "\n" &&
this.position === "after" &&
- this.thatTarget.contentRange.isSingleLine
+ this.state.thatTarget!.contentRange.isSingleLine
) {
+ // If the target that we're wrapping is not a single line, then we
+ // want to compute indentation based on the entire target. Otherwise,
+ // we allow the editor to determine how to perform indentation.
+ // Note that we use `this.state.thatTarget` rather than `this.thatTarget`
+ // because we don't really want the transitive `thatTarget` behaviour, as
+ // it's not really the "that" target that we're after; it's the target that
+ // we're wrapping. Should rework this stuff as part of #803.
return "insertLineAfter";
}
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/cursorless-snippets/elseBranch.cursorless-snippets b/packages/cursorless-vscode-e2e/src/suite/fixtures/cursorless-snippets/elseBranch.cursorless-snippets
new file mode 100644
index 00000000000..e5e0e3c56dd
--- /dev/null
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/cursorless-snippets/elseBranch.cursorless-snippets
@@ -0,0 +1,22 @@
+{
+ "elseStatement": {
+ "definitions": [
+ {
+ "scope": {
+ "langIds": [
+ "python"
+ ]
+ },
+ "body": [
+ "else:",
+ "\t$body"
+ ]
+ }
+ ],
+ "description": "Else branch",
+ "variables": {
+ "body": {}
+ },
+ "insertionScopeTypes": ["branch"]
+ }
+}
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/positions/snipElseAfterThis.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/positions/snipElseAfterThis.yml
new file mode 100644
index 00000000000..755a0a533e3
--- /dev/null
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/positions/snipElseAfterThis.yml
@@ -0,0 +1,31 @@
+languageId: python
+command:
+ version: 5
+ spokenForm: snip else after this
+ action:
+ name: insertSnippet
+ args:
+ - {type: named, name: elseStatement}
+ targets:
+ - type: primitive
+ mark: {type: cursor}
+ modifiers:
+ - {type: position, position: after}
+ usePrePhraseSnapshot: true
+initialState:
+ documentContents: |
+ if True:
+ aaa = "bbb"
+ selections:
+ - anchor: {line: 1, character: 7}
+ active: {line: 1, character: 7}
+ marks: {}
+finalState:
+ documentContents: |
+ if True:
+ aaa = "bbb"
+ else:
+
+ selections:
+ - anchor: {line: 3, character: 4}
+ active: {line: 3, character: 4}
From 2c220ecbf5d6aac09086d0b5076c13d423681791 Mon Sep 17 00:00:00 2001
From: David Vo
Date: Thu, 15 Jun 2023 21:06:42 +1000
Subject: [PATCH 4/7] Bump engine/VSCode TypeScript target to ES2020 (#1399)
Our legacy tests currently run against VSCode 1.66.0:
https://github.com/cursorless-dev/cursorless/blob/68ba545520829a21e26d70437c650fb615d73344/packages/test-harness/src/util/launchVscodeAndRunTests.ts#L37
However, we pull in types for VSCode 1.61:
https://github.com/cursorless-dev/cursorless/blob/68ba545520829a21e26d70437c650fb615d73344/packages/cursorless-vscode-core/package.json#L31
and the extension also declares support for the same version:
https://github.com/cursorless-dev/cursorless/blob/68ba545520829a21e26d70437c650fb615d73344/packages/cursorless-vscode/package.json#L32
so 1.61 shall be our lowest common denominator.
VSCode 1.61.0 uses Electron 13:
https://github.com/microsoft/vscode/blob/1.61.0/package.json#L134
Per [Electron's
docs](https://www.electronjs.org/docs/latest/tutorial/electron-timelines),
Electron 13 included Chromium 91 and Node.js v14.16.
Per the trusty [ECMAScript compatibility
table](https://kangax.github.io/compat-table/es2016plus/) and [Stack
Overflow](https://stackoverflow.com/questions/61305578/what-typescript-configuration-produces-output-closest-to-node-js-14-capabilities),
Node 14 fully supports ES2020.
This bumps the TypeScript target to ES2020 to reduce bundle sizes.
## Checklist
- [ ] I have added
[tests](https://www.cursorless.org/docs/contributing/test-case-recorder/)
- [ ] I have updated the
[docs](https://github.com/cursorless-dev/cursorless/tree/main/docs) and
[cheatsheet](https://github.com/cursorless-dev/cursorless/tree/main/cursorless-talon/src/cheatsheet)
- [ ] I have not broken the cheatsheet
---
packages/cursorless-engine/tsconfig.json | 1 +
packages/cursorless-vscode/tsconfig.json | 1 +
packages/vscode-common/tsconfig.json | 1 +
3 files changed, 3 insertions(+)
diff --git a/packages/cursorless-engine/tsconfig.json b/packages/cursorless-engine/tsconfig.json
index 96107efcd71..31f84660d60 100644
--- a/packages/cursorless-engine/tsconfig.json
+++ b/packages/cursorless-engine/tsconfig.json
@@ -1,6 +1,7 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
+ "target": "es2020",
"outDir": "out",
"rootDir": "src"
},
diff --git a/packages/cursorless-vscode/tsconfig.json b/packages/cursorless-vscode/tsconfig.json
index d465f6efe7d..7564228e282 100644
--- a/packages/cursorless-vscode/tsconfig.json
+++ b/packages/cursorless-vscode/tsconfig.json
@@ -1,6 +1,7 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
+ "target": "es2020",
"outDir": "out",
"rootDir": "src"
},
diff --git a/packages/vscode-common/tsconfig.json b/packages/vscode-common/tsconfig.json
index 96107efcd71..31f84660d60 100644
--- a/packages/vscode-common/tsconfig.json
+++ b/packages/vscode-common/tsconfig.json
@@ -1,6 +1,7 @@
{
"extends": "../../tsconfig.base.json",
"compilerOptions": {
+ "target": "es2020",
"outDir": "out",
"rootDir": "src"
},
From 4b1e0ce46f0194821e614e24ac4bc82956d48538 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 15 Jun 2023 13:14:25 +0200
Subject: [PATCH 5/7] Make range explicit for stored targets (#1529)
Fixes #1418
## Checklist
- [ ] I have added
[tests](https://www.cursorless.org/docs/contributing/test-case-recorder/)
- [ ] I have updated the
[docs](https://github.com/cursorless-dev/cursorless/tree/main/docs) and
[cheatsheet](https://github.com/cursorless-dev/cursorless/tree/main/cursorless-talon/src/cheatsheet)
- [ ] I have not broken the cheatsheet
---
.../core/commandRunner/selectionToStoredTarget.ts | 2 +-
.../suite/fixtures/recorded/actions/cloneArgue.yml | 4 ++--
.../suite/fixtures/recorded/actions/cloneToken.yml | 4 ++--
.../suite/fixtures/recorded/actions/cloneToken2.yml | 4 ++--
.../suite/fixtures/recorded/actions/cloneUpArgue.yml | 4 ++--
.../suite/fixtures/recorded/actions/cloneUpToken.yml | 4 ++--
.../fixtures/recorded/actions/cloneUpToken2.yml | 4 ++--
.../suite/fixtures/recorded/actions/drinkThis.yml | 2 +-
.../recorded/actions/insertEmptyLines/dropThis.yml | 6 +++---
.../recorded/actions/insertEmptyLines/dropThis10.yml | 6 +++---
.../recorded/actions/insertEmptyLines/dropThis11.yml | 6 +++---
.../recorded/actions/insertEmptyLines/dropThis12.yml | 6 +++---
.../recorded/actions/insertEmptyLines/dropThis2.yml | 6 +++---
.../recorded/actions/insertEmptyLines/dropThis3.yml | 6 +++---
.../recorded/actions/insertEmptyLines/dropThis4.yml | 6 +++---
.../recorded/actions/insertEmptyLines/dropThis5.yml | 6 +++---
.../recorded/actions/insertEmptyLines/dropThis6.yml | 6 +++---
.../recorded/actions/insertEmptyLines/dropThis7.yml | 6 +++---
.../recorded/actions/insertEmptyLines/dropThis8.yml | 6 +++---
.../recorded/actions/insertEmptyLines/dropThis9.yml | 6 +++---
.../recorded/actions/insertEmptyLines/floatThis.yml | 6 +++---
.../actions/insertEmptyLines/floatThis10.yml | 6 +++---
.../actions/insertEmptyLines/floatThis11.yml | 6 +++---
.../actions/insertEmptyLines/floatThis12.yml | 6 +++---
.../actions/insertEmptyLines/floatThis13.yml | 6 +++---
.../recorded/actions/insertEmptyLines/floatThis2.yml | 6 +++---
.../recorded/actions/insertEmptyLines/floatThis3.yml | 6 +++---
.../recorded/actions/insertEmptyLines/floatThis4.yml | 6 +++---
.../recorded/actions/insertEmptyLines/floatThis5.yml | 6 +++---
.../recorded/actions/insertEmptyLines/floatThis6.yml | 6 +++---
.../recorded/actions/insertEmptyLines/floatThis7.yml | 6 +++---
.../recorded/actions/insertEmptyLines/floatThis8.yml | 6 +++---
.../recorded/actions/insertEmptyLines/floatThis9.yml | 6 +++---
.../recorded/actions/insertEmptyLines/floatVest.yml | 4 ++--
.../recorded/actions/insertEmptyLines/floatVest2.yml | 4 ++--
.../recorded/actions/insertEmptyLines/puffThis.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis10.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis11.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis12.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis13.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis14.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis15.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis16.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis17.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis18.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis19.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis2.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis20.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis21.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis22.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis3.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis4.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis5.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis6.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis7.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis8.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffThis9.yml | 10 +++++-----
.../recorded/actions/insertEmptyLines/puffVest.yml | 8 ++++----
.../recorded/actions/insertEmptyLines/puffVest2.yml | 8 ++++----
.../fixtures/recorded/actions/moveEveryArgMade.yml | 2 +-
.../src/suite/fixtures/recorded/actions/moveVest.yml | 2 +-
.../fixtures/recorded/actions/moveVestToCap.yml | 2 +-
.../fixtures/recorded/actions/pasteAfterArgueBat.yml | 4 ++--
...terLineSpunAndAfterBlockLookAndBeforeLineSpun.yml | 12 ++++++------
.../fixtures/recorded/actions/pasteAfterState.yml | 4 ++--
.../recorded/actions/pasteBeforeArgueZip.yml | 4 ++--
.../fixtures/recorded/actions/pasteBeforeState.yml | 4 ++--
.../src/suite/fixtures/recorded/actions/pourThis.yml | 2 +-
.../fixtures/recorded/actions/roundWrapThis.yml | 2 +-
.../fixtures/recorded/actions/squareRepackThis.yml | 2 +-
.../suite/fixtures/recorded/actions/swapWithVest.yml | 2 +-
.../fixtures/recorded/decorations/chuckBlockAir.yml | 4 ++--
.../recorded/decorations/chuckBlockAirUntilBatt.yml | 4 ++--
.../fixtures/recorded/decorations/chuckBlockBatt.yml | 4 ++--
.../recorded/decorations/chuckBlockBatt2.yml | 4 ++--
.../recorded/decorations/chuckBlockBattUntilAir.yml | 4 ++--
.../fixtures/recorded/decorations/chuckFine.yml | 4 ++--
.../fixtures/recorded/decorations/chuckLineFine.yml | 4 ++--
.../decorations/chuckLineFineBetweenRisk.yml | 4 ++--
.../fixtures/recorded/decorations/clearBlockFine.yml | 4 ++--
.../fixtures/recorded/decorations/clearFine.yml | 4 ++--
.../fixtures/recorded/decorations/clearLineFine.yml | 4 ++--
.../suite/fixtures/recorded/decorations/cutFine.yml | 8 ++++----
.../fixtures/recorded/decorations/moveLineAir.yml | 12 ++++++------
84 files changed, 264 insertions(+), 264 deletions(-)
diff --git a/packages/cursorless-engine/src/core/commandRunner/selectionToStoredTarget.ts b/packages/cursorless-engine/src/core/commandRunner/selectionToStoredTarget.ts
index 5b4cb929a82..12305046959 100644
--- a/packages/cursorless-engine/src/core/commandRunner/selectionToStoredTarget.ts
+++ b/packages/cursorless-engine/src/core/commandRunner/selectionToStoredTarget.ts
@@ -14,5 +14,5 @@ export const selectionToStoredTarget = (selection: SelectionWithEditor) =>
editor: selection.editor,
isReversed: selection.selection.isReversed,
contentRange: selection.selection,
- hasExplicitRange: !selection.selection.isEmpty,
+ hasExplicitRange: true,
});
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneArgue.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneArgue.yml
index afe4be00c92..7a16ba6768f 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneArgue.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneArgue.yml
@@ -46,9 +46,9 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range:
+ - style: justAdded
+ range:
type: character
start: {line: 0, character: 26}
end: {line: 0, character: 37}
- style: justAdded
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: argumentOrParameter}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneToken.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneToken.yml
index 7c9d8911eeb..cc55033a2d9 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneToken.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneToken.yml
@@ -36,9 +36,9 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range:
+ - style: justAdded
+ range:
type: character
start: {line: 0, character: 12}
end: {line: 0, character: 17}
- style: justAdded
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: token}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneToken2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneToken2.yml
index 9329141cb41..81374d3d844 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneToken2.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneToken2.yml
@@ -36,9 +36,9 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range:
+ - style: justAdded
+ range:
type: character
start: {line: 0, character: 6}
end: {line: 0, character: 11}
- style: justAdded
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: token}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneUpArgue.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneUpArgue.yml
index eee8dd348e4..890b115fb47 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneUpArgue.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneUpArgue.yml
@@ -46,9 +46,9 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range:
+ - style: justAdded
+ range:
type: character
start: {line: 0, character: 13}
end: {line: 0, character: 24}
- style: justAdded
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: argumentOrParameter}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneUpToken.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneUpToken.yml
index df248e74ae3..43c0387ccdf 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneUpToken.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneUpToken.yml
@@ -36,9 +36,9 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range:
+ - style: justAdded
+ range:
type: character
start: {line: 0, character: 6}
end: {line: 0, character: 11}
- style: justAdded
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: token}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneUpToken2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneUpToken2.yml
index 31179189436..cd190e8e4b1 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneUpToken2.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/cloneUpToken2.yml
@@ -36,9 +36,9 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range:
+ - style: justAdded
+ range:
type: character
start: {line: 0, character: 0}
end: {line: 0, character: 5}
- style: justAdded
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: token}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/drinkThis.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/drinkThis.yml
index 0ce5c1d4bbb..23c0b71d6bc 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/drinkThis.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/drinkThis.yml
@@ -30,5 +30,5 @@ finalState:
start: {line: 1, character: 2}
end: {line: 1, character: 2}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis.yml
index bc69d4ebee1..fbc2cef87c7 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis.yml
@@ -25,9 +25,9 @@ finalState:
start: {line: 1, character: 0}
end: {line: 1, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis10.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis10.yml
index 20a22e6398c..b86465fd9a4 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis10.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis10.yml
@@ -29,9 +29,9 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis11.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis11.yml
index 22dd0853529..5c15cd938da 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis11.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis11.yml
@@ -29,9 +29,9 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis12.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis12.yml
index 30274f4f2f2..f14de040e94 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis12.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis12.yml
@@ -29,9 +29,9 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis2.yml
index 18884ab4869..c24e14c690d 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis2.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis2.yml
@@ -26,9 +26,9 @@ finalState:
start: {line: 1, character: 5}
end: {line: 1, character: 5}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis3.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis3.yml
index d55e6694e2f..8641e5a5b41 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis3.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis3.yml
@@ -26,9 +26,9 @@ finalState:
start: {line: 1, character: 0}
end: {line: 1, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis4.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis4.yml
index eaeeba0c973..df8480aed00 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis4.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis4.yml
@@ -26,9 +26,9 @@ finalState:
start: {line: 1, character: 4}
end: {line: 1, character: 4}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis5.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis5.yml
index c6128aaba8d..5069804635c 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis5.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis5.yml
@@ -26,9 +26,9 @@ finalState:
start: {line: 1, character: 0}
end: {line: 1, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis6.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis6.yml
index e164c08dc42..f5d80ead862 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis6.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis6.yml
@@ -26,9 +26,9 @@ finalState:
start: {line: 1, character: 9}
end: {line: 1, character: 9}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis7.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis7.yml
index 94c128650b1..9ea3e26f5c1 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis7.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis7.yml
@@ -26,9 +26,9 @@ finalState:
start: {line: 1, character: 4}
end: {line: 1, character: 4}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis8.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis8.yml
index 5b14db3d6d5..04c79098cf9 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis8.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis8.yml
@@ -26,9 +26,9 @@ finalState:
start: {line: 1, character: 0}
end: {line: 1, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis9.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis9.yml
index 6931240d0eb..6cd44dc17f3 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis9.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/dropThis9.yml
@@ -29,9 +29,9 @@ finalState:
start: {line: 2, character: 5}
end: {line: 2, character: 5}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis.yml
index 0c7dcef5026..cd4ff0d4981 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis.yml
@@ -25,9 +25,9 @@ finalState:
start: {line: 1, character: 0}
end: {line: 1, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis10.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis10.yml
index 1e8fffc607c..f9146213fc2 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis10.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis10.yml
@@ -28,9 +28,9 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis11.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis11.yml
index 2f533a27855..36c0510b56c 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis11.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis11.yml
@@ -27,9 +27,9 @@ finalState:
start: {line: 0, character: 5}
end: {line: 0, character: 5}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis12.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis12.yml
index a75fa064064..6989c5a33b6 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis12.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis12.yml
@@ -27,9 +27,9 @@ finalState:
start: {line: 0, character: 4}
end: {line: 0, character: 4}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis13.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis13.yml
index 429f4fe6294..7028992bcd5 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis13.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis13.yml
@@ -27,9 +27,9 @@ finalState:
start: {line: 0, character: 9}
end: {line: 0, character: 9}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis2.yml
index 7ff44871eef..ad5d1e2513e 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis2.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis2.yml
@@ -25,9 +25,9 @@ finalState:
start: {line: 1, character: 0}
end: {line: 1, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis3.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis3.yml
index 5669aab6cb6..ac6fd90e7ed 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis3.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis3.yml
@@ -25,9 +25,9 @@ finalState:
start: {line: 1, character: 0}
end: {line: 1, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis4.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis4.yml
index fb4e6bdd3b3..f45177a6f9e 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis4.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis4.yml
@@ -25,9 +25,9 @@ finalState:
start: {line: 1, character: 0}
end: {line: 1, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis5.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis5.yml
index 153520cd722..11b8911a5bd 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis5.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis5.yml
@@ -28,9 +28,9 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis6.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis6.yml
index e8d52e468a0..e84d30883b4 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis6.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis6.yml
@@ -28,9 +28,9 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis7.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis7.yml
index 58fd85e21b5..0ce1dcbd72c 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis7.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis7.yml
@@ -27,9 +27,9 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis8.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis8.yml
index f4a520ea375..ad4d56cef03 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis8.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis8.yml
@@ -27,9 +27,9 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis9.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis9.yml
index 347aac6d469..97e5e483ffe 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis9.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatThis9.yml
@@ -28,9 +28,9 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatVest.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatVest.yml
index 0234ed73a31..005a1941828 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatVest.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatVest.yml
@@ -34,6 +34,6 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: v}, selectionType: token, position: contents, modifier: {type: identity}, insideOutsideType: inside}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatVest2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatVest2.yml
index 0c7a4bf9dc9..27645aa9040 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatVest2.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/floatVest2.yml
@@ -35,6 +35,6 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: v}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis.yml
index 06243cd6fad..8918ed94aa3 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis.yml
@@ -26,11 +26,11 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis10.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis10.yml
index 9dbf53ac75a..1410b42015e 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis10.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis10.yml
@@ -29,11 +29,11 @@ finalState:
start: {line: 3, character: 0}
end: {line: 3, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis11.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis11.yml
index e317c9cf93c..c1684c932c0 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis11.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis11.yml
@@ -29,11 +29,11 @@ finalState:
start: {line: 3, character: 0}
end: {line: 3, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis12.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis12.yml
index e54df3d423f..abd4682dd48 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis12.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis12.yml
@@ -28,11 +28,11 @@ finalState:
start: {line: 1, character: 5}
end: {line: 1, character: 5}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis13.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis13.yml
index 945a14a2642..de66f24aa9a 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis13.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis13.yml
@@ -28,11 +28,11 @@ finalState:
start: {line: 1, character: 0}
end: {line: 1, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis14.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis14.yml
index c0338cd0477..0b7eae1aab2 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis14.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis14.yml
@@ -28,11 +28,11 @@ finalState:
start: {line: 1, character: 0}
end: {line: 1, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis15.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis15.yml
index f48eb1a4312..0cccb03c150 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis15.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis15.yml
@@ -28,11 +28,11 @@ finalState:
start: {line: 1, character: 9}
end: {line: 1, character: 9}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis16.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis16.yml
index a576bdab1da..757194687ec 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis16.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis16.yml
@@ -28,11 +28,11 @@ finalState:
start: {line: 1, character: 4}
end: {line: 1, character: 4}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis17.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis17.yml
index 36cce63abea..360ac0705a7 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis17.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis17.yml
@@ -28,11 +28,11 @@ finalState:
start: {line: 1, character: 0}
end: {line: 1, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis18.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis18.yml
index 673a8e8d55d..241baf7b3ec 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis18.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis18.yml
@@ -30,11 +30,11 @@ finalState:
start: {line: 2, character: 5}
end: {line: 2, character: 5}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
- - range: {type: line, start: 3, end: 3}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
+ - style: justAdded
+ range: {type: line, start: 3, end: 3}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis19.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis19.yml
index 0832985c7a9..eca7d21f368 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis19.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis19.yml
@@ -30,11 +30,11 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
- - range: {type: line, start: 3, end: 3}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
+ - style: justAdded
+ range: {type: line, start: 3, end: 3}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis2.yml
index 4ba44ce4d0a..0fc0a92218f 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis2.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis2.yml
@@ -26,11 +26,11 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis20.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis20.yml
index b5e72bd8264..d8362e6ed04 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis20.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis20.yml
@@ -32,11 +32,11 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
- - range: {type: line, start: 3, end: 3}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
+ - style: justAdded
+ range: {type: line, start: 3, end: 3}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis21.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis21.yml
index 17971435d14..ea042228853 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis21.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis21.yml
@@ -32,11 +32,11 @@ finalState:
start: {line: 2, character: 3}
end: {line: 2, character: 3}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
- - range: {type: line, start: 3, end: 3}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
+ - style: justAdded
+ range: {type: line, start: 3, end: 3}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis22.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis22.yml
index 8768c22bd61..765cb10d744 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis22.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis22.yml
@@ -32,11 +32,11 @@ finalState:
start: {line: 2, character: 7}
end: {line: 2, character: 7}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
- - range: {type: line, start: 3, end: 3}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
+ - style: justAdded
+ range: {type: line, start: 3, end: 3}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis3.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis3.yml
index d79bd75a20b..2b0b85ebc62 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis3.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis3.yml
@@ -26,11 +26,11 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis4.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis4.yml
index 80506b47782..a6bca1643c6 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis4.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis4.yml
@@ -26,11 +26,11 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: justAdded
- - range: {type: line, start: 1, end: 1}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 0, end: 0}
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis5.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis5.yml
index cdb63adee4f..f3077688911 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis5.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis5.yml
@@ -29,11 +29,11 @@ finalState:
start: {line: 3, character: 0}
end: {line: 3, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis6.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis6.yml
index 04342158515..9011f81a643 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis6.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis6.yml
@@ -29,11 +29,11 @@ finalState:
start: {line: 3, character: 0}
end: {line: 3, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis7.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis7.yml
index 656a3c52ce7..aa2b54249ba 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis7.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis7.yml
@@ -29,11 +29,11 @@ finalState:
start: {line: 2, character: 0}
end: {line: 2, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis8.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis8.yml
index 0bce7861b2c..d6dc8b8d923 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis8.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis8.yml
@@ -28,11 +28,11 @@ finalState:
start: {line: 3, character: 0}
end: {line: 3, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 2, end: 2}
- style: justAdded
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis9.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis9.yml
index 1e676892c70..a96e36991a5 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis9.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffThis9.yml
@@ -28,11 +28,11 @@ finalState:
start: {line: 3, character: 0}
end: {line: 3, character: 0}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 2, end: 2}
- style: justAdded
- - range: {type: line, start: 2, end: 2}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
+ - style: justAdded
+ range: {type: line, start: 2, end: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffVest.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffVest.yml
index e036ef3291f..e4065e4fb33 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffVest.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffVest.yml
@@ -35,8 +35,8 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
- - range: {type: line, start: 3, end: 3}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
+ - style: justAdded
+ range: {type: line, start: 3, end: 3}
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: v}, selectionType: token, position: contents, modifier: {type: identity}, insideOutsideType: inside}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffVest2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffVest2.yml
index e98a68202e7..9f798cb94aa 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffVest2.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/insertEmptyLines/puffVest2.yml
@@ -36,8 +36,8 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: justAdded
- - range: {type: line, start: 3, end: 3}
- style: justAdded
+ - style: justAdded
+ range: {type: line, start: 1, end: 1}
+ - style: justAdded
+ range: {type: line, start: 3, end: 3}
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: v}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/moveEveryArgMade.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/moveEveryArgMade.yml
index 6b0da1aa6d5..8efe152d31b 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/moveEveryArgMade.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/moveEveryArgMade.yml
@@ -38,5 +38,5 @@ finalState:
start: {line: 0, character: 16}
end: {line: 0, character: 16}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: m}, selectionType: token, position: contents, insideOutsideType: null, modifier: {type: containingScope, scopeType: argumentOrParameter, includeSiblings: true}, isImplicit: false}, {type: primitive, mark: {type: cursor}, selectionType: token, position: contents, insideOutsideType: null, modifier: {type: identity}, isImplicit: true}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/moveVest.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/moveVest.yml
index 116f2c5053c..628810bd50f 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/moveVest.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/moveVest.yml
@@ -38,5 +38,5 @@ finalState:
start: {line: 1, character: 6}
end: {line: 1, character: 6}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: v}, selectionType: token, position: contents, modifier: {type: identity}, insideOutsideType: null}, {type: primitive, mark: {type: cursor}, selectionType: token, position: contents, modifier: {type: identity}, insideOutsideType: inside}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/moveVestToCap.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/moveVestToCap.yml
index 849c54e5355..ce001f8b6c5 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/moveVestToCap.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/moveVestToCap.yml
@@ -42,5 +42,5 @@ finalState:
start: {line: 1, character: 6}
end: {line: 1, character: 6}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: v}, selectionType: token, position: contents, modifier: {type: identity}, insideOutsideType: null}, {type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: c}, selectionType: token, position: contents, modifier: {type: identity}, insideOutsideType: null}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteAfterArgueBat.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteAfterArgueBat.yml
index 04d52e7e387..f546d2150f9 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteAfterArgueBat.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteAfterArgueBat.yml
@@ -35,9 +35,9 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range:
+ - style: justAdded
+ range:
type: character
start: {line: 0, character: 21}
end: {line: 0, character: 24}
- style: justAdded
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: b}, modifiers: [{type: position, position: after}, {type: containingScope, scopeType: {type: argumentOrParameter}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteAfterLineSpunAndAfterBlockLookAndBeforeLineSpun.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteAfterLineSpunAndAfterBlockLookAndBeforeLineSpun.yml
index 8842f2aa130..7410bfd0efc 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteAfterLineSpunAndAfterBlockLookAndBeforeLineSpun.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteAfterLineSpunAndAfterBlockLookAndBeforeLineSpun.yml
@@ -80,19 +80,19 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range:
+ - style: justAdded
+ range:
type: character
start: {line: 2, character: 0}
end: {line: 2, character: 3}
- style: justAdded
- - range:
+ - style: justAdded
+ range:
type: character
start: {line: 7, character: 0}
end: {line: 7, character: 3}
- style: justAdded
- - range:
+ - style: justAdded
+ range:
type: character
start: {line: 0, character: 0}
end: {line: 0, character: 3}
- style: justAdded
fullTargets: [{type: list, elements: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: s}, modifiers: [{type: position, position: after}, {type: containingScope, scopeType: {type: line}}]}, {type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: l}, modifiers: [{type: position, position: after}, {type: containingScope, scopeType: {type: paragraph}}]}, {type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: s}, modifiers: [{type: position, position: before}, {type: containingScope, scopeType: {type: line}}]}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteAfterState.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteAfterState.yml
index 458967065f6..cff40113589 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteAfterState.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteAfterState.yml
@@ -37,9 +37,9 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range:
+ - style: justAdded
+ range:
type: character
start: {line: 1, character: 0}
end: {line: 1, character: 25}
- style: justAdded
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: position, position: after}, {type: containingScope, scopeType: {type: statement}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteBeforeArgueZip.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteBeforeArgueZip.yml
index 8464148afe1..8657d7f0238 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteBeforeArgueZip.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteBeforeArgueZip.yml
@@ -35,9 +35,9 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range:
+ - style: justAdded
+ range:
type: character
start: {line: 0, character: 9}
end: {line: 0, character: 12}
- style: justAdded
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: z}, modifiers: [{type: position, position: before}, {type: containingScope, scopeType: {type: argumentOrParameter}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteBeforeState.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteBeforeState.yml
index 7dce20307b2..b3f46972728 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteBeforeState.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pasteBeforeState.yml
@@ -37,9 +37,9 @@ finalState:
hasExplicitRange: true
ide:
flashes:
- - range:
+ - style: justAdded
+ range:
type: character
start: {line: 0, character: 0}
end: {line: 0, character: 25}
- style: justAdded
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: position, position: before}, {type: containingScope, scopeType: {type: statement}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pourThis.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pourThis.yml
index 97a52d74da7..4fb0cc79646 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pourThis.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/pourThis.yml
@@ -29,5 +29,5 @@ finalState:
start: {line: 0, character: 2}
end: {line: 0, character: 2}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/roundWrapThis.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/roundWrapThis.yml
index fecb55a77fd..7b3b4e4effc 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/roundWrapThis.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/roundWrapThis.yml
@@ -35,5 +35,5 @@ finalState:
start: {line: 0, character: 1}
end: {line: 0, character: 1}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
fullTargets: [{type: primitive, mark: {type: cursor}, selectionType: token, position: contents, modifier: {type: identity}, insideOutsideType: inside}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/squareRepackThis.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/squareRepackThis.yml
index 63c74e7612e..67c14c30ead 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/squareRepackThis.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/squareRepackThis.yml
@@ -31,5 +31,5 @@ finalState:
start: {line: 0, character: 4}
end: {line: 0, character: 4}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
fullTargets: [{type: primitive, mark: {type: cursor}, selectionType: token, position: contents, insideOutsideType: inside, modifier: {type: surroundingPair, delimiter: any}}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/swapWithVest.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/swapWithVest.yml
index 738344f055c..86c59b8f285 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/swapWithVest.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/actions/swapWithVest.yml
@@ -31,7 +31,7 @@ finalState:
start: {line: 1, character: 6}
end: {line: 1, character: 6}
isReversed: false
- hasExplicitRange: false
+ hasExplicitRange: true
- type: UntypedTarget
contentRange:
start: {line: 0, character: 0}
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockAir.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockAir.yml
index 7a5f663073a..83e31d8a855 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockAir.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockAir.yml
@@ -38,6 +38,6 @@ finalState:
active: {line: 0, character: 0}
ide:
flashes:
- - range: {type: line, start: 1, end: 4}
- style: pendingDelete
+ - style: pendingDelete
+ range: {type: line, start: 1, end: 4}
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: a}, modifiers: [{type: containingScope, scopeType: {type: paragraph}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockAirUntilBatt.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockAirUntilBatt.yml
index 0cfd2edb1d8..a092483cc2c 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockAirUntilBatt.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockAirUntilBatt.yml
@@ -47,6 +47,6 @@ finalState:
active: {line: 0, character: 0}
ide:
flashes:
- - range: {type: line, start: 0, end: 4}
- style: pendingDelete
+ - style: pendingDelete
+ range: {type: line, start: 0, end: 4}
fullTargets: [{type: range, excludeAnchor: false, excludeActive: true, rangeType: continuous, anchor: {type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: a}, modifiers: &ref_0 [{type: containingScope, scopeType: {type: paragraph}}]}, active: {type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: b}, modifiers: *ref_0}}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockBatt.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockBatt.yml
index 15c0a0ba1a5..62081b0984c 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockBatt.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockBatt.yml
@@ -38,6 +38,6 @@ finalState:
active: {line: 0, character: 0}
ide:
flashes:
- - range: {type: line, start: 5, end: 8}
- style: pendingDelete
+ - style: pendingDelete
+ range: {type: line, start: 5, end: 8}
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: b}, modifiers: [{type: containingScope, scopeType: {type: paragraph}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockBatt2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockBatt2.yml
index 6546f096a3b..f96bfa0317c 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockBatt2.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockBatt2.yml
@@ -30,6 +30,6 @@ finalState:
active: {line: 0, character: 0}
ide:
flashes:
- - range: {type: line, start: 0, end: 3}
- style: pendingDelete
+ - style: pendingDelete
+ range: {type: line, start: 0, end: 3}
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: b}, modifiers: [{type: containingScope, scopeType: {type: paragraph}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockBattUntilAir.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockBattUntilAir.yml
index fdd84bd37b6..79dae8abec5 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockBattUntilAir.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckBlockBattUntilAir.yml
@@ -47,6 +47,6 @@ finalState:
active: {line: 0, character: 0}
ide:
flashes:
- - range: {type: line, start: 3, end: 8}
- style: pendingDelete
+ - style: pendingDelete
+ range: {type: line, start: 3, end: 8}
fullTargets: [{type: range, excludeAnchor: false, excludeActive: true, rangeType: continuous, anchor: {type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: b}, modifiers: &ref_0 [{type: containingScope, scopeType: {type: paragraph}}]}, active: {type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: a}, modifiers: *ref_0}}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckFine.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckFine.yml
index e793bff746c..04143720482 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckFine.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckFine.yml
@@ -29,9 +29,9 @@ finalState:
active: {line: 0, character: 0}
ide:
flashes:
- - range:
+ - style: pendingDelete
+ range:
type: character
start: {line: 1, character: 4}
end: {line: 1, character: 8}
- style: pendingDelete
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: f}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckLineFine.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckLineFine.yml
index b69ac53055b..de59fedc3d6 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckLineFine.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckLineFine.yml
@@ -31,6 +31,6 @@ finalState:
active: {line: 0, character: 0}
ide:
flashes:
- - range: {type: line, start: 1, end: 1}
- style: pendingDelete
+ - style: pendingDelete
+ range: {type: line, start: 1, end: 1}
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: f}, modifiers: [{type: containingScope, scopeType: {type: line}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckLineFineBetweenRisk.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckLineFineBetweenRisk.yml
index 140f8b1b19e..0f0b7184b32 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckLineFineBetweenRisk.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/chuckLineFineBetweenRisk.yml
@@ -44,6 +44,6 @@ finalState:
active: {line: 0, character: 0}
ide:
flashes:
- - range: {type: line, start: 2, end: 3}
- style: pendingDelete
+ - style: pendingDelete
+ range: {type: line, start: 2, end: 3}
fullTargets: [{type: range, excludeAnchor: true, excludeActive: true, rangeType: continuous, anchor: {type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: f}, modifiers: &ref_0 [{type: containingScope, scopeType: {type: line}}]}, active: {type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: r}, modifiers: *ref_0}}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/clearBlockFine.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/clearBlockFine.yml
index 50885e1ac19..93ec5bb45e0 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/clearBlockFine.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/clearBlockFine.yml
@@ -31,9 +31,9 @@ finalState:
active: {line: 1, character: 4}
ide:
flashes:
- - range:
+ - style: pendingDelete
+ range:
type: character
start: {line: 1, character: 4}
end: {line: 2, character: 7}
- style: pendingDelete
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: f}, modifiers: [{type: containingScope, scopeType: {type: paragraph}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/clearFine.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/clearFine.yml
index a575accb8ff..7d4a80367c8 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/clearFine.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/clearFine.yml
@@ -29,9 +29,9 @@ finalState:
active: {line: 1, character: 4}
ide:
flashes:
- - range:
+ - style: pendingDelete
+ range:
type: character
start: {line: 1, character: 4}
end: {line: 1, character: 7}
- style: pendingDelete
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: f}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/clearLineFine.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/clearLineFine.yml
index 389cbe3cb84..9dfe7e0e9a3 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/clearLineFine.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/clearLineFine.yml
@@ -32,9 +32,9 @@ finalState:
active: {line: 1, character: 4}
ide:
flashes:
- - range:
+ - style: pendingDelete
+ range:
type: character
start: {line: 1, character: 4}
end: {line: 1, character: 11}
- style: pendingDelete
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: f}, modifiers: [{type: containingScope, scopeType: {type: line}}]}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/cutFine.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/cutFine.yml
index d2296083519..3c0ce83d9e8 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/cutFine.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/cutFine.yml
@@ -27,14 +27,14 @@ finalState:
active: {line: 0, character: 0}
ide:
flashes:
- - range:
+ - style: referenced
+ range:
type: character
start: {line: 1, character: 4}
end: {line: 1, character: 7}
- style: referenced
- - range:
+ - style: pendingDelete
+ range:
type: character
start: {line: 1, character: 7}
end: {line: 1, character: 8}
- style: pendingDelete
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: f}, modifiers: []}]
diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/moveLineAir.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/moveLineAir.yml
index 2411109fef6..4a5ebc54ad5 100644
--- a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/moveLineAir.yml
+++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/decorations/moveLineAir.yml
@@ -33,16 +33,16 @@ finalState:
active: {line: 2, character: 5}
ide:
flashes:
- - range: {type: line, start: 0, end: 0}
- style: pendingDelete
- - range:
+ - style: pendingDelete
+ range: {type: line, start: 0, end: 0}
+ - style: pendingModification0
+ range:
type: character
start: {line: 3, character: 0}
end: {line: 3, character: 0}
- style: pendingModification0
- - range:
+ - style: pendingModification0
+ range:
type: character
start: {line: 2, character: 0}
end: {line: 2, character: 5}
- style: pendingModification0
fullTargets: [{type: primitive, mark: {type: decoratedSymbol, symbolColor: default, character: a}, modifiers: [{type: containingScope, scopeType: {type: line}}]}, {type: primitive, mark: {type: cursor}, modifiers: [{type: toRawSelection}]}]
From 4cf0c6657865db4e3e9190d1412752555db220d5 Mon Sep 17 00:00:00 2001
From: Pokey Rule <755842+pokey@users.noreply.github.com>
Date: Thu, 15 Jun 2023 07:32:55 -0400
Subject: [PATCH 6/7] Check for CRLF line endings in CI (#1348)
## The problem
We currently don't have any checks to ensure that we don't use CRLF line
endings, which could result in hard-to-detect issues in our files, as
the difference between LF and CRLF isn't always visible
## The solution
In this PR, we now check that all files that are not binary do not
contain CRLF line endings.
This PR does the following:
- Adds a `pre-commit` rule to ensure that files that text files don't
have CRLF
- Fixes all files in our repo that had CRLF line endings; looks like we
had only missed one file
- Removes an old Rope database file that was floating around in our repo
for some reason. Seemed better to remove it than add a rule for it to
our new `.gitattributes`
- Throws an exception in test case recorder when developer tries to
record a test with line endings as CRLF
## References
- https://adaptivepatchwork.com/2012/03/01/mind-the-end-of-your-line/
-
https://docs.github.com/en/get-started/getting-started-with-git/configuring-git-to-handle-line-endings
- https://git-scm.com/docs/gitattributes
## Checklist
- [ ] I have added
[tests](https://www.cursorless.org/docs/contributing/test-case-recorder/)
- [ ] I have updated the
[docs](https://github.com/cursorless-dev/cursorless/tree/main/docs) and
[cheatsheet](https://github.com/cursorless-dev/cursorless/tree/main/cursorless-talon/src/cheatsheet)
- [ ] I have not broken the cheatsheet
- [x] Make sure we're checking line endings for files in CI
---
.pre-commit-config.yaml | 4 +
.../.vscode/.ropeproject/config.py | 123 ------------------
.../.vscode/.ropeproject/objectdb | Bin 6 -> 0 bytes
data/playground/xml.xml | 6 +-
.../src/testCaseRecorder/TestCaseRecorder.ts | 7 +
5 files changed, 14 insertions(+), 126 deletions(-)
delete mode 100644 cursorless-talon/.vscode/.ropeproject/config.py
delete mode 100644 cursorless-talon/.vscode/.ropeproject/objectdb
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index d3e1a45bd51..42431c57be0 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -14,6 +14,10 @@ repos:
entry: Forbid symlinks
language: fail
types: [symlink]
+ - repo: https://github.com/Lucas-C/pre-commit-hooks
+ rev: v1.5.1
+ hooks:
+ - id: forbid-crlf
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
diff --git a/cursorless-talon/.vscode/.ropeproject/config.py b/cursorless-talon/.vscode/.ropeproject/config.py
deleted file mode 100644
index 0b2a3169442..00000000000
--- a/cursorless-talon/.vscode/.ropeproject/config.py
+++ /dev/null
@@ -1,123 +0,0 @@
-# The default ``config.py``
-# flake8: noqa
-
-
-def set_prefs(prefs):
- """This function is called before opening the project"""
-
- # Specify which files and folders to ignore in the project.
- # Changes to ignored resources are not added to the history and
- # VCSs. Also they are not returned in `Project.get_files()`.
- # Note that ``?`` and ``*`` match all characters but slashes.
- # '*.pyc': matches 'test.pyc' and 'pkg/test.pyc'
- # 'mod*.pyc': matches 'test/mod1.pyc' but not 'mod/1.pyc'
- # '.svn': matches 'pkg/.svn' and all of its children
- # 'build/*.o': matches 'build/lib.o' but not 'build/sub/lib.o'
- # 'build//*.o': matches 'build/lib.o' and 'build/sub/lib.o'
- prefs["ignored_resources"] = [
- "*.pyc",
- "*~",
- ".ropeproject",
- ".hg",
- ".svn",
- "_svn",
- ".git",
- ".tox",
- ]
-
- # Specifies which files should be considered python files. It is
- # useful when you have scripts inside your project. Only files
- # ending with ``.py`` are considered to be python files by
- # default.
- # prefs['python_files'] = ['*.py']
-
- # Custom source folders: By default rope searches the project
- # for finding source folders (folders that should be searched
- # for finding modules). You can add paths to that list. Note
- # that rope guesses project source folders correctly most of the
- # time; use this if you have any problems.
- # The folders should be relative to project root and use '/' for
- # separating folders regardless of the platform rope is running on.
- # 'src/my_source_folder' for instance.
- # prefs.add('source_folders', 'src')
-
- # You can extend python path for looking up modules
- # prefs.add('python_path', '~/python/')
-
- # Should rope save object information or not.
- prefs["save_objectdb"] = True
- prefs["compress_objectdb"] = False
-
- # If `True`, rope analyzes each module when it is being saved.
- prefs["automatic_soa"] = True
- # The depth of calls to follow in static object analysis
- prefs["soa_followed_calls"] = 0
-
- # If `False` when running modules or unit tests "dynamic object
- # analysis" is turned off. This makes them much faster.
- prefs["perform_doa"] = True
-
- # Rope can check the validity of its object DB when running.
- prefs["validate_objectdb"] = True
-
- # How many undos to hold?
- prefs["max_history_items"] = 32
-
- # Shows whether to save history across sessions.
- prefs["save_history"] = True
- prefs["compress_history"] = False
-
- # Set the number spaces used for indenting. According to
- # :PEP:`8`, it is best to use 4 spaces. Since most of rope's
- # unit-tests use 4 spaces it is more reliable, too.
- prefs["indent_size"] = 4
-
- # Builtin and c-extension modules that are allowed to be imported
- # and inspected by rope.
- prefs["extension_modules"] = []
-
- # Add all standard c-extensions to extension_modules list.
- prefs["import_dynload_stdmods"] = True
-
- # If `True` modules with syntax errors are considered to be empty.
- # The default value is `False`; When `False` syntax errors raise
- # `rope.base.exceptions.ModuleSyntaxError` exception.
- prefs["ignore_syntax_errors"] = False
-
- # If `True`, rope ignores unresolvable imports. Otherwise, they
- # appear in the importing namespace.
- prefs["ignore_bad_imports"] = False
-
- # If `True`, rope will insert new module imports as
- # `from import ` by default.
- prefs["prefer_module_from_imports"] = False
-
- # If `True`, rope will transform a comma list of imports into
- # multiple separate import statements when organizing
- # imports.
- prefs["split_imports"] = False
-
- # If `True`, rope will remove all top-level import statements and
- # reinsert them at the top of the module when making changes.
- prefs["pull_imports_to_top"] = True
-
- # If `True`, rope will sort imports alphabetically by module name instead
- # of alphabetically by import statement, with from imports after normal
- # imports.
- prefs["sort_imports_alphabetically"] = False
-
- # Location of implementation of
- # rope.base.oi.type_hinting.interfaces.ITypeHintingFactory In general
- # case, you don't have to change this value, unless you're an rope expert.
- # Change this value to inject you own implementations of interfaces
- # listed in module rope.base.oi.type_hinting.providers.interfaces
- # For example, you can add you own providers for Django Models, or disable
- # the search type-hinting in a class hierarchy, etc.
- prefs[
- "type_hinting_factory"
- ] = "rope.base.oi.type_hinting.factory.default_type_hinting_factory"
-
-
-def project_opened(project):
- """This function is called after opening the project"""
- # Do whatever you like here!
diff --git a/cursorless-talon/.vscode/.ropeproject/objectdb b/cursorless-talon/.vscode/.ropeproject/objectdb
deleted file mode 100644
index 0a47446c0ad231c193bdd44ff327ba2ab28bf3d8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 6
NcmZo*sx4&D0{{kv0iOT>
diff --git a/data/playground/xml.xml b/data/playground/xml.xml
index 437d38d11da..c236e2c5f5d 100644
--- a/data/playground/xml.xml
+++ b/data/playground/xml.xml
@@ -1,3 +1,3 @@
-
- Some text
-
+
+ Some text
+
diff --git a/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts b/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts
index 62b8a157942..4752a4da1da 100644
--- a/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts
+++ b/packages/cursorless-engine/src/testCaseRecorder/TestCaseRecorder.ts
@@ -323,6 +323,13 @@ export class TestCaseRecorder {
await this.testCase.recordInitialState();
const editor = ide().activeTextEditor!;
+
+ if (editor.document.getText().includes("\r\n")) {
+ throw Error(
+ "Refusing to record a test when the document contains CRLF line endings. Please convert line endings to LF.",
+ );
+ }
+
// NB: We need to copy the editor options rather than storing a reference
// because its properties are lazy
this.originalTextEditorOptions = { ...editor.options };
From fcdf70c97e89ab773dd23aad3a9931fe4a1267b6 Mon Sep 17 00:00:00 2001
From: Andreas Arvidsson
Date: Thu, 15 Jun 2023 14:50:37 +0200
Subject: [PATCH 7/7] Updated doc string to be representative (#1532)
Forgot to update doc string in previous pr
## Checklist
- [ ] I have added
[tests](https://www.cursorless.org/docs/contributing/test-case-recorder/)
- [ ] I have updated the
[docs](https://github.com/cursorless-dev/cursorless/tree/main/docs) and
[cheatsheet](https://github.com/cursorless-dev/cursorless/tree/main/cursorless-talon/src/cheatsheet)
- [ ] I have not broken the cheatsheet
---
.../src/core/commandRunner/selectionToStoredTarget.ts | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/packages/cursorless-engine/src/core/commandRunner/selectionToStoredTarget.ts b/packages/cursorless-engine/src/core/commandRunner/selectionToStoredTarget.ts
index 12305046959..3693d891da4 100644
--- a/packages/cursorless-engine/src/core/commandRunner/selectionToStoredTarget.ts
+++ b/packages/cursorless-engine/src/core/commandRunner/selectionToStoredTarget.ts
@@ -3,8 +3,7 @@ import { SelectionWithEditor } from "../../typings/Types";
/**
* Given a selection with an editor, constructs an appropriate `Target` to use
- * for a `that` mark. It uses an `UntypedTarget`, and if the selection is
- * empty, it sets `hasExplicitRange` to `false`.
+ * for a `that` mark. It uses an `UntypedTarget` and sets `hasExplicitRange` to `true`.
*
* @param selection The selection with editor to be converted
* @returns A target that can be used for a `that` mark