From 534b528256eff122862b0a7bb571348b803ee50b Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Fri, 8 Sep 2023 11:54:10 +0200 Subject: [PATCH 1/3] Made interface names targetable as keys --- .../src/languages/typescript.ts | 1 + .../languages/typescript/changeKey.yml | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/typescript/changeKey.yml diff --git a/packages/cursorless-engine/src/languages/typescript.ts b/packages/cursorless-engine/src/languages/typescript.ts index 377f81d3ea..8ad8c0ed54 100644 --- a/packages/cursorless-engine/src/languages/typescript.ts +++ b/packages/cursorless-engine/src/languages/typescript.ts @@ -166,6 +166,7 @@ const nodeMatchers: Partial< [ "pair[key]", "jsx_attribute.property_identifier!", + "interface_declaration.object_type.property_signature[name]!", "shorthand_property_identifier", ], [":"], diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/typescript/changeKey.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/typescript/changeKey.yml new file mode 100644 index 0000000000..cd395f2c49 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/typescript/changeKey.yml @@ -0,0 +1,29 @@ +languageId: typescript +command: + version: 6 + spokenForm: change key + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionKey} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + interface Hello { + value: number; + } + selections: + - anchor: {line: 1, character: 17} + active: {line: 1, character: 17} + marks: {} +finalState: + documentContents: |- + interface Hello { + : number; + } + selections: + - anchor: {line: 1, character: 4} + active: {line: 1, character: 4} From 5b5250681b71b262018d39b1d1a96d12165684aa Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Fri, 8 Sep 2023 14:04:10 +0200 Subject: [PATCH 2/3] Added key for type aliases --- .../src/languages/typescript.ts | 1 + .../languages/typescript/changeKey2.yml | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/typescript/changeKey2.yml diff --git a/packages/cursorless-engine/src/languages/typescript.ts b/packages/cursorless-engine/src/languages/typescript.ts index 8ad8c0ed54..c14ee23b9d 100644 --- a/packages/cursorless-engine/src/languages/typescript.ts +++ b/packages/cursorless-engine/src/languages/typescript.ts @@ -167,6 +167,7 @@ const nodeMatchers: Partial< "pair[key]", "jsx_attribute.property_identifier!", "interface_declaration.object_type.property_signature[name]!", + "type_alias_declaration.object_type.property_signature[name]!", "shorthand_property_identifier", ], [":"], diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/typescript/changeKey2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/typescript/changeKey2.yml new file mode 100644 index 0000000000..fd692b5be8 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/typescript/changeKey2.yml @@ -0,0 +1,29 @@ +languageId: typescript +command: + version: 6 + spokenForm: change key + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionKey} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + type Hello = { + value: number; + } + selections: + - anchor: {line: 1, character: 17} + active: {line: 1, character: 17} + marks: {} +finalState: + documentContents: |- + type Hello = { + : number; + } + selections: + - anchor: {line: 1, character: 4} + active: {line: 1, character: 4} From c61b16dd2efd4d34e4e20cc5719e26ff1cd56603 Mon Sep 17 00:00:00 2001 From: Andreas Arvidsson Date: Sat, 9 Sep 2023 10:49:02 +0200 Subject: [PATCH 3/3] Added function object type --- .../src/languages/typescript.ts | 3 +- .../languages/typescript/changeKey3.yml | 33 +++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/typescript/changeKey3.yml diff --git a/packages/cursorless-engine/src/languages/typescript.ts b/packages/cursorless-engine/src/languages/typescript.ts index c14ee23b9d..0ffd960729 100644 --- a/packages/cursorless-engine/src/languages/typescript.ts +++ b/packages/cursorless-engine/src/languages/typescript.ts @@ -166,8 +166,7 @@ const nodeMatchers: Partial< [ "pair[key]", "jsx_attribute.property_identifier!", - "interface_declaration.object_type.property_signature[name]!", - "type_alias_declaration.object_type.property_signature[name]!", + "object_type.property_signature[name]!", "shorthand_property_identifier", ], [":"], diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/typescript/changeKey3.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/typescript/changeKey3.yml new file mode 100644 index 0000000000..18ac6d37e8 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/typescript/changeKey3.yml @@ -0,0 +1,33 @@ +languageId: typescript +command: + version: 6 + spokenForm: change key + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionKey} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + function funk(): { + value: number; + } { + return { value: 2 } + } + selections: + - anchor: {line: 1, character: 17} + active: {line: 1, character: 17} + marks: {} +finalState: + documentContents: |- + function funk(): { + : number; + } { + return { value: 2 } + } + selections: + - anchor: {line: 1, character: 4} + active: {line: 1, character: 4}