diff --git a/data/fixtures/recorded/everyScope/changeEveryTokenInside.yml b/data/fixtures/recorded/everyScope/changeEveryTokenInside.yml new file mode 100644 index 0000000000..c6437a1d5d --- /dev/null +++ b/data/fixtures/recorded/everyScope/changeEveryTokenInside.yml @@ -0,0 +1,26 @@ +languageId: plaintext +command: + version: 7 + spokenForm: change every token inside + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: everyScope + scopeType: {type: token} + - {type: interiorOnly} + usePrePhraseSnapshot: false +initialState: + documentContents: "'hello world'" + selections: + - anchor: {line: 0, character: 1} + active: {line: 0, character: 1} + marks: {} +finalState: + documentContents: "' '" + selections: + - anchor: {line: 0, character: 1} + active: {line: 0, character: 1} + - anchor: {line: 0, character: 2} + active: {line: 0, character: 2} diff --git a/data/fixtures/recorded/everyScope/changeLastTokenInside.yml b/data/fixtures/recorded/everyScope/changeLastTokenInside.yml new file mode 100644 index 0000000000..5f1889eadb --- /dev/null +++ b/data/fixtures/recorded/everyScope/changeLastTokenInside.yml @@ -0,0 +1,26 @@ +languageId: plaintext +command: + version: 7 + spokenForm: change last token inside + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: ordinalScope + scopeType: {type: token} + start: -1 + length: 1 + - {type: interiorOnly} + usePrePhraseSnapshot: false +initialState: + documentContents: "'hello world'" + selections: + - anchor: {line: 0, character: 1} + active: {line: 0, character: 1} + marks: {} +finalState: + documentContents: "'hello '" + selections: + - anchor: {line: 0, character: 7} + active: {line: 0, character: 7} diff --git a/packages/cursorless-engine/src/processTargets/modifiers/EveryScopeStage.ts b/packages/cursorless-engine/src/processTargets/modifiers/EveryScopeStage.ts index 32f78df186..1f529138d7 100644 --- a/packages/cursorless-engine/src/processTargets/modifiers/EveryScopeStage.ts +++ b/packages/cursorless-engine/src/processTargets/modifiers/EveryScopeStage.ts @@ -61,7 +61,8 @@ export class EveryScopeStage implements ModifierStage { if ( scopes.length === 1 && - scopes[0].domain.contains(target.contentRange) + scopes[0].domain.contains(target.contentRange) && + !target.hasExplicitScopeType ) { // If the only scope that came back completely contains the input target // range, we treat the input as if it had no explicit range, expanding