From 8b358e8c6b799df124e4856ec3a759c91b1d3738 Mon Sep 17 00:00:00 2001 From: Pokey Rule <755842+pokey@users.noreply.github.com> Date: Wed, 1 May 2024 16:12:58 +0100 Subject: [PATCH] Add tutorial: Cloning a talon list --- .../bringBlockMade.yml | 52 ++++++++++++++++ .../clearCoreSun.yml | 56 +++++++++++++++++ .../clearCoreYank.yml | 58 ++++++++++++++++++ .../clearDownScoreAndCap.yml | 61 +++++++++++++++++++ .../clearRepperLeper.yml | 54 ++++++++++++++++ .../extra-cloning-a-talon-list/clearWhale.yml | 52 ++++++++++++++++ .../extra-cloning-a-talon-list/script.json | 4 ++ .../takeLookCloneLineWordFrown.yml | 52 ++++++++++++++++ .../takeLookCloneLineWordFrown2.yml | 52 ++++++++++++++++ 9 files changed, 441 insertions(+) create mode 100644 data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/bringBlockMade.yml create mode 100644 data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearCoreSun.yml create mode 100644 data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearCoreYank.yml create mode 100644 data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearDownScoreAndCap.yml create mode 100644 data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearRepperLeper.yml create mode 100644 data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearWhale.yml create mode 100644 data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/script.json create mode 100644 data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/takeLookCloneLineWordFrown.yml create mode 100644 data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/takeLookCloneLineWordFrown2.yml diff --git a/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/bringBlockMade.yml b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/bringBlockMade.yml new file mode 100644 index 00000000000..212981bacf0 --- /dev/null +++ b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/bringBlockMade.yml @@ -0,0 +1,52 @@ +languageId: python +command: + version: 6 + spokenForm: bring block made + action: + name: replaceWithTarget + source: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: paragraph} + mark: {type: decoratedSymbol, symbolColor: default, character: m} + destination: {type: implicit} + usePrePhraseSnapshot: false +initialState: + documentContents: |+ + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + selections: + - anchor: {line: 10, character: 0} + active: {line: 10, character: 0} + marks: + default.m: + start: {line: 5, character: 0} + end: {line: 5, character: 3} +finalState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + selections: + - anchor: {line: 13, character: 1} + active: {line: 13, character: 1} diff --git a/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearCoreSun.yml b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearCoreSun.yml new file mode 100644 index 00000000000..8a52a4f680c --- /dev/null +++ b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearCoreSun.yml @@ -0,0 +1,56 @@ +languageId: python +command: + version: 6 + spokenForm: change inside pair sun + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - {type: interiorOnly} + - type: containingScope + scopeType: {type: surroundingPair, delimiter: any} + mark: {type: decoratedSymbol, symbolColor: default, character: s} + usePrePhraseSnapshot: false +initialState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("emoji", desc="Emojis") + ctx.list['user.emoji'] = { + "spoken form": "whatever", + } + selections: + - anchor: {line: 10, character: 30} + active: {line: 10, character: 30} + marks: + default.s: + start: {line: 12, character: 5} + end: {line: 12, character: 11} +finalState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("emoji", desc="Emojis") + ctx.list['user.emoji'] = { + "": "whatever", + } + selections: + - anchor: {line: 12, character: 5} + active: {line: 12, character: 5} diff --git a/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearCoreYank.yml b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearCoreYank.yml new file mode 100644 index 00000000000..3e2eb34a2ff --- /dev/null +++ b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearCoreYank.yml @@ -0,0 +1,58 @@ +languageId: python +command: + version: 6 + spokenForm: change inside pair yank + action: + name: clearAndSetSelection + target: + type: primitive + modifiers: + - {type: interiorOnly} + - type: containingScope + scopeType: {type: surroundingPair, delimiter: any} + mark: {type: decoratedSymbol, symbolColor: default, character: 'y'} + usePrePhraseSnapshot: false +initialState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("emoji", desc="My tutorial list") + ctx.list['user.emoji'] = { + "spoken form": "whatever", + } + selections: + - anchor: {line: 10, character: 15} + active: {line: 10, character: 15} + - anchor: {line: 11, character: 20} + active: {line: 11, character: 20} + marks: + default.y: + start: {line: 10, character: 24} + end: {line: 10, character: 26} +finalState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("emoji", desc="") + ctx.list['user.emoji'] = { + "spoken form": "whatever", + } + selections: + - anchor: {line: 10, character: 24} + active: {line: 10, character: 24} diff --git a/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearDownScoreAndCap.yml b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearDownScoreAndCap.yml new file mode 100644 index 00000000000..4285f52d7a0 --- /dev/null +++ b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearDownScoreAndCap.yml @@ -0,0 +1,61 @@ +languageId: python +command: + version: 6 + spokenForm: change underscore and cap + action: + name: clearAndSetSelection + target: + type: list + elements: + - type: primitive + mark: {type: decoratedSymbol, symbolColor: default, character: _} + - type: primitive + mark: {type: decoratedSymbol, symbolColor: default, character: c} + usePrePhraseSnapshot: false +initialState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + selections: + - anchor: {line: 13, character: 1} + active: {line: 13, character: 1} + marks: + default._: + start: {line: 10, character: 10} + end: {line: 10, character: 37} + default.c: + start: {line: 11, character: 15} + end: {line: 11, character: 42} +finalState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("", desc="My tutorial list") + ctx.list['user.'] = { + "spoken form": "whatever", + } + selections: + - anchor: {line: 10, character: 10} + active: {line: 10, character: 10} + - anchor: {line: 11, character: 15} + active: {line: 11, character: 15} diff --git a/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearRepperLeper.yml b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearRepperLeper.yml new file mode 100644 index 00000000000..2ac1b7da70f --- /dev/null +++ b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearRepperLeper.yml @@ -0,0 +1,54 @@ +languageId: python +command: + version: 6 + spokenForm: change right paren + action: + name: clearAndSetSelection + target: + type: primitive + mark: {type: decoratedSymbol, symbolColor: default, character: )} + usePrePhraseSnapshot: false +initialState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("emoji", desc="Emojis") + ctx.list['user.emoji'] = { + "smile": ":-)", + "frown": ":-)", + } + selections: + - anchor: {line: 13, character: 10} + active: {line: 13, character: 10} + marks: + default.): + start: {line: 13, character: 16} + end: {line: 13, character: 17} +finalState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("emoji", desc="Emojis") + ctx.list['user.emoji'] = { + "smile": ":-)", + "frown": ":-", + } + selections: + - anchor: {line: 13, character: 16} + active: {line: 13, character: 16} diff --git a/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearWhale.yml b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearWhale.yml new file mode 100644 index 00000000000..48a9e9ce5b6 --- /dev/null +++ b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/clearWhale.yml @@ -0,0 +1,52 @@ +languageId: python +command: + version: 6 + spokenForm: change whale + action: + name: clearAndSetSelection + target: + type: primitive + mark: {type: decoratedSymbol, symbolColor: default, character: w} + usePrePhraseSnapshot: false +initialState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("emoji", desc="Emojis") + ctx.list['user.emoji'] = { + "smile": "whatever", + } + selections: + - anchor: {line: 12, character: 10} + active: {line: 12, character: 10} + marks: + default.w: + start: {line: 12, character: 14} + end: {line: 12, character: 22} +finalState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("emoji", desc="Emojis") + ctx.list['user.emoji'] = { + "smile": "", + } + selections: + - anchor: {line: 12, character: 14} + active: {line: 12, character: 14} diff --git a/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/script.json b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/script.json new file mode 100644 index 00000000000..c63cd36807e --- /dev/null +++ b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/script.json @@ -0,0 +1,4 @@ +{ + "title": "Cloning a talon list", + "steps": [] +} diff --git a/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/takeLookCloneLineWordFrown.yml b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/takeLookCloneLineWordFrown.yml new file mode 100644 index 00000000000..8afbba4b726 --- /dev/null +++ b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/takeLookCloneLineWordFrown.yml @@ -0,0 +1,52 @@ +languageId: python +command: + version: 6 + spokenForm: take look + action: + name: setSelection + target: + type: primitive + mark: {type: decoratedSymbol, symbolColor: default, character: l} + usePrePhraseSnapshot: false +initialState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("emoji", desc="Emojis") + ctx.list['user.emoji'] = { + "smile": ":-)", + } + selections: + - anchor: {line: 12, character: 17} + active: {line: 12, character: 17} + marks: + default.l: + start: {line: 12, character: 5} + end: {line: 12, character: 10} +finalState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("emoji", desc="Emojis") + ctx.list['user.emoji'] = { + "smile": ":-)", + } + selections: + - anchor: {line: 12, character: 5} + active: {line: 12, character: 10} diff --git a/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/takeLookCloneLineWordFrown2.yml b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/takeLookCloneLineWordFrown2.yml new file mode 100644 index 00000000000..44706fe1aed --- /dev/null +++ b/data/fixtures/recorded/tutorial/extra-cloning-a-talon-list/takeLookCloneLineWordFrown2.yml @@ -0,0 +1,52 @@ +languageId: python +command: + version: 6 + spokenForm: clone line + action: + name: insertCopyAfter + target: + type: primitive + modifiers: + - type: containingScope + scopeType: {type: line} + usePrePhraseSnapshot: false +initialState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("emoji", desc="Emojis") + ctx.list['user.emoji'] = { + "smile": ":-)", + } + selections: + - anchor: {line: 12, character: 5} + active: {line: 12, character: 10} + marks: {} +finalState: + documentContents: |- + from talon import Context, Module + + mod = Module() + ctx = Context() + + mod.list("cursorless_walkthrough_list", desc="My tutorial list") + ctx.list['user.cursorless_walkthrough_list'] = { + "spoken form": "whatever", + } + + mod.list("emoji", desc="Emojis") + ctx.list['user.emoji'] = { + "smile": ":-)", + "smile": ":-)", + } + selections: + - anchor: {line: 13, character: 5} + active: {line: 13, character: 10}