Supports states scope for interface properties (#1065)

* Supports states scope for interface properties

* Remove trailing semi

* Added test

* Add class fields

* Use extend past optional finder

* updated test

* Added inline test

* Updated state definition for typescript

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add "item" tests

Co-authored-by: Pokey Rule <755842+pokey@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Andreas Arvidsson 2022-10-24 21:37:03 +02:00 committed by GitHub
parent ba9644becb
commit 78fa2b38b4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 296 additions and 1 deletions

View File

@ -200,7 +200,20 @@ const nodeMatchers: Partial<
childRangeSelector(["arguments"], []), childRangeSelector(["arguments"], []),
), ),
), ),
statement: STATEMENT_TYPES.map((type) => `export_statement?.${type}`), statement: cascadingMatcher(
matcher(
patternFinder(
"property_signature",
"public_field_definition",
"abstract_method_signature",
),
extendForwardPastOptional(";"),
),
patternMatcher(
...STATEMENT_TYPES.map((type) => `export_statement?.${type}`),
"method_definition",
),
),
condition: cascadingMatcher( condition: cascadingMatcher(
patternMatcher("ternary_expression[condition]"), patternMatcher("ternary_expression[condition]"),
conditionMatcher( conditionMatcher(

View File

@ -0,0 +1,31 @@
languageId: typescript
command:
spokenForm: chuck state
version: 3
targets:
- type: primitive
modifiers:
- type: containingScope
scopeType: {type: statement}
usePrePhraseSnapshot: true
action: {name: remove}
initialState:
documentContents: |-
interface Foo {
bar: Bar;
baz: Baz;
}
selections:
- anchor: {line: 1, character: 2}
active: {line: 1, character: 2}
marks: {}
finalState:
documentContents: |-
interface Foo {
baz: Baz;
}
selections:
- anchor: {line: 1, character: 0}
active: {line: 1, character: 0}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: statement}}]}]

View File

@ -0,0 +1,29 @@
languageId: typescript
command:
spokenForm: chuck state
version: 3
targets:
- type: primitive
modifiers:
- type: containingScope
scopeType: {type: statement}
usePrePhraseSnapshot: true
action: {name: remove}
initialState:
documentContents: |-
class Foo {
private value: string;
}
selections:
- anchor: {line: 1, character: 4}
active: {line: 1, character: 4}
marks: {}
finalState:
documentContents: |-
class Foo {
}
selections:
- anchor: {line: 1, character: 0}
active: {line: 1, character: 0}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: statement}}]}]

View File

@ -0,0 +1,23 @@
languageId: typescript
command:
spokenForm: clear item
version: 3
targets:
- type: primitive
modifiers:
- type: containingScope
scopeType: {type: collectionItem}
usePrePhraseSnapshot: true
action: {name: clearAndSetSelection}
initialState:
documentContents: "let foo: { a: string };"
selections:
- anchor: {line: 0, character: 11}
active: {line: 0, character: 11}
marks: {}
finalState:
documentContents: "let foo: { };"
selections:
- anchor: {line: 0, character: 11}
active: {line: 0, character: 11}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: collectionItem}}]}]

View File

@ -0,0 +1,23 @@
languageId: typescript
command:
spokenForm: clear item
version: 3
targets:
- type: primitive
modifiers:
- type: containingScope
scopeType: {type: collectionItem}
usePrePhraseSnapshot: true
action: {name: clearAndSetSelection}
initialState:
documentContents: "let foo: { a: string, b: string };"
selections:
- anchor: {line: 0, character: 11}
active: {line: 0, character: 11}
marks: {}
finalState:
documentContents: "let foo: { , b: string };"
selections:
- anchor: {line: 0, character: 11}
active: {line: 0, character: 11}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: collectionItem}}]}]

View File

@ -0,0 +1,23 @@
languageId: typescript
command:
spokenForm: clear item
version: 3
targets:
- type: primitive
modifiers:
- type: containingScope
scopeType: {type: collectionItem}
usePrePhraseSnapshot: true
action: {name: clearAndSetSelection}
initialState:
documentContents: "let foo: { a: string, b: string };"
selections:
- anchor: {line: 0, character: 22}
active: {line: 0, character: 22}
marks: {}
finalState:
documentContents: "let foo: { a: string, };"
selections:
- anchor: {line: 0, character: 22}
active: {line: 0, character: 22}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: collectionItem}}]}]

View File

@ -0,0 +1,31 @@
languageId: typescript
command:
spokenForm: clear state
version: 3
targets:
- type: primitive
modifiers:
- type: containingScope
scopeType: {type: statement}
usePrePhraseSnapshot: true
action: {name: clearAndSetSelection}
initialState:
documentContents: |-
interface Foo {
bar: Bar;
baz: Baz;
}
selections:
- anchor: {line: 1, character: 2}
active: {line: 1, character: 2}
marks: {}
finalState:
documentContents: |-
interface Foo {
baz: Baz;
}
selections:
- anchor: {line: 1, character: 2}
active: {line: 1, character: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: statement}}]}]

View File

@ -0,0 +1,29 @@
languageId: typescript
command:
spokenForm: clear state
version: 3
targets:
- type: primitive
modifiers:
- type: containingScope
scopeType: {type: statement}
usePrePhraseSnapshot: true
action: {name: clearAndSetSelection}
initialState:
documentContents: |-
type Foo = {
bar: string;
}
selections:
- anchor: {line: 1, character: 2}
active: {line: 1, character: 2}
marks: {}
finalState:
documentContents: |-
type Foo = {
}
selections:
- anchor: {line: 1, character: 2}
active: {line: 1, character: 2}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: statement}}]}]

View File

@ -0,0 +1,29 @@
languageId: typescript
command:
spokenForm: clear state
version: 3
targets:
- type: primitive
modifiers:
- type: containingScope
scopeType: {type: statement}
usePrePhraseSnapshot: true
action: {name: clearAndSetSelection}
initialState:
documentContents: |-
class Foo {
private value: string;
}
selections:
- anchor: {line: 1, character: 4}
active: {line: 1, character: 4}
marks: {}
finalState:
documentContents: |-
class Foo {
}
selections:
- anchor: {line: 1, character: 4}
active: {line: 1, character: 4}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: statement}}]}]

View File

@ -0,0 +1,23 @@
languageId: typescript
command:
spokenForm: clear state
version: 3
targets:
- type: primitive
modifiers:
- type: containingScope
scopeType: {type: statement}
usePrePhraseSnapshot: true
action: {name: clearAndSetSelection}
initialState:
documentContents: "let foo: { a: string };"
selections:
- anchor: {line: 0, character: 12}
active: {line: 0, character: 12}
marks: {}
finalState:
documentContents: "let foo: { };"
selections:
- anchor: {line: 0, character: 11}
active: {line: 0, character: 11}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: statement}}]}]

View File

@ -0,0 +1,41 @@
languageId: typescript
command:
spokenForm: clear state
version: 3
targets:
- type: primitive
modifiers:
- type: containingScope
scopeType: {type: statement}
usePrePhraseSnapshot: true
action: {name: clearAndSetSelection}
initialState:
documentContents: |-
abstract class Foo {
value: string;
abstract bar(): void;
baz() { }
}
selections:
- anchor: {line: 1, character: 4}
active: {line: 1, character: 4}
- anchor: {line: 2, character: 4}
active: {line: 2, character: 4}
- anchor: {line: 3, character: 4}
active: {line: 3, character: 4}
marks: {}
finalState:
documentContents: |-
abstract class Foo {
}
selections:
- anchor: {line: 1, character: 4}
active: {line: 1, character: 4}
- anchor: {line: 2, character: 4}
active: {line: 2, character: 4}
- anchor: {line: 3, character: 4}
active: {line: 3, character: 4}
fullTargets: [{type: primitive, mark: {type: cursor}, modifiers: [{type: containingScope, scopeType: {type: statement}}]}]