diff --git a/packages/cursorless-engine/src/processTargets/targets/PlainTarget.ts b/packages/cursorless-engine/src/processTargets/targets/PlainTarget.ts index 492f97b1ac..4f4841db07 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 0000000000..be70aeac53 --- /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}