diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryItem.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryItem.yml new file mode 100644 index 0000000000..8206e4505b --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryItem.yml @@ -0,0 +1,28 @@ +languageId: yaml +command: + version: 6 + spokenForm: change every item + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: everyScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + foo: bar + baz: bongo + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + marks: {} +finalState: + documentContents: |+ + + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + - anchor: {line: 1, character: 0} + active: {line: 1, character: 0} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryItem2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryItem2.yml new file mode 100644 index 0000000000..b58812494e --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryItem2.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: change every item + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: everyScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: "foo: { bar: baz, bongo: 0}" + selections: + - anchor: {line: 0, character: 6} + active: {line: 0, character: 6} + marks: {} +finalState: + documentContents: "foo: { , }" + selections: + - anchor: {line: 0, character: 7} + active: {line: 0, character: 7} + - anchor: {line: 0, character: 9} + active: {line: 0, character: 9} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryItem3.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryItem3.yml new file mode 100644 index 0000000000..82bcfcb031 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryItem3.yml @@ -0,0 +1,31 @@ +languageId: yaml +command: + version: 6 + spokenForm: change every item + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: everyScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + foo: + - 0 + - 1 + selections: + - anchor: {line: 1, character: 2} + active: {line: 1, character: 2} + marks: {} +finalState: + documentContents: |- + foo: + + + selections: + - anchor: {line: 1, character: 2} + active: {line: 1, character: 2} + - anchor: {line: 2, character: 2} + active: {line: 2, character: 2} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryItem4.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryItem4.yml new file mode 100644 index 0000000000..623f6fbc51 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryItem4.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: change every item + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: everyScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: "bar: [0, 1]" + selections: + - anchor: {line: 0, character: 6} + active: {line: 0, character: 6} + marks: {} +finalState: + documentContents: "bar: [, ]" + selections: + - anchor: {line: 0, character: 6} + active: {line: 0, character: 6} + - anchor: {line: 0, character: 8} + active: {line: 0, character: 8} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryKey.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryKey.yml new file mode 100644 index 0000000000..b4d4a3f54b --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryKey.yml @@ -0,0 +1,29 @@ +languageId: yaml +command: + version: 6 + spokenForm: change every key + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: everyScope + scopeType: {type: collectionKey} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + foo: bar + baz: bongo + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + marks: {} +finalState: + documentContents: |- + : bar + : bongo + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + - anchor: {line: 1, character: 0} + active: {line: 1, character: 0} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryKey2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryKey2.yml new file mode 100644 index 0000000000..fa9c2bfc28 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryKey2.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: change every key + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: everyScope + scopeType: {type: collectionKey} + usePrePhraseSnapshot: true +initialState: + documentContents: "foo: { bar: baz, bongo: 0}" + selections: + - anchor: {line: 0, character: 6} + active: {line: 0, character: 6} + marks: {} +finalState: + documentContents: "foo: { : baz, : 0}" + selections: + - anchor: {line: 0, character: 7} + active: {line: 0, character: 7} + - anchor: {line: 0, character: 14} + active: {line: 0, character: 14} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryValue.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryValue.yml new file mode 100644 index 0000000000..cf62110af2 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryValue.yml @@ -0,0 +1,29 @@ +languageId: yaml +command: + version: 6 + spokenForm: change every value + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: everyScope + scopeType: {type: value} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + foo: bar + baz: bongo + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + marks: {} +finalState: + documentContents: |- + foo: + baz: + selections: + - anchor: {line: 0, character: 5} + active: {line: 0, character: 5} + - anchor: {line: 1, character: 5} + active: {line: 1, character: 5} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryValue2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryValue2.yml new file mode 100644 index 0000000000..fc97fb7d5b --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeEveryValue2.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: change every value + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: everyScope + scopeType: {type: value} + usePrePhraseSnapshot: true +initialState: + documentContents: "foo: { bar: baz, bongo: 0}" + selections: + - anchor: {line: 0, character: 6} + active: {line: 0, character: 6} + marks: {} +finalState: + documentContents: "foo: { bar: , bongo: }" + selections: + - anchor: {line: 0, character: 12} + active: {line: 0, character: 12} + - anchor: {line: 0, character: 21} + active: {line: 0, character: 21} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeItem.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeItem.yml new file mode 100644 index 0000000000..62571ecd7f --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeItem.yml @@ -0,0 +1,23 @@ +languageId: yaml +command: + version: 6 + spokenForm: change item + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: "foo: bar" + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + marks: {} +finalState: + documentContents: "" + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeItem2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeItem2.yml new file mode 100644 index 0000000000..42ae1cc305 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeItem2.yml @@ -0,0 +1,29 @@ +languageId: yaml +command: + version: 6 + spokenForm: change item + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + foo: + - 0 + - 1 + selections: + - anchor: {line: 1, character: 2} + active: {line: 1, character: 2} + marks: {} +finalState: + documentContents: |- + foo: + + - 1 + selections: + - anchor: {line: 1, character: 2} + active: {line: 1, character: 2} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeItem3.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeItem3.yml new file mode 100644 index 0000000000..bddafbb119 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeItem3.yml @@ -0,0 +1,23 @@ +languageId: yaml +command: + version: 6 + spokenForm: change item + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: "bar: [0, 1]" + selections: + - anchor: {line: 0, character: 6} + active: {line: 0, character: 6} + marks: {} +finalState: + documentContents: "bar: [, 1]" + selections: + - anchor: {line: 0, character: 6} + active: {line: 0, character: 6} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeItem4.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeItem4.yml new file mode 100644 index 0000000000..e0df6c2ea8 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeItem4.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: change item + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: | + - aaa: bbb + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + marks: {} +finalState: + documentContents: |+ + + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeKey.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeKey.yml new file mode 100644 index 0000000000..5a2719f42d --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeKey.yml @@ -0,0 +1,23 @@ +languageId: yaml +command: + version: 6 + spokenForm: change key + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionKey} + usePrePhraseSnapshot: true +initialState: + documentContents: "foo: bar" + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + marks: {} +finalState: + documentContents: ": bar" + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeLeadingValue.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeLeadingValue.yml new file mode 100644 index 0000000000..949ce201de --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeLeadingValue.yml @@ -0,0 +1,24 @@ +languageId: yaml +command: + version: 6 + spokenForm: change leading value + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - {type: leading} + - type: containingScope + scopeType: {type: value} + usePrePhraseSnapshot: true +initialState: + documentContents: "foo: bar" + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + marks: {} +finalState: + documentContents: foobar + selections: + - anchor: {line: 0, character: 3} + active: {line: 0, character: 3} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeList.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeList.yml new file mode 100644 index 0000000000..59f41444f2 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeList.yml @@ -0,0 +1,28 @@ +languageId: yaml +command: + version: 6 + spokenForm: change list + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: list} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + foo: + - 0 + - 1 + selections: + - anchor: {line: 1, character: 2} + active: {line: 1, character: 2} + marks: {} +finalState: + documentContents: |- + foo: + + selections: + - anchor: {line: 1, character: 2} + active: {line: 1, character: 2} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeList2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeList2.yml new file mode 100644 index 0000000000..d18295231a --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeList2.yml @@ -0,0 +1,23 @@ +languageId: yaml +command: + version: 6 + spokenForm: change list + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: list} + usePrePhraseSnapshot: true +initialState: + documentContents: "bar: [0, 1]" + selections: + - anchor: {line: 0, character: 6} + active: {line: 0, character: 6} + marks: {} +finalState: + documentContents: "bar: " + selections: + - anchor: {line: 0, character: 5} + active: {line: 0, character: 5} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeList3.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeList3.yml new file mode 100644 index 0000000000..3fbe74cf6c --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeList3.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: change list + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: list} + usePrePhraseSnapshot: true +initialState: + documentContents: | + - aaa: bbb + selections: + - anchor: {line: 0, character: 8} + active: {line: 0, character: 8} + marks: {} +finalState: + documentContents: |+ + + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeMap.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeMap.yml new file mode 100644 index 0000000000..0a26e04e30 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeMap.yml @@ -0,0 +1,23 @@ +languageId: yaml +command: + version: 6 + spokenForm: change map + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: map} + usePrePhraseSnapshot: true +initialState: + documentContents: "foo: { bar: baz, bongo: 0}" + selections: + - anchor: {line: 0, character: 6} + active: {line: 0, character: 6} + marks: {} +finalState: + documentContents: "foo: " + selections: + - anchor: {line: 0, character: 5} + active: {line: 0, character: 5} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeMap2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeMap2.yml new file mode 100644 index 0000000000..8811b7de67 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeMap2.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: change map + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: map} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + foo: 0 + bar: 1 + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + marks: {} +finalState: + documentContents: "" + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeTrailingKey.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeTrailingKey.yml new file mode 100644 index 0000000000..78ba836002 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeTrailingKey.yml @@ -0,0 +1,24 @@ +languageId: yaml +command: + version: 6 + spokenForm: change trailing key + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - {type: trailing} + - type: containingScope + scopeType: {type: collectionKey} + usePrePhraseSnapshot: true +initialState: + documentContents: "foo: bar" + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + marks: {} +finalState: + documentContents: foobar + selections: + - anchor: {line: 0, character: 3} + active: {line: 0, character: 3} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeValue.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeValue.yml new file mode 100644 index 0000000000..c882b0c046 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/changeValue.yml @@ -0,0 +1,23 @@ +languageId: yaml +command: + version: 6 + spokenForm: change value + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: value} + usePrePhraseSnapshot: true +initialState: + documentContents: "foo: bar" + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + marks: {} +finalState: + documentContents: "foo: " + selections: + - anchor: {line: 0, character: 5} + active: {line: 0, character: 5} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem.yml new file mode 100644 index 0000000000..dc2d58acbd --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem.yml @@ -0,0 +1,28 @@ +languageId: yaml +command: + version: 6 + spokenForm: chuck item + action: + name: remove + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + values: + - 0 + - 1 + selections: + - anchor: {line: 1, character: 4} + active: {line: 1, character: 4} + marks: {} +finalState: + documentContents: |- + values: + - 1 + selections: + - anchor: {line: 1, character: 4} + active: {line: 1, character: 4} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem2.yml new file mode 100644 index 0000000000..4026297556 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem2.yml @@ -0,0 +1,28 @@ +languageId: yaml +command: + version: 6 + spokenForm: chuck item + action: + name: remove + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + values: + - 0 + - 1 + selections: + - anchor: {line: 2, character: 4} + active: {line: 2, character: 4} + marks: {} +finalState: + documentContents: |- + values: + - 0 + selections: + - anchor: {line: 1, character: 7} + active: {line: 1, character: 7} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem3.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem3.yml new file mode 100644 index 0000000000..10a428d5c2 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem3.yml @@ -0,0 +1,23 @@ +languageId: yaml +command: + version: 6 + spokenForm: chuck item + action: + name: remove + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: "values: [0, 1]" + selections: + - anchor: {line: 0, character: 9} + active: {line: 0, character: 9} + marks: {} +finalState: + documentContents: "values: [1]" + selections: + - anchor: {line: 0, character: 9} + active: {line: 0, character: 9} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem4.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem4.yml new file mode 100644 index 0000000000..8db772570a --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem4.yml @@ -0,0 +1,23 @@ +languageId: yaml +command: + version: 6 + spokenForm: chuck item + action: + name: remove + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: "values: [0, 1]" + selections: + - anchor: {line: 0, character: 13} + active: {line: 0, character: 13} + marks: {} +finalState: + documentContents: "values: [0]" + selections: + - anchor: {line: 0, character: 10} + active: {line: 0, character: 10} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem5.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem5.yml new file mode 100644 index 0000000000..b90ab39977 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem5.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: chuck item + action: + name: remove + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + foo: 0 + bar: 0 + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + marks: {} +finalState: + documentContents: "bar: 0" + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem6.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem6.yml new file mode 100644 index 0000000000..1c2f2c0d48 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem6.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: chuck item + action: + name: remove + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + foo: 0 + bar: 0 + selections: + - anchor: {line: 1, character: 0} + active: {line: 1, character: 0} + marks: {} +finalState: + documentContents: "foo: 0" + selections: + - anchor: {line: 0, character: 6} + active: {line: 0, character: 6} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem7.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem7.yml new file mode 100644 index 0000000000..e40b110740 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem7.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: chuck item + action: + name: remove + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: | + values: {foo: 0, bar: 0} + selections: + - anchor: {line: 0, character: 9} + active: {line: 0, character: 9} + marks: {} +finalState: + documentContents: | + values: {bar: 0} + selections: + - anchor: {line: 0, character: 9} + active: {line: 0, character: 9} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem8.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem8.yml new file mode 100644 index 0000000000..4d2203e19b --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/chuckItem8.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: chuck item + action: + name: remove + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: | + values: {foo: 0, bar: 0} + selections: + - anchor: {line: 0, character: 17} + active: {line: 0, character: 17} + marks: {} +finalState: + documentContents: | + values: {foo: 0} + selections: + - anchor: {line: 0, character: 15} + active: {line: 0, character: 15} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/drinkItem.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/drinkItem.yml new file mode 100644 index 0000000000..44a39b9b69 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/drinkItem.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: drink item + action: + name: editNewLineBefore + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: | + values: [0] + selections: + - anchor: {line: 0, character: 10} + active: {line: 0, character: 10} + marks: {} +finalState: + documentContents: | + values: [, 0] + selections: + - anchor: {line: 0, character: 9} + active: {line: 0, character: 9} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/drinkItem2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/drinkItem2.yml new file mode 100644 index 0000000000..5d5182cdb7 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/drinkItem2.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: drink item + action: + name: editNewLineBefore + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: | + values: { foo: bar } + selections: + - anchor: {line: 0, character: 10} + active: {line: 0, character: 10} + marks: {} +finalState: + documentContents: | + values: { , foo: bar } + selections: + - anchor: {line: 0, character: 10} + active: {line: 0, character: 10} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/drinkItem3.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/drinkItem3.yml new file mode 100644 index 0000000000..eb4decd944 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/drinkItem3.yml @@ -0,0 +1,28 @@ +languageId: yaml +command: + version: 6 + spokenForm: drink item + action: + name: editNewLineBefore + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + foo: 0 + bar: 1 + selections: + - anchor: {line: 1, character: 0} + active: {line: 1, character: 0} + marks: {} +finalState: + documentContents: |- + foo: 0 + + bar: 1 + selections: + - anchor: {line: 1, character: 0} + active: {line: 1, character: 0} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/pourItem.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/pourItem.yml new file mode 100644 index 0000000000..728d038baa --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/pourItem.yml @@ -0,0 +1,23 @@ +languageId: yaml +command: + version: 6 + spokenForm: pour item + action: + name: editNewLineAfter + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: "values: [0]" + selections: + - anchor: {line: 0, character: 9} + active: {line: 0, character: 9} + marks: {} +finalState: + documentContents: "values: [0, ]" + selections: + - anchor: {line: 0, character: 12} + active: {line: 0, character: 12} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/pourItem2.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/pourItem2.yml new file mode 100644 index 0000000000..df8b0c27f2 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/pourItem2.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: pour item + action: + name: editNewLineAfter + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: | + values: [0] + selections: + - anchor: {line: 0, character: 10} + active: {line: 0, character: 10} + marks: {} +finalState: + documentContents: | + values: [0, ] + selections: + - anchor: {line: 0, character: 12} + active: {line: 0, character: 12} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/pourItem3.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/pourItem3.yml new file mode 100644 index 0000000000..984c318ac3 --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/pourItem3.yml @@ -0,0 +1,25 @@ +languageId: yaml +command: + version: 6 + spokenForm: pour item + action: + name: editNewLineAfter + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: | + values: { foo: bar } + selections: + - anchor: {line: 0, character: 10} + active: {line: 0, character: 10} + marks: {} +finalState: + documentContents: | + values: { foo: bar, } + selections: + - anchor: {line: 0, character: 20} + active: {line: 0, character: 20} diff --git a/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/pourItem4.yml b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/pourItem4.yml new file mode 100644 index 0000000000..701649b0ae --- /dev/null +++ b/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/yaml/pourItem4.yml @@ -0,0 +1,28 @@ +languageId: yaml +command: + version: 6 + spokenForm: pour item + action: + name: editNewLineAfter + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: collectionItem} + usePrePhraseSnapshot: true +initialState: + documentContents: |- + foo: 0 + bar: 1 + selections: + - anchor: {line: 0, character: 0} + active: {line: 0, character: 0} + marks: {} +finalState: + documentContents: |- + foo: 0 + + bar: 1 + selections: + - anchor: {line: 1, character: 0} + active: {line: 1, character: 0} diff --git a/queries/yaml.scm b/queries/yaml.scm new file mode 100644 index 0000000000..10319b7137 --- /dev/null +++ b/queries/yaml.scm @@ -0,0 +1,72 @@ +;; ;;!! foo: bar +;; ;;! ^^^ ^^^ +(_ + key: (_) @collectionKey @collectionKey.trailing.start.endOf @value.leading.start.endOf + value: (_) @value @collectionKey.trailing.start.startOf @value.leading.start.startOf +) @_.domain + +;;!! foo: bar +;;! ^^^^^^^^ +(block_mapping + (block_mapping_pair)? @collectionItem.leading.start.endOf + . + (block_mapping_pair) @collectionItem @collectionItem.leading.end.startOf @collectionItem.trailing.end.endOf + . + (block_mapping_pair)? @collectionItem.trailing.end.startOf +) @map + +;;!! - 0 +;;! ^^^ +( + (block_sequence + (block_sequence_item)? @collectionItem.leading.start.endOf + . + (block_sequence_item) @collectionItem @collectionItem.leading.end.startOf @collectionItem.trailing.end.endOf + . + (block_sequence_item)? @collectionItem.trailing.end.startOf + (#trim-end! @collectionItem) + ) @list + (#trim-end! @list) +) + +;;!! [0] +;;! ^ +(flow_sequence + (flow_node)? @collectionItem.leading.start.endOf + . + (flow_node) @collectionItem @collectionItem.leading.end.startOf @collectionItem.trailing.end.endOf + . + (flow_node)? @collectionItem.trailing.end.startOf + (#insertion-delimiter! @collectionItem ", ") +) @list + +;;!! { foo: bar } +;;! ^^^^^^^^ +(flow_mapping + (flow_pair)? @collectionItem.leading.start.endOf + . + (flow_pair) @collectionItem @collectionItem.leading.end.startOf @collectionItem.trailing.end.endOf + . + (flow_pair)? @collectionItem.trailing.end.startOf + (#insertion-delimiter! @collectionItem ", ") +) @map + +[ + (block_mapping) + (block_sequence) + (flow_sequence) + (flow_mapping) +] @collectionItem.iteration @collectionKey.iteration @value.iteration + +;;!! foo: bar +;;! ^^^ +;;!! | block scalar +;;! ^^^^^^^^^^^^^ +[ + (string_scalar) + (block_scalar) +] @string @textFragment + +;;!! # comment +;;! ^^^^^^^^^ +(comment) @comment @textFragment