diff --git a/.editorconfig b/.editorconfig index eab5a6416b..bd3a25265c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -22,13 +22,13 @@ insert_final_newline = false # with a line that has trailing white space. Many of our recorded # tests use strings with trailing white space to represent the final # document contents. For example -# src/test/suite/fixtures/recorded/languages/ruby/changeCondition.yml +# packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeCondition.yml trim_trailing_whitespace = false [Makefile] indent_style = tab -[src/vendor/**] +[**/vendor/**] charset = unset end_of_line = unset indent_size = unset diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5f369bd87e..25af8fae5f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,5 +1,5 @@ minimum_pre_commit_version: "2.9.0" -exclude: ^src/vendor/ +exclude: /vendor/ repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.4.0 @@ -21,8 +21,8 @@ repos: # with a line that has trailing white space. Many of our recorded # tests use strings with trailing white space to represent the final # document contents. For example - # src/test/suite/fixtures/recorded/languages/ruby/changeCondition.yml - exclude: ^src/test/suite/fixtures/recorded/.*/[^/]*\.yml$ + # packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeCondition.yml + exclude: ^packages/cursorless-vscode-e2e/suite/fixtures/recorded/.*/[^/]*\.yml$ - repo: https://github.com/pre-commit/mirrors-prettier rev: "v2.7.1" hooks: diff --git a/.prettierignore b/.prettierignore index 82a93e361d..7ba7a481b3 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,8 +1,7 @@ -/src/vendor +**/vendor # We use our own format for our recorded yaml tests to keep them compact -/src/test/suite/fixtures/recorded/**/*.yml - +/packages/cursorless-vscode-e2e/suite/fixtures/recorded/**/*.yml # This was swizzled from a Docusaurus core class docs-site/src/theme/SearchBar/index.js diff --git a/.vscode/launch.json b/.vscode/launch.json index cdeb27763c..a9d520b04b 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -30,7 +30,7 @@ "args": [ "--profile=cursorlessDevelopment", "--extensionDevelopmentPath=${workspaceFolder}", - "--extensionTestsPath=${workspaceFolder}/out/test/runners/all" + "--extensionTestsPath=${workspaceFolder}/out/test-harness/runners/all" ], "outFiles": ["${workspaceFolder}/out/**/*.js"], "preLaunchTask": "${defaultBuildTask}", @@ -43,7 +43,7 @@ "type": "node", "request": "launch", "name": "Unit tests only", - "program": "${workspaceFolder}/out/test/scripts/runUnitTestsOnly", + "program": "${workspaceFolder}/out/test-harness/scripts/runUnitTestsOnly", "env": { "CURSORLESS_TEST": "true" }, @@ -65,7 +65,7 @@ "args": [ "--profile=cursorlessDevelopment", "--extensionDevelopmentPath=${workspaceFolder}", - "--extensionTestsPath=${workspaceFolder}/out/test/runners/all" + "--extensionTestsPath=${workspaceFolder}/out/test-harness/runners/all" ], "outFiles": ["${workspaceFolder}/out/**/*.js"], "preLaunchTask": "${defaultBuildTask}", @@ -85,7 +85,7 @@ "args": [ "--profile=cursorlessDevelopment", "--extensionDevelopmentPath=${workspaceFolder}", - "--extensionTestsPath=${workspaceFolder}/out/test/runners/all" + "--extensionTestsPath=${workspaceFolder}/out/test-harness/runners/all" ], "outFiles": ["${workspaceFolder}/out/**/*.js"], "preLaunchTask": "${defaultBuildTask}", @@ -106,7 +106,7 @@ "args": [ "--profile=cursorlessDevelopment", "--extensionDevelopmentPath=${workspaceFolder}", - "--extensionTestsPath=${workspaceFolder}/out/test/runners/all" + "--extensionTestsPath=${workspaceFolder}/out/test-harness/runners/all" ], "outFiles": ["${workspaceFolder}/out/**/*.js"], "preLaunchTask": "${defaultBuildTask}", diff --git a/docs-site/typedoc.js b/docs-site/typedoc.js index d4a9d56a5a..c93b399435 100644 --- a/docs-site/typedoc.js +++ b/docs-site/typedoc.js @@ -1,6 +1,6 @@ module.exports = { tsconfig: "../tsconfig.json", - entryPoints: ["../src/"], + entryPoints: ["../packages/"], entryPointStrategy: "expand", readme: "../docs/contributing/_api-index.md", diff --git a/docs/contributing/CONTRIBUTING.md b/docs/contributing/CONTRIBUTING.md index fda46a95b7..4150f9ae7f 100644 --- a/docs/contributing/CONTRIBUTING.md +++ b/docs/contributing/CONTRIBUTING.md @@ -45,7 +45,7 @@ Extension" or "Extension Tests". ### Running a subset of tests -The entire test suite takes a little while to run (1-2 mins), so if you'd like to run just a subset of the tests, you can edit the constant in [`runTestSubset`](../../src/test/suite/runTestSubset.ts) to a string supported by [mocha grep](https://mochajs.org/#-grep-regexp-g-regexp) and use the "Run Test Subset" launch config instead of the usual "Extension Tests". +The entire test suite takes a little while to run (1-2 mins), so if you'd like to run just a subset of the tests, you can edit the constant in [`runTestSubset`](../../packages/common/testUtil/runTestSubset.ts) to a string supported by [mocha grep](https://mochajs.org/#-grep-regexp-g-regexp) and use the "Run Test Subset" launch config instead of the usual "Extension Tests". ## Code formatting @@ -95,7 +95,7 @@ code --profile=cursorlessDevelopment --install-extension bundle.vsix You'll probably want to run the following to make sure the SVGs have everything they need: ```sh -yarn run compile && node ./out/scripts/preprocessSvgHats.js +yarn run compile && node out/cursorless-vscode-core/scripts/preprocessSvgHats.js ``` This script will add dummy width, height and fill attributes as necessary to appease the regex in `Decorations.ts` @@ -105,15 +105,15 @@ This script will add dummy width, height and fill attributes as necessary to app While tweaking, the easiest approach is probably to use the `cursorless.individualHatAdjustments` setting in your settings.json to change size / alignment so you don't need to refresh every time. Once you're done, you -can paste the settings into `scripts/hatAdjustments/add.ts` and run the following to get +can paste the settings into `packages/cursorless-vscode-core/scripts/hatAdjustments/add.ts` and run the following to get your updates: ```sh -yarn run compile && node ./out/scripts/hatAdjustments/add.js +yarn run compile && node ./out/cursorless-vscode-core/scripts/hatAdjustments/add.js ``` -If instead, you want to average your adjustments with those in main and see the differences to get to yours and main, you can paste the settings into `scripts/hatAdjustments/average.ts` and run: +If instead, you want to average your adjustments with those in main and see the differences to get to yours and main, you can paste the settings into `packages/cursorless-vscode-core/scripts/hatAdjustments/average.ts` and run: ```sh -yarn run compile && node ./out/scripts/hatAdjustments/average.js +yarn run compile && node ./out/cursorless-vscode-core/scripts/hatAdjustments/average.js ``` diff --git a/docs/contributing/_api-index.md b/docs/contributing/_api-index.md index 35d43ebe27..c5c740c3ef 100644 --- a/docs/contributing/_api-index.md +++ b/docs/contributing/_api-index.md @@ -7,4 +7,4 @@ contributors get up to speed. For the time being, we recommend watching the [internals walk-through videos](https://youtube.com/playlist?list=PLkafpFOBVedScHi0dy_80DsHwnZIOSOTy) and having a look through the API docs, starting from the [`runCommand` -function](classes/core_commandRunner_CommandRunner.CommandRunner#runcommand). +function](classes/cursorless_engine_core_commandRunner_CommandRunner.CommandRunner#runcommand). diff --git a/docs/contributing/adding-a-new-language.md b/docs/contributing/adding-a-new-language.md index 25e2465275..302c2a6bd8 100644 --- a/docs/contributing/adding-a-new-language.md +++ b/docs/contributing/adding-a-new-language.md @@ -18,10 +18,10 @@ First a few notes / tips: Minimum changes that each language needs: -- new file in `/src/languages/.ts`. Take a look at [existing languages](../../src/languages) as a base. At its core you're implementing your language's version of the `nodeMatchers` const, mapping scope types found in [`Types.ts:ScopeType`](../../src/typings/Types.ts) with matching expressions that align with the parse tree output. -- new entry in [`getNodeMatcher.ts:languageMatchers`](../../src/languages/getNodeMatcher.ts), importing your new file above -- new entry in [`constants.ts`](../../src/languages/constants.ts) -- new text fragment extractor (default is likely fine) in [`getTextFragmentExtractor.ts:textFragmentExtractors`](../../src/languages/getTextFragmentExtractor.ts) +- new file in `/packages/cursorless-engine/languages/.ts`. Take a look at [existing languages](../../packages/cursorless-engine/languages) as a base. At its core you're implementing your language's version of the `nodeMatchers` const, mapping scope types found in [`Types.ts:ScopeType`](../../packages/cursorless-engine/typings/Types.ts) with matching expressions that align with the parse tree output. +- new entry in [`getNodeMatcher.ts:languageMatchers`](../../packages/cursorless-engine/languages/getNodeMatcher.ts), importing your new file above +- new entry in [`constants.ts`](../../packages/cursorless-engine/languages/constants.ts) +- new text fragment extractor (default is likely fine) in [`getTextFragmentExtractor.ts:textFragmentExtractors`](../../packages/cursorless-engine/languages/getTextFragmentExtractor.ts) The parse trees exposed by tree-sitter are often pretty close to what we're looking for, but we often need to look for specific patterns within the parse @@ -39,6 +39,6 @@ domain-specific language that makes these definitions fairly compact. Test cases can be automatically recorded, which should speed things up a lot. See the [docs](test-case-recorder.md) for the test case recorder. It will also likely be helpful to look at the existing recorded test cases (eg -[java](../../src/test/suite/fixtures/recorded/languages/java)) to see how +[java](../../packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java)) to see how they should end up looking when they're recorded. diff --git a/docs/contributing/test-case-recorder.md b/docs/contributing/test-case-recorder.md index 5641f23a74..53b2064b51 100644 --- a/docs/contributing/test-case-recorder.md +++ b/docs/contributing/test-case-recorder.md @@ -6,17 +6,17 @@ like `hello world`), positioning your cursor where you want, tell cursorless to start recording, and then issue one or more cursorless commands. It works by recording the initial state of the file including cursor position(s), the command run, and the final state, all in the form of a yaml document. See -[existing test cases](../../src/test/suite/fixtures/recorded) for example outputs. +[existing test cases](../../packages/cursorless-vscode-e2e/suite/fixtures/recorded) for example outputs. ## Recording new tests 1. Start debugging (F5) 1. Create a minimal file to use for recording tests. And position your cursor where you'd like. Check out the `initialState.documentContents` field of - [existing test cases](../../src/test/suite/fixtures/recorded) for examples. + [existing test cases](../../packages/cursorless-vscode-e2e/suite/fixtures/recorded) for examples. 1. Issue the `"cursorless record"` command. Alternately, issue one of the special recording commands listed in - List of target directories is shown. All test cases will be put into the - given subdirectory of `src/test/suite/fixtures/recorded` + given subdirectory of `packages/cursorless-vscode-e2e/suite/fixtures/recorded` 1. Select existing directory or create new one - Select `Create new folder` - If the new directory name contains any `/`, it will create nested @@ -35,7 +35,7 @@ command run, and the final state, all in the form of a yaml document. See ## Test case recorder options -The test case recorder has several additional configuration options. The default configuration works for most tests, but you may find the following useful. For a full list of supported configuration options, see [the api docs](../api/interfaces/testutil_testcaserecorder.internal.recordtestcasecommandarg/). +The test case recorder has several additional configuration options. The default configuration works for most tests, but you may find the following useful. For a full list of supported configuration options, see [the api docs](../api/interfaces/cursorless_engine_testCaseRecorder_TestCaseRecorder.internal.RecordTestCaseCommandArg/). ### The options @@ -55,7 +55,7 @@ By default, we don't capture the `that` mark returned by a command, unless the t #### Testing the hat map -We have a way to test that the hats in the hat map update correctly during the course of a single phrase. These tests are also how we usually test our [range updating code](../api/modules/core_updateSelections_updateSelections). +We have a way to test that the hats in the hat map update correctly during the course of a single phrase. These tests are also how we usually test our [range updating code](../api/modules/cursorless_engine_core_updateSelections_updateSelections). Any tests recorded in the `hatTokenMap` directory will automatically be treated as hat token map tests. To initiate a series of hat token map tests in another directory, say `"cursorless record navigation"`. @@ -63,7 +63,7 @@ Then each time you record a test, you need to issue two commands. The second com ### Default config per test case directory -Any test case directory that contains a `config.json` will set default configuration for all tests recorded in any descendant directory. For example, the file [`actions/config.json`](../../src/test/suite/fixtures/recorded/actions/config.json) makes it so that all our action tests will capture the final `that` mark. For a full list of keys supported in this json, see [the api docs](../api/interfaces/testutil_testcaserecorder.internal.recordtestcasecommandarg/). +Any test case directory that contains a `config.json` will set default configuration for all tests recorded in any descendant directory. For example, the file [`actions/config.json`](../../packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/config.json) makes it so that all our action tests will capture the final `that` mark. For a full list of keys supported in this json, see [the api docs](../api/interfaces/cursorless_engine_testCaseRecorder_TestCaseRecorder.internal.RecordTestCaseCommandArg/). ### Navigation map tests @@ -86,9 +86,9 @@ To upgrade all the test fixtures to the latest command version, run the command ### Custom transformation -1. Add a new transformation to the `src/scripts/transformRecordedTests/transformations` directory. Look at the existing transformations in that directory for inspiration. +1. Add a new transformation to the [`transformRecordedTests` directory](../../packages/cursorless-engine/scripts/transformRecordedTests). Look at the existing transformations in that directory for inspiration. 1. Change the value at the `custom` key in `AVAILABLE_TRANSFORMATIONS` at the top of - [`transformRecordedTests/index.ts`](../../src/scripts/transformRecordedTests/index.ts) to + [`transformRecordedTests/index.ts`](../../packages/cursorless-engine/scripts/transformRecordedTests/index.ts) to point to your new transformation 1. Run `yarn compile && yarn transform-recorded-tests custom` diff --git a/docs/user/README.md b/docs/user/README.md index 4bfaa43175..dfc20432d1 100644 --- a/docs/user/README.md +++ b/docs/user/README.md @@ -143,7 +143,7 @@ Note that if the mark is `"this"`, and you have multiple cursors, the modifiers ##### Syntactic scopes -For programming languages where Cursorless has rich parse tree support, we support modifiers that expand to the nearest containing function, class, etc. See [the source code](../../src/libs/cursorless-engine/languages/constants.ts) for a list of supported languages. Below is a list of supported scope types, keeping in mind that this table can sometimes lag behind the actual list. Your cheatsheet (say "cursorless help") will have the most up-to-date list. +For programming languages where Cursorless has rich parse tree support, we support modifiers that expand to the nearest containing function, class, etc. See [the source code](../../packages/cursorless-engine/languages/constants.ts) for a list of supported languages. Below is a list of supported scope types, keeping in mind that this table can sometimes lag behind the actual list. Your cheatsheet (say "cursorless help") will have the most up-to-date list. | Term | Syntactic element | | -------------- | --------------------------------------------------- | diff --git a/package.json b/package.json index 36daa42526..9c52b95c68 100644 --- a/package.json +++ b/package.json @@ -743,25 +743,27 @@ }, "funding": "https://github.com/sponsors/pokey", "_moduleAliases": { - "@cursorless/common": "./out/libs/common/index.js", - "@cursorless/vscode-common": "./out/libs/vscode-common/index.js" + "@cursorless/common": "./out/common/index.js", + "@cursorless/vscode-common": "./out/vscode-common/index.js", + "@cursorless/cursorless-vscode-core": "./out/cursorless-vscode-core/index.js", + "@cursorless/cursorless-engine": "./out/cursorless-engine/index.js" }, "scripts": { "vscode:prepublish": "npm run -S esbuild-base -- --minify", "update-licenses": "npx npm-license-crawler --onlyDirectDependencies --csv third-party-licenses.csv", - "esbuild-base": "esbuild ./src/extension.ts --bundle --outfile=dist/extension.js --external:vscode --format=cjs --platform=node", + "esbuild-base": "esbuild ./packages/cursorless-vscode/extension.ts --bundle --outfile=dist/extension.js --external:vscode --format=cjs --platform=node", "esbuild": "npm run -S esbuild-base -- --sourcemap", "esbuild-watch": "npm run -S esbuild-base -- --sourcemap --watch", "test-compile": "tsc -p ./", "compile": "tsc -p ./", "watch": "tsc -watch -p ./", "pretest": "yarn run compile && yarn run lint && yarn run esbuild", - "lint": "eslint src --ext ts", - "test": "env CURSORLESS_TEST=true node ./out/test/scripts/runTestsCI.js", + "lint": "eslint packages --ext ts", + "test": "env CURSORLESS_TEST=true node ./out/test-harness/scripts/runTestsCI.js", "unused-exports": "ts-unused-exports tsconfig.json --showLineNumber", - "init-launch-sandbox": "node ./out/scripts/initLaunchSandbox.js", - "prepare-for-extension-publish": "node ./out/scripts/prepareForExtensionPublish.js", - "transform-recorded-tests": "node ./out/scripts/transformRecordedTests/index.js" + "init-launch-sandbox": "node ./out/cursorless-vscode-core/scripts/initLaunchSandbox.js", + "prepare-for-extension-publish": "node ./out/cursorless-vscode-core/scripts/prepareForExtensionPublish.js", + "transform-recorded-tests": "node ./out/cursorless-engine/scripts/transformRecordedTests/index.js" }, "devDependencies": { "@types/chai": "^4.3.3", diff --git a/src/libs/common/.eslintrc.json b/packages/common/.eslintrc.json similarity index 100% rename from src/libs/common/.eslintrc.json rename to packages/common/.eslintrc.json diff --git a/src/libs/common/commandIds.ts b/packages/common/commandIds.ts similarity index 100% rename from src/libs/common/commandIds.ts rename to packages/common/commandIds.ts diff --git a/src/errors.ts b/packages/common/errors.ts similarity index 100% rename from src/errors.ts rename to packages/common/errors.ts diff --git a/src/test/extensionDependencies.ts b/packages/common/extensionDependencies.ts similarity index 100% rename from src/test/extensionDependencies.ts rename to packages/common/extensionDependencies.ts diff --git a/src/libs/common/ide/.eslintrc.json b/packages/common/ide/.eslintrc.json similarity index 100% rename from src/libs/common/ide/.eslintrc.json rename to packages/common/ide/.eslintrc.json diff --git a/src/libs/common/ide/PassthroughIDEBase.ts b/packages/common/ide/PassthroughIDEBase.ts similarity index 100% rename from src/libs/common/ide/PassthroughIDEBase.ts rename to packages/common/ide/PassthroughIDEBase.ts diff --git a/src/libs/common/ide/fake/.eslintrc.json b/packages/common/ide/fake/.eslintrc.json similarity index 100% rename from src/libs/common/ide/fake/.eslintrc.json rename to packages/common/ide/fake/.eslintrc.json diff --git a/src/libs/common/ide/fake/FakeCapabilities.ts b/packages/common/ide/fake/FakeCapabilities.ts similarity index 100% rename from src/libs/common/ide/fake/FakeCapabilities.ts rename to packages/common/ide/fake/FakeCapabilities.ts diff --git a/src/libs/common/ide/fake/FakeClipboard.ts b/packages/common/ide/fake/FakeClipboard.ts similarity index 100% rename from src/libs/common/ide/fake/FakeClipboard.ts rename to packages/common/ide/fake/FakeClipboard.ts diff --git a/src/libs/common/ide/fake/FakeConfiguration.ts b/packages/common/ide/fake/FakeConfiguration.ts similarity index 100% rename from src/libs/common/ide/fake/FakeConfiguration.ts rename to packages/common/ide/fake/FakeConfiguration.ts diff --git a/src/libs/common/ide/fake/FakeGlobalState.ts b/packages/common/ide/fake/FakeGlobalState.ts similarity index 100% rename from src/libs/common/ide/fake/FakeGlobalState.ts rename to packages/common/ide/fake/FakeGlobalState.ts diff --git a/src/libs/common/ide/fake/FakeHats.ts b/packages/common/ide/fake/FakeHats.ts similarity index 100% rename from src/libs/common/ide/fake/FakeHats.ts rename to packages/common/ide/fake/FakeHats.ts diff --git a/src/libs/common/ide/fake/FakeIDE.ts b/packages/common/ide/fake/FakeIDE.ts similarity index 98% rename from src/libs/common/ide/fake/FakeIDE.ts rename to packages/common/ide/fake/FakeIDE.ts index b11f5b28d7..4c6d6c8ca2 100644 --- a/src/libs/common/ide/fake/FakeIDE.ts +++ b/packages/common/ide/fake/FakeIDE.ts @@ -1,4 +1,4 @@ -import type { EditableTextEditor, TextEditor } from "@cursorless/common"; +import type { EditableTextEditor, TextEditor } from "../.."; import { pull } from "lodash"; import { GeneralizedRange } from "../../types/GeneralizedRange"; import { TextDocument } from "../../types/TextDocument"; diff --git a/src/libs/common/ide/fake/FakeMessages.ts b/packages/common/ide/fake/FakeMessages.ts similarity index 100% rename from src/libs/common/ide/fake/FakeMessages.ts rename to packages/common/ide/fake/FakeMessages.ts diff --git a/src/libs/common/ide/normalized/.eslintrc.json b/packages/common/ide/normalized/.eslintrc.json similarity index 100% rename from src/libs/common/ide/normalized/.eslintrc.json rename to packages/common/ide/normalized/.eslintrc.json diff --git a/src/libs/common/ide/normalized/NormalizedIDE.ts b/packages/common/ide/normalized/NormalizedIDE.ts similarity index 96% rename from src/libs/common/ide/normalized/NormalizedIDE.ts rename to packages/common/ide/normalized/NormalizedIDE.ts index f9644496d0..a413f09f9c 100644 --- a/src/libs/common/ide/normalized/NormalizedIDE.ts +++ b/packages/common/ide/normalized/NormalizedIDE.ts @@ -8,7 +8,7 @@ import PassthroughIDEBase from "../PassthroughIDEBase"; import { FlashDescriptor } from "../types/FlashDescriptor"; import type { IDE } from "../types/ide.types"; -export default class NormalizedIDE extends PassthroughIDEBase { +export class NormalizedIDE extends PassthroughIDEBase { configuration: FakeConfiguration; globalState: FakeGlobalState; clipboard: FakeClipboard; diff --git a/src/libs/common/ide/spy/.eslintrc.json b/packages/common/ide/spy/.eslintrc.json similarity index 100% rename from src/libs/common/ide/spy/.eslintrc.json rename to packages/common/ide/spy/.eslintrc.json diff --git a/src/libs/common/ide/spy/SpyIDE.ts b/packages/common/ide/spy/SpyIDE.ts similarity index 100% rename from src/libs/common/ide/spy/SpyIDE.ts rename to packages/common/ide/spy/SpyIDE.ts diff --git a/src/libs/common/ide/spy/SpyMessages.ts b/packages/common/ide/spy/SpyMessages.ts similarity index 100% rename from src/libs/common/ide/spy/SpyMessages.ts rename to packages/common/ide/spy/SpyMessages.ts diff --git a/src/libs/common/ide/types/.eslintrc.json b/packages/common/ide/types/.eslintrc.json similarity index 100% rename from src/libs/common/ide/types/.eslintrc.json rename to packages/common/ide/types/.eslintrc.json diff --git a/src/libs/common/ide/types/Capabilities.ts b/packages/common/ide/types/Capabilities.ts similarity index 100% rename from src/libs/common/ide/types/Capabilities.ts rename to packages/common/ide/types/Capabilities.ts diff --git a/src/libs/common/ide/types/Clipboard.ts b/packages/common/ide/types/Clipboard.ts similarity index 100% rename from src/libs/common/ide/types/Clipboard.ts rename to packages/common/ide/types/Clipboard.ts diff --git a/src/libs/common/ide/types/CommandId.ts b/packages/common/ide/types/CommandId.ts similarity index 100% rename from src/libs/common/ide/types/CommandId.ts rename to packages/common/ide/types/CommandId.ts diff --git a/src/libs/common/ide/types/Configuration.ts b/packages/common/ide/types/Configuration.ts similarity index 96% rename from src/libs/common/ide/types/Configuration.ts rename to packages/common/ide/types/Configuration.ts index 570e732135..6ee3a7bc87 100644 --- a/src/libs/common/ide/types/Configuration.ts +++ b/packages/common/ide/types/Configuration.ts @@ -1,4 +1,4 @@ -import { Listener } from "@cursorless/common"; +import { Listener } from "../.."; import { HatStability } from "./HatStability"; import { Disposable } from "./ide.types"; import { GetFieldType, Paths } from "./Paths"; @@ -8,6 +8,7 @@ export type CursorlessConfiguration = { wordSeparators: string[]; experimental: { snippetsDir: string | undefined; hatStability: HatStability }; decorationDebounceDelayMs: number; + debug: boolean; }; export type CursorlessConfigKey = keyof CursorlessConfiguration; @@ -25,6 +26,7 @@ export const CONFIGURATION_DEFAULTS: CursorlessConfiguration = { snippetsDir: undefined, hatStability: HatStability.balanced, }, + debug: false, }; export interface Configuration { diff --git a/src/libs/common/ide/types/Events.ts b/packages/common/ide/types/Events.ts similarity index 94% rename from src/libs/common/ide/types/Events.ts rename to packages/common/ide/types/Events.ts index 4d80d968db..09f39e9a59 100644 --- a/src/libs/common/ide/types/Events.ts +++ b/packages/common/ide/types/Events.ts @@ -1,4 +1,4 @@ -import type { TextDocument, Range } from "@cursorless/common"; +import type { TextDocument, Range } from "../.."; /** * An event describing a transactional {@link TextDocument document} change. diff --git a/src/libs/common/ide/types/FlashDescriptor.ts b/packages/common/ide/types/FlashDescriptor.ts similarity index 88% rename from src/libs/common/ide/types/FlashDescriptor.ts rename to packages/common/ide/types/FlashDescriptor.ts index 9c310edfad..9694dcb907 100644 --- a/src/libs/common/ide/types/FlashDescriptor.ts +++ b/packages/common/ide/types/FlashDescriptor.ts @@ -1,4 +1,4 @@ -import { TextEditor } from "@cursorless/common"; +import { TextEditor } from "../.."; import { GeneralizedRange } from "../../types/GeneralizedRange"; export enum FlashStyle { diff --git a/src/libs/common/ide/types/HatStability.ts b/packages/common/ide/types/HatStability.ts similarity index 100% rename from src/libs/common/ide/types/HatStability.ts rename to packages/common/ide/types/HatStability.ts diff --git a/src/libs/common/ide/types/Hats.ts b/packages/common/ide/types/Hats.ts similarity index 100% rename from src/libs/common/ide/types/Hats.ts rename to packages/common/ide/types/Hats.ts diff --git a/src/libs/common/ide/types/Messages.ts b/packages/common/ide/types/Messages.ts similarity index 100% rename from src/libs/common/ide/types/Messages.ts rename to packages/common/ide/types/Messages.ts diff --git a/src/libs/common/ide/types/Paths.ts b/packages/common/ide/types/Paths.ts similarity index 100% rename from src/libs/common/ide/types/Paths.ts rename to packages/common/ide/types/Paths.ts diff --git a/src/libs/common/ide/types/QuickPickOptions.ts b/packages/common/ide/types/QuickPickOptions.ts similarity index 100% rename from src/libs/common/ide/types/QuickPickOptions.ts rename to packages/common/ide/types/QuickPickOptions.ts diff --git a/src/libs/common/ide/types/README.md b/packages/common/ide/types/README.md similarity index 100% rename from src/libs/common/ide/types/README.md rename to packages/common/ide/types/README.md diff --git a/src/libs/common/ide/types/State.ts b/packages/common/ide/types/State.ts similarity index 100% rename from src/libs/common/ide/types/State.ts rename to packages/common/ide/types/State.ts diff --git a/src/libs/common/ide/types/events.types.ts b/packages/common/ide/types/events.types.ts similarity index 100% rename from src/libs/common/ide/types/events.types.ts rename to packages/common/ide/types/events.types.ts diff --git a/src/libs/common/ide/types/hatStyles.types.ts b/packages/common/ide/types/hatStyles.types.ts similarity index 100% rename from src/libs/common/ide/types/hatStyles.types.ts rename to packages/common/ide/types/hatStyles.types.ts diff --git a/src/libs/common/ide/types/ide.types.ts b/packages/common/ide/types/ide.types.ts similarity index 99% rename from src/libs/common/ide/types/ide.types.ts rename to packages/common/ide/types/ide.types.ts index 8e75951610..ee10bb7694 100644 --- a/src/libs/common/ide/types/ide.types.ts +++ b/packages/common/ide/types/ide.types.ts @@ -3,7 +3,7 @@ import type { InputBoxOptions, TextDocument, TextEditor, -} from "@cursorless/common"; +} from "../.."; import { URI } from "vscode-uri"; import { GeneralizedRange } from "../../types/GeneralizedRange"; import { Capabilities } from "./Capabilities"; diff --git a/src/libs/common/ide/util/messages.ts b/packages/common/ide/util/messages.ts similarity index 100% rename from src/libs/common/ide/util/messages.ts rename to packages/common/ide/util/messages.ts diff --git a/src/libs/common/index.ts b/packages/common/index.ts similarity index 53% rename from src/libs/common/index.ts rename to packages/common/index.ts index a0839d5d3b..95cf90bbd1 100644 --- a/src/libs/common/index.ts +++ b/packages/common/index.ts @@ -8,7 +8,6 @@ export { runTestSubset, TEST_SUBSET_GREP_STRING, } from "./testUtil/runTestSubset"; -export { default as serialize } from "./testUtil/serialize"; export { Message } from "./ide/spy/SpyMessages"; export { SpyIDERecordedValues } from "./ide/spy/SpyIDE"; export { default as SpyIDE } from "./ide/spy/SpyIDE"; @@ -17,13 +16,23 @@ export * from "./util"; export * from "./ide/util/messages"; export { getKey, splitKey } from "./util/splitKey"; export { hrtimeBigintToSeconds } from "./util/timeUtils"; -export { walkFilesSync } from "./util/walkSync"; +export * from "./util/walkSync"; +export * from "./util/walkAsync"; export { Listener, Notifier } from "./util/Notifier"; export { TokenHatSplittingMode } from "./ide/types/Configuration"; export * from "./ide/types/ide.types"; export * from "./ide/types/Capabilities"; export * from "./ide/types/CommandId"; export * from "./ide/types/FlashDescriptor"; +export * from "./ide/types/Clipboard"; +export * from "./ide/types/Configuration"; +export * from "./ide/types/State"; +export * from "./ide/types/Hats"; +export * from "./ide/types/Messages"; +export * from "./ide/types/Events"; +export * from "./ide/types/QuickPickOptions"; +export * from "./ide/types/events.types"; +export * from "./ide/types/Paths"; export * from "./types/RangeExpansionBehavior"; export * from "./types/InputBoxOptions"; export * from "./types/Position"; @@ -41,3 +50,24 @@ export * from "./testUtil/toPlainObject"; export { default as DefaultMap } from "./util/DefaultMap"; export * from "./types/GeneralizedRange"; export * from "./util/omitByDeep"; +export * from "./testUtil/isTesting"; +export * from "./testUtil/testConstants"; +export * from "./testUtil/getFixturePaths"; +export * from "./testUtil/serialize"; +export * from "./util/typeUtils"; +export * from "./ide/types/hatStyles.types"; +export * from "./errors"; +export * from "./util/CompositeKeyMap"; +export * from "./ide/normalized/NormalizedIDE"; +export * from "./types/command/command.types"; +export * from "./types/command/PartialTargetDescriptor.types"; +export * from "./types/command/ActionCommand"; +export * from "./types/command/legacy/CommandV0V1.types"; +export * from "./types/command/legacy/CommandV2.types"; +export * from "./types/command/legacy/CommandV3.types"; +export * from "./types/command/legacy/targetDescriptorV2.types"; +export * from "./types/command/CommandV4.types"; +export * from "./types/command/legacy/PartialTargetDescriptorV3.types"; +export * from "./types/CommandServerApi"; +export * from "./util/itertools"; +export * from "./extensionDependencies"; diff --git a/src/libs/common/testUtil/.eslintrc.json b/packages/common/testUtil/.eslintrc.json similarity index 100% rename from src/libs/common/testUtil/.eslintrc.json rename to packages/common/testUtil/.eslintrc.json diff --git a/src/libs/common/testUtil/extractTargetedMarks.ts b/packages/common/testUtil/extractTargetedMarks.ts similarity index 82% rename from src/libs/common/testUtil/extractTargetedMarks.ts rename to packages/common/testUtil/extractTargetedMarks.ts index beecf5c8ea..1acdb256b7 100644 --- a/src/libs/common/testUtil/extractTargetedMarks.ts +++ b/packages/common/testUtil/extractTargetedMarks.ts @@ -1,10 +1,10 @@ -import { getKey, splitKey } from "@cursorless/common"; -import type { ReadOnlyHatMap } from "../../../core/IndividualHatMap"; +import { getKey, splitKey } from ".."; +import type { ReadOnlyHatMap } from "../../cursorless-engine/core/IndividualHatMap"; import type { PrimitiveTargetDescriptor, TargetDescriptor, -} from "../../../typings/TargetDescriptor"; -import type { Token } from "../../../typings/Types"; +} from "../../cursorless-engine/typings/TargetDescriptor"; +import type { Token } from "../../cursorless-engine/typings/Types"; function extractPrimitiveTargetKeys(...targets: PrimitiveTargetDescriptor[]) { const keys: string[] = []; diff --git a/src/libs/common/testUtil/fromPlainObject.ts b/packages/common/testUtil/fromPlainObject.ts similarity index 100% rename from src/libs/common/testUtil/fromPlainObject.ts rename to packages/common/testUtil/fromPlainObject.ts diff --git a/src/apps/cursorless-vscode-e2e/getFixturePaths.ts b/packages/common/testUtil/getFixturePaths.ts similarity index 72% rename from src/apps/cursorless-vscode-e2e/getFixturePaths.ts rename to packages/common/testUtil/getFixturePaths.ts index 9628463983..35f486d698 100644 --- a/src/apps/cursorless-vscode-e2e/getFixturePaths.ts +++ b/packages/common/testUtil/getFixturePaths.ts @@ -1,8 +1,11 @@ import * as path from "path"; -import { walkFilesSync } from "@cursorless/common"; +import { walkFilesSync } from "../util/walkSync"; export function getFixturesPath() { - return path.join(__dirname, "../../../src/test/suite/fixtures"); + return path.join( + __dirname, + "../../../packages/cursorless-vscode-e2e/suite/fixtures", + ); } export function getFixturePath(fixturePath: string) { diff --git a/packages/common/testUtil/isTesting.ts b/packages/common/testUtil/isTesting.ts new file mode 100644 index 0000000000..031e50725b --- /dev/null +++ b/packages/common/testUtil/isTesting.ts @@ -0,0 +1 @@ +export const isTesting = () => process.env.CURSORLESS_TEST != null; diff --git a/src/libs/common/testUtil/runTestSubset.ts b/packages/common/testUtil/runTestSubset.ts similarity index 100% rename from src/libs/common/testUtil/runTestSubset.ts rename to packages/common/testUtil/runTestSubset.ts diff --git a/src/libs/common/testUtil/serialize.ts b/packages/common/testUtil/serialize.ts similarity index 96% rename from src/libs/common/testUtil/serialize.ts rename to packages/common/testUtil/serialize.ts index a5e63934ba..f30431453f 100644 --- a/src/libs/common/testUtil/serialize.ts +++ b/packages/common/testUtil/serialize.ts @@ -58,8 +58,6 @@ function replacer(key: string, value: unknown) { return value; // default } -const serialize = (obj: unknown) => +export const serialize = (obj: unknown) => new CustomDump(obj, { noRefs: true, quotingType: '"' }).represent().trim() + "\n"; - -export default serialize; diff --git a/src/libs/vscode-common/testUtil/testConstants.ts b/packages/common/testUtil/testConstants.ts similarity index 64% rename from src/libs/vscode-common/testUtil/testConstants.ts rename to packages/common/testUtil/testConstants.ts index 26c9692115..1184a5f121 100644 --- a/src/libs/vscode-common/testUtil/testConstants.ts +++ b/packages/common/testUtil/testConstants.ts @@ -1,4 +1,4 @@ -import type { TextEditorOptions } from "@cursorless/common"; +import type { TextEditorOptions } from ".."; export const DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST: TextEditorOptions = { tabSize: 4, diff --git a/src/libs/common/testUtil/toPlainObject.ts b/packages/common/testUtil/toPlainObject.ts similarity index 95% rename from src/libs/common/testUtil/toPlainObject.ts rename to packages/common/testUtil/toPlainObject.ts index 9bf72e23f6..cc9296a7b2 100644 --- a/src/libs/common/testUtil/toPlainObject.ts +++ b/packages/common/testUtil/toPlainObject.ts @@ -4,10 +4,10 @@ import type { LineRange, Message, SpyIDERecordedValues, -} from "@cursorless/common"; -import { FlashStyle, isLineRange } from "@cursorless/common"; -import type { Target } from "../../../typings/target.types"; -import type { Token } from "../../../typings/Types"; +} from ".."; +import { FlashStyle, isLineRange } from ".."; +import type { Target } from "../../cursorless-engine/typings/target.types"; +import type { Token } from "../../cursorless-engine/typings/Types"; import { Position } from "../types/Position"; import { Range } from "../types/Range"; import { Selection } from "../types/Selection"; diff --git a/packages/common/types/CommandServerApi.ts b/packages/common/types/CommandServerApi.ts new file mode 100644 index 0000000000..46aa6ecb5f --- /dev/null +++ b/packages/common/types/CommandServerApi.ts @@ -0,0 +1,9 @@ +export interface CommandServerApi { + signals: { + prePhrase: InboundSignal; + }; +} + +export interface InboundSignal { + getVersion(): Promise; +} diff --git a/src/libs/common/types/GeneralizedRange.ts b/packages/common/types/GeneralizedRange.ts similarity index 100% rename from src/libs/common/types/GeneralizedRange.ts rename to packages/common/types/GeneralizedRange.ts diff --git a/src/libs/common/types/InputBoxOptions.ts b/packages/common/types/InputBoxOptions.ts similarity index 100% rename from src/libs/common/types/InputBoxOptions.ts rename to packages/common/types/InputBoxOptions.ts diff --git a/src/libs/common/types/Position.ts b/packages/common/types/Position.ts similarity index 98% rename from src/libs/common/types/Position.ts rename to packages/common/types/Position.ts index 35f5e604df..79f4d9063b 100644 --- a/src/libs/common/types/Position.ts +++ b/packages/common/types/Position.ts @@ -1,4 +1,4 @@ -import { Range } from "@cursorless/common"; +import { Range } from ".."; export class Position { /** diff --git a/src/libs/common/types/Range.ts b/packages/common/types/Range.ts similarity index 98% rename from src/libs/common/types/Range.ts rename to packages/common/types/Range.ts index ea4f4e3ba0..55ea3b4029 100644 --- a/src/libs/common/types/Range.ts +++ b/packages/common/types/Range.ts @@ -1,4 +1,4 @@ -import { Position, Selection } from "@cursorless/common"; +import { Position, Selection } from ".."; export class Range { /** diff --git a/src/libs/common/types/RangeExpansionBehavior.ts b/packages/common/types/RangeExpansionBehavior.ts similarity index 100% rename from src/libs/common/types/RangeExpansionBehavior.ts rename to packages/common/types/RangeExpansionBehavior.ts diff --git a/src/libs/common/types/RevealLineAt.ts b/packages/common/types/RevealLineAt.ts similarity index 100% rename from src/libs/common/types/RevealLineAt.ts rename to packages/common/types/RevealLineAt.ts diff --git a/src/libs/common/types/Selection.ts b/packages/common/types/Selection.ts similarity index 97% rename from src/libs/common/types/Selection.ts rename to packages/common/types/Selection.ts index 8a84da2392..f54ac06787 100644 --- a/src/libs/common/types/Selection.ts +++ b/packages/common/types/Selection.ts @@ -1,4 +1,4 @@ -import { Position, Range } from "@cursorless/common"; +import { Position, Range } from ".."; export class Selection extends Range { /** diff --git a/src/libs/common/types/TextDocument.ts b/packages/common/types/TextDocument.ts similarity index 97% rename from src/libs/common/types/TextDocument.ts rename to packages/common/types/TextDocument.ts index 6cfe3250bd..7fdfd2ef99 100644 --- a/src/libs/common/types/TextDocument.ts +++ b/packages/common/types/TextDocument.ts @@ -1,4 +1,4 @@ -import type { Position, Range, TextLine } from "@cursorless/common"; +import type { Position, Range, TextLine } from ".."; import type { URI } from "vscode-uri"; export interface TextDocument { diff --git a/src/libs/common/types/TextEditor.ts b/packages/common/types/TextEditor.ts similarity index 99% rename from src/libs/common/types/TextEditor.ts rename to packages/common/types/TextEditor.ts index ff84c0ee9d..6eb46fb015 100644 --- a/src/libs/common/types/TextEditor.ts +++ b/packages/common/types/TextEditor.ts @@ -6,7 +6,7 @@ import type { TextDocument, TextEditorEdit, TextEditorOptions, -} from "@cursorless/common"; +} from ".."; /** * Represents a read-only reference to a text editor. If you need to modify the diff --git a/src/libs/common/types/TextEditorDecorationType.ts b/packages/common/types/TextEditorDecorationType.ts similarity index 100% rename from src/libs/common/types/TextEditorDecorationType.ts rename to packages/common/types/TextEditorDecorationType.ts diff --git a/src/libs/common/types/TextEditorEdit.ts b/packages/common/types/TextEditorEdit.ts similarity index 95% rename from src/libs/common/types/TextEditorEdit.ts rename to packages/common/types/TextEditorEdit.ts index 6015c6fb52..ed1f1f68cc 100644 --- a/src/libs/common/types/TextEditorEdit.ts +++ b/packages/common/types/TextEditorEdit.ts @@ -1,4 +1,4 @@ -import type { EndOfLine, Position, Range } from "@cursorless/common"; +import type { EndOfLine, Position, Range } from ".."; /** * A complex edit that will be applied in one transaction on a TextEditor. diff --git a/src/libs/common/types/TextEditorOptions.ts b/packages/common/types/TextEditorOptions.ts similarity index 100% rename from src/libs/common/types/TextEditorOptions.ts rename to packages/common/types/TextEditorOptions.ts diff --git a/src/libs/common/types/TextLine.ts b/packages/common/types/TextLine.ts similarity index 96% rename from src/libs/common/types/TextLine.ts rename to packages/common/types/TextLine.ts index 3ba38b17e9..abbaf0c496 100644 --- a/src/libs/common/types/TextLine.ts +++ b/packages/common/types/TextLine.ts @@ -1,4 +1,4 @@ -import type { Range } from "@cursorless/common"; +import type { Range } from ".."; /** * Represents a line of text, such as a line of source code. diff --git a/src/core/commandRunner/typings/.eslintrc.json b/packages/common/types/command/.eslintrc.json similarity index 100% rename from src/core/commandRunner/typings/.eslintrc.json rename to packages/common/types/command/.eslintrc.json diff --git a/src/core/commandRunner/typings/ActionCommand.ts b/packages/common/types/command/ActionCommand.ts similarity index 100% rename from src/core/commandRunner/typings/ActionCommand.ts rename to packages/common/types/command/ActionCommand.ts diff --git a/src/core/commandRunner/typings/CommandV4.types.ts b/packages/common/types/command/CommandV4.types.ts similarity index 100% rename from src/core/commandRunner/typings/CommandV4.types.ts rename to packages/common/types/command/CommandV4.types.ts diff --git a/src/core/commandRunner/typings/PartialTargetDescriptor.types.ts b/packages/common/types/command/PartialTargetDescriptor.types.ts similarity index 98% rename from src/core/commandRunner/typings/PartialTargetDescriptor.types.ts rename to packages/common/types/command/PartialTargetDescriptor.types.ts index ccf2ca3ef9..cfe2ad514f 100644 --- a/src/core/commandRunner/typings/PartialTargetDescriptor.types.ts +++ b/packages/common/types/command/PartialTargetDescriptor.types.ts @@ -266,11 +266,11 @@ export interface InferPreviousMarkModifier { type: "inferPreviousMark"; } -export type Position = "before" | "after" | "start" | "end"; +export type TargetPosition = "before" | "after" | "start" | "end"; export interface PositionModifier { type: "position"; - position: Position; + position: TargetPosition; } export interface PartialPrimitiveTargetDescriptor { diff --git a/src/core/commandRunner/typings/command.types.ts b/packages/common/types/command/command.types.ts similarity index 100% rename from src/core/commandRunner/typings/command.types.ts rename to packages/common/types/command/command.types.ts diff --git a/src/core/commandRunner/typings/legacy/.eslintrc.json b/packages/common/types/command/legacy/.eslintrc.json similarity index 100% rename from src/core/commandRunner/typings/legacy/.eslintrc.json rename to packages/common/types/command/legacy/.eslintrc.json diff --git a/src/core/commandRunner/typings/legacy/CommandV0V1.types.ts b/packages/common/types/command/legacy/CommandV0V1.types.ts similarity index 100% rename from src/core/commandRunner/typings/legacy/CommandV0V1.types.ts rename to packages/common/types/command/legacy/CommandV0V1.types.ts diff --git a/src/core/commandRunner/typings/legacy/CommandV2.types.ts b/packages/common/types/command/legacy/CommandV2.types.ts similarity index 100% rename from src/core/commandRunner/typings/legacy/CommandV2.types.ts rename to packages/common/types/command/legacy/CommandV2.types.ts diff --git a/src/core/commandRunner/typings/legacy/CommandV3.types.ts b/packages/common/types/command/legacy/CommandV3.types.ts similarity index 100% rename from src/core/commandRunner/typings/legacy/CommandV3.types.ts rename to packages/common/types/command/legacy/CommandV3.types.ts diff --git a/src/core/commandRunner/typings/legacy/PartialTargetDescriptorV3.types.ts b/packages/common/types/command/legacy/PartialTargetDescriptorV3.types.ts similarity index 100% rename from src/core/commandRunner/typings/legacy/PartialTargetDescriptorV3.types.ts rename to packages/common/types/command/legacy/PartialTargetDescriptorV3.types.ts diff --git a/src/core/commandRunner/typings/legacy/targetDescriptorV2.types.ts b/packages/common/types/command/legacy/targetDescriptorV2.types.ts similarity index 100% rename from src/core/commandRunner/typings/legacy/targetDescriptorV2.types.ts rename to packages/common/types/command/legacy/targetDescriptorV2.types.ts diff --git a/src/libs/common/types/location.types.ts b/packages/common/types/location.types.ts similarity index 100% rename from src/libs/common/types/location.types.ts rename to packages/common/types/location.types.ts diff --git a/src/libs/common/types/position.test.ts b/packages/common/types/position.test.ts similarity index 98% rename from src/libs/common/types/position.test.ts rename to packages/common/types/position.test.ts index ca8a2462f7..07373396da 100644 --- a/src/libs/common/types/position.test.ts +++ b/packages/common/types/position.test.ts @@ -1,5 +1,5 @@ import * as assert from "assert"; -import { Position } from "@cursorless/common"; +import { Position } from ".."; suite("Position", () => { test("constructor", () => { diff --git a/src/libs/common/types/range.test.ts b/packages/common/types/range.test.ts similarity index 98% rename from src/libs/common/types/range.test.ts rename to packages/common/types/range.test.ts index 64e6a84bbd..3063e0a13d 100644 --- a/src/libs/common/types/range.test.ts +++ b/packages/common/types/range.test.ts @@ -1,5 +1,5 @@ import * as assert from "assert"; -import { Position, Range } from "@cursorless/common"; +import { Position, Range } from ".."; suite("Range", () => { test("constructor", () => { diff --git a/src/libs/common/types/selection.test.ts b/packages/common/types/selection.test.ts similarity index 97% rename from src/libs/common/types/selection.test.ts rename to packages/common/types/selection.test.ts index 6d606350e2..b3d8f431be 100644 --- a/src/libs/common/types/selection.test.ts +++ b/packages/common/types/selection.test.ts @@ -1,5 +1,5 @@ import * as assert from "assert"; -import { Position, Selection } from "@cursorless/common"; +import { Position, Selection } from ".."; suite("Selection", () => { test("constructor", () => { diff --git a/src/libs/common/util/.eslintrc.json b/packages/common/util/.eslintrc.json similarity index 100% rename from src/libs/common/util/.eslintrc.json rename to packages/common/util/.eslintrc.json diff --git a/src/libs/common/util/CompositeKeyMap.ts b/packages/common/util/CompositeKeyMap.ts similarity index 95% rename from src/libs/common/util/CompositeKeyMap.ts rename to packages/common/util/CompositeKeyMap.ts index 01952cf5fa..1cb896fd9c 100644 --- a/src/libs/common/util/CompositeKeyMap.ts +++ b/packages/common/util/CompositeKeyMap.ts @@ -5,7 +5,7 @@ * * Based on https://stackoverflow.com/a/54523103 */ -export default class CompositeKeyMap { +export class CompositeKeyMap { private map: Record = {}; /** diff --git a/src/libs/common/util/DefaultMap.ts b/packages/common/util/DefaultMap.ts similarity index 100% rename from src/libs/common/util/DefaultMap.ts rename to packages/common/util/DefaultMap.ts diff --git a/src/libs/common/util/Notifier.ts b/packages/common/util/Notifier.ts similarity index 100% rename from src/libs/common/util/Notifier.ts rename to packages/common/util/Notifier.ts diff --git a/src/libs/common/util/index.ts b/packages/common/util/index.ts similarity index 100% rename from src/libs/common/util/index.ts rename to packages/common/util/index.ts diff --git a/src/util/itertools.ts b/packages/common/util/itertools.ts similarity index 100% rename from src/util/itertools.ts rename to packages/common/util/itertools.ts diff --git a/src/libs/common/util/omitByDeep.ts b/packages/common/util/omitByDeep.ts similarity index 100% rename from src/libs/common/util/omitByDeep.ts rename to packages/common/util/omitByDeep.ts diff --git a/src/libs/common/util/sleep.ts b/packages/common/util/sleep.ts similarity index 100% rename from src/libs/common/util/sleep.ts rename to packages/common/util/sleep.ts diff --git a/src/libs/common/util/splitKey.ts b/packages/common/util/splitKey.ts similarity index 100% rename from src/libs/common/util/splitKey.ts rename to packages/common/util/splitKey.ts diff --git a/src/libs/common/util/timeUtils.ts b/packages/common/util/timeUtils.ts similarity index 100% rename from src/libs/common/util/timeUtils.ts rename to packages/common/util/timeUtils.ts diff --git a/src/libs/common/util/typeUtils.ts b/packages/common/util/typeUtils.ts similarity index 100% rename from src/libs/common/util/typeUtils.ts rename to packages/common/util/typeUtils.ts diff --git a/src/testUtil/walkAsync.ts b/packages/common/util/walkAsync.ts similarity index 100% rename from src/testUtil/walkAsync.ts rename to packages/common/util/walkAsync.ts diff --git a/src/libs/common/util/walkSync.ts b/packages/common/util/walkSync.ts similarity index 100% rename from src/libs/common/util/walkSync.ts rename to packages/common/util/walkSync.ts diff --git a/src/libs/cursorless-engine/.eslintrc.json b/packages/cursorless-engine/.eslintrc.json similarity index 100% rename from src/libs/cursorless-engine/.eslintrc.json rename to packages/cursorless-engine/.eslintrc.json diff --git a/src/libs/cursorless-engine/languages/.eslintrc.json b/packages/cursorless-engine/actions/.eslintrc.json similarity index 100% rename from src/libs/cursorless-engine/languages/.eslintrc.json rename to packages/cursorless-engine/actions/.eslintrc.json diff --git a/src/actions/Actions.ts b/packages/cursorless-engine/actions/Actions.ts similarity index 99% rename from src/actions/Actions.ts rename to packages/cursorless-engine/actions/Actions.ts index 37c7ebc702..f900a1211c 100644 --- a/src/actions/Actions.ts +++ b/packages/cursorless-engine/actions/Actions.ts @@ -1,4 +1,4 @@ -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { ActionRecord } from "./actions.types"; import { ToggleLineComment, diff --git a/src/actions/BringMoveSwap.ts b/packages/cursorless-engine/actions/BringMoveSwap.ts similarity index 97% rename from src/actions/BringMoveSwap.ts rename to packages/cursorless-engine/actions/BringMoveSwap.ts index f206a39462..b78406dc73 100644 --- a/src/actions/BringMoveSwap.ts +++ b/packages/cursorless-engine/actions/BringMoveSwap.ts @@ -1,4 +1,5 @@ import { + FlashStyle, RangeExpansionBehavior, Selection, TextEditor, @@ -8,10 +9,10 @@ import { getSelectionInfo, performEditsAndUpdateFullSelectionInfos, } from "../core/updateSelections/updateSelections"; -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { EditWithRangeUpdater, Graph } from "../typings/Types"; +import { EditWithRangeUpdater } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { setSelectionsWithoutFocusingEditor } from "../util/setSelectionsAndFocusEditor"; import { flashTargets, diff --git a/src/actions/Call.ts b/packages/cursorless-engine/actions/Call.ts similarity index 95% rename from src/actions/Call.ts rename to packages/cursorless-engine/actions/Call.ts index 9030dc4792..4855bb462b 100644 --- a/src/actions/Call.ts +++ b/packages/cursorless-engine/actions/Call.ts @@ -1,5 +1,5 @@ import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { ensureSingleTarget } from "../util/targetUtils"; import { Action, ActionReturnValue } from "./actions.types"; diff --git a/src/actions/CallbackAction.ts b/packages/cursorless-engine/actions/CallbackAction.ts similarity index 94% rename from src/actions/CallbackAction.ts rename to packages/cursorless-engine/actions/CallbackAction.ts index 850043b56f..bb1875562d 100644 --- a/src/actions/CallbackAction.ts +++ b/packages/cursorless-engine/actions/CallbackAction.ts @@ -1,11 +1,10 @@ -import { EditableTextEditor, TextEditor } from "@cursorless/common"; +import { EditableTextEditor, FlashStyle, TextEditor } from "@cursorless/common"; import { flatten } from "lodash"; import { selectionToThatTarget } from "../core/commandRunner/selectionToThatTarget"; import { callFunctionAndUpdateSelections } from "../core/updateSelections/updateSelections"; -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { setSelectionsAndFocusEditor, setSelectionsWithoutFocusingEditor, diff --git a/src/actions/Clear.ts b/packages/cursorless-engine/actions/Clear.ts similarity index 91% rename from src/actions/Clear.ts rename to packages/cursorless-engine/actions/Clear.ts index 39af241223..84cc88f492 100644 --- a/src/actions/Clear.ts +++ b/packages/cursorless-engine/actions/Clear.ts @@ -1,7 +1,7 @@ -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { PlainTarget } from "../processTargets/targets"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { setSelectionsAndFocusEditor } from "../util/setSelectionsAndFocusEditor"; import { ensureSingleEditor } from "../util/targetUtils"; import { Action, ActionReturnValue } from "./actions.types"; diff --git a/src/actions/CutToClipboard.ts b/packages/cursorless-engine/actions/CutToClipboard.ts similarity index 89% rename from src/actions/CutToClipboard.ts rename to packages/cursorless-engine/actions/CutToClipboard.ts index b1e4b146c3..cb94752088 100644 --- a/src/actions/CutToClipboard.ts +++ b/packages/cursorless-engine/actions/CutToClipboard.ts @@ -1,15 +1,13 @@ -import { Range } from "@cursorless/common"; import { FlashDescriptor, FlashStyle, -} from "../libs/common/ide/types/FlashDescriptor"; -import { + Range, toCharacterRange, toLineRange, -} from "../libs/common/types/GeneralizedRange"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +} from "@cursorless/common"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { Action, ActionReturnValue } from "./actions.types"; export class CutToClipboard implements Action { diff --git a/src/actions/Deselect.ts b/packages/cursorless-engine/actions/Deselect.ts similarity index 92% rename from src/actions/Deselect.ts rename to packages/cursorless-engine/actions/Deselect.ts index f7e4e78524..a3598464c8 100644 --- a/src/actions/Deselect.ts +++ b/packages/cursorless-engine/actions/Deselect.ts @@ -1,6 +1,6 @@ -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { setSelectionsWithoutFocusingEditor } from "../util/setSelectionsAndFocusEditor"; import { runOnTargetsForEachEditor } from "../util/targetUtils"; import { Action, ActionReturnValue } from "./actions.types"; diff --git a/src/libs/cursorless-engine/scopeHandlers/WordScopeHandler/.eslintrc.json b/packages/cursorless-engine/actions/EditNew/.eslintrc.json similarity index 100% rename from src/libs/cursorless-engine/scopeHandlers/WordScopeHandler/.eslintrc.json rename to packages/cursorless-engine/actions/EditNew/.eslintrc.json diff --git a/src/actions/EditNew/EditNew.ts b/packages/cursorless-engine/actions/EditNew/EditNew.ts similarity index 95% rename from src/actions/EditNew/EditNew.ts rename to packages/cursorless-engine/actions/EditNew/EditNew.ts index e599437b7f..3e52ceb06c 100644 --- a/src/actions/EditNew/EditNew.ts +++ b/packages/cursorless-engine/actions/EditNew/EditNew.ts @@ -1,9 +1,9 @@ -import ide from "../../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../../singletons/ide.singleton"; import { containingLineIfUntypedStage } from "../../processTargets/modifiers/commonContainingScopeIfUntypedStages"; import PositionStage from "../../processTargets/modifiers/PositionStage"; import { ModifierStage } from "../../processTargets/PipelineStages.types"; import { Target } from "../../typings/target.types"; -import { Graph } from "../../typings/Types"; +import { Graph } from "../../typings/Graph"; import { setSelectionsAndFocusEditor } from "../../util/setSelectionsAndFocusEditor"; import { createThatMark, ensureSingleEditor } from "../../util/targetUtils"; import { Action, ActionReturnValue } from "../actions.types"; diff --git a/src/actions/EditNew/EditNew.types.ts b/packages/cursorless-engine/actions/EditNew/EditNew.types.ts similarity index 100% rename from src/actions/EditNew/EditNew.types.ts rename to packages/cursorless-engine/actions/EditNew/EditNew.types.ts diff --git a/src/actions/EditNew/index.ts b/packages/cursorless-engine/actions/EditNew/index.ts similarity index 100% rename from src/actions/EditNew/index.ts rename to packages/cursorless-engine/actions/EditNew/index.ts diff --git a/src/actions/EditNew/runEditTargets.ts b/packages/cursorless-engine/actions/EditNew/runEditTargets.ts similarity index 98% rename from src/actions/EditNew/runEditTargets.ts rename to packages/cursorless-engine/actions/EditNew/runEditTargets.ts index a640f61111..6e1967945d 100644 --- a/src/actions/EditNew/runEditTargets.ts +++ b/packages/cursorless-engine/actions/EditNew/runEditTargets.ts @@ -5,7 +5,7 @@ import { } from "@cursorless/common"; import { zip } from "lodash"; import { performEditsAndUpdateSelectionsWithBehavior } from "../../core/updateSelections/updateSelections"; -import { Graph } from "../../typings/Types"; +import { Graph } from "../../typings/Graph"; import { EditTarget, State } from "./EditNew.types"; /** diff --git a/src/actions/EditNew/runInsertLineAfterTargets.ts b/packages/cursorless-engine/actions/EditNew/runInsertLineAfterTargets.ts similarity index 97% rename from src/actions/EditNew/runInsertLineAfterTargets.ts rename to packages/cursorless-engine/actions/EditNew/runInsertLineAfterTargets.ts index 96fd5bb330..aeb1d3665d 100644 --- a/src/actions/EditNew/runInsertLineAfterTargets.ts +++ b/packages/cursorless-engine/actions/EditNew/runInsertLineAfterTargets.ts @@ -1,6 +1,6 @@ import { EditableTextEditor } from "@cursorless/common"; import { callFunctionAndUpdateRanges } from "../../core/updateSelections/updateSelections"; -import { Graph } from "../../typings/Types"; +import { Graph } from "../../typings/Graph"; import { EditTarget, State } from "./EditNew.types"; /** diff --git a/src/actions/EditNew/runNotebookCellTargets.ts b/packages/cursorless-engine/actions/EditNew/runNotebookCellTargets.ts similarity index 91% rename from src/actions/EditNew/runNotebookCellTargets.ts rename to packages/cursorless-engine/actions/EditNew/runNotebookCellTargets.ts index 2873b8123c..21f84790e4 100644 --- a/src/actions/EditNew/runNotebookCellTargets.ts +++ b/packages/cursorless-engine/actions/EditNew/runNotebookCellTargets.ts @@ -1,8 +1,8 @@ import { Selection } from "@cursorless/common"; -import ide from "../../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../../singletons/ide.singleton"; import { NotebookCellPositionTarget } from "../../processTargets/targets"; import { Target } from "../../typings/target.types"; -import { Graph } from "../../typings/Types"; +import { Graph } from "../../typings/Graph"; import { createThatMark, ensureSingleTarget } from "../../util/targetUtils"; import { ActionReturnValue } from "../actions.types"; diff --git a/src/actions/ExecuteCommand.ts b/packages/cursorless-engine/actions/ExecuteCommand.ts similarity index 93% rename from src/actions/ExecuteCommand.ts rename to packages/cursorless-engine/actions/ExecuteCommand.ts index b9418816b3..4519f8f165 100644 --- a/src/actions/ExecuteCommand.ts +++ b/packages/cursorless-engine/actions/ExecuteCommand.ts @@ -1,6 +1,6 @@ -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { Action, ActionReturnValue } from "./actions.types"; import { CallbackAction } from "./CallbackAction"; diff --git a/src/actions/Find.ts b/packages/cursorless-engine/actions/Find.ts similarity index 89% rename from src/actions/Find.ts rename to packages/cursorless-engine/actions/Find.ts index 7c71e5959a..792521b3b8 100644 --- a/src/actions/Find.ts +++ b/packages/cursorless-engine/actions/Find.ts @@ -1,7 +1,7 @@ import { showWarning } from "@cursorless/common"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { ensureSingleTarget } from "../util/targetUtils"; import { Action, ActionReturnValue } from "./actions.types"; diff --git a/src/actions/FollowLink.ts b/packages/cursorless-engine/actions/FollowLink.ts similarity index 83% rename from src/actions/FollowLink.ts rename to packages/cursorless-engine/actions/FollowLink.ts index 42d602a330..4ee0a39890 100644 --- a/src/actions/FollowLink.ts +++ b/packages/cursorless-engine/actions/FollowLink.ts @@ -1,7 +1,7 @@ -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { FlashStyle } from "@cursorless/common"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { createThatMark, ensureSingleTarget, diff --git a/packages/cursorless-engine/actions/GenerateSnippet/.eslintrc.json b/packages/cursorless-engine/actions/GenerateSnippet/.eslintrc.json new file mode 100644 index 0000000000..36c19f5203 --- /dev/null +++ b/packages/cursorless-engine/actions/GenerateSnippet/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/actions/GenerateSnippet/GenerateSnippet.ts b/packages/cursorless-engine/actions/GenerateSnippet/GenerateSnippet.ts similarity index 96% rename from src/actions/GenerateSnippet/GenerateSnippet.ts rename to packages/cursorless-engine/actions/GenerateSnippet/GenerateSnippet.ts index cae43c5f1c..a763c89959 100644 --- a/src/actions/GenerateSnippet/GenerateSnippet.ts +++ b/packages/cursorless-engine/actions/GenerateSnippet/GenerateSnippet.ts @@ -1,10 +1,8 @@ -import { Range } from "@cursorless/common"; -import { FlashStyle } from "../../libs/common/ide/types/FlashDescriptor"; -import ide from "../../libs/cursorless-engine/singletons/ide.singleton"; +import { FlashStyle, isTesting, Range } from "@cursorless/common"; import { Offsets } from "../../processTargets/modifiers/surroundingPair/types"; -import isTesting from "../../testUtil/isTesting"; +import { ide } from "../../singletons/ide.singleton"; import { Target } from "../../typings/target.types"; -import { Graph } from "../../typings/Types"; +import { Graph } from "../../typings/Graph"; import { ensureSingleTarget, flashTargets } from "../../util/targetUtils"; import { Action, ActionReturnValue } from "../actions.types"; import { constructSnippetBody } from "./constructSnippetBody"; diff --git a/src/actions/GenerateSnippet/Substituter.ts b/packages/cursorless-engine/actions/GenerateSnippet/Substituter.ts similarity index 100% rename from src/actions/GenerateSnippet/Substituter.ts rename to packages/cursorless-engine/actions/GenerateSnippet/Substituter.ts diff --git a/src/actions/GenerateSnippet/constructSnippetBody.ts b/packages/cursorless-engine/actions/GenerateSnippet/constructSnippetBody.ts similarity index 100% rename from src/actions/GenerateSnippet/constructSnippetBody.ts rename to packages/cursorless-engine/actions/GenerateSnippet/constructSnippetBody.ts diff --git a/src/actions/GenerateSnippet/editText.ts b/packages/cursorless-engine/actions/GenerateSnippet/editText.ts similarity index 100% rename from src/actions/GenerateSnippet/editText.ts rename to packages/cursorless-engine/actions/GenerateSnippet/editText.ts diff --git a/src/actions/GenerateSnippet/index.ts b/packages/cursorless-engine/actions/GenerateSnippet/index.ts similarity index 100% rename from src/actions/GenerateSnippet/index.ts rename to packages/cursorless-engine/actions/GenerateSnippet/index.ts diff --git a/src/actions/GenerateSnippet/openNewSnippetFile.ts b/packages/cursorless-engine/actions/GenerateSnippet/openNewSnippetFile.ts similarity index 90% rename from src/actions/GenerateSnippet/openNewSnippetFile.ts rename to packages/cursorless-engine/actions/GenerateSnippet/openNewSnippetFile.ts index 0965804967..17cdf1de23 100644 --- a/src/actions/GenerateSnippet/openNewSnippetFile.ts +++ b/packages/cursorless-engine/actions/GenerateSnippet/openNewSnippetFile.ts @@ -1,6 +1,6 @@ import { open } from "fs/promises"; import { join } from "path"; -import ide from "../../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../../singletons/ide.singleton"; /** * Creates a new empty file in the users snippet directory and opens an editor diff --git a/src/actions/GetText.ts b/packages/cursorless-engine/actions/GetText.ts similarity index 81% rename from src/actions/GetText.ts rename to packages/cursorless-engine/actions/GetText.ts index 5028144af2..f901dc2a21 100644 --- a/src/actions/GetText.ts +++ b/packages/cursorless-engine/actions/GetText.ts @@ -1,7 +1,7 @@ -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { FlashStyle } from "@cursorless/common"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { ensureSingleTarget, flashTargets } from "../util/targetUtils"; import { Action, ActionReturnValue } from "./actions.types"; diff --git a/src/actions/Highlight.ts b/packages/cursorless-engine/actions/Highlight.ts similarity index 91% rename from src/actions/Highlight.ts rename to packages/cursorless-engine/actions/Highlight.ts index 57f76eaa8c..42cec5487b 100644 --- a/src/actions/Highlight.ts +++ b/packages/cursorless-engine/actions/Highlight.ts @@ -1,7 +1,7 @@ import { HighlightId } from "@cursorless/common"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { runOnTargetsForEachEditor, toGeneralizedRange, diff --git a/src/actions/InsertCopy.ts b/packages/cursorless-engine/actions/InsertCopy.ts similarity index 94% rename from src/actions/InsertCopy.ts rename to packages/cursorless-engine/actions/InsertCopy.ts index e20cef3d8a..b8b421f854 100644 --- a/src/actions/InsertCopy.ts +++ b/packages/cursorless-engine/actions/InsertCopy.ts @@ -1,4 +1,5 @@ import { + FlashStyle, RangeExpansionBehavior, Selection, TextEditor, @@ -6,11 +7,10 @@ import { } from "@cursorless/common"; import { flatten, zip } from "lodash"; import { performEditsAndUpdateSelectionsWithBehavior } from "../core/updateSelections/updateSelections"; -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; import { containingLineIfUntypedStage } from "../processTargets/modifiers/commonContainingScopeIfUntypedStages"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { setSelectionsWithoutFocusingEditor } from "../util/setSelectionsAndFocusEditor"; import { createThatMark, runOnTargetsForEachEditor } from "../util/targetUtils"; import { Action, ActionReturnValue } from "./actions.types"; diff --git a/src/actions/InsertEmptyLines.ts b/packages/cursorless-engine/actions/InsertEmptyLines.ts similarity index 91% rename from src/actions/InsertEmptyLines.ts rename to packages/cursorless-engine/actions/InsertEmptyLines.ts index 8288e0ad21..1b9c7557ef 100644 --- a/src/actions/InsertEmptyLines.ts +++ b/packages/cursorless-engine/actions/InsertEmptyLines.ts @@ -1,11 +1,9 @@ -import { Range, Selection } from "@cursorless/common"; +import { FlashStyle, Range, Selection, toLineRange } from "@cursorless/common"; import { flatten } from "lodash"; import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections"; -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import { toLineRange } from "../libs/common/types/GeneralizedRange"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { setSelectionsWithoutFocusingEditor } from "../util/setSelectionsAndFocusEditor"; import { runOnTargetsForEachEditor } from "../util/targetUtils"; import { Action, ActionReturnValue } from "./actions.types"; diff --git a/src/actions/InsertSnippet.ts b/packages/cursorless-engine/actions/InsertSnippet.ts similarity index 93% rename from src/actions/InsertSnippet.ts rename to packages/cursorless-engine/actions/InsertSnippet.ts index ce07f16da4..4ab4dfd0b3 100644 --- a/src/actions/InsertSnippet.ts +++ b/packages/cursorless-engine/actions/InsertSnippet.ts @@ -4,17 +4,17 @@ import { callFunctionAndUpdateSelectionInfos, getSelectionInfo, } from "../core/updateSelections/updateSelections"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { ModifyIfUntypedExplicitStage } from "../processTargets/modifiers/ConditionalModifierStages"; -import { Snippet, SnippetDefinition } from "../typings/snippet"; +import { Snippet, SnippetDefinition } from "../snippets/snippet.types"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { findMatchingSnippetDefinitionStrict, transformSnippetVariables, -} from "../util/snippet"; +} from "../snippets/snippet"; import { ensureSingleEditor } from "../util/targetUtils"; -import { SnippetParser } from "../vendor/snippet/snippetParser"; +import { SnippetParser } from "../snippets/vendor/vscodeSnippet/snippetParser"; import { Action, ActionReturnValue } from "./actions.types"; export default class InsertSnippet implements Action { diff --git a/src/actions/PasteFromClipboard.ts b/packages/cursorless-engine/actions/PasteFromClipboard.ts similarity index 91% rename from src/actions/PasteFromClipboard.ts rename to packages/cursorless-engine/actions/PasteFromClipboard.ts index 45b1feb3d1..a2744b52ad 100644 --- a/src/actions/PasteFromClipboard.ts +++ b/packages/cursorless-engine/actions/PasteFromClipboard.ts @@ -1,12 +1,15 @@ -import { RangeExpansionBehavior, toCharacterRange } from "@cursorless/common"; +import { + FlashStyle, + RangeExpansionBehavior, + toCharacterRange, +} from "@cursorless/common"; import { callFunctionAndUpdateSelections, callFunctionAndUpdateSelectionsWithBehavior, } from "../core/updateSelections/updateSelections"; -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { setSelectionsWithoutFocusingEditor } from "../util/setSelectionsAndFocusEditor"; import { ensureSingleEditor } from "../util/targetUtils"; import { ActionReturnValue } from "./actions.types"; diff --git a/src/actions/Remove.ts b/packages/cursorless-engine/actions/Remove.ts similarity index 90% rename from src/actions/Remove.ts rename to packages/cursorless-engine/actions/Remove.ts index 98d2d542b9..bd9f1f599e 100644 --- a/src/actions/Remove.ts +++ b/packages/cursorless-engine/actions/Remove.ts @@ -1,10 +1,10 @@ +import { FlashStyle } from "@cursorless/common"; import { flatten, zip } from "lodash"; import { performEditsAndUpdateRanges } from "../core/updateSelections/updateSelections"; -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; import { RawSelectionTarget } from "../processTargets/targets"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { flashTargets, runOnTargetsForEachEditor } from "../util/targetUtils"; import { unifyRemovalTargets } from "../util/unifyRanges"; import { Action, ActionReturnValue } from "./actions.types"; diff --git a/src/actions/Replace.ts b/packages/cursorless-engine/actions/Replace.ts similarity index 91% rename from src/actions/Replace.ts rename to packages/cursorless-engine/actions/Replace.ts index 24277e0ab9..d0ad855b6d 100644 --- a/src/actions/Replace.ts +++ b/packages/cursorless-engine/actions/Replace.ts @@ -1,9 +1,9 @@ +import { FlashStyle } from "@cursorless/common"; import { flatten, zip } from "lodash"; import { performEditsAndUpdateSelections } from "../core/updateSelections/updateSelections"; -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { flashTargets, runForEachEditor } from "../util/targetUtils"; import { Action, ActionReturnValue } from "./actions.types"; diff --git a/src/actions/Rewrap.ts b/packages/cursorless-engine/actions/Rewrap.ts similarity index 91% rename from src/actions/Rewrap.ts rename to packages/cursorless-engine/actions/Rewrap.ts index cdbb6c144f..d674c03546 100644 --- a/src/actions/Rewrap.ts +++ b/packages/cursorless-engine/actions/Rewrap.ts @@ -1,9 +1,9 @@ +import { FlashStyle } from "@cursorless/common"; import { performEditsAndUpdateRanges } from "../core/updateSelections/updateSelections"; -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; import { containingSurroundingPairIfUntypedStage } from "../processTargets/modifiers/commonContainingScopeIfUntypedStages"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { createThatMark, flashTargets, diff --git a/src/actions/Scroll.ts b/packages/cursorless-engine/actions/Scroll.ts similarity index 88% rename from src/actions/Scroll.ts rename to packages/cursorless-engine/actions/Scroll.ts index d90a8eca8f..32220871ac 100644 --- a/src/actions/Scroll.ts +++ b/packages/cursorless-engine/actions/Scroll.ts @@ -1,10 +1,12 @@ -import { RevealLineAt } from "@cursorless/common"; -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import { toLineRange } from "../libs/common/types/GeneralizedRange"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { + FlashStyle, + groupBy, + RevealLineAt, + toLineRange, +} from "@cursorless/common"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; -import { groupBy } from "../util/itertools"; +import { Graph } from "../typings/Graph"; import { Action, ActionReturnValue } from "./actions.types"; class Scroll implements Action { diff --git a/src/actions/SetSelection.ts b/packages/cursorless-engine/actions/SetSelection.ts similarity index 91% rename from src/actions/SetSelection.ts rename to packages/cursorless-engine/actions/SetSelection.ts index fb7b6b9039..6b4120c8aa 100644 --- a/src/actions/SetSelection.ts +++ b/packages/cursorless-engine/actions/SetSelection.ts @@ -1,7 +1,7 @@ import { Selection } from "@cursorless/common"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { setSelectionsAndFocusEditor } from "../util/setSelectionsAndFocusEditor"; import { ensureSingleEditor } from "../util/targetUtils"; import { Action, ActionReturnValue } from "./actions.types"; diff --git a/src/actions/SimpleIdeCommandActions.ts b/packages/cursorless-engine/actions/SimpleIdeCommandActions.ts similarity index 97% rename from src/actions/SimpleIdeCommandActions.ts rename to packages/cursorless-engine/actions/SimpleIdeCommandActions.ts index 83b0518495..c14b6f8957 100644 --- a/src/actions/SimpleIdeCommandActions.ts +++ b/packages/cursorless-engine/actions/SimpleIdeCommandActions.ts @@ -1,7 +1,7 @@ import { CommandId, EditableTextEditor, Range } from "@cursorless/common"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { ActionReturnValue } from "./actions.types"; import { CallbackAction } from "./CallbackAction"; diff --git a/src/actions/Sort.ts b/packages/cursorless-engine/actions/Sort.ts similarity index 96% rename from src/actions/Sort.ts rename to packages/cursorless-engine/actions/Sort.ts index 7bd8bacfeb..06bfe24888 100644 --- a/src/actions/Sort.ts +++ b/packages/cursorless-engine/actions/Sort.ts @@ -1,6 +1,6 @@ import { shuffle } from "lodash"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { Action, ActionReturnValue } from "./actions.types"; abstract class SortBase implements Action { diff --git a/src/actions/ToggleBreakpoint.ts b/packages/cursorless-engine/actions/ToggleBreakpoint.ts similarity index 84% rename from src/actions/ToggleBreakpoint.ts rename to packages/cursorless-engine/actions/ToggleBreakpoint.ts index 2b8718a09f..fe2cf79b63 100644 --- a/src/actions/ToggleBreakpoint.ts +++ b/packages/cursorless-engine/actions/ToggleBreakpoint.ts @@ -1,11 +1,10 @@ -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import { BreakpointDescriptor } from "../libs/common/types/TextEditor"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { containingLineIfUntypedStage } from "../processTargets/modifiers/commonContainingScopeIfUntypedStages"; import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { flashTargets, runOnTargetsForEachEditor } from "../util/targetUtils"; import { Action, ActionReturnValue } from "./actions.types"; +import { BreakpointDescriptor, FlashStyle } from "@cursorless/common"; export default class ToggleBreakpoint implements Action { getFinalStages = () => [containingLineIfUntypedStage]; diff --git a/src/actions/Wrap.ts b/packages/cursorless-engine/actions/Wrap.ts similarity index 95% rename from src/actions/Wrap.ts rename to packages/cursorless-engine/actions/Wrap.ts index 7a035621fa..1717db2e42 100644 --- a/src/actions/Wrap.ts +++ b/packages/cursorless-engine/actions/Wrap.ts @@ -1,4 +1,5 @@ import { + FlashStyle, RangeExpansionBehavior, Selection, toCharacterRange, @@ -7,10 +8,10 @@ import { getSelectionInfo, performEditsAndUpdateFullSelectionInfos, } from "../core/updateSelections/updateSelections"; -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { Target } from "../typings/target.types"; -import { Edit, Graph } from "../typings/Types"; +import { Edit } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { FullSelectionInfo } from "../typings/updateSelections"; import { setSelectionsWithoutFocusingEditor } from "../util/setSelectionsAndFocusEditor"; import { runOnTargetsForEachEditor } from "../util/targetUtils"; diff --git a/src/actions/WrapWithSnippet.ts b/packages/cursorless-engine/actions/WrapWithSnippet.ts similarity index 91% rename from src/actions/WrapWithSnippet.ts rename to packages/cursorless-engine/actions/WrapWithSnippet.ts index 111900fb2b..43dddcca3f 100644 --- a/src/actions/WrapWithSnippet.ts +++ b/packages/cursorless-engine/actions/WrapWithSnippet.ts @@ -1,15 +1,15 @@ +import { FlashStyle } from "@cursorless/common"; import { callFunctionAndUpdateSelections } from "../core/updateSelections/updateSelections"; -import { FlashStyle } from "../libs/common/ide/types/FlashDescriptor"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; import { ModifyIfUntypedStage } from "../processTargets/modifiers/ConditionalModifierStages"; -import { Target } from "../typings/target.types"; -import { Graph } from "../typings/Types"; +import { ide } from "../singletons/ide.singleton"; import { findMatchingSnippetDefinitionStrict, transformSnippetVariables, -} from "../util/snippet"; +} from "../snippets/snippet"; +import { SnippetParser } from "../snippets/vendor/vscodeSnippet/snippetParser"; +import { Target } from "../typings/target.types"; +import { Graph } from "../typings/Graph"; import { ensureSingleEditor, flashTargets } from "../util/targetUtils"; -import { SnippetParser } from "../vendor/snippet/snippetParser"; import { Action, ActionReturnValue } from "./actions.types"; export default class WrapWithSnippet implements Action { diff --git a/src/actions/actions.types.ts b/packages/cursorless-engine/actions/actions.types.ts similarity index 96% rename from src/actions/actions.types.ts rename to packages/cursorless-engine/actions/actions.types.ts index 2120c7db64..eea5c1da7a 100644 --- a/src/actions/actions.types.ts +++ b/packages/cursorless-engine/actions/actions.types.ts @@ -1,7 +1,7 @@ import type { ModifierStage } from "../processTargets/PipelineStages.types"; import type { Target } from "../typings/target.types"; import type { SelectionWithEditor } from "../typings/Types"; -import type { ActionType } from "../core/commandRunner/typings/ActionCommand"; +import type { ActionType } from "@cursorless/common"; /** * To be returned by {@link Action.run} diff --git a/src/actions/index.ts b/packages/cursorless-engine/actions/index.ts similarity index 100% rename from src/actions/index.ts rename to packages/cursorless-engine/actions/index.ts diff --git a/src/libs/cursorless-engine/scopeHandlers/.eslintrc.json b/packages/cursorless-engine/core/.eslintrc.json similarity index 100% rename from src/libs/cursorless-engine/scopeHandlers/.eslintrc.json rename to packages/cursorless-engine/core/.eslintrc.json diff --git a/src/core/Cheatsheet.ts b/packages/cursorless-engine/core/Cheatsheet.ts similarity index 97% rename from src/core/Cheatsheet.ts rename to packages/cursorless-engine/core/Cheatsheet.ts index 7879d6ff63..61ef3e0b17 100644 --- a/src/core/Cheatsheet.ts +++ b/packages/cursorless-engine/core/Cheatsheet.ts @@ -3,7 +3,7 @@ import parse from "node-html-parser"; import path = require("path"); import produce from "immer"; import { sortBy } from "lodash"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; /** * The argument expected by the cheatsheet command. diff --git a/src/core/Debug.ts b/packages/cursorless-engine/core/Debug.ts similarity index 81% rename from src/core/Debug.ts rename to packages/cursorless-engine/core/Debug.ts index 7e0b5db811..a75b7ce1de 100644 --- a/src/core/Debug.ts +++ b/packages/cursorless-engine/core/Debug.ts @@ -1,13 +1,7 @@ -import { fromVscodeRange } from "@cursorless/vscode-common"; -import { - Disposable, - TextEditorSelectionChangeEvent, - window, - workspace, -} from "vscode"; +import { Disposable, TextEditorSelectionChangeEvent } from "@cursorless/common"; import { SyntaxNode, TreeCursor } from "web-tree-sitter"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; -import { Graph } from "../typings/Types"; +import { ide } from "../singletons/ide.singleton"; +import { Graph } from "../typings/Graph"; export default class Debug { private disposableConfiguration?: Disposable; @@ -33,9 +27,8 @@ export default class Debug { // Production mode. Enable based on user setting. case "production": this.evaluateSetting(); - this.disposableConfiguration = workspace.onDidChangeConfiguration( - this.evaluateSetting, - ); + this.disposableConfiguration = + ide().configuration.onDidChangeConfiguration(this.evaluateSetting); break; } } @@ -61,7 +54,7 @@ export default class Debug { private enableDebugLog() { this.active = true; - this.disposableSelection = window.onDidChangeTextEditorSelection( + this.disposableSelection = ide().onDidChangeTextEditorSelection( this.logBranchTypes, ); } @@ -75,9 +68,7 @@ export default class Debug { } private evaluateSetting() { - const debugEnabled = workspace - .getConfiguration("cursorless") - .get("debug")!; + const debugEnabled = ide().configuration.getOwnConfiguration("debug"); if (debugEnabled) { this.enableDebugLog(); } else { @@ -90,7 +81,7 @@ export default class Debug { try { node = this.graph.getNodeAtLocation( ide().activeTextEditor!.document, - fromVscodeRange(event.selections[0]), + event.selections[0], ); } catch (error) { return; diff --git a/src/core/HatAllocator.ts b/packages/cursorless-engine/core/HatAllocator.ts similarity index 92% rename from src/core/HatAllocator.ts rename to packages/cursorless-engine/core/HatAllocator.ts index 8af3c7af25..1e4a13d718 100644 --- a/src/core/HatAllocator.ts +++ b/packages/cursorless-engine/core/HatAllocator.ts @@ -1,7 +1,7 @@ -import type { Disposable } from "../libs/common/ide/types/ide.types"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; -import tokenGraphemeSplitter from "../libs/cursorless-engine/singletons/tokenGraphemeSplitter.singleton"; -import { Graph } from "../typings/Types"; +import type { Disposable } from "@cursorless/common"; +import { ide } from "../singletons/ide.singleton"; +import tokenGraphemeSplitter from "../singletons/tokenGraphemeSplitter.singleton"; +import { Graph } from "../typings/Graph"; import { allocateHats } from "../util/allocateHats"; import { TokenHat } from "../util/allocateHats/allocateHats"; import { IndividualHatMap } from "./IndividualHatMap"; diff --git a/src/core/HatTokenMap.ts b/packages/cursorless-engine/core/HatTokenMap.ts similarity index 97% rename from src/core/HatTokenMap.ts rename to packages/cursorless-engine/core/HatTokenMap.ts index cdd4c3d485..83f000e871 100644 --- a/src/core/HatTokenMap.ts +++ b/packages/cursorless-engine/core/HatTokenMap.ts @@ -1,6 +1,6 @@ import { hrtime } from "process"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; -import type { Graph } from "../typings/Types"; +import { ide } from "../singletons/ide.singleton"; +import { Graph } from "../typings/Graph"; import { TokenHat } from "../util/allocateHats/allocateHats"; import { abs } from "../util/bigint"; import { HatAllocator } from "./HatAllocator"; diff --git a/src/core/IndividualHatMap.ts b/packages/cursorless-engine/core/IndividualHatMap.ts similarity index 90% rename from src/core/IndividualHatMap.ts rename to packages/cursorless-engine/core/IndividualHatMap.ts index ddf0399095..dd0c462a94 100644 --- a/src/core/IndividualHatMap.ts +++ b/packages/cursorless-engine/core/IndividualHatMap.ts @@ -1,10 +1,10 @@ -import { getKey, TextDocument } from "@cursorless/common"; -import tokenGraphemeSplitter from "../libs/cursorless-engine/singletons/tokenGraphemeSplitter.singleton"; -import { Graph, Token } from "../typings/Types"; -import { HatStyleName } from "../libs/common/ide/types/hatStyles.types"; -import { TokenHat } from "../util/allocateHats/allocateHats"; +import { getKey, HatStyleName, TextDocument } from "@cursorless/common"; +import tokenGraphemeSplitter from "../singletons/tokenGraphemeSplitter.singleton"; +import { getMatcher } from "../tokenizer"; +import { Token } from "../typings/Types"; +import { Graph } from "../typings/Graph"; import { FullRangeInfo } from "../typings/updateSelections"; -import { getMatcher } from "../libs/cursorless-engine/tokenizer"; +import { TokenHat } from "../util/allocateHats/allocateHats"; export interface ReadOnlyHatMap { getEntries(): readonly [string, Token][]; diff --git a/src/core/Snippets.ts b/packages/cursorless-engine/core/Snippets.ts similarity index 96% rename from src/core/Snippets.ts rename to packages/cursorless-engine/core/Snippets.ts index d9280042de..775ecac737 100644 --- a/src/core/Snippets.ts +++ b/packages/cursorless-engine/core/Snippets.ts @@ -1,11 +1,10 @@ -import { showError } from "@cursorless/common"; +import { showError, walkFiles } from "@cursorless/common"; import { readFile, stat } from "fs/promises"; import { cloneDeep, max, merge } from "lodash"; import { join } from "path"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; -import { walkFiles } from "../testUtil/walkAsync"; -import { Snippet, SnippetMap } from "../typings/snippet"; -import { Graph } from "../typings/Types"; +import { ide } from "../singletons/ide.singleton"; +import { Snippet, SnippetMap } from "../snippets/snippet.types"; +import { Graph } from "../typings/Graph"; import { mergeStrict } from "../util/object"; const CURSORLESS_SNIPPETS_SUFFIX = ".cursorless-snippets"; diff --git a/src/core/ThatMark.ts b/packages/cursorless-engine/core/ThatMark.ts similarity index 100% rename from src/core/ThatMark.ts rename to packages/cursorless-engine/core/ThatMark.ts diff --git a/packages/cursorless-engine/core/commandRunner/.eslintrc.json b/packages/cursorless-engine/core/commandRunner/.eslintrc.json new file mode 100644 index 0000000000..36c19f5203 --- /dev/null +++ b/packages/cursorless-engine/core/commandRunner/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/core/commandRunner/CommandRunner.ts b/packages/cursorless-engine/core/commandRunner/CommandRunner.ts similarity index 95% rename from src/core/commandRunner/CommandRunner.ts rename to packages/cursorless-engine/core/commandRunner/CommandRunner.ts index a57648a3db..dbe65a4e6d 100644 --- a/src/core/commandRunner/CommandRunner.ts +++ b/packages/cursorless-engine/core/commandRunner/CommandRunner.ts @@ -1,25 +1,25 @@ -import { ActionType } from "./typings/ActionCommand"; -import ide from "../../libs/cursorless-engine/singletons/ide.singleton"; +import { ActionType } from "@cursorless/common"; +import { ide } from "../../singletons/ide.singleton"; import processTargets from "../../processTargets"; import { Target } from "../../typings/target.types"; import { - Graph, ProcessedTargetsContext, SelectionWithEditor, } from "../../typings/Types"; +import { Graph } from "../../typings/Graph"; import { isString } from "../../util/type"; import { canonicalizeAndValidateCommand, checkForOldInference, } from "../commandVersionUpgrades/canonicalizeAndValidateCommand"; -import { PartialTargetV0V1 } from "./typings/legacy/CommandV0V1.types"; +import { PartialTargetV0V1 } from "@cursorless/common"; import inferFullTargets from "../inferFullTargets"; import { ThatMark } from "../ThatMark"; -import { Command } from "./typings/command.types"; +import { Command } from "@cursorless/common"; import { selectionToThatTarget } from "./selectionToThatTarget"; // TODO: Do this using the graph once we migrate its dependencies onto the graph -export default class CommandRunner { +export class CommandRunner { constructor( private graph: Graph, private thatMark: ThatMark, diff --git a/src/core/commandRunner/selectionToThatTarget.ts b/packages/cursorless-engine/core/commandRunner/selectionToThatTarget.ts similarity index 100% rename from src/core/commandRunner/selectionToThatTarget.ts rename to packages/cursorless-engine/core/commandRunner/selectionToThatTarget.ts diff --git a/packages/cursorless-engine/core/commandVersionUpgrades/.eslintrc.json b/packages/cursorless-engine/core/commandVersionUpgrades/.eslintrc.json new file mode 100644 index 0000000000..36c19f5203 --- /dev/null +++ b/packages/cursorless-engine/core/commandVersionUpgrades/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/core/commandVersionUpgrades/canonicalizeActionName.ts b/packages/cursorless-engine/core/commandVersionUpgrades/canonicalizeActionName.ts similarity index 93% rename from src/core/commandVersionUpgrades/canonicalizeActionName.ts rename to packages/cursorless-engine/core/commandVersionUpgrades/canonicalizeActionName.ts index 57ff5c5d69..cbcf453d25 100644 --- a/src/core/commandVersionUpgrades/canonicalizeActionName.ts +++ b/packages/cursorless-engine/core/commandVersionUpgrades/canonicalizeActionName.ts @@ -1,4 +1,4 @@ -import { ActionType } from "../commandRunner/typings/ActionCommand"; +import { ActionType } from "@cursorless/common"; const actionAliasToCanonicalName: Record = { bring: "replaceWithTarget", diff --git a/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts b/packages/cursorless-engine/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts similarity index 89% rename from src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts rename to packages/cursorless-engine/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts index a0563cae20..707567df62 100644 --- a/src/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts +++ b/packages/cursorless-engine/core/commandVersionUpgrades/canonicalizeAndValidateCommand.ts @@ -1,27 +1,29 @@ -import { ActionType } from "../commandRunner/typings/ActionCommand"; -import { OutdatedExtensionError } from "../../errors"; -import { EnforceUndefined } from "../../libs/common/util/typeUtils"; -import ide from "../../libs/cursorless-engine/singletons/ide.singleton"; -import { Graph } from "../../typings/Types"; +import { + EnforceUndefined, + OutdatedExtensionError, + showWarning, +} from "@cursorless/common"; +import { ide } from "../../singletons/ide.singleton"; +import { Graph } from "../../typings/Graph"; import { getPartialPrimitiveTargets } from "../../util/getPrimitiveTargets"; +import { ActionType } from "@cursorless/common"; import { Command, CommandComplete, CommandLatest, LATEST_VERSION, -} from "../commandRunner/typings/command.types"; +} from "@cursorless/common"; import { Modifier, PartialTargetDescriptor, SimpleScopeTypeType, -} from "../commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; import canonicalizeActionName from "./canonicalizeActionName"; import canonicalizeTargets from "./canonicalizeTargets"; import { upgradeV0ToV1 } from "./upgradeV0ToV1"; import { upgradeV1ToV2 } from "./upgradeV1ToV2"; import { upgradeV2ToV3 } from "./upgradeV2ToV3"; import { upgradeV3ToV4 } from "./upgradeV3ToV4"; -import { showWarning } from "@cursorless/common"; /** * Given a command argument which comes from the client, normalize it so that it diff --git a/src/core/commandVersionUpgrades/canonicalizeTargets.ts b/packages/cursorless-engine/core/commandVersionUpgrades/canonicalizeTargets.ts similarity index 91% rename from src/core/commandVersionUpgrades/canonicalizeTargets.ts rename to packages/cursorless-engine/core/commandVersionUpgrades/canonicalizeTargets.ts index 729ec17f82..ee3b3f3430 100644 --- a/src/core/commandVersionUpgrades/canonicalizeTargets.ts +++ b/packages/cursorless-engine/core/commandVersionUpgrades/canonicalizeTargets.ts @@ -1,12 +1,12 @@ +import { HatStyleName } from "@cursorless/common"; import update from "immutability-helper"; import { flow } from "lodash"; +import { transformPartialPrimitiveTargets } from "../../util/getPrimitiveTargets"; import { PartialPrimitiveTargetDescriptor, PartialTargetDescriptor, SimpleScopeTypeType, -} from "../commandRunner/typings/PartialTargetDescriptor.types"; -import { transformPartialPrimitiveTargets } from "../../util/getPrimitiveTargets"; -import { HatStyleName } from "../../libs/common/ide/types/hatStyles.types"; +} from "@cursorless/common"; const SCOPE_TYPE_CANONICALIZATION_MAPPING: Record = { diff --git a/src/core/commandVersionUpgrades/upgradeV0ToV1/index.ts b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV0ToV1/index.ts similarity index 100% rename from src/core/commandVersionUpgrades/upgradeV0ToV1/index.ts rename to packages/cursorless-engine/core/commandVersionUpgrades/upgradeV0ToV1/index.ts diff --git a/src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts similarity index 51% rename from src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts rename to packages/cursorless-engine/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts index eeebb6e3dd..98973361d0 100644 --- a/src/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts +++ b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV0ToV1/upgradeV0ToV1.ts @@ -1,7 +1,4 @@ -import { - CommandV0, - CommandV1, -} from "../../commandRunner/typings/legacy/CommandV0V1.types"; +import { CommandV0, CommandV1 } from "@cursorless/common"; export function upgradeV0ToV1(command: CommandV0): CommandV1 { return { ...command, version: 1 }; diff --git a/src/core/commandVersionUpgrades/upgradeV1ToV2/index.ts b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV1ToV2/index.ts similarity index 100% rename from src/core/commandVersionUpgrades/upgradeV1ToV2/index.ts rename to packages/cursorless-engine/core/commandVersionUpgrades/upgradeV1ToV2/index.ts diff --git a/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts similarity index 82% rename from src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts rename to packages/cursorless-engine/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts index 986cc39c42..40a5e7c8c1 100644 --- a/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts +++ b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV1ToV2/upgradeStrictHere.ts @@ -1,5 +1,5 @@ import { isDeepStrictEqual } from "util"; -import { PartialPrimitiveTargetDescriptorV2 } from "../../commandRunner/typings/legacy/targetDescriptorV2.types"; +import { PartialPrimitiveTargetDescriptorV2 } from "@cursorless/common"; const STRICT_HERE = { type: "primitive", diff --git a/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts similarity index 94% rename from src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts rename to packages/cursorless-engine/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts index 74058b7fe6..e5ffdfa8e7 100644 --- a/src/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts +++ b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV1ToV2/upgradeV1ToV2.ts @@ -1,18 +1,18 @@ -import { ActionType } from "../../commandRunner/typings/ActionCommand"; -import { CommandV2 } from "../../commandRunner/typings/legacy/CommandV2.types"; +import { ActionType } from "@cursorless/common"; +import { CommandV2 } from "@cursorless/common"; import { ModifierV2, PartialPrimitiveTargetDescriptorV2, PartialRangeTargetDescriptorV2, PartialTargetDescriptorV2, SimpleScopeTypeTypeV2, -} from "../../commandRunner/typings/legacy/targetDescriptorV2.types"; +} from "@cursorless/common"; import { CommandV1, ModifierV0V1, PartialPrimitiveTargetV0V1, PartialTargetV0V1, -} from "../../commandRunner/typings/legacy/CommandV0V1.types"; +} from "@cursorless/common"; import { upgradeStrictHere } from "./upgradeStrictHere"; export function upgradeV1ToV2(command: CommandV1): CommandV2 { diff --git a/src/core/commandVersionUpgrades/upgradeV2ToV3/index.ts b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV2ToV3/index.ts similarity index 100% rename from src/core/commandVersionUpgrades/upgradeV2ToV3/index.ts rename to packages/cursorless-engine/core/commandVersionUpgrades/upgradeV2ToV3/index.ts diff --git a/src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts similarity index 91% rename from src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts rename to packages/cursorless-engine/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts index 9a602d5a8d..733c10548d 100644 --- a/src/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts +++ b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV2ToV3/upgradeV2ToV3.ts @@ -1,6 +1,6 @@ import { isEqual } from "lodash"; -import { CommandV2 } from "../../commandRunner/typings/legacy/CommandV2.types"; -import { CommandV3 } from "../../commandRunner/typings/legacy/CommandV3.types"; +import { CommandV2 } from "@cursorless/common"; +import { CommandV3 } from "@cursorless/common"; import { LineNumberMarkV3, MarkV3, @@ -11,7 +11,7 @@ import { PartialTargetDescriptorV3, RangeMarkV3, RangeModifierV3, -} from "../../commandRunner/typings/legacy/PartialTargetDescriptorV3.types"; +} from "@cursorless/common"; import { LineNumberMarkV2, LineNumberPositionV2, @@ -21,7 +21,7 @@ import { PartialPrimitiveTargetDescriptorV2, PartialTargetDescriptorV2, ScopeTypeV2, -} from "../../commandRunner/typings/legacy/targetDescriptorV2.types"; +} from "@cursorless/common"; export function upgradeV2ToV3(command: CommandV2): CommandV3 { return { diff --git a/src/core/commandVersionUpgrades/upgradeV3ToV4/index.ts b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV3ToV4/index.ts similarity index 100% rename from src/core/commandVersionUpgrades/upgradeV3ToV4/index.ts rename to packages/cursorless-engine/core/commandVersionUpgrades/upgradeV3ToV4/index.ts diff --git a/src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts similarity index 80% rename from src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts rename to packages/cursorless-engine/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts index c9d5f20c20..c616711cee 100644 --- a/src/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts +++ b/packages/cursorless-engine/core/commandVersionUpgrades/upgradeV3ToV4/upgradeV3ToV4.ts @@ -1,15 +1,15 @@ -import { CommandV4 } from "../../commandRunner/typings/CommandV4.types"; -import { CommandV3 } from "../../commandRunner/typings/legacy/CommandV3.types"; +import { CommandV4 } from "@cursorless/common"; +import { CommandV3 } from "@cursorless/common"; import { PartialPrimitiveTargetDescriptorV3, PartialTargetDescriptorV3, -} from "../../commandRunner/typings/legacy/PartialTargetDescriptorV3.types"; +} from "@cursorless/common"; import { ImplicitTargetDescriptor, PartialPrimitiveTargetDescriptor, PartialRangeTargetDescriptor, PartialTargetDescriptor, -} from "../../commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; export function upgradeV3ToV4(command: CommandV3): CommandV4 { return { diff --git a/src/core/inferFullTargets.ts b/packages/cursorless-engine/core/inferFullTargets.ts similarity index 99% rename from src/core/inferFullTargets.ts rename to packages/cursorless-engine/core/inferFullTargets.ts index bd48901192..92fe2176da 100644 --- a/src/core/inferFullTargets.ts +++ b/packages/cursorless-engine/core/inferFullTargets.ts @@ -7,7 +7,7 @@ import { PartialRangeTargetDescriptor, PartialTargetDescriptor, PositionModifier, -} from "./commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; import { PrimitiveTargetDescriptor, RangeTargetDescriptor, diff --git a/src/core/textFormatters.ts b/packages/cursorless-engine/core/textFormatters.ts similarity index 100% rename from src/core/textFormatters.ts rename to packages/cursorless-engine/core/textFormatters.ts diff --git a/packages/cursorless-engine/core/updateSelections/.eslintrc.json b/packages/cursorless-engine/core/updateSelections/.eslintrc.json new file mode 100644 index 0000000000..36c19f5203 --- /dev/null +++ b/packages/cursorless-engine/core/updateSelections/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/core/updateSelections/RangeUpdater.ts b/packages/cursorless-engine/core/updateSelections/RangeUpdater.ts similarity index 94% rename from src/core/updateSelections/RangeUpdater.ts rename to packages/cursorless-engine/core/updateSelections/RangeUpdater.ts index ddd2e70cd6..1e41fbeb69 100644 --- a/src/core/updateSelections/RangeUpdater.ts +++ b/packages/cursorless-engine/core/updateSelections/RangeUpdater.ts @@ -1,11 +1,11 @@ -import type { TextDocument } from "@cursorless/common"; -import { pull } from "lodash"; import type { + Disposable, + TextDocument, TextDocumentChangeEvent, TextDocumentContentChangeEvent, -} from "../../libs/common/ide/types/Events"; -import type { Disposable } from "../../libs/common/ide/types/ide.types"; -import ide from "../../libs/cursorless-engine/singletons/ide.singleton"; +} from "@cursorless/common"; +import { pull } from "lodash"; +import { ide } from "../../singletons/ide.singleton"; import type { Edit } from "../../typings/Types"; import { ExtendedTextDocumentChangeEvent, diff --git a/src/core/updateSelections/getOffsetsForDeleteOrReplace.ts b/packages/cursorless-engine/core/updateSelections/getOffsetsForDeleteOrReplace.ts similarity index 100% rename from src/core/updateSelections/getOffsetsForDeleteOrReplace.ts rename to packages/cursorless-engine/core/updateSelections/getOffsetsForDeleteOrReplace.ts diff --git a/src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts b/packages/cursorless-engine/core/updateSelections/getOffsetsForEmptyRangeInsert.ts similarity index 97% rename from src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts rename to packages/cursorless-engine/core/updateSelections/getOffsetsForEmptyRangeInsert.ts index 61463ac09f..5c92a3baee 100644 --- a/src/core/updateSelections/getOffsetsForEmptyRangeInsert.ts +++ b/packages/cursorless-engine/core/updateSelections/getOffsetsForEmptyRangeInsert.ts @@ -1,8 +1,5 @@ import { invariant } from "immutability-helper"; -import { - leftAnchored, - rightAnchored, -} from "../../libs/cursorless-engine/util/regex"; +import { leftAnchored, rightAnchored } from "../../util/regex"; import { ChangeEventInfo, FullRangeInfo, diff --git a/src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts b/packages/cursorless-engine/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts similarity index 98% rename from src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts rename to packages/cursorless-engine/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts index 306de52b35..d5f3c893ca 100644 --- a/src/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts +++ b/packages/cursorless-engine/core/updateSelections/getOffsetsForNonEmptyRangeInsert.ts @@ -1,8 +1,5 @@ import { invariant } from "immutability-helper"; -import { - leftAnchored, - rightAnchored, -} from "../../libs/cursorless-engine/util/regex"; +import { leftAnchored, rightAnchored } from "../../util/regex"; import { ChangeEventInfo, FullRangeInfo, diff --git a/src/core/updateSelections/getUpdatedText.ts b/packages/cursorless-engine/core/updateSelections/getUpdatedText.ts similarity index 100% rename from src/core/updateSelections/getUpdatedText.ts rename to packages/cursorless-engine/core/updateSelections/getUpdatedText.ts diff --git a/src/core/updateSelections/updateRangeInfos.ts b/packages/cursorless-engine/core/updateSelections/updateRangeInfos.ts similarity index 100% rename from src/core/updateSelections/updateRangeInfos.ts rename to packages/cursorless-engine/core/updateSelections/updateRangeInfos.ts diff --git a/src/core/updateSelections/updateSelections.ts b/packages/cursorless-engine/core/updateSelections/updateSelections.ts similarity index 100% rename from src/core/updateSelections/updateSelections.ts rename to packages/cursorless-engine/core/updateSelections/updateSelections.ts diff --git a/packages/cursorless-engine/index.ts b/packages/cursorless-engine/index.ts new file mode 100644 index 0000000000..ba1c582624 --- /dev/null +++ b/packages/cursorless-engine/index.ts @@ -0,0 +1,11 @@ +export * from "./testUtil/plainObjectToTarget"; +export * from "./core/commandRunner/CommandRunner"; +export * from "./util/makeGraph"; +export * from "./typings/Graph"; +export * from "./util/graphFactories"; +export * from "./singletons/ide.singleton"; +export * from "./core/Cheatsheet"; +export * from "./testUtil/takeSnapshot"; +export * from "./testCaseRecorder/TestCaseRecorder"; +export * from "./testCaseRecorder/TestCaseFixture"; +export * from "./core/ThatMark"; diff --git a/src/libs/cursorless-engine/singletons/.eslintrc.json b/packages/cursorless-engine/languages/.eslintrc.json similarity index 100% rename from src/libs/cursorless-engine/singletons/.eslintrc.json rename to packages/cursorless-engine/languages/.eslintrc.json diff --git a/src/languages/branchMatcher.ts b/packages/cursorless-engine/languages/branchMatcher.ts similarity index 100% rename from src/languages/branchMatcher.ts rename to packages/cursorless-engine/languages/branchMatcher.ts diff --git a/src/languages/clojure.ts b/packages/cursorless-engine/languages/clojure.ts similarity index 98% rename from src/languages/clojure.ts rename to packages/cursorless-engine/languages/clojure.ts index 174ed81375..b303b8e19d 100644 --- a/src/languages/clojure.ts +++ b/packages/cursorless-engine/languages/clojure.ts @@ -6,7 +6,7 @@ import { patternMatcher, } from "../util/nodeMatchers"; import { NodeMatcherAlternative, NodeFinder } from "../typings/Types"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { SyntaxNode } from "web-tree-sitter"; import { delimitedSelector } from "../util/nodeSelectors"; import { identity } from "lodash"; diff --git a/src/libs/cursorless-engine/languages/constants.ts b/packages/cursorless-engine/languages/constants.ts similarity index 100% rename from src/libs/cursorless-engine/languages/constants.ts rename to packages/cursorless-engine/languages/constants.ts diff --git a/src/languages/cpp.ts b/packages/cursorless-engine/languages/cpp.ts similarity index 97% rename from src/languages/cpp.ts rename to packages/cursorless-engine/languages/cpp.ts index 20cc475dfb..21266bb82c 100644 --- a/src/languages/cpp.ts +++ b/packages/cursorless-engine/languages/cpp.ts @@ -5,7 +5,7 @@ import { trailingMatcher, } from "../util/nodeMatchers"; import { NodeMatcherAlternative } from "../typings/Types"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; // Generated by the following command: // > curl https://raw.githubusercontent.com/tree-sitter/tree-sitter-cpp/master/src/node-types.json | jq '[.[] | select(.type == "compound_statement") | .children.types[].type] + [.[] | select(.type == "_statement") | .subtypes[].type]' diff --git a/src/languages/csharp.ts b/packages/cursorless-engine/languages/csharp.ts similarity index 98% rename from src/languages/csharp.ts rename to packages/cursorless-engine/languages/csharp.ts index d30f8f3d98..aa22921344 100644 --- a/src/languages/csharp.ts +++ b/packages/cursorless-engine/languages/csharp.ts @@ -11,7 +11,7 @@ import { patternMatcher, } from "../util/nodeMatchers"; import { NodeMatcherAlternative } from "../typings/Types"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { nodeFinder, typedNodeFinder } from "../util/nodeFinders"; import { delimitedSelector, childRangeSelector } from "../util/nodeSelectors"; import { patternFinder } from "../util/nodeFinders"; diff --git a/src/languages/elseIfExtractor.ts b/packages/cursorless-engine/languages/elseIfExtractor.ts similarity index 100% rename from src/languages/elseIfExtractor.ts rename to packages/cursorless-engine/languages/elseIfExtractor.ts diff --git a/src/languages/getNodeMatcher.ts b/packages/cursorless-engine/languages/getNodeMatcher.ts similarity index 92% rename from src/languages/getNodeMatcher.ts rename to packages/cursorless-engine/languages/getNodeMatcher.ts index 70b7849f39..ae9f6d0bac 100644 --- a/src/languages/getNodeMatcher.ts +++ b/packages/cursorless-engine/languages/getNodeMatcher.ts @@ -1,30 +1,30 @@ +import { UnsupportedLanguageError } from "@cursorless/common"; import { SyntaxNode } from "web-tree-sitter"; -import { notSupported } from "../util/nodeMatchers"; -import { selectionWithEditorFromRange } from "../util/selectionUtils"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { NodeMatcher, NodeMatcherValue, SelectionWithEditor, } from "../typings/Types"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; -import cpp from "./cpp"; +import { notSupported } from "../util/nodeMatchers"; +import { selectionWithEditorFromRange } from "../util/selectionUtils"; import clojure from "./clojure"; +import { SupportedLanguageId } from "./constants"; +import cpp from "./cpp"; import csharp from "./csharp"; -import { patternMatchers as json } from "./json"; -import { patternMatchers as typescript } from "./typescript"; -import java from "./java"; +import go from "./go"; import { patternMatchers as html } from "./html"; +import java from "./java"; +import { patternMatchers as json } from "./json"; +import latex from "./latex"; +import markdown from "./markdown"; import php from "./php"; import python from "./python"; -import markdown from "./markdown"; -import scala from "./scala"; -import { patternMatchers as scss } from "./scss"; -import go from "./go"; -import latex from "./latex"; import { patternMatchers as ruby } from "./ruby"; import rust from "./rust"; -import { UnsupportedLanguageError } from "../errors"; -import { SupportedLanguageId } from "../libs/cursorless-engine/languages/constants"; +import scala from "./scala"; +import { patternMatchers as scss } from "./scss"; +import { patternMatchers as typescript } from "./typescript"; export function getNodeMatcher( languageId: string, diff --git a/src/languages/getTextFragmentExtractor.ts b/packages/cursorless-engine/languages/getTextFragmentExtractor.ts similarity index 97% rename from src/languages/getTextFragmentExtractor.ts rename to packages/cursorless-engine/languages/getTextFragmentExtractor.ts index f157c71a8b..fa4961f443 100644 --- a/src/languages/getTextFragmentExtractor.ts +++ b/packages/cursorless-engine/languages/getTextFragmentExtractor.ts @@ -1,10 +1,9 @@ -import { Range } from "@cursorless/common"; +import { Range, UnsupportedLanguageError } from "@cursorless/common"; import { SyntaxNode } from "web-tree-sitter"; -import { UnsupportedLanguageError } from "../errors"; -import { SupportedLanguageId } from "../libs/cursorless-engine/languages/constants"; import { SelectionWithEditor } from "../typings/Types"; import { notSupported } from "../util/nodeMatchers"; import { getNodeInternalRange, getNodeRange } from "../util/nodeSelectors"; +import { SupportedLanguageId } from "./constants"; import { getNodeMatcher } from "./getNodeMatcher"; import { stringTextFragmentExtractor as htmlStringTextFragmentExtractor } from "./html"; import { stringTextFragmentExtractor as jsonStringTextFragmentExtractor } from "./json"; diff --git a/src/languages/go.ts b/packages/cursorless-engine/languages/go.ts similarity index 95% rename from src/languages/go.ts rename to packages/cursorless-engine/languages/go.ts index 25f3a14ab7..9aeb929524 100644 --- a/src/languages/go.ts +++ b/packages/cursorless-engine/languages/go.ts @@ -6,7 +6,7 @@ import { patternMatcher, } from "../util/nodeMatchers"; import { NodeMatcherAlternative } from "../typings/Types"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; // Generated by the following command: // `curl https://raw.githubusercontent.com/tree-sitter/tree-sitter-go/master/src/node-types.json | jq '[.[] | select(.type == "_statement" or .type == "_simple_statement") | .subtypes[].type]'` diff --git a/src/languages/html.ts b/packages/cursorless-engine/languages/html.ts similarity index 94% rename from src/languages/html.ts rename to packages/cursorless-engine/languages/html.ts index 313ba98c60..8d611ae745 100644 --- a/src/languages/html.ts +++ b/packages/cursorless-engine/languages/html.ts @@ -1,5 +1,5 @@ import { SyntaxNode } from "web-tree-sitter"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { NodeMatcherAlternative, SelectionWithEditor } from "../typings/Types"; import { typedNodeFinder } from "../util/nodeFinders"; import { diff --git a/src/languages/index.ts b/packages/cursorless-engine/languages/index.ts similarity index 56% rename from src/languages/index.ts rename to packages/cursorless-engine/languages/index.ts index d33d3d3fde..eb3b766e4c 100644 --- a/src/languages/index.ts +++ b/packages/cursorless-engine/languages/index.ts @@ -1,7 +1,4 @@ -import { - SupportedLanguageId, - supportedLanguageIds, -} from "../libs/cursorless-engine/languages/constants"; +import { SupportedLanguageId, supportedLanguageIds } from "./constants"; export function isLanguageSupported( languageId: string, diff --git a/src/languages/java.ts b/packages/cursorless-engine/languages/java.ts similarity index 97% rename from src/languages/java.ts rename to packages/cursorless-engine/languages/java.ts index 500cb74dd1..240dd0d3ce 100644 --- a/src/languages/java.ts +++ b/packages/cursorless-engine/languages/java.ts @@ -11,7 +11,7 @@ import { childRangeSelector } from "../util/nodeSelectors"; import { patternFinder } from "../util/nodeFinders"; import { NodeMatcherAlternative } from "../typings/Types"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; // Generated by the following command: // > curl https://raw.githubusercontent.com/tree-sitter/tree-sitter-java/master/src/node-types.json | jq '[.[] | select(.type == "statement" or .type == "declaration") | .subtypes[].type]' diff --git a/src/languages/json.ts b/packages/cursorless-engine/languages/json.ts similarity index 88% rename from src/languages/json.ts rename to packages/cursorless-engine/languages/json.ts index 8b939b40e8..cad1718a1e 100644 --- a/src/languages/json.ts +++ b/packages/cursorless-engine/languages/json.ts @@ -1,5 +1,5 @@ import { SyntaxNode } from "web-tree-sitter"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { NodeMatcherAlternative, SelectionWithEditor } from "../typings/Types"; import { createPatternMatchers, diff --git a/src/languages/latex.ts b/packages/cursorless-engine/languages/latex.ts similarity index 97% rename from src/languages/latex.ts rename to packages/cursorless-engine/languages/latex.ts index 3be0dbd416..9d3b601866 100644 --- a/src/languages/latex.ts +++ b/packages/cursorless-engine/languages/latex.ts @@ -1,6 +1,6 @@ import { Range, Selection, TextEditor } from "@cursorless/common"; import { SyntaxNode } from "web-tree-sitter"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { NodeMatcherAlternative, SelectionWithContext } from "../typings/Types"; import { patternFinder } from "../util/nodeFinders"; import { diff --git a/src/languages/markdown.ts b/packages/cursorless-engine/languages/markdown.ts similarity index 97% rename from src/languages/markdown.ts rename to packages/cursorless-engine/languages/markdown.ts index 1a54b715aa..12eaae4f1b 100644 --- a/src/languages/markdown.ts +++ b/packages/cursorless-engine/languages/markdown.ts @@ -1,7 +1,7 @@ import { Range, Selection, TextEditor } from "@cursorless/common"; import { SyntaxNode } from "web-tree-sitter"; import { getMatchesInRange } from "../util/getMatchesInRange"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { NodeFinder, NodeMatcherAlternative, diff --git a/src/languages/php.ts b/packages/cursorless-engine/languages/php.ts similarity index 97% rename from src/languages/php.ts rename to packages/cursorless-engine/languages/php.ts index 71a1921d97..b86a3cac0e 100644 --- a/src/languages/php.ts +++ b/packages/cursorless-engine/languages/php.ts @@ -1,6 +1,6 @@ import { Selection, TextEditor } from "@cursorless/common"; import { SyntaxNode } from "web-tree-sitter"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { NodeMatcherAlternative, SelectionWithContext, diff --git a/src/languages/python.ts b/packages/cursorless-engine/languages/python.ts similarity index 97% rename from src/languages/python.ts rename to packages/cursorless-engine/languages/python.ts index b50566500e..f108c58cd0 100644 --- a/src/languages/python.ts +++ b/packages/cursorless-engine/languages/python.ts @@ -1,6 +1,6 @@ import { Selection } from "@cursorless/common"; import { SyntaxNode } from "web-tree-sitter"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { NodeFinder, NodeMatcherAlternative } from "../typings/Types"; import { argumentNodeFinder, patternFinder } from "../util/nodeFinders"; import { diff --git a/src/languages/ruby.ts b/packages/cursorless-engine/languages/ruby.ts similarity index 98% rename from src/languages/ruby.ts rename to packages/cursorless-engine/languages/ruby.ts index 4666b88f82..7e97858653 100644 --- a/src/languages/ruby.ts +++ b/packages/cursorless-engine/languages/ruby.ts @@ -10,7 +10,7 @@ import { trailingMatcher, } from "../util/nodeMatchers"; import { NodeMatcherAlternative, SelectionWithEditor } from "../typings/Types"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { SyntaxNode } from "web-tree-sitter"; import { getNodeRange } from "../util/nodeSelectors"; import { patternFinder } from "../util/nodeFinders"; diff --git a/src/languages/rust.ts b/packages/cursorless-engine/languages/rust.ts similarity index 98% rename from src/languages/rust.ts rename to packages/cursorless-engine/languages/rust.ts index b2c49148ed..9462ea07ce 100644 --- a/src/languages/rust.ts +++ b/packages/cursorless-engine/languages/rust.ts @@ -1,6 +1,6 @@ import { TextEditor } from "@cursorless/common"; import { SyntaxNode } from "web-tree-sitter"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { NodeMatcherAlternative, SelectionWithContext } from "../typings/Types"; import { patternFinder } from "../util/nodeFinders"; import { diff --git a/src/languages/scala.ts b/packages/cursorless-engine/languages/scala.ts similarity index 97% rename from src/languages/scala.ts rename to packages/cursorless-engine/languages/scala.ts index 0c718e2111..81ac8efca1 100644 --- a/src/languages/scala.ts +++ b/packages/cursorless-engine/languages/scala.ts @@ -1,4 +1,4 @@ -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { NodeMatcherAlternative } from "../typings/Types"; import { patternFinder } from "../util/nodeFinders"; import { diff --git a/src/languages/scss.ts b/packages/cursorless-engine/languages/scss.ts similarity index 98% rename from src/languages/scss.ts rename to packages/cursorless-engine/languages/scss.ts index 200b627f78..abb4504e0b 100644 --- a/src/languages/scss.ts +++ b/packages/cursorless-engine/languages/scss.ts @@ -1,5 +1,5 @@ import { SyntaxNode } from "web-tree-sitter"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { NodeMatcherAlternative, NodeMatcherValue, diff --git a/src/languages/ternaryBranchMatcher.ts b/packages/cursorless-engine/languages/ternaryBranchMatcher.ts similarity index 100% rename from src/languages/ternaryBranchMatcher.ts rename to packages/cursorless-engine/languages/ternaryBranchMatcher.ts diff --git a/src/languages/typescript.ts b/packages/cursorless-engine/languages/typescript.ts similarity index 98% rename from src/languages/typescript.ts rename to packages/cursorless-engine/languages/typescript.ts index 1877bfb0f1..2decb5c742 100644 --- a/src/languages/typescript.ts +++ b/packages/cursorless-engine/languages/typescript.ts @@ -1,5 +1,5 @@ import { SyntaxNode } from "web-tree-sitter"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { NodeMatcher, NodeMatcherAlternative, diff --git a/src/libs/cursorless-engine/test/.eslintrc.json b/packages/cursorless-engine/processTargets/.eslintrc.json similarity index 100% rename from src/libs/cursorless-engine/test/.eslintrc.json rename to packages/cursorless-engine/processTargets/.eslintrc.json diff --git a/src/processTargets/PipelineStages.types.ts b/packages/cursorless-engine/processTargets/PipelineStages.types.ts similarity index 100% rename from src/processTargets/PipelineStages.types.ts rename to packages/cursorless-engine/processTargets/PipelineStages.types.ts diff --git a/src/processTargets/getMarkStage.ts b/packages/cursorless-engine/processTargets/getMarkStage.ts similarity index 91% rename from src/processTargets/getMarkStage.ts rename to packages/cursorless-engine/processTargets/getMarkStage.ts index bc7d642366..6a7be867d2 100644 --- a/src/processTargets/getMarkStage.ts +++ b/packages/cursorless-engine/processTargets/getMarkStage.ts @@ -1,4 +1,4 @@ -import { Mark } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { Mark } from "@cursorless/common"; import CursorStage from "./marks/CursorStage"; import DecoratedSymbolStage from "./marks/DecoratedSymbolStage"; import LineNumberStage from "./marks/LineNumberStage"; diff --git a/src/processTargets/getModifierStage.ts b/packages/cursorless-engine/processTargets/getModifierStage.ts similarity index 96% rename from src/processTargets/getModifierStage.ts rename to packages/cursorless-engine/processTargets/getModifierStage.ts index 2043a8234a..8385bbcc8f 100644 --- a/src/processTargets/getModifierStage.ts +++ b/packages/cursorless-engine/processTargets/getModifierStage.ts @@ -1,4 +1,4 @@ -import { Modifier } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { Modifier } from "@cursorless/common"; import CascadingStage from "./modifiers/CascadingStage"; import { ContainingScopeStage } from "./modifiers/ContainingScopeStage"; import { EveryScopeStage } from "./modifiers/EveryScopeStage"; diff --git a/src/processTargets/index.ts b/packages/cursorless-engine/processTargets/index.ts similarity index 100% rename from src/processTargets/index.ts rename to packages/cursorless-engine/processTargets/index.ts diff --git a/packages/cursorless-engine/processTargets/marks/.eslintrc.json b/packages/cursorless-engine/processTargets/marks/.eslintrc.json new file mode 100644 index 0000000000..36c19f5203 --- /dev/null +++ b/packages/cursorless-engine/processTargets/marks/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/processTargets/marks/CursorStage.ts b/packages/cursorless-engine/processTargets/marks/CursorStage.ts similarity index 87% rename from src/processTargets/marks/CursorStage.ts rename to packages/cursorless-engine/processTargets/marks/CursorStage.ts index 5c9dc491cf..7619542cde 100644 --- a/src/processTargets/marks/CursorStage.ts +++ b/packages/cursorless-engine/processTargets/marks/CursorStage.ts @@ -1,5 +1,5 @@ import type { Target } from "../../typings/target.types"; -import type { CursorMark } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import type { CursorMark } from "@cursorless/common"; import type { ProcessedTargetsContext } from "../../typings/Types"; import type { MarkStage } from "../PipelineStages.types"; import { UntypedTarget } from "../targets"; diff --git a/src/processTargets/marks/DecoratedSymbolStage.ts b/packages/cursorless-engine/processTargets/marks/DecoratedSymbolStage.ts similarity index 88% rename from src/processTargets/marks/DecoratedSymbolStage.ts rename to packages/cursorless-engine/processTargets/marks/DecoratedSymbolStage.ts index 58c4c2a78b..f7aa68fc88 100644 --- a/src/processTargets/marks/DecoratedSymbolStage.ts +++ b/packages/cursorless-engine/processTargets/marks/DecoratedSymbolStage.ts @@ -1,5 +1,5 @@ import { Target } from "../../typings/target.types"; -import { DecoratedSymbolMark } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { DecoratedSymbolMark } from "@cursorless/common"; import { ProcessedTargetsContext } from "../../typings/Types"; import { MarkStage } from "../PipelineStages.types"; import { UntypedTarget } from "../targets"; diff --git a/src/processTargets/marks/ImplicitStage.ts b/packages/cursorless-engine/processTargets/marks/ImplicitStage.ts similarity index 100% rename from src/processTargets/marks/ImplicitStage.ts rename to packages/cursorless-engine/processTargets/marks/ImplicitStage.ts diff --git a/src/processTargets/marks/LineNumberStage.ts b/packages/cursorless-engine/processTargets/marks/LineNumberStage.ts similarity index 94% rename from src/processTargets/marks/LineNumberStage.ts rename to packages/cursorless-engine/processTargets/marks/LineNumberStage.ts index 1585c27167..26a8a2bff2 100644 --- a/src/processTargets/marks/LineNumberStage.ts +++ b/packages/cursorless-engine/processTargets/marks/LineNumberStage.ts @@ -1,8 +1,5 @@ import { TextEditor } from "@cursorless/common"; -import type { - LineNumberMark, - LineNumberType, -} from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import type { LineNumberMark, LineNumberType } from "@cursorless/common"; import type { ProcessedTargetsContext } from "../../typings/Types"; import { createLineTarget } from "../modifiers/scopeHandlers"; import type { MarkStage } from "../PipelineStages.types"; diff --git a/src/processTargets/marks/NothingStage.ts b/packages/cursorless-engine/processTargets/marks/NothingStage.ts similarity index 71% rename from src/processTargets/marks/NothingStage.ts rename to packages/cursorless-engine/processTargets/marks/NothingStage.ts index fddcffefc6..fa43106fbc 100644 --- a/src/processTargets/marks/NothingStage.ts +++ b/packages/cursorless-engine/processTargets/marks/NothingStage.ts @@ -1,5 +1,5 @@ import { Target } from "../../typings/target.types"; -import { NothingMark } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { NothingMark } from "@cursorless/common"; import { MarkStage } from "../PipelineStages.types"; export default class implements MarkStage { diff --git a/src/processTargets/marks/RangeMarkStage.ts b/packages/cursorless-engine/processTargets/marks/RangeMarkStage.ts similarity index 91% rename from src/processTargets/marks/RangeMarkStage.ts rename to packages/cursorless-engine/processTargets/marks/RangeMarkStage.ts index 4461c1b551..357088303c 100644 --- a/src/processTargets/marks/RangeMarkStage.ts +++ b/packages/cursorless-engine/processTargets/marks/RangeMarkStage.ts @@ -1,5 +1,5 @@ import { Target } from "../../typings/target.types"; -import { RangeMark } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { RangeMark } from "@cursorless/common"; import { ProcessedTargetsContext } from "../../typings/Types"; import getMarkStage from "../getMarkStage"; import { MarkStage } from "../PipelineStages.types"; diff --git a/src/processTargets/marks/ThatStage.ts b/packages/cursorless-engine/processTargets/marks/ThatStage.ts similarity index 86% rename from src/processTargets/marks/ThatStage.ts rename to packages/cursorless-engine/processTargets/marks/ThatStage.ts index d18df84c19..cbe2cd4c20 100644 --- a/src/processTargets/marks/ThatStage.ts +++ b/packages/cursorless-engine/processTargets/marks/ThatStage.ts @@ -1,8 +1,5 @@ import { Target } from "../../typings/target.types"; -import { - SourceMark, - ThatMark, -} from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SourceMark, ThatMark } from "@cursorless/common"; import { ProcessedTargetsContext } from "../../typings/Types"; import { MarkStage } from "../PipelineStages.types"; diff --git a/packages/cursorless-engine/processTargets/modifiers/.eslintrc.json b/packages/cursorless-engine/processTargets/modifiers/.eslintrc.json new file mode 100644 index 0000000000..36c19f5203 --- /dev/null +++ b/packages/cursorless-engine/processTargets/modifiers/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/processTargets/modifiers/CascadingStage.ts b/packages/cursorless-engine/processTargets/modifiers/CascadingStage.ts similarity index 91% rename from src/processTargets/modifiers/CascadingStage.ts rename to packages/cursorless-engine/processTargets/modifiers/CascadingStage.ts index 1136bf7b9a..ee586e8c33 100644 --- a/src/processTargets/modifiers/CascadingStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/CascadingStage.ts @@ -1,5 +1,5 @@ import { Target } from "../../typings/target.types"; -import { CascadingModifier } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { CascadingModifier } from "@cursorless/common"; import { ProcessedTargetsContext } from "../../typings/Types"; import getModifierStage from "../getModifierStage"; import { ModifierStage } from "../PipelineStages.types"; diff --git a/src/processTargets/modifiers/ConditionalModifierStages.ts b/packages/cursorless-engine/processTargets/modifiers/ConditionalModifierStages.ts similarity index 95% rename from src/processTargets/modifiers/ConditionalModifierStages.ts rename to packages/cursorless-engine/processTargets/modifiers/ConditionalModifierStages.ts index cf2f7b0c64..6da3b294c2 100644 --- a/src/processTargets/modifiers/ConditionalModifierStages.ts +++ b/packages/cursorless-engine/processTargets/modifiers/ConditionalModifierStages.ts @@ -1,7 +1,4 @@ -import { - Modifier, - ModifyIfUntypedModifier, -} from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { Modifier, ModifyIfUntypedModifier } from "@cursorless/common"; import { Target } from "../../typings/target.types"; import { ProcessedTargetsContext } from "../../typings/Types"; import getModifierStage from "../getModifierStage"; diff --git a/src/processTargets/modifiers/ContainingScopeStage.ts b/packages/cursorless-engine/processTargets/modifiers/ContainingScopeStage.ts similarity index 95% rename from src/processTargets/modifiers/ContainingScopeStage.ts rename to packages/cursorless-engine/processTargets/modifiers/ContainingScopeStage.ts index cc5116c77c..d440d4cc99 100644 --- a/src/processTargets/modifiers/ContainingScopeStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/ContainingScopeStage.ts @@ -1,10 +1,10 @@ -import { Position, TextEditor } from "@cursorless/common"; -import { NoContainingScopeError } from "../../errors"; +import { + NoContainingScopeError, + Position, + TextEditor, +} from "@cursorless/common"; +import type { ContainingScopeModifier, Direction } from "@cursorless/common"; import type { Target } from "../../typings/target.types"; -import type { - ContainingScopeModifier, - Direction, -} from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; import type { ProcessedTargetsContext } from "../../typings/Types"; import type { ModifierStage } from "../PipelineStages.types"; import { constructScopeRangeTarget } from "./constructScopeRangeTarget"; diff --git a/src/processTargets/modifiers/EveryScopeStage.ts b/packages/cursorless-engine/processTargets/modifiers/EveryScopeStage.ts similarity index 94% rename from src/processTargets/modifiers/EveryScopeStage.ts rename to packages/cursorless-engine/processTargets/modifiers/EveryScopeStage.ts index 20a350ee34..6f8f18b8dc 100644 --- a/src/processTargets/modifiers/EveryScopeStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/EveryScopeStage.ts @@ -1,7 +1,6 @@ -import { Range } from "@cursorless/common"; -import { NoContainingScopeError } from "../../errors"; +import { NoContainingScopeError, Range } from "@cursorless/common"; +import type { EveryScopeModifier } from "@cursorless/common"; import type { Target } from "../../typings/target.types"; -import type { EveryScopeModifier } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; import type { ProcessedTargetsContext } from "../../typings/Types"; import getModifierStage from "../getModifierStage"; import type { ModifierStage } from "../PipelineStages.types"; diff --git a/src/processTargets/modifiers/FilterStages.ts b/packages/cursorless-engine/processTargets/modifiers/FilterStages.ts similarity index 91% rename from src/processTargets/modifiers/FilterStages.ts rename to packages/cursorless-engine/processTargets/modifiers/FilterStages.ts index 10fa29d05f..c5e1937716 100644 --- a/src/processTargets/modifiers/FilterStages.ts +++ b/packages/cursorless-engine/processTargets/modifiers/FilterStages.ts @@ -2,7 +2,7 @@ import type { Target } from "../../typings/target.types"; import type { KeepContentFilterModifier, KeepEmptyFilterModifier, -} from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; import type { ProcessedTargetsContext } from "../../typings/Types"; import type { ModifierStage } from "../PipelineStages.types"; diff --git a/src/processTargets/modifiers/HeadTailStage.ts b/packages/cursorless-engine/processTargets/modifiers/HeadTailStage.ts similarity index 94% rename from src/processTargets/modifiers/HeadTailStage.ts rename to packages/cursorless-engine/processTargets/modifiers/HeadTailStage.ts index 69857a5aef..6ebcf9574b 100644 --- a/src/processTargets/modifiers/HeadTailStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/HeadTailStage.ts @@ -1,9 +1,6 @@ import { Range } from "@cursorless/common"; import { Target } from "../../typings/target.types"; -import { - HeadTailModifier, - Modifier, -} from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { HeadTailModifier, Modifier } from "@cursorless/common"; import { ProcessedTargetsContext } from "../../typings/Types"; import { ModifierStage } from "../PipelineStages.types"; import { diff --git a/src/processTargets/modifiers/InteriorStage.ts b/packages/cursorless-engine/processTargets/modifiers/InteriorStage.ts similarity index 93% rename from src/processTargets/modifiers/InteriorStage.ts rename to packages/cursorless-engine/processTargets/modifiers/InteriorStage.ts index 91382e366a..bae32098f1 100644 --- a/src/processTargets/modifiers/InteriorStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/InteriorStage.ts @@ -2,7 +2,7 @@ import { Target } from "../../typings/target.types"; import { ExcludeInteriorModifier, InteriorOnlyModifier, -} from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; import { ProcessedTargetsContext } from "../../typings/Types"; import { ModifierStage } from "../PipelineStages.types"; import { containingSurroundingPairIfUntypedStage } from "./commonContainingScopeIfUntypedStages"; diff --git a/packages/cursorless-engine/processTargets/modifiers/ItemStage/.eslintrc.json b/packages/cursorless-engine/processTargets/modifiers/ItemStage/.eslintrc.json new file mode 100644 index 0000000000..0630343c42 --- /dev/null +++ b/packages/cursorless-engine/processTargets/modifiers/ItemStage/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/processTargets/modifiers/ItemStage/ItemStage.ts b/packages/cursorless-engine/processTargets/modifiers/ItemStage/ItemStage.ts similarity index 96% rename from src/processTargets/modifiers/ItemStage/ItemStage.ts rename to packages/cursorless-engine/processTargets/modifiers/ItemStage/ItemStage.ts index a1b8c00cbf..a510758b2a 100644 --- a/src/processTargets/modifiers/ItemStage/ItemStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/ItemStage/ItemStage.ts @@ -1,11 +1,10 @@ -import { Range, TextEditor } from "@cursorless/common"; -import { NoContainingScopeError } from "../../../errors"; -import { Target } from "../../../typings/target.types"; +import { NoContainingScopeError, Range, TextEditor } from "@cursorless/common"; import { ContainingScopeModifier, EveryScopeModifier, SimpleScopeTypeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; +import { Target } from "../../../typings/target.types"; import { ProcessedTargetsContext } from "../../../typings/Types"; import { getInsertionDelimiter } from "../../../util/nodeSelectors"; import { getRangeLength } from "../../../util/rangeUtils"; diff --git a/src/processTargets/modifiers/ItemStage/getIterationScope.ts b/packages/cursorless-engine/processTargets/modifiers/ItemStage/getIterationScope.ts similarity index 100% rename from src/processTargets/modifiers/ItemStage/getIterationScope.ts rename to packages/cursorless-engine/processTargets/modifiers/ItemStage/getIterationScope.ts diff --git a/src/processTargets/modifiers/ItemStage/index.ts b/packages/cursorless-engine/processTargets/modifiers/ItemStage/index.ts similarity index 100% rename from src/processTargets/modifiers/ItemStage/index.ts rename to packages/cursorless-engine/processTargets/modifiers/ItemStage/index.ts diff --git a/src/processTargets/modifiers/ItemStage/tokenizeRange.ts b/packages/cursorless-engine/processTargets/modifiers/ItemStage/tokenizeRange.ts similarity index 100% rename from src/processTargets/modifiers/ItemStage/tokenizeRange.ts rename to packages/cursorless-engine/processTargets/modifiers/ItemStage/tokenizeRange.ts diff --git a/src/processTargets/modifiers/LeadingTrailingStages.ts b/packages/cursorless-engine/processTargets/modifiers/LeadingTrailingStages.ts similarity index 92% rename from src/processTargets/modifiers/LeadingTrailingStages.ts rename to packages/cursorless-engine/processTargets/modifiers/LeadingTrailingStages.ts index 8c58d08127..b448497b30 100644 --- a/src/processTargets/modifiers/LeadingTrailingStages.ts +++ b/packages/cursorless-engine/processTargets/modifiers/LeadingTrailingStages.ts @@ -1,8 +1,5 @@ import { Target } from "../../typings/target.types"; -import { - LeadingModifier, - TrailingModifier, -} from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { LeadingModifier, TrailingModifier } from "@cursorless/common"; import { ProcessedTargetsContext } from "../../typings/Types"; import { ModifierStage } from "../PipelineStages.types"; import { containingTokenIfUntypedStage } from "./commonContainingScopeIfUntypedStages"; diff --git a/src/processTargets/modifiers/OrdinalScopeStage.ts b/packages/cursorless-engine/processTargets/modifiers/OrdinalScopeStage.ts similarity index 89% rename from src/processTargets/modifiers/OrdinalScopeStage.ts rename to packages/cursorless-engine/processTargets/modifiers/OrdinalScopeStage.ts index 96301036e6..d885e6923a 100644 --- a/src/processTargets/modifiers/OrdinalScopeStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/OrdinalScopeStage.ts @@ -1,5 +1,5 @@ import { Target } from "../../typings/target.types"; -import { OrdinalScopeModifier } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { OrdinalScopeModifier } from "@cursorless/common"; import { ProcessedTargetsContext } from "../../typings/Types"; import { ModifierStage } from "../PipelineStages.types"; import { diff --git a/src/processTargets/modifiers/PositionStage.ts b/packages/cursorless-engine/processTargets/modifiers/PositionStage.ts similarity index 81% rename from src/processTargets/modifiers/PositionStage.ts rename to packages/cursorless-engine/processTargets/modifiers/PositionStage.ts index f052b8d749..99ea6c3d4e 100644 --- a/src/processTargets/modifiers/PositionStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/PositionStage.ts @@ -1,5 +1,5 @@ import { Target } from "../../typings/target.types"; -import { PositionModifier } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { PositionModifier } from "@cursorless/common"; import { ProcessedTargetsContext } from "../../typings/Types"; import { ModifierStage } from "../PipelineStages.types"; diff --git a/src/processTargets/modifiers/RangeModifierStage.ts b/packages/cursorless-engine/processTargets/modifiers/RangeModifierStage.ts similarity index 91% rename from src/processTargets/modifiers/RangeModifierStage.ts rename to packages/cursorless-engine/processTargets/modifiers/RangeModifierStage.ts index 80cbc65304..25e1d59f13 100644 --- a/src/processTargets/modifiers/RangeModifierStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/RangeModifierStage.ts @@ -1,5 +1,5 @@ import { Target } from "../../typings/target.types"; -import { RangeModifier } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { RangeModifier } from "@cursorless/common"; import { ProcessedTargetsContext } from "../../typings/Types"; import getModifierStage from "../getModifierStage"; import { ModifierStage } from "../PipelineStages.types"; diff --git a/src/processTargets/modifiers/RawSelectionStage.ts b/packages/cursorless-engine/processTargets/modifiers/RawSelectionStage.ts similarity index 84% rename from src/processTargets/modifiers/RawSelectionStage.ts rename to packages/cursorless-engine/processTargets/modifiers/RawSelectionStage.ts index b5f1c9f06d..f4dcc1c19a 100644 --- a/src/processTargets/modifiers/RawSelectionStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/RawSelectionStage.ts @@ -1,5 +1,5 @@ import type { Target } from "../../typings/target.types"; -import type { RawSelectionModifier } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import type { RawSelectionModifier } from "@cursorless/common"; import type { ProcessedTargetsContext } from "../../typings/Types"; import type { ModifierStage } from "../PipelineStages.types"; import { RawSelectionTarget } from "../targets"; diff --git a/src/processTargets/modifiers/RelativeExclusiveScopeStage.ts b/packages/cursorless-engine/processTargets/modifiers/RelativeExclusiveScopeStage.ts similarity index 96% rename from src/processTargets/modifiers/RelativeExclusiveScopeStage.ts rename to packages/cursorless-engine/processTargets/modifiers/RelativeExclusiveScopeStage.ts index 1a9d073667..3886c01ee5 100644 --- a/src/processTargets/modifiers/RelativeExclusiveScopeStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/RelativeExclusiveScopeStage.ts @@ -1,5 +1,5 @@ import type { Target } from "../../typings/target.types"; -import type { RelativeScopeModifier } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import type { RelativeScopeModifier } from "@cursorless/common"; import type { ProcessedTargetsContext } from "../../typings/Types"; import type { ModifierStage } from "../PipelineStages.types"; import { constructScopeRangeTarget } from "./constructScopeRangeTarget"; diff --git a/src/processTargets/modifiers/RelativeInclusiveScopeStage.ts b/packages/cursorless-engine/processTargets/modifiers/RelativeInclusiveScopeStage.ts similarity index 95% rename from src/processTargets/modifiers/RelativeInclusiveScopeStage.ts rename to packages/cursorless-engine/processTargets/modifiers/RelativeInclusiveScopeStage.ts index 8c060d1e0f..ecceb2da2b 100644 --- a/src/processTargets/modifiers/RelativeInclusiveScopeStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/RelativeInclusiveScopeStage.ts @@ -1,10 +1,6 @@ -import { Range, TextEditor } from "@cursorless/common"; -import { NoContainingScopeError } from "../../errors"; +import { NoContainingScopeError, Range, TextEditor } from "@cursorless/common"; +import type { Direction, RelativeScopeModifier } from "@cursorless/common"; import type { Target } from "../../typings/target.types"; -import type { - Direction, - RelativeScopeModifier, -} from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; import type { ProcessedTargetsContext } from "../../typings/Types"; import type { ModifierStage } from "../PipelineStages.types"; import { constructScopeRangeTarget } from "./constructScopeRangeTarget"; diff --git a/src/processTargets/modifiers/RelativeScopeStage.ts b/packages/cursorless-engine/processTargets/modifiers/RelativeScopeStage.ts similarity index 91% rename from src/processTargets/modifiers/RelativeScopeStage.ts rename to packages/cursorless-engine/processTargets/modifiers/RelativeScopeStage.ts index a5b999dddc..6d92d84957 100644 --- a/src/processTargets/modifiers/RelativeScopeStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/RelativeScopeStage.ts @@ -1,5 +1,5 @@ import type { Target } from "../../typings/target.types"; -import type { RelativeScopeModifier } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import type { RelativeScopeModifier } from "@cursorless/common"; import type { ProcessedTargetsContext } from "../../typings/Types"; import type { ModifierStage } from "../PipelineStages.types"; import RelativeExclusiveScopeStage from "./RelativeExclusiveScopeStage"; diff --git a/src/processTargets/modifiers/SurroundingPairStage.ts b/packages/cursorless-engine/processTargets/modifiers/SurroundingPairStage.ts similarity index 96% rename from src/processTargets/modifiers/SurroundingPairStage.ts rename to packages/cursorless-engine/processTargets/modifiers/SurroundingPairStage.ts index b2d2232b8e..849ae7c17c 100644 --- a/src/processTargets/modifiers/SurroundingPairStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/SurroundingPairStage.ts @@ -2,7 +2,7 @@ import type { Target } from "../../typings/target.types"; import type { ContainingSurroundingPairModifier, SurroundingPairModifier, -} from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; import type { ProcessedTargetsContext } from "../../typings/Types"; import type { ModifierStage } from "../PipelineStages.types"; import { SurroundingPairTarget } from "../targets"; diff --git a/src/processTargets/modifiers/TooFewScopesError.ts b/packages/cursorless-engine/processTargets/modifiers/TooFewScopesError.ts similarity index 100% rename from src/processTargets/modifiers/TooFewScopesError.ts rename to packages/cursorless-engine/processTargets/modifiers/TooFewScopesError.ts diff --git a/src/processTargets/modifiers/commonContainingScopeIfUntypedStages.ts b/packages/cursorless-engine/processTargets/modifiers/commonContainingScopeIfUntypedStages.ts similarity index 100% rename from src/processTargets/modifiers/commonContainingScopeIfUntypedStages.ts rename to packages/cursorless-engine/processTargets/modifiers/commonContainingScopeIfUntypedStages.ts diff --git a/src/processTargets/modifiers/constructScopeRangeTarget.ts b/packages/cursorless-engine/processTargets/modifiers/constructScopeRangeTarget.ts similarity index 100% rename from src/processTargets/modifiers/constructScopeRangeTarget.ts rename to packages/cursorless-engine/processTargets/modifiers/constructScopeRangeTarget.ts diff --git a/src/processTargets/modifiers/getContainingScope.ts b/packages/cursorless-engine/processTargets/modifiers/getContainingScope.ts similarity index 88% rename from src/processTargets/modifiers/getContainingScope.ts rename to packages/cursorless-engine/processTargets/modifiers/getContainingScope.ts index 812533cf1f..dc8ae05169 100644 --- a/src/processTargets/modifiers/getContainingScope.ts +++ b/packages/cursorless-engine/processTargets/modifiers/getContainingScope.ts @@ -1,5 +1,5 @@ import { TextEditor, Position } from "@cursorless/common"; -import { Direction } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { Direction } from "@cursorless/common"; import { ScopeHandler } from "./scopeHandlers/scopeHandler.types"; /** diff --git a/src/processTargets/modifiers/getLegacyScopeStage.ts b/packages/cursorless-engine/processTargets/modifiers/getLegacyScopeStage.ts similarity index 96% rename from src/processTargets/modifiers/getLegacyScopeStage.ts rename to packages/cursorless-engine/processTargets/modifiers/getLegacyScopeStage.ts index e41e2a7d7e..7ab223c599 100644 --- a/src/processTargets/modifiers/getLegacyScopeStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/getLegacyScopeStage.ts @@ -2,7 +2,7 @@ import type { ContainingScopeModifier, EveryScopeModifier, SurroundingPairModifier, -} from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; import type { ModifierStage } from "../PipelineStages.types"; import ItemStage from "./ItemStage"; import BoundedNonWhitespaceSequenceStage from "./scopeTypeStages/BoundedNonWhitespaceStage"; diff --git a/src/processTargets/modifiers/relativeScopeLegacy.ts b/packages/cursorless-engine/processTargets/modifiers/relativeScopeLegacy.ts similarity index 98% rename from src/processTargets/modifiers/relativeScopeLegacy.ts rename to packages/cursorless-engine/processTargets/modifiers/relativeScopeLegacy.ts index fb7e6cc661..90a6d366cb 100644 --- a/src/processTargets/modifiers/relativeScopeLegacy.ts +++ b/packages/cursorless-engine/processTargets/modifiers/relativeScopeLegacy.ts @@ -1,7 +1,7 @@ import { Range } from "@cursorless/common"; import { findLastIndex } from "lodash"; import { Target } from "../../typings/target.types"; -import { RelativeScopeModifier } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { RelativeScopeModifier } from "@cursorless/common"; import { ProcessedTargetsContext } from "../../typings/Types"; import { UntypedTarget } from "../targets"; import { diff --git a/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/.eslintrc.json b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/.eslintrc.json new file mode 100644 index 0000000000..0630343c42 --- /dev/null +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts similarity index 98% rename from src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts index 8ce2924892..6e0c5fbd57 100644 --- a/src/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/BaseScopeHandler.ts @@ -1,9 +1,6 @@ // eslint-disable-next-line @typescript-eslint/no-unused-vars, unused-imports/no-unused-imports import { Position, Range, TextEditor } from "@cursorless/common"; -import type { - Direction, - ScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import type { Direction, ScopeType } from "@cursorless/common"; import type { TargetScope } from "./scope.types"; import type { ScopeHandler, diff --git a/src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts similarity index 90% rename from src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts index 55b55a93d1..65399edd9a 100644 --- a/src/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/CharacterScopeHandler.ts @@ -1,12 +1,9 @@ import { imap } from "itertools"; import { NestedScopeHandler } from "."; import { generateMatchesInRange } from "../../../util/getMatchesInRange"; -import { - Direction, - ScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; -import { getMatcher } from "../../../libs/cursorless-engine/tokenizer"; -import { testRegex } from "../../../libs/cursorless-engine/util/regex"; +import { Direction, ScopeType } from "@cursorless/common"; +import { getMatcher } from "../../../tokenizer"; +import { testRegex } from "../../../util/regex"; import { PlainTarget } from "../../targets"; import type { TargetScope } from "./scope.types"; diff --git a/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts similarity index 89% rename from src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts index 1d0237a040..e97c515d80 100644 --- a/src/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/DocumentScopeHandler.ts @@ -1,8 +1,5 @@ import { TextEditor, Position } from "@cursorless/common"; -import { - Direction, - ScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { Direction, ScopeType } from "@cursorless/common"; import { DocumentTarget } from "../../targets"; import BaseScopeHandler from "./BaseScopeHandler"; import { TargetScope } from "./scope.types"; diff --git a/src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts similarity index 85% rename from src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts index b17060d237..d184159502 100644 --- a/src/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/IdentifierScopeHandler.ts @@ -1,7 +1,7 @@ import { imap } from "itertools"; import { NestedScopeHandler } from "."; -import { getMatcher } from "../../../libs/cursorless-engine/tokenizer"; -import { Direction } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { getMatcher } from "../../../tokenizer"; +import { Direction } from "@cursorless/common"; import { generateMatchesInRange } from "../../../util/getMatchesInRange"; import { TokenTarget } from "../../targets"; import type { TargetScope } from "./scope.types"; diff --git a/src/processTargets/modifiers/scopeHandlers/IteratorInfo.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/IteratorInfo.ts similarity index 100% rename from src/processTargets/modifiers/scopeHandlers/IteratorInfo.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/IteratorInfo.ts diff --git a/src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts similarity index 94% rename from src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts index 22735a104c..c9064ed5eb 100644 --- a/src/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/LineScopeHandler.ts @@ -1,8 +1,5 @@ import { Position, Range, TextEditor } from "@cursorless/common"; -import { - Direction, - ScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { Direction, ScopeType } from "@cursorless/common"; import { LineTarget } from "../../targets"; import BaseScopeHandler from "./BaseScopeHandler"; import type { TargetScope } from "./scope.types"; diff --git a/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts similarity index 96% rename from src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts index bf4392af53..0847b552b9 100644 --- a/src/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/NestedScopeHandler.ts @@ -1,10 +1,7 @@ import { Position, TextEditor } from "@cursorless/common"; import { flatmap } from "itertools"; import { getScopeHandler } from "."; -import type { - Direction, - ScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import type { Direction, ScopeType } from "@cursorless/common"; import BaseScopeHandler from "./BaseScopeHandler"; import type { TargetScope } from "./scope.types"; import type { diff --git a/src/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts similarity index 84% rename from src/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts index c98877ca82..a32d192245 100644 --- a/src/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/NotHierarchicalScopeError.ts @@ -1,4 +1,4 @@ -import { ScopeType } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { ScopeType } from "@cursorless/common"; import { scopeTypeToString } from "./scopeTypeUtil"; /** diff --git a/src/processTargets/modifiers/scopeHandlers/OneOfScopeHandler.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/OneOfScopeHandler.ts similarity index 94% rename from src/processTargets/modifiers/scopeHandlers/OneOfScopeHandler.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/OneOfScopeHandler.ts index 5b369aca7e..84f1519b8d 100644 --- a/src/processTargets/modifiers/scopeHandlers/OneOfScopeHandler.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/OneOfScopeHandler.ts @@ -1,9 +1,6 @@ import { getScopeHandler } from "."; import { TextEditor, Position } from "@cursorless/common"; -import { - Direction, - OneOfScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { Direction, OneOfScopeType } from "@cursorless/common"; import BaseScopeHandler from "./BaseScopeHandler"; import { compareTargetScopes } from "./compareTargetScopes"; import { getInitialIteratorInfos, advanceIteratorsUntil } from "./IteratorInfo"; diff --git a/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts similarity index 95% rename from src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts index 2074813d4b..1c9419f329 100644 --- a/src/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/ParagraphScopeHandler.ts @@ -5,10 +5,7 @@ import { TextEditor, TextLine, } from "@cursorless/common"; -import { - Direction, - ScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { Direction, ScopeType } from "@cursorless/common"; import { ParagraphTarget } from "../../targets"; import BaseScopeHandler from "./BaseScopeHandler"; import { fitRangeToLineContent } from "./LineScopeHandler"; diff --git a/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler.ts similarity index 85% rename from src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler.ts index 36ff37fc47..cfa2e5d594 100644 --- a/src/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/SurroundingPairScopeHandler.ts @@ -1,8 +1,5 @@ import { Position, TextEditor } from "@cursorless/common"; -import { - Direction, - SurroundingPairScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { Direction, SurroundingPairScopeType } from "@cursorless/common"; import BaseScopeHandler from "./BaseScopeHandler"; import { TargetScope } from "./scope.types"; import { ScopeIteratorRequirements } from "./scopeHandler.types"; diff --git a/src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts similarity index 86% rename from src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts index 0d7e9c5d31..aa95a4dc5c 100644 --- a/src/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/TokenScopeHandler.ts @@ -1,9 +1,9 @@ import { imap } from "itertools"; import { NestedScopeHandler } from "."; import { generateMatchesInRange } from "../../../util/getMatchesInRange"; -import { Direction } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; -import { getMatcher } from "../../../libs/cursorless-engine/tokenizer"; -import { testRegex } from "../../../libs/cursorless-engine/util/regex"; +import { Direction } from "@cursorless/common"; +import { getMatcher } from "../../../tokenizer"; +import { testRegex } from "../../../util/regex"; import { TokenTarget } from "../../targets"; import type { TargetScope } from "./scope.types"; diff --git a/src/processTargets/modifiers/scopeHandlers/WordScopeHandler.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/WordScopeHandler.ts similarity index 93% rename from src/processTargets/modifiers/scopeHandlers/WordScopeHandler.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/WordScopeHandler.ts index 1c5c3280ab..90edb49c46 100644 --- a/src/processTargets/modifiers/scopeHandlers/WordScopeHandler.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/WordScopeHandler.ts @@ -1,7 +1,7 @@ import { Range, TextEditor } from "@cursorless/common"; import { NestedScopeHandler } from "."; -import WordTokenizer from "../../../libs/cursorless-engine/scopeHandlers/WordScopeHandler/WordTokenizer"; -import { Direction } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import WordTokenizer from "../../../scopeHandlers/WordScopeHandler/WordTokenizer"; +import { Direction } from "@cursorless/common"; import { SubTokenWordTarget } from "../../targets"; import type { TargetScope } from "./scope.types"; diff --git a/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts similarity index 97% rename from src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts index 511d2191f1..099d7d7ce9 100644 --- a/src/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/compareTargetScopes.ts @@ -1,5 +1,5 @@ import { Position, Range } from "@cursorless/common"; -import { Direction } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { Direction } from "@cursorless/common"; import { TargetScope } from "./scope.types"; /** diff --git a/src/processTargets/modifiers/scopeHandlers/getScopeHandler.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/getScopeHandler.ts similarity index 94% rename from src/processTargets/modifiers/scopeHandlers/getScopeHandler.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/getScopeHandler.ts index a91f8adb5a..e368a6fab8 100644 --- a/src/processTargets/modifiers/scopeHandlers/getScopeHandler.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/getScopeHandler.ts @@ -8,7 +8,7 @@ import { OneOfScopeHandler, ParagraphScopeHandler, } from "."; -import type { ScopeType } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import type { ScopeType } from "@cursorless/common"; import type { ScopeHandler } from "./scopeHandler.types"; /** diff --git a/src/processTargets/modifiers/scopeHandlers/getScopeRelativeToPosition.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/getScopeRelativeToPosition.ts similarity index 91% rename from src/processTargets/modifiers/scopeHandlers/getScopeRelativeToPosition.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/getScopeRelativeToPosition.ts index f9033ac8be..b5a07661fe 100644 --- a/src/processTargets/modifiers/scopeHandlers/getScopeRelativeToPosition.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/getScopeRelativeToPosition.ts @@ -1,5 +1,5 @@ import { Position, TextEditor } from "@cursorless/common"; -import { Direction } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { Direction } from "@cursorless/common"; import { OutOfRangeError } from "../targetSequenceUtils"; import { TargetScope } from "./scope.types"; import { ScopeHandler } from "./scopeHandler.types"; diff --git a/src/processTargets/modifiers/scopeHandlers/getScopesOverlappingRange.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/getScopesOverlappingRange.ts similarity index 100% rename from src/processTargets/modifiers/scopeHandlers/getScopesOverlappingRange.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/getScopesOverlappingRange.ts diff --git a/src/processTargets/modifiers/scopeHandlers/index.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/index.ts similarity index 100% rename from src/processTargets/modifiers/scopeHandlers/index.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/index.ts diff --git a/src/processTargets/modifiers/scopeHandlers/scope.types.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/scope.types.ts similarity index 100% rename from src/processTargets/modifiers/scopeHandlers/scope.types.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/scope.types.ts diff --git a/src/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts similarity index 97% rename from src/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts index 3609e18bd6..a827edada0 100644 --- a/src/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/scopeHandler.types.ts @@ -1,8 +1,5 @@ import type { Position, TextEditor } from "@cursorless/common"; -import type { - Direction, - ScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import type { Direction, ScopeType } from "@cursorless/common"; import type { TargetScope } from "./scope.types"; /** diff --git a/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts new file mode 100644 index 0000000000..95f6ad3c60 --- /dev/null +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts @@ -0,0 +1,5 @@ +import { ScopeType } from "@cursorless/common"; + +export function scopeTypeToString(scopeType: ScopeType) { + return scopeType.type; +} diff --git a/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts similarity index 96% rename from src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts index 69cd767272..1bb5706602 100644 --- a/src/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeHandlers/shouldYieldScope.ts @@ -1,5 +1,5 @@ import { Position } from "@cursorless/common"; -import { Direction } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { Direction } from "@cursorless/common"; import { strictlyContains } from "../../../util/rangeUtils"; import { compareTargetScopes } from "./compareTargetScopes"; import { TargetScope } from "./scope.types"; diff --git a/packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/.eslintrc.json b/packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/.eslintrc.json new file mode 100644 index 0000000000..0630343c42 --- /dev/null +++ b/packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/processTargets/modifiers/scopeTypeStages/BoundedNonWhitespaceStage.ts b/packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/BoundedNonWhitespaceStage.ts similarity index 93% rename from src/processTargets/modifiers/scopeTypeStages/BoundedNonWhitespaceStage.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/BoundedNonWhitespaceStage.ts index 97cffbb3d1..65683b8782 100644 --- a/src/processTargets/modifiers/scopeTypeStages/BoundedNonWhitespaceStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/BoundedNonWhitespaceStage.ts @@ -1,14 +1,14 @@ -import { Target } from "../../../typings/target.types"; +import { NoContainingScopeError } from "@cursorless/common"; import { ContainingScopeModifier, EveryScopeModifier, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; +import { Target } from "../../../typings/target.types"; import { ProcessedTargetsContext } from "../../../typings/Types"; +import getModifierStage from "../../getModifierStage"; import { ModifierStage } from "../../PipelineStages.types"; import { TokenTarget } from "../../targets"; -import getModifierStage from "../../getModifierStage"; import { processSurroundingPair } from "../surroundingPair"; -import { NoContainingScopeError } from "../../../errors"; /** * Intersection of NonWhitespaceSequenceStage and a surrounding pair diff --git a/src/processTargets/modifiers/scopeTypeStages/ContainingSyntaxScopeStage.ts b/packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/ContainingSyntaxScopeStage.ts similarity index 94% rename from src/processTargets/modifiers/scopeTypeStages/ContainingSyntaxScopeStage.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/ContainingSyntaxScopeStage.ts index 8719a992bb..56ce9511ee 100644 --- a/src/processTargets/modifiers/scopeTypeStages/ContainingSyntaxScopeStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/ContainingSyntaxScopeStage.ts @@ -1,13 +1,12 @@ -import { Selection } from "@cursorless/common"; +import { NoContainingScopeError, Selection } from "@cursorless/common"; import type { SyntaxNode } from "web-tree-sitter"; -import { NoContainingScopeError } from "../../../errors"; -import { getNodeMatcher } from "../../../languages/getNodeMatcher"; -import type { Target } from "../../../typings/target.types"; import type { ContainingScopeModifier, EveryScopeModifier, SimpleScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; +import { getNodeMatcher } from "../../../languages/getNodeMatcher"; +import type { Target } from "../../../typings/target.types"; import type { NodeMatcher, ProcessedTargetsContext, diff --git a/src/processTargets/modifiers/scopeTypeStages/NotebookCellStage.ts b/packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/NotebookCellStage.ts similarity index 91% rename from src/processTargets/modifiers/scopeTypeStages/NotebookCellStage.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/NotebookCellStage.ts index c12e709c5c..7372d93fdc 100644 --- a/src/processTargets/modifiers/scopeTypeStages/NotebookCellStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/NotebookCellStage.ts @@ -2,7 +2,7 @@ import type { Target } from "../../../typings/target.types"; import type { ContainingScopeModifier, EveryScopeModifier, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; import type { ProcessedTargetsContext } from "../../../typings/Types"; import type { ModifierStage } from "../../PipelineStages.types"; import { NotebookCellTarget } from "../../targets"; diff --git a/src/processTargets/modifiers/scopeTypeStages/RegexStage.ts b/packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/RegexStage.ts similarity index 95% rename from src/processTargets/modifiers/scopeTypeStages/RegexStage.ts rename to packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/RegexStage.ts index 53e9785e02..726eb1a3f1 100644 --- a/src/processTargets/modifiers/scopeTypeStages/RegexStage.ts +++ b/packages/cursorless-engine/processTargets/modifiers/scopeTypeStages/RegexStage.ts @@ -1,10 +1,14 @@ -import { Position, Range, TextEditor } from "@cursorless/common"; -import { NoContainingScopeError } from "../../../errors"; -import { Target } from "../../../typings/target.types"; +import { + NoContainingScopeError, + Position, + Range, + TextEditor, +} from "@cursorless/common"; import { ContainingScopeModifier, EveryScopeModifier, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; +import { Target } from "../../../typings/target.types"; import { ProcessedTargetsContext } from "../../../typings/Types"; import { ModifierStage } from "../../PipelineStages.types"; import { TokenTarget } from "../../targets"; diff --git a/packages/cursorless-engine/processTargets/modifiers/surroundingPair/.eslintrc.json b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/.eslintrc.json new file mode 100644 index 0000000000..0630343c42 --- /dev/null +++ b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/processTargets/modifiers/surroundingPair/delimiterMaps.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/delimiterMaps.ts similarity index 94% rename from src/processTargets/modifiers/surroundingPair/delimiterMaps.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/delimiterMaps.ts index cc3c15db59..b8e54be1fe 100644 --- a/src/processTargets/modifiers/surroundingPair/delimiterMaps.ts +++ b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/delimiterMaps.ts @@ -1,7 +1,7 @@ import { ComplexSurroundingPairName, SimpleSurroundingPairName, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; type IndividualDelimiterText = string | string[]; diff --git a/src/processTargets/modifiers/surroundingPair/extractSelectionFromSurroundingPairOffsets.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/extractSelectionFromSurroundingPairOffsets.ts similarity index 100% rename from src/processTargets/modifiers/surroundingPair/extractSelectionFromSurroundingPairOffsets.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/extractSelectionFromSurroundingPairOffsets.ts diff --git a/src/processTargets/modifiers/surroundingPair/findDelimiterPairAdjacentToSelection.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/findDelimiterPairAdjacentToSelection.ts similarity index 96% rename from src/processTargets/modifiers/surroundingPair/findDelimiterPairAdjacentToSelection.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/findDelimiterPairAdjacentToSelection.ts index c7eccfabfd..47194f2bdc 100644 --- a/src/processTargets/modifiers/surroundingPair/findDelimiterPairAdjacentToSelection.ts +++ b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/findDelimiterPairAdjacentToSelection.ts @@ -1,4 +1,4 @@ -import { SurroundingPairScopeType } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SurroundingPairScopeType } from "@cursorless/common"; import { findOppositeDelimiter } from "./findOppositeDelimiter"; import { getSurroundingPairOffsets } from "./getSurroundingPairOffsets"; import { diff --git a/src/processTargets/modifiers/surroundingPair/findDelimiterPairContainingSelection.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/findDelimiterPairContainingSelection.ts similarity index 97% rename from src/processTargets/modifiers/surroundingPair/findDelimiterPairContainingSelection.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/findDelimiterPairContainingSelection.ts index 620cb1d648..84f0dfbadd 100644 --- a/src/processTargets/modifiers/surroundingPair/findDelimiterPairContainingSelection.ts +++ b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/findDelimiterPairContainingSelection.ts @@ -5,7 +5,7 @@ import { Offsets, } from "./types"; import { generateUnmatchedDelimiters } from "./generateUnmatchedDelimiters"; -import { SimpleSurroundingPairName } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleSurroundingPairName } from "@cursorless/common"; /** * Looks for a surrounding pair that contains the selection, returning null if none is found. diff --git a/src/processTargets/modifiers/surroundingPair/findOppositeDelimiter.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/findOppositeDelimiter.ts similarity index 95% rename from src/processTargets/modifiers/surroundingPair/findOppositeDelimiter.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/findOppositeDelimiter.ts index d91fb2ac77..6a0e8c3bb4 100644 --- a/src/processTargets/modifiers/surroundingPair/findOppositeDelimiter.ts +++ b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/findOppositeDelimiter.ts @@ -1,4 +1,4 @@ -import { SurroundingPairDirection } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SurroundingPairDirection } from "@cursorless/common"; import { findUnmatchedDelimiter } from "./generateUnmatchedDelimiters"; import { DelimiterOccurrence, diff --git a/src/processTargets/modifiers/surroundingPair/findSurroundingPairCore.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/findSurroundingPairCore.ts similarity index 97% rename from src/processTargets/modifiers/surroundingPair/findSurroundingPairCore.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/findSurroundingPairCore.ts index cf86672c1b..7e0e670223 100644 --- a/src/processTargets/modifiers/surroundingPair/findSurroundingPairCore.ts +++ b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/findSurroundingPairCore.ts @@ -2,7 +2,7 @@ import { sortedIndexBy } from "lodash"; import { SimpleSurroundingPairName, SurroundingPairScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; import { findDelimiterPairAdjacentToSelection } from "./findDelimiterPairAdjacentToSelection"; import { findDelimiterPairContainingSelection } from "./findDelimiterPairContainingSelection"; import { diff --git a/src/processTargets/modifiers/surroundingPair/findSurroundingPairParseTreeBased.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/findSurroundingPairParseTreeBased.ts similarity index 99% rename from src/processTargets/modifiers/surroundingPair/findSurroundingPairParseTreeBased.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/findSurroundingPairParseTreeBased.ts index c762e4cb6e..88cc73f59f 100644 --- a/src/processTargets/modifiers/surroundingPair/findSurroundingPairParseTreeBased.ts +++ b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/findSurroundingPairParseTreeBased.ts @@ -3,7 +3,7 @@ import { SyntaxNode } from "web-tree-sitter"; import { SimpleSurroundingPairName, SurroundingPairScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; import { getNodeRange } from "../../../util/nodeSelectors"; import { isContainedInErrorNode } from "../../../util/treeSitterUtils"; import { extractSelectionFromSurroundingPairOffsets } from "./extractSelectionFromSurroundingPairOffsets"; diff --git a/src/processTargets/modifiers/surroundingPair/findSurroundingPairTextBased.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/findSurroundingPairTextBased.ts similarity index 98% rename from src/processTargets/modifiers/surroundingPair/findSurroundingPairTextBased.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/findSurroundingPairTextBased.ts index 434948e212..d0be1d0398 100644 --- a/src/processTargets/modifiers/surroundingPair/findSurroundingPairTextBased.ts +++ b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/findSurroundingPairTextBased.ts @@ -1,11 +1,11 @@ import { Range, TextDocument, TextEditor } from "@cursorless/common"; import { escapeRegExp, findLast, uniq } from "lodash"; -import { matchAll } from "../../../libs/cursorless-engine/util/regex"; +import { matchAll } from "../../../util/regex"; import { SimpleSurroundingPairName, SurroundingPairName, SurroundingPairScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; import { extractSelectionFromSurroundingPairOffsets } from "./extractSelectionFromSurroundingPairOffsets"; import { findSurroundingPairCore } from "./findSurroundingPairCore"; import { getIndividualDelimiters } from "./getIndividualDelimiters"; diff --git a/src/processTargets/modifiers/surroundingPair/generateUnmatchedDelimiters.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/generateUnmatchedDelimiters.ts similarity index 97% rename from src/processTargets/modifiers/surroundingPair/generateUnmatchedDelimiters.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/generateUnmatchedDelimiters.ts index fc05d0ac4f..f823684e0a 100644 --- a/src/processTargets/modifiers/surroundingPair/generateUnmatchedDelimiters.ts +++ b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/generateUnmatchedDelimiters.ts @@ -1,5 +1,5 @@ import { range } from "lodash"; -import { SimpleSurroundingPairName } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleSurroundingPairName } from "@cursorless/common"; import { DelimiterOccurrence, DelimiterSide, diff --git a/src/processTargets/modifiers/surroundingPair/getIndividualDelimiters.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/getIndividualDelimiters.ts similarity index 93% rename from src/processTargets/modifiers/surroundingPair/getIndividualDelimiters.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/getIndividualDelimiters.ts index 24b1d13db7..16420cbf7a 100644 --- a/src/processTargets/modifiers/surroundingPair/getIndividualDelimiters.ts +++ b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/getIndividualDelimiters.ts @@ -1,4 +1,4 @@ -import { SimpleSurroundingPairName } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleSurroundingPairName } from "@cursorless/common"; import { IndividualDelimiter } from "./types"; import { delimiterToText } from "./delimiterMaps"; import { concat, uniq } from "lodash"; diff --git a/src/processTargets/modifiers/surroundingPair/getSurroundingPairOffsets.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/getSurroundingPairOffsets.ts similarity index 100% rename from src/processTargets/modifiers/surroundingPair/getSurroundingPairOffsets.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/getSurroundingPairOffsets.ts diff --git a/src/processTargets/modifiers/surroundingPair/index.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/index.ts similarity index 97% rename from src/processTargets/modifiers/surroundingPair/index.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/index.ts index 03aea25bbc..e48086a51e 100644 --- a/src/processTargets/modifiers/surroundingPair/index.ts +++ b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/index.ts @@ -6,7 +6,7 @@ import getTextFragmentExtractor, { import { ComplexSurroundingPairName, SurroundingPairScopeType, -} from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; import { ProcessedTargetsContext } from "../../../typings/Types"; import { complexDelimiterMap } from "./delimiterMaps"; import { SurroundingPairInfo } from "./extractSelectionFromSurroundingPairOffsets"; diff --git a/src/processTargets/modifiers/surroundingPair/types.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/types.ts similarity index 94% rename from src/processTargets/modifiers/surroundingPair/types.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/types.ts index e66d6867ca..c72e6accb0 100644 --- a/src/processTargets/modifiers/surroundingPair/types.ts +++ b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/types.ts @@ -1,4 +1,4 @@ -import { SimpleSurroundingPairName } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleSurroundingPairName } from "@cursorless/common"; /** * Used to indicate whether a particular side of the delimiter is left or right diff --git a/src/processTargets/modifiers/surroundingPair/weaklyContains.ts b/packages/cursorless-engine/processTargets/modifiers/surroundingPair/weaklyContains.ts similarity index 100% rename from src/processTargets/modifiers/surroundingPair/weaklyContains.ts rename to packages/cursorless-engine/processTargets/modifiers/surroundingPair/weaklyContains.ts diff --git a/src/processTargets/modifiers/targetSequenceUtils.ts b/packages/cursorless-engine/processTargets/modifiers/targetSequenceUtils.ts similarity index 93% rename from src/processTargets/modifiers/targetSequenceUtils.ts rename to packages/cursorless-engine/processTargets/modifiers/targetSequenceUtils.ts index 5389b3f2f9..e7753f7ea7 100644 --- a/src/processTargets/modifiers/targetSequenceUtils.ts +++ b/packages/cursorless-engine/processTargets/modifiers/targetSequenceUtils.ts @@ -1,5 +1,5 @@ import { Target } from "../../typings/target.types"; -import { ScopeType } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { ScopeType } from "@cursorless/common"; import { ProcessedTargetsContext } from "../../typings/Types"; import getModifierStage from "../getModifierStage"; diff --git a/src/processTargets/modifiers/toPositionTarget.ts b/packages/cursorless-engine/processTargets/modifiers/toPositionTarget.ts similarity index 84% rename from src/processTargets/modifiers/toPositionTarget.ts rename to packages/cursorless-engine/processTargets/modifiers/toPositionTarget.ts index 8fa9d09454..dd06fedca9 100644 --- a/src/processTargets/modifiers/toPositionTarget.ts +++ b/packages/cursorless-engine/processTargets/modifiers/toPositionTarget.ts @@ -1,9 +1,12 @@ import { Range } from "@cursorless/common"; import { Target } from "../../typings/target.types"; -import { Position } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { TargetPosition } from "@cursorless/common"; import { PositionTarget } from "../targets"; -export function toPositionTarget(target: Target, position: Position): Target { +export function toPositionTarget( + target: Target, + position: TargetPosition, +): Target { const { start, end } = target.contentRange; let contentRange: Range; let insertionDelimiter: string; diff --git a/src/processTargets/processTargets.ts b/packages/cursorless-engine/processTargets/processTargets.ts similarity index 98% rename from src/processTargets/processTargets.ts rename to packages/cursorless-engine/processTargets/processTargets.ts index 725c02a1cc..f3fa79ecbc 100644 --- a/src/processTargets/processTargets.ts +++ b/packages/cursorless-engine/processTargets/processTargets.ts @@ -1,9 +1,6 @@ import { Range } from "@cursorless/common"; import { uniqWith, zip } from "lodash"; -import { - ImplicitTargetDescriptor, - Modifier, -} from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { ImplicitTargetDescriptor, Modifier } from "@cursorless/common"; import { Target } from "../typings/target.types"; import { PrimitiveTargetDescriptor, diff --git a/packages/cursorless-engine/processTargets/targetUtil/.eslintrc.json b/packages/cursorless-engine/processTargets/targetUtil/.eslintrc.json new file mode 100644 index 0000000000..36c19f5203 --- /dev/null +++ b/packages/cursorless-engine/processTargets/targetUtil/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/processTargets/targetUtil/createContinuousRange.ts b/packages/cursorless-engine/processTargets/targetUtil/createContinuousRange.ts similarity index 100% rename from src/processTargets/targetUtil/createContinuousRange.ts rename to packages/cursorless-engine/processTargets/targetUtil/createContinuousRange.ts diff --git a/packages/cursorless-engine/processTargets/targetUtil/insertionRemovalBehaviors/.eslintrc.json b/packages/cursorless-engine/processTargets/targetUtil/insertionRemovalBehaviors/.eslintrc.json new file mode 100644 index 0000000000..0630343c42 --- /dev/null +++ b/packages/cursorless-engine/processTargets/targetUtil/insertionRemovalBehaviors/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/processTargets/targetUtil/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts b/packages/cursorless-engine/processTargets/targetUtil/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts similarity index 100% rename from src/processTargets/targetUtil/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts rename to packages/cursorless-engine/processTargets/targetUtil/insertionRemovalBehaviors/DelimitedSequenceInsertionRemovalBehavior.ts diff --git a/src/processTargets/targetUtil/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts b/packages/cursorless-engine/processTargets/targetUtil/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts similarity index 98% rename from src/processTargets/targetUtil/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts rename to packages/cursorless-engine/processTargets/targetUtil/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts index 174e5f6d25..5b10c9cfdf 100644 --- a/src/processTargets/targetUtil/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts +++ b/packages/cursorless-engine/processTargets/targetUtil/insertionRemovalBehaviors/TokenInsertionRemovalBehavior.ts @@ -1,5 +1,5 @@ import { Range, TextDocument, TextEditor } from "@cursorless/common"; -import { tokenize } from "../../../libs/cursorless-engine/tokenizer"; +import { tokenize } from "../../../tokenizer"; import type { Target } from "../../../typings/target.types"; import { expandToFullLine } from "../../../util/rangeUtils"; import { PlainTarget } from "../../targets"; diff --git a/src/processTargets/targetUtil/insertionRemovalBehaviors/insertionRemovalBehavior.types.ts b/packages/cursorless-engine/processTargets/targetUtil/insertionRemovalBehaviors/insertionRemovalBehavior.types.ts similarity index 100% rename from src/processTargets/targetUtil/insertionRemovalBehaviors/insertionRemovalBehavior.types.ts rename to packages/cursorless-engine/processTargets/targetUtil/insertionRemovalBehaviors/insertionRemovalBehavior.types.ts diff --git a/packages/cursorless-engine/processTargets/targets/.eslintrc.json b/packages/cursorless-engine/processTargets/targets/.eslintrc.json new file mode 100644 index 0000000000..36c19f5203 --- /dev/null +++ b/packages/cursorless-engine/processTargets/targets/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/processTargets/targets/BaseTarget.ts b/packages/cursorless-engine/processTargets/targets/BaseTarget.ts similarity index 94% rename from src/processTargets/targets/BaseTarget.ts rename to packages/cursorless-engine/processTargets/targets/BaseTarget.ts index b29787e429..6266b5c0e7 100644 --- a/src/processTargets/targets/BaseTarget.ts +++ b/packages/cursorless-engine/processTargets/targets/BaseTarget.ts @@ -1,8 +1,12 @@ -import { Range, Selection, TextEditor } from "@cursorless/common"; +import { + NoContainingScopeError, + Range, + Selection, + TextEditor, +} from "@cursorless/common"; import { isEqual } from "lodash"; -import { NoContainingScopeError } from "../../errors"; +import type { TargetPosition } from "@cursorless/common"; import type { EditNewActionType, Target } from "../../typings/target.types"; -import type { Position } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; import type { EditWithRangeUpdater } from "../../typings/Types"; import { isSameType } from "../../util/typeUtils"; import { toPositionTarget } from "../modifiers/toPositionTarget"; @@ -173,7 +177,7 @@ export default abstract class BaseTarget implements Target { }; } - toPositionTarget(position: Position): Target { + toPositionTarget(position: TargetPosition): Target { return toPositionTarget(this, position); } diff --git a/src/processTargets/targets/DocumentTarget.ts b/packages/cursorless-engine/processTargets/targets/DocumentTarget.ts similarity index 100% rename from src/processTargets/targets/DocumentTarget.ts rename to packages/cursorless-engine/processTargets/targets/DocumentTarget.ts diff --git a/src/processTargets/targets/ImplicitTarget.ts b/packages/cursorless-engine/processTargets/targets/ImplicitTarget.ts similarity index 100% rename from src/processTargets/targets/ImplicitTarget.ts rename to packages/cursorless-engine/processTargets/targets/ImplicitTarget.ts diff --git a/src/processTargets/targets/InteriorTarget.ts b/packages/cursorless-engine/processTargets/targets/InteriorTarget.ts similarity index 100% rename from src/processTargets/targets/InteriorTarget.ts rename to packages/cursorless-engine/processTargets/targets/InteriorTarget.ts diff --git a/src/processTargets/targets/LineTarget.ts b/packages/cursorless-engine/processTargets/targets/LineTarget.ts similarity index 100% rename from src/processTargets/targets/LineTarget.ts rename to packages/cursorless-engine/processTargets/targets/LineTarget.ts diff --git a/src/processTargets/targets/NotebookCellTarget.ts b/packages/cursorless-engine/processTargets/targets/NotebookCellTarget.ts similarity index 87% rename from src/processTargets/targets/NotebookCellTarget.ts rename to packages/cursorless-engine/processTargets/targets/NotebookCellTarget.ts index f3829d0109..75fdaec246 100644 --- a/src/processTargets/targets/NotebookCellTarget.ts +++ b/packages/cursorless-engine/processTargets/targets/NotebookCellTarget.ts @@ -1,5 +1,5 @@ import { Target } from "../../typings/target.types"; -import { Position } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { TargetPosition } from "@cursorless/common"; import BaseTarget, { CommonTargetParameters } from "./BaseTarget"; import { removalUnsupportedForPosition } from "./PositionTarget"; @@ -19,7 +19,7 @@ export default class NotebookCellTarget extends BaseTarget { return this.state; } - toPositionTarget(position: Position): Target { + toPositionTarget(position: TargetPosition): Target { return new NotebookCellPositionTarget({ ...this.state, thatTarget: this, @@ -29,13 +29,13 @@ export default class NotebookCellTarget extends BaseTarget { } interface NotebookCellPositionTargetParameters extends CommonTargetParameters { - readonly position: Position; + readonly position: TargetPosition; } export class NotebookCellPositionTarget extends BaseTarget { insertionDelimiter = "\n"; isNotebookCell = true; - public position: Position; + public position: TargetPosition; constructor(parameters: NotebookCellPositionTargetParameters) { super(parameters); diff --git a/src/processTargets/targets/ParagraphTarget.ts b/packages/cursorless-engine/processTargets/targets/ParagraphTarget.ts similarity index 100% rename from src/processTargets/targets/ParagraphTarget.ts rename to packages/cursorless-engine/processTargets/targets/ParagraphTarget.ts diff --git a/src/processTargets/targets/PlainTarget.ts b/packages/cursorless-engine/processTargets/targets/PlainTarget.ts similarity index 100% rename from src/processTargets/targets/PlainTarget.ts rename to packages/cursorless-engine/processTargets/targets/PlainTarget.ts diff --git a/src/processTargets/targets/PositionTarget.ts b/packages/cursorless-engine/processTargets/targets/PositionTarget.ts similarity index 94% rename from src/processTargets/targets/PositionTarget.ts rename to packages/cursorless-engine/processTargets/targets/PositionTarget.ts index b8df91ccf5..cf04b0e8df 100644 --- a/src/processTargets/targets/PositionTarget.ts +++ b/packages/cursorless-engine/processTargets/targets/PositionTarget.ts @@ -1,12 +1,11 @@ -import { Range, TextEditor } from "@cursorless/common"; +import { Range, TextEditor, UnsupportedError } from "@cursorless/common"; import { BaseTarget, CommonTargetParameters } from "."; -import { UnsupportedError } from "../../errors"; +import { TargetPosition } from "@cursorless/common"; import { EditNewActionType } from "../../typings/target.types"; -import { Position } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; import { EditWithRangeUpdater } from "../../typings/Types"; interface PositionTargetParameters extends CommonTargetParameters { - readonly position: Position; + readonly position: TargetPosition; readonly insertionDelimiter: string; readonly isRaw: boolean; } @@ -14,7 +13,7 @@ interface PositionTargetParameters extends CommonTargetParameters { export default class PositionTarget extends BaseTarget { insertionDelimiter: string; isRaw: boolean; - private position: Position; + private position: TargetPosition; private isLineDelimiter: boolean; private isBefore: boolean; private indentationString: string; diff --git a/src/processTargets/targets/RawSelectionTarget.ts b/packages/cursorless-engine/processTargets/targets/RawSelectionTarget.ts similarity index 100% rename from src/processTargets/targets/RawSelectionTarget.ts rename to packages/cursorless-engine/processTargets/targets/RawSelectionTarget.ts diff --git a/src/processTargets/targets/ScopeTypeTarget.ts b/packages/cursorless-engine/processTargets/targets/ScopeTypeTarget.ts similarity index 98% rename from src/processTargets/targets/ScopeTypeTarget.ts rename to packages/cursorless-engine/processTargets/targets/ScopeTypeTarget.ts index fa1e7cdf74..ce54cc3443 100644 --- a/src/processTargets/targets/ScopeTypeTarget.ts +++ b/packages/cursorless-engine/processTargets/targets/ScopeTypeTarget.ts @@ -1,6 +1,6 @@ import { Range } from "@cursorless/common"; import { Target } from "../../typings/target.types"; -import { SimpleScopeTypeType } from "../../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { isSameType } from "../../util/typeUtils"; import { createContinuousRange, diff --git a/src/processTargets/targets/SubTokenWordTarget.ts b/packages/cursorless-engine/processTargets/targets/SubTokenWordTarget.ts similarity index 100% rename from src/processTargets/targets/SubTokenWordTarget.ts rename to packages/cursorless-engine/processTargets/targets/SubTokenWordTarget.ts diff --git a/src/processTargets/targets/SurroundingPairTarget.ts b/packages/cursorless-engine/processTargets/targets/SurroundingPairTarget.ts similarity index 100% rename from src/processTargets/targets/SurroundingPairTarget.ts rename to packages/cursorless-engine/processTargets/targets/SurroundingPairTarget.ts diff --git a/src/processTargets/targets/TokenTarget.ts b/packages/cursorless-engine/processTargets/targets/TokenTarget.ts similarity index 100% rename from src/processTargets/targets/TokenTarget.ts rename to packages/cursorless-engine/processTargets/targets/TokenTarget.ts diff --git a/src/processTargets/targets/UntypedTarget.ts b/packages/cursorless-engine/processTargets/targets/UntypedTarget.ts similarity index 100% rename from src/processTargets/targets/UntypedTarget.ts rename to packages/cursorless-engine/processTargets/targets/UntypedTarget.ts diff --git a/src/processTargets/targets/index.ts b/packages/cursorless-engine/processTargets/targets/index.ts similarity index 100% rename from src/processTargets/targets/index.ts rename to packages/cursorless-engine/processTargets/targets/index.ts diff --git a/src/libs/cursorless-engine/tokenGraphemeSplitter/.eslintrc.json b/packages/cursorless-engine/scopeHandlers/.eslintrc.json similarity index 100% rename from src/libs/cursorless-engine/tokenGraphemeSplitter/.eslintrc.json rename to packages/cursorless-engine/scopeHandlers/.eslintrc.json diff --git a/packages/cursorless-engine/scopeHandlers/WordScopeHandler/.eslintrc.json b/packages/cursorless-engine/scopeHandlers/WordScopeHandler/.eslintrc.json new file mode 100644 index 0000000000..36c19f5203 --- /dev/null +++ b/packages/cursorless-engine/scopeHandlers/WordScopeHandler/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/libs/cursorless-engine/scopeHandlers/WordScopeHandler/WordTokenizer.ts b/packages/cursorless-engine/scopeHandlers/WordScopeHandler/WordTokenizer.ts similarity index 100% rename from src/libs/cursorless-engine/scopeHandlers/WordScopeHandler/WordTokenizer.ts rename to packages/cursorless-engine/scopeHandlers/WordScopeHandler/WordTokenizer.ts diff --git a/packages/cursorless-engine/scripts/transformRecordedTests/.eslintrc.json b/packages/cursorless-engine/scripts/transformRecordedTests/.eslintrc.json new file mode 100644 index 0000000000..c9b5c8708c --- /dev/null +++ b/packages/cursorless-engine/scripts/transformRecordedTests/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "Scripts have restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Scripts shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/scripts/transformRecordedTests/index.ts b/packages/cursorless-engine/scripts/transformRecordedTests/index.ts similarity index 90% rename from src/scripts/transformRecordedTests/index.ts rename to packages/cursorless-engine/scripts/transformRecordedTests/index.ts index 18995e2c64..128e0bf0a9 100644 --- a/src/scripts/transformRecordedTests/index.ts +++ b/packages/cursorless-engine/scripts/transformRecordedTests/index.ts @@ -1,7 +1,9 @@ // Ensures that the aliases such as @cursorless/common that we define in // package.json are active +// NOTE: This must be at the top! import "module-alias/register"; -import { getRecordedTestPaths } from "../../apps/cursorless-vscode-e2e/getFixturePaths"; + +import { getRecordedTestPaths } from "@cursorless/common"; import { identity } from "./transformations/identity"; import { upgrade } from "./transformations/upgrade"; import { transformFile } from "./transformFile"; diff --git a/src/scripts/transformRecordedTests/moveFile.ts b/packages/cursorless-engine/scripts/transformRecordedTests/moveFile.ts similarity index 93% rename from src/scripts/transformRecordedTests/moveFile.ts rename to packages/cursorless-engine/scripts/transformRecordedTests/moveFile.ts index d5f67ab94e..081a34906a 100644 --- a/src/scripts/transformRecordedTests/moveFile.ts +++ b/packages/cursorless-engine/scripts/transformRecordedTests/moveFile.ts @@ -1,7 +1,7 @@ import { promises as fsp } from "fs"; import * as path from "path"; import * as yaml from "js-yaml"; -import { TestCaseFixture } from "../../testUtil/TestCaseFixture"; +import { TestCaseFixture } from "@cursorless/cursorless-engine"; import { mkdir, rename } from "fs/promises"; /** diff --git a/src/scripts/transformRecordedTests/transformFile.ts b/packages/cursorless-engine/scripts/transformRecordedTests/transformFile.ts similarity index 77% rename from src/scripts/transformRecordedTests/transformFile.ts rename to packages/cursorless-engine/scripts/transformRecordedTests/transformFile.ts index 208ae285c9..5236ef8cfc 100644 --- a/src/scripts/transformRecordedTests/transformFile.ts +++ b/packages/cursorless-engine/scripts/transformRecordedTests/transformFile.ts @@ -1,7 +1,7 @@ +import { serialize } from "@cursorless/common"; +import { TestCaseFixture } from "@cursorless/cursorless-engine"; import { promises as fsp } from "fs"; import * as yaml from "js-yaml"; -import { TestCaseFixture } from "../../testUtil/TestCaseFixture"; -import serialize from "../../libs/common/testUtil/serialize"; import { FixtureTransformation } from "./types"; export async function transformFile( diff --git a/packages/cursorless-engine/scripts/transformRecordedTests/transformations/.eslintrc.json b/packages/cursorless-engine/scripts/transformRecordedTests/transformations/.eslintrc.json new file mode 100644 index 0000000000..d6950f8f52 --- /dev/null +++ b/packages/cursorless-engine/scripts/transformRecordedTests/transformations/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../../*"], + "message": "Scripts have restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Scripts shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/scripts/transformRecordedTests/transformations/identity.ts b/packages/cursorless-engine/scripts/transformRecordedTests/transformations/identity.ts similarity index 51% rename from src/scripts/transformRecordedTests/transformations/identity.ts rename to packages/cursorless-engine/scripts/transformRecordedTests/transformations/identity.ts index 587a85e95c..05b19bc6bc 100644 --- a/src/scripts/transformRecordedTests/transformations/identity.ts +++ b/packages/cursorless-engine/scripts/transformRecordedTests/transformations/identity.ts @@ -1,4 +1,4 @@ -import { TestCaseFixture } from "../../../testUtil/TestCaseFixture"; +import { TestCaseFixture } from "@cursorless/cursorless-engine"; export function identity(fixture: TestCaseFixture) { return fixture; diff --git a/src/scripts/transformRecordedTests/transformations/reorderFields.ts b/packages/cursorless-engine/scripts/transformRecordedTests/transformations/reorderFields.ts similarity index 79% rename from src/scripts/transformRecordedTests/transformations/reorderFields.ts rename to packages/cursorless-engine/scripts/transformRecordedTests/transformations/reorderFields.ts index 0e7e678929..5ecd8d5289 100644 --- a/src/scripts/transformRecordedTests/transformations/reorderFields.ts +++ b/packages/cursorless-engine/scripts/transformRecordedTests/transformations/reorderFields.ts @@ -1,5 +1,5 @@ -import { EnforceUndefined } from "../../../libs/common/util/typeUtils"; -import { TestCaseFixture } from "../../../testUtil/TestCaseFixture"; +import { EnforceUndefined } from "@cursorless/common"; +import { TestCaseFixture } from "@cursorless/cursorless-engine"; export function reorderFields( fixture: TestCaseFixture, diff --git a/src/scripts/transformRecordedTests/transformations/upgrade.ts b/packages/cursorless-engine/scripts/transformRecordedTests/transformations/upgrade.ts similarity index 88% rename from src/scripts/transformRecordedTests/transformations/upgrade.ts rename to packages/cursorless-engine/scripts/transformRecordedTests/transformations/upgrade.ts index 2ea2cfbfc0..9b6d5595bf 100644 --- a/src/scripts/transformRecordedTests/transformations/upgrade.ts +++ b/packages/cursorless-engine/scripts/transformRecordedTests/transformations/upgrade.ts @@ -1,8 +1,8 @@ import { flow } from "lodash"; +import { TestCaseFixture } from "@cursorless/cursorless-engine"; +import { reorderFields } from "./reorderFields"; import { canonicalizeAndValidateCommand } from "../../../core/commandVersionUpgrades/canonicalizeAndValidateCommand"; import { cleanUpTestCaseCommand } from "../../../testUtil/cleanUpTestCaseCommand"; -import { TestCaseFixture } from "../../../testUtil/TestCaseFixture"; -import { reorderFields } from "./reorderFields"; export const upgrade = flow(upgradeCommand, reorderFields); diff --git a/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts b/packages/cursorless-engine/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts similarity index 82% rename from src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts rename to packages/cursorless-engine/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts index 78853f5372..f2a90eb114 100644 --- a/src/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts +++ b/packages/cursorless-engine/scripts/transformRecordedTests/transformations/upgradeFromVersion0.ts @@ -1,6 +1,6 @@ -import { TestCaseFixture } from "../../../testUtil/TestCaseFixture"; +import { TestCaseFixture } from "@cursorless/cursorless-engine"; +import { PartialPrimitiveTargetDescriptor } from "@cursorless/common"; import { transformPartialPrimitiveTargets } from "../../../util/getPrimitiveTargets"; -import { PartialPrimitiveTargetDescriptor } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; export function upgradeFromVersion0(fixture: TestCaseFixture) { const { command, spokenForm: oldSpokenForm, ...rest } = fixture as any; diff --git a/src/scripts/transformRecordedTests/types.ts b/packages/cursorless-engine/scripts/transformRecordedTests/types.ts similarity index 59% rename from src/scripts/transformRecordedTests/types.ts rename to packages/cursorless-engine/scripts/transformRecordedTests/types.ts index 454d97ebdb..efb5788e4f 100644 --- a/src/scripts/transformRecordedTests/types.ts +++ b/packages/cursorless-engine/scripts/transformRecordedTests/types.ts @@ -1,4 +1,4 @@ -import { TestCaseFixture } from "../../testUtil/TestCaseFixture"; +import { TestCaseFixture } from "@cursorless/cursorless-engine"; export type FixtureTransformation = ( originalFixture: TestCaseFixture, diff --git a/src/scripts/transformRecordedTests/upgradeDecorations.ts b/packages/cursorless-engine/scripts/transformRecordedTests/upgradeDecorations.ts similarity index 91% rename from src/scripts/transformRecordedTests/upgradeDecorations.ts rename to packages/cursorless-engine/scripts/transformRecordedTests/upgradeDecorations.ts index 31762a7ec7..564c424d78 100644 --- a/src/scripts/transformRecordedTests/upgradeDecorations.ts +++ b/packages/cursorless-engine/scripts/transformRecordedTests/upgradeDecorations.ts @@ -1,10 +1,10 @@ import { groupBy, partition } from "lodash"; -import { FlashStyle } from "../../libs/common/ide/types/FlashDescriptor"; +import { FlashStyle } from "@cursorless/common"; import { GeneralizedRangePlainObject, PositionPlainObject, -} from "../../libs/common/testUtil/toPlainObject"; -import { TestCaseFixture } from "../../testUtil/TestCaseFixture"; +} from "@cursorless/common"; +import { TestCaseFixture } from "@cursorless/cursorless-engine"; import { reorderFields } from "./transformations/reorderFields"; import { FixtureTransformation } from "./types"; diff --git a/src/libs/cursorless-engine/tokenizer/.eslintrc.json b/packages/cursorless-engine/singletons/.eslintrc.json similarity index 100% rename from src/libs/cursorless-engine/tokenizer/.eslintrc.json rename to packages/cursorless-engine/singletons/.eslintrc.json diff --git a/src/libs/cursorless-engine/singletons/ide.singleton.ts b/packages/cursorless-engine/singletons/ide.singleton.ts similarity index 95% rename from src/libs/cursorless-engine/singletons/ide.singleton.ts rename to packages/cursorless-engine/singletons/ide.singleton.ts index a7be9c01a7..5531b7215c 100644 --- a/src/libs/cursorless-engine/singletons/ide.singleton.ts +++ b/packages/cursorless-engine/singletons/ide.singleton.ts @@ -21,7 +21,7 @@ export function injectIde(ide: IDE | undefined) { * constructing your objects lazily * @returns The IDE object */ -export default function ide(): IDE { +export function ide(): IDE { if (ide_ == null) { throw Error("Tried to access ide before it was injected"); } diff --git a/src/libs/cursorless-engine/singletons/tokenGraphemeSplitter.singleton.ts b/packages/cursorless-engine/singletons/tokenGraphemeSplitter.singleton.ts similarity index 100% rename from src/libs/cursorless-engine/singletons/tokenGraphemeSplitter.singleton.ts rename to packages/cursorless-engine/singletons/tokenGraphemeSplitter.singleton.ts diff --git a/src/libs/cursorless-engine/util/.eslintrc.json b/packages/cursorless-engine/snippets/.eslintrc.json similarity index 100% rename from src/libs/cursorless-engine/util/.eslintrc.json rename to packages/cursorless-engine/snippets/.eslintrc.json diff --git a/src/util/snippet.ts b/packages/cursorless-engine/snippets/snippet.ts similarity index 95% rename from src/util/snippet.ts rename to packages/cursorless-engine/snippets/snippet.ts index a927ac8446..96411a6649 100644 --- a/src/util/snippet.ts +++ b/packages/cursorless-engine/snippets/snippet.ts @@ -1,12 +1,12 @@ -import { SnippetDefinition } from "../typings/snippet"; +import { SnippetDefinition } from "./snippet.types"; import { Target } from "../typings/target.types"; import { Placeholder, Text, TextmateSnippet, Variable, -} from "../vendor/snippet/snippetParser"; -import { KnownSnippetVariableNames } from "../vendor/snippet/snippetVariables"; +} from "./vendor/vscodeSnippet/snippetParser"; +import { KnownSnippetVariableNames } from "./vendor/vscodeSnippet/snippetVariables"; /** * Replaces the snippet variable with name `placeholderName` with diff --git a/src/typings/snippet.ts b/packages/cursorless-engine/snippets/snippet.types.ts similarity index 92% rename from src/typings/snippet.ts rename to packages/cursorless-engine/snippets/snippet.types.ts index 596c39c850..a3b7352104 100644 --- a/src/typings/snippet.ts +++ b/packages/cursorless-engine/snippets/snippet.types.ts @@ -1,5 +1,5 @@ -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; -import { TextFormatterName } from "./Types"; +import { SimpleScopeTypeType } from "@cursorless/common"; +import { TextFormatterName } from "../typings/Types"; export interface SnippetScope { /** diff --git a/src/test/suite/snippetParser.test.ts b/packages/cursorless-engine/snippets/snippetParser.test.ts similarity index 93% rename from src/test/suite/snippetParser.test.ts rename to packages/cursorless-engine/snippets/snippetParser.test.ts index 7fa2e81ff8..acde22ba7e 100644 --- a/src/test/suite/snippetParser.test.ts +++ b/packages/cursorless-engine/snippets/snippetParser.test.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See https://github.com/microsoft/vscode/blob/6915debdd61d3db26c39e831babf70b573b1baf0/LICENSE.txt for license information. *--------------------------------------------------------------------------------------------*/ import * as assert from "assert"; -import { SnippetParser } from "../../vendor/snippet/snippetParser"; +import { SnippetParser } from "./vendor/vscodeSnippet/snippetParser"; suite("SnippetParser", () => { test("Marker, toTextmateString()", function () { diff --git a/packages/cursorless-engine/snippets/vendor/.eslintrc.json b/packages/cursorless-engine/snippets/vendor/.eslintrc.json new file mode 100644 index 0000000000..36c19f5203 --- /dev/null +++ b/packages/cursorless-engine/snippets/vendor/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/packages/cursorless-engine/snippets/vendor/vscodeSnippet/.eslintrc.json b/packages/cursorless-engine/snippets/vendor/vscodeSnippet/.eslintrc.json new file mode 100644 index 0000000000..0630343c42 --- /dev/null +++ b/packages/cursorless-engine/snippets/vendor/vscodeSnippet/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/vendor/snippet/charCode.ts b/packages/cursorless-engine/snippets/vendor/vscodeSnippet/charCode.ts similarity index 100% rename from src/vendor/snippet/charCode.ts rename to packages/cursorless-engine/snippets/vendor/vscodeSnippet/charCode.ts diff --git a/src/vendor/snippet/snippetParser.ts b/packages/cursorless-engine/snippets/vendor/vscodeSnippet/snippetParser.ts similarity index 100% rename from src/vendor/snippet/snippetParser.ts rename to packages/cursorless-engine/snippets/vendor/vscodeSnippet/snippetParser.ts diff --git a/src/vendor/snippet/snippetVariables.ts b/packages/cursorless-engine/snippets/vendor/vscodeSnippet/snippetVariables.ts similarity index 100% rename from src/vendor/snippet/snippetVariables.ts rename to packages/cursorless-engine/snippets/vendor/vscodeSnippet/snippetVariables.ts diff --git a/packages/cursorless-engine/test/.eslintrc.json b/packages/cursorless-engine/test/.eslintrc.json new file mode 100644 index 0000000000..9a0be9ce27 --- /dev/null +++ b/packages/cursorless-engine/test/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/libs/cursorless-engine/test/fixtures/subtoken.fixture.ts b/packages/cursorless-engine/test/fixtures/subtoken.fixture.ts similarity index 100% rename from src/libs/cursorless-engine/test/fixtures/subtoken.fixture.ts rename to packages/cursorless-engine/test/fixtures/subtoken.fixture.ts diff --git a/src/libs/cursorless-engine/test/subtoken.test.ts b/packages/cursorless-engine/test/subtoken.test.ts similarity index 100% rename from src/libs/cursorless-engine/test/subtoken.test.ts rename to packages/cursorless-engine/test/subtoken.test.ts diff --git a/src/libs/cursorless-engine/test/unitTestSetup.ts b/packages/cursorless-engine/test/unitTestSetup.ts similarity index 100% rename from src/libs/cursorless-engine/test/unitTestSetup.ts rename to packages/cursorless-engine/test/unitTestSetup.ts diff --git a/packages/cursorless-engine/testCaseRecorder/.eslintrc.json b/packages/cursorless-engine/testCaseRecorder/.eslintrc.json new file mode 100644 index 0000000000..9a0be9ce27 --- /dev/null +++ b/packages/cursorless-engine/testCaseRecorder/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/testUtil/TestCase.ts b/packages/cursorless-engine/testCaseRecorder/TestCase.ts similarity index 92% rename from src/testUtil/TestCase.ts rename to packages/cursorless-engine/testCaseRecorder/TestCase.ts index 4c1aa2cc23..53253093ac 100644 --- a/src/testUtil/TestCase.ts +++ b/packages/cursorless-engine/testCaseRecorder/TestCase.ts @@ -1,33 +1,31 @@ -import { pick } from "lodash"; -import { ActionType } from "../core/commandRunner/typings/ActionCommand"; -import { ReadOnlyHatMap } from "../core/IndividualHatMap"; -import { ThatMark } from "../core/ThatMark"; -import SpyIDE from "../libs/common/ide/spy/SpyIDE"; import { extractTargetedMarks, extractTargetKeys, -} from "../libs/common/testUtil/extractTargetedMarks"; -import serialize from "../libs/common/testUtil/serialize"; -import { marksToPlainObject, PlainSpyIDERecordedValues, + serialize, SerializedMarks, + SpyIDE, spyIDERecordedValuesToPlainObject, -} from "../libs/common/testUtil/toPlainObject"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; +} from "@cursorless/common"; +import { pick } from "lodash"; +import { ActionType } from "@cursorless/common"; +import { ReadOnlyHatMap } from "../core/IndividualHatMap"; +import { ThatMark } from "../core/ThatMark"; +import { ide } from "../singletons/ide.singleton"; import { - ExtraSnapshotField, - takeSnapshot, - TestCaseSnapshot, -} from "../libs/vscode-common/testUtil/takeSnapshot"; -import { TargetDescriptor } from "../typings/TargetDescriptor"; -import { Token } from "../typings/Types"; -import { cleanUpTestCaseCommand } from "./cleanUpTestCaseCommand"; -import type { TestCaseCommand, TestCaseFixture, ThrownError, } from "./TestCaseFixture"; +import { TargetDescriptor } from "../typings/TargetDescriptor"; +import { Token } from "../typings/Types"; +import { cleanUpTestCaseCommand } from "../testUtil/cleanUpTestCaseCommand"; +import { + ExtraSnapshotField, + takeSnapshot, + TestCaseSnapshot, +} from "../testUtil/takeSnapshot"; export type TestCaseContext = { thatMark: ThatMark; diff --git a/src/testUtil/TestCaseFixture.ts b/packages/cursorless-engine/testCaseRecorder/TestCaseFixture.ts similarity index 79% rename from src/testUtil/TestCaseFixture.ts rename to packages/cursorless-engine/testCaseRecorder/TestCaseFixture.ts index 605b752b29..7da22dcee6 100644 --- a/src/testUtil/TestCaseFixture.ts +++ b/packages/cursorless-engine/testCaseRecorder/TestCaseFixture.ts @@ -1,6 +1,6 @@ -import type { CommandLatest } from "../core/commandRunner/typings/command.types"; -import { PlainSpyIDERecordedValues } from "../libs/common/testUtil/toPlainObject"; -import type { TestCaseSnapshot } from "../libs/vscode-common/testUtil/takeSnapshot"; +import { PlainSpyIDERecordedValues } from "@cursorless/common"; +import type { CommandLatest } from "@cursorless/common"; +import type { TestCaseSnapshot } from "../testUtil/takeSnapshot"; import type { TargetDescriptor } from "../typings/TargetDescriptor"; export type TestCaseCommand = CommandLatest; diff --git a/src/testUtil/TestCaseRecorder.ts b/packages/cursorless-engine/testCaseRecorder/TestCaseRecorder.ts similarity index 93% rename from src/testUtil/TestCaseRecorder.ts rename to packages/cursorless-engine/testCaseRecorder/TestCaseRecorder.ts index 7c37610ae2..8a4ae7cf9c 100644 --- a/src/testUtil/TestCaseRecorder.ts +++ b/packages/cursorless-engine/testCaseRecorder/TestCaseRecorder.ts @@ -1,34 +1,27 @@ import { + DecoratedSymbolMark, + DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST, + extractTargetedMarks, getKey, + IDE, + marksToPlainObject, + serialize, + SerializedMarks, showInfo, + sleep, + SpyIDE, TextEditorOptions, toLineRange, + walkDirsSync, } from "@cursorless/common"; import * as fs from "fs"; import { readFile } from "fs/promises"; import { invariant } from "immutability-helper"; import { merge } from "lodash"; import * as path from "path"; -import SpyIDE from "../libs/common/ide/spy/SpyIDE"; -import { IDE } from "../libs/common/ide/types/ide.types"; -import { extractTargetedMarks } from "../libs/common/testUtil/extractTargetedMarks"; -import serialize from "../libs/common/testUtil/serialize"; -import sleep from "../libs/common/util/sleep"; -import { walkDirsSync } from "../libs/common/util/walkSync"; -import ide, { - injectIde, -} from "../libs/cursorless-engine/singletons/ide.singleton"; -import { - ExtraSnapshotField, - takeSnapshot, -} from "../libs/vscode-common/testUtil/takeSnapshot"; -import { DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST } from "../libs/vscode-common/testUtil/testConstants"; -import { - marksToPlainObject, - SerializedMarks, -} from "../libs/common/testUtil/toPlainObject"; -import { DecoratedSymbolMark } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; -import { Graph } from "../typings/Types"; +import { ide, injectIde } from "../singletons/ide.singleton"; +import { ExtraSnapshotField, takeSnapshot } from "../testUtil/takeSnapshot"; +import { Graph } from "../typings/Graph"; import { TestCase, TestCaseContext } from "./TestCase"; import { TestCaseCommand } from "./TestCaseFixture"; @@ -116,7 +109,10 @@ export class TestCaseRecorder { : null; this.fixtureRoot = this.workspacePath - ? path.join(this.workspacePath, "src/test/suite/fixtures/recorded") + ? path.join( + this.workspacePath, + "packages/cursorless-vscode-e2e/suite/fixtures/recorded", + ) : null; this.toggle = this.toggle.bind(this); diff --git a/packages/cursorless-engine/testUtil/.eslintrc.json b/packages/cursorless-engine/testUtil/.eslintrc.json new file mode 100644 index 0000000000..9a0be9ce27 --- /dev/null +++ b/packages/cursorless-engine/testUtil/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/testUtil/cleanUpTestCaseCommand.ts b/packages/cursorless-engine/testUtil/cleanUpTestCaseCommand.ts similarity index 80% rename from src/testUtil/cleanUpTestCaseCommand.ts rename to packages/cursorless-engine/testUtil/cleanUpTestCaseCommand.ts index babab7d364..a202226bec 100644 --- a/src/testUtil/cleanUpTestCaseCommand.ts +++ b/packages/cursorless-engine/testUtil/cleanUpTestCaseCommand.ts @@ -1,4 +1,4 @@ -import { TestCaseCommand } from "./TestCaseFixture"; +import { TestCaseCommand } from "../testCaseRecorder/TestCaseFixture"; import { merge } from "lodash"; export function cleanUpTestCaseCommand( diff --git a/src/testUtil/plainObjectToTarget.ts b/packages/cursorless-engine/testUtil/plainObjectToTarget.ts similarity index 85% rename from src/testUtil/plainObjectToTarget.ts rename to packages/cursorless-engine/testUtil/plainObjectToTarget.ts index 4fce3ef4d5..4fea496d09 100644 --- a/src/testUtil/plainObjectToTarget.ts +++ b/packages/cursorless-engine/testUtil/plainObjectToTarget.ts @@ -1,8 +1,10 @@ -import { TextEditor } from "@cursorless/common"; -import { TargetPlainObject } from "../libs/common/testUtil/toPlainObject"; +import { + plainObjectToRange, + TargetPlainObject, + TextEditor, +} from "@cursorless/common"; import { UntypedTarget } from "../processTargets/targets"; import { Target } from "../typings/target.types"; -import { plainObjectToRange } from "../libs/common/testUtil/fromPlainObject"; /** * Given a plain object describing a target, constructs a `Target` object. diff --git a/src/libs/vscode-common/testUtil/takeSnapshot.ts b/packages/cursorless-engine/testUtil/takeSnapshot.ts similarity index 88% rename from src/libs/vscode-common/testUtil/takeSnapshot.ts rename to packages/cursorless-engine/testUtil/takeSnapshot.ts index e1447eb5cd..b289a738ea 100644 --- a/src/libs/vscode-common/testUtil/takeSnapshot.ts +++ b/packages/cursorless-engine/testUtil/takeSnapshot.ts @@ -1,9 +1,7 @@ -import type { TextEditor } from "@cursorless/common"; -import { hrtimeBigintToSeconds } from "@cursorless/common"; -import type { ThatMark } from "../../../core/ThatMark"; -import type { Clipboard } from "../../common/ide/types/Clipboard"; -import type { IDE } from "../../common/ide/types/ide.types"; import { + Clipboard, + hrtimeBigintToSeconds, + IDE, RangePlainObject, rangeToPlainObject, SelectionPlainObject, @@ -11,7 +9,9 @@ import { SerializedMarks, TargetPlainObject, targetToPlainObject, + TextEditor, } from "@cursorless/common"; +import type { ThatMark } from "../core/ThatMark"; export type ExtraSnapshotField = keyof TestCaseSnapshot; export type ExcludableSnapshotField = keyof TestCaseSnapshot; @@ -34,7 +34,7 @@ export type TestCaseSnapshot = { metadata?: unknown; }; -interface ExtraContext { +export interface ExtraContext { startTimestamp?: bigint; } diff --git a/packages/cursorless-engine/tokenGraphemeSplitter/.eslintrc.json b/packages/cursorless-engine/tokenGraphemeSplitter/.eslintrc.json new file mode 100644 index 0000000000..9a0be9ce27 --- /dev/null +++ b/packages/cursorless-engine/tokenGraphemeSplitter/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/libs/cursorless-engine/tokenGraphemeSplitter/index.ts b/packages/cursorless-engine/tokenGraphemeSplitter/index.ts similarity index 100% rename from src/libs/cursorless-engine/tokenGraphemeSplitter/index.ts rename to packages/cursorless-engine/tokenGraphemeSplitter/index.ts diff --git a/src/libs/cursorless-engine/tokenGraphemeSplitter/tokenGraphemeSplitter.test.ts b/packages/cursorless-engine/tokenGraphemeSplitter/tokenGraphemeSplitter.test.ts similarity index 100% rename from src/libs/cursorless-engine/tokenGraphemeSplitter/tokenGraphemeSplitter.test.ts rename to packages/cursorless-engine/tokenGraphemeSplitter/tokenGraphemeSplitter.test.ts diff --git a/src/libs/cursorless-engine/tokenGraphemeSplitter/tokenGraphemeSplitter.ts b/packages/cursorless-engine/tokenGraphemeSplitter/tokenGraphemeSplitter.ts similarity index 99% rename from src/libs/cursorless-engine/tokenGraphemeSplitter/tokenGraphemeSplitter.ts rename to packages/cursorless-engine/tokenGraphemeSplitter/tokenGraphemeSplitter.ts index aea23e3840..116bcd75e5 100644 --- a/src/libs/cursorless-engine/tokenGraphemeSplitter/tokenGraphemeSplitter.ts +++ b/packages/cursorless-engine/tokenGraphemeSplitter/tokenGraphemeSplitter.ts @@ -1,5 +1,5 @@ import { deburr, escapeRegExp } from "lodash"; -import ide from "../singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { TokenHatSplittingMode, Disposable, diff --git a/packages/cursorless-engine/tokenizer/.eslintrc.json b/packages/cursorless-engine/tokenizer/.eslintrc.json new file mode 100644 index 0000000000..9a0be9ce27 --- /dev/null +++ b/packages/cursorless-engine/tokenizer/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/libs/cursorless-engine/tokenizer/index.ts b/packages/cursorless-engine/tokenizer/index.ts similarity index 100% rename from src/libs/cursorless-engine/tokenizer/index.ts rename to packages/cursorless-engine/tokenizer/index.ts diff --git a/src/libs/cursorless-engine/tokenizer/tokenizer.test.ts b/packages/cursorless-engine/tokenizer/tokenizer.test.ts similarity index 100% rename from src/libs/cursorless-engine/tokenizer/tokenizer.test.ts rename to packages/cursorless-engine/tokenizer/tokenizer.test.ts diff --git a/src/libs/cursorless-engine/tokenizer/tokenizer.ts b/packages/cursorless-engine/tokenizer/tokenizer.ts similarity index 98% rename from src/libs/cursorless-engine/tokenizer/tokenizer.ts rename to packages/cursorless-engine/tokenizer/tokenizer.ts index 7f56977bca..2f9b25287a 100644 --- a/src/libs/cursorless-engine/tokenizer/tokenizer.ts +++ b/packages/cursorless-engine/tokenizer/tokenizer.ts @@ -1,5 +1,5 @@ import { escapeRegExp } from "lodash"; -import ide from "../singletons/ide.singleton"; +import { ide } from "../singletons/ide.singleton"; import { matchAll } from "../util/regex"; import { LanguageTokenizerComponents } from "./tokenizer.types"; diff --git a/src/libs/cursorless-engine/tokenizer/tokenizer.types.ts b/packages/cursorless-engine/tokenizer/tokenizer.types.ts similarity index 100% rename from src/libs/cursorless-engine/tokenizer/tokenizer.types.ts rename to packages/cursorless-engine/tokenizer/tokenizer.types.ts diff --git a/packages/cursorless-engine/typings/.eslintrc.json b/packages/cursorless-engine/typings/.eslintrc.json new file mode 100644 index 0000000000..9a0be9ce27 --- /dev/null +++ b/packages/cursorless-engine/typings/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/packages/cursorless-engine/typings/Graph.ts b/packages/cursorless-engine/typings/Graph.ts new file mode 100644 index 0000000000..c66df627ee --- /dev/null +++ b/packages/cursorless-engine/typings/Graph.ts @@ -0,0 +1,55 @@ +import { CommandServerApi, Range, TextDocument } from "@cursorless/common"; +import { SyntaxNode } from "web-tree-sitter"; +import { ActionRecord } from "../actions/actions.types"; +import Debug from "../core/Debug"; +import HatTokenMap from "../core/HatTokenMap"; +import { Snippets } from "../core/Snippets"; +import { RangeUpdater } from "../core/updateSelections/RangeUpdater"; +import { TestCaseRecorder } from "../testCaseRecorder/TestCaseRecorder"; + +export interface Graph { + /** + * Keeps a map from action names to objects that implement the given action + */ + readonly actions: ActionRecord; + + /** + * Maps from (hatStyle, character) pairs to tokens + */ + readonly hatTokenMap: HatTokenMap; + + /** + * Keeps a merged list of all user-contributed, core, and + * extension-contributed cursorless snippets + */ + readonly snippets: Snippets; + + /** + * This component can be used to register a list of ranges to keep up to date + * as the document changes + */ + readonly rangeUpdater: RangeUpdater; + + /** + * API object for interacting with the command server, if it exists + */ + readonly commandServerApi: CommandServerApi | null; + + /** + * Function to access nodes in the tree sitter. + */ + readonly getNodeAtLocation: ( + document: TextDocument, + range: Range, + ) => SyntaxNode; + + /** + * Debug logger + */ + readonly debug: Debug; + + /** + * Used for recording test cases + */ + readonly testCaseRecorder: TestCaseRecorder; +} diff --git a/src/typings/TargetDescriptor.ts b/packages/cursorless-engine/typings/TargetDescriptor.ts similarity index 95% rename from src/typings/TargetDescriptor.ts rename to packages/cursorless-engine/typings/TargetDescriptor.ts index 0607941676..f0d06e54ed 100644 --- a/src/typings/TargetDescriptor.ts +++ b/packages/cursorless-engine/typings/TargetDescriptor.ts @@ -5,7 +5,7 @@ import { PositionModifier, RangeType, ImplicitTargetDescriptor, -} from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; export interface PrimitiveTargetDescriptor extends PartialPrimitiveTargetDescriptor { diff --git a/src/typings/Types.ts b/packages/cursorless-engine/typings/Types.ts similarity index 67% rename from src/typings/Types.ts rename to packages/cursorless-engine/typings/Types.ts index 9fa1288a51..b676295e3c 100644 --- a/src/typings/Types.ts +++ b/packages/cursorless-engine/typings/Types.ts @@ -1,21 +1,12 @@ import type { Range, Selection, - TextEditor, TextDocument, + TextEditor, } from "@cursorless/common"; import { SyntaxNode } from "web-tree-sitter"; -import { ActionRecord } from "../actions/actions.types"; -import Debug from "../core/Debug"; -import HatTokenMap from "../core/HatTokenMap"; import { ReadOnlyHatMap } from "../core/IndividualHatMap"; -import { Snippets } from "../core/Snippets"; -import StatusBarItem from "../core/StatusBarItem"; -import { RangeUpdater } from "../core/updateSelections/RangeUpdater"; -import type { CommandServerApi } from "../libs/vscode-common/getExtensionApi"; -import KeyboardCommands from "../keyboard/KeyboardCommands"; import { ModifierStage } from "../processTargets/PipelineStages.types"; -import { TestCaseRecorder } from "../testUtil/TestCaseRecorder"; import { Target } from "./target.types"; import { RangeOffsets } from "./updateSelections"; @@ -92,63 +83,6 @@ export interface SelectionWithContext { context: SelectionContext; } -export interface Graph { - /** - * Keeps a map from action names to objects that implement the given action - */ - readonly actions: ActionRecord; - - /** - * Maps from (hatStyle, character) pairs to tokens - */ - readonly hatTokenMap: HatTokenMap; - - /** - * Keeps a merged list of all user-contributed, core, and - * extension-contributed cursorless snippets - */ - readonly snippets: Snippets; - - /** - * This component can be used to register a list of ranges to keep up to date - * as the document changes - */ - readonly rangeUpdater: RangeUpdater; - - /** - * API object for interacting with the command server, if it exists - */ - readonly commandServerApi: CommandServerApi | null; - - /** - * Function to access nodes in the tree sitter. - */ - readonly getNodeAtLocation: ( - document: TextDocument, - range: Range, - ) => SyntaxNode; - - /** - * Debug logger - */ - readonly debug: Debug; - - /** - * Used for recording test cases - */ - readonly testCaseRecorder: TestCaseRecorder; - - /** - * Creates a VSCode status bar item - */ - readonly statusBarItem: StatusBarItem; - - /** - * Set of simplified commands that can be easily mapped to keyboard shortcuts. - */ - readonly keyboardCommands: KeyboardCommands; -} - export type NodeMatcherValue = { node: SyntaxNode; selection: SelectionWithContext; diff --git a/src/typings/generic.ts b/packages/cursorless-engine/typings/generic.ts similarity index 100% rename from src/typings/generic.ts rename to packages/cursorless-engine/typings/generic.ts diff --git a/src/typings/target.types.ts b/packages/cursorless-engine/typings/target.types.ts similarity index 96% rename from src/typings/target.types.ts rename to packages/cursorless-engine/typings/target.types.ts index 62385ff21d..8cb560b773 100644 --- a/src/typings/target.types.ts +++ b/packages/cursorless-engine/typings/target.types.ts @@ -16,8 +16,8 @@ import type { UntypedTarget, } from "../processTargets/targets"; // eslint-disable-next-line @typescript-eslint/no-unused-vars, unused-imports/no-unused-imports -import type { Snippet, SnippetVariable } from "./snippet"; -import type { Position } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import type { Snippet, SnippetVariable } from "../snippets/snippet.types"; +import type { TargetPosition } from "@cursorless/common"; import type { EditWithRangeUpdater } from "./Types"; export type EditNewActionType = "edit" | "insertLineAfter"; @@ -142,5 +142,5 @@ export interface Target { * Construct a position target with the given position. * @param position The position to use, eg `start`, `end`, `before`, `after` */ - toPositionTarget(position: Position): Target; + toPositionTarget(position: TargetPosition): Target; } diff --git a/src/typings/treeSitter.ts b/packages/cursorless-engine/typings/treeSitter.ts similarity index 100% rename from src/typings/treeSitter.ts rename to packages/cursorless-engine/typings/treeSitter.ts diff --git a/src/typings/updateSelections.ts b/packages/cursorless-engine/typings/updateSelections.ts similarity index 94% rename from src/typings/updateSelections.ts rename to packages/cursorless-engine/typings/updateSelections.ts index c31e94e27d..d0433e6aa4 100644 --- a/src/typings/updateSelections.ts +++ b/packages/cursorless-engine/typings/updateSelections.ts @@ -1,8 +1,8 @@ -import type { Range } from "@cursorless/common"; import type { + Range, TextDocumentChangeEvent, TextDocumentContentChangeEvent, -} from "../libs/common/ide/types/Events"; +} from "@cursorless/common"; export interface RangeOffsets { start: number; diff --git a/packages/cursorless-engine/util/.eslintrc.json b/packages/cursorless-engine/util/.eslintrc.json new file mode 100644 index 0000000000..9a0be9ce27 --- /dev/null +++ b/packages/cursorless-engine/util/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/packages/cursorless-engine/util/allocateHats/.eslintrc.json b/packages/cursorless-engine/util/allocateHats/.eslintrc.json new file mode 100644 index 0000000000..36c19f5203 --- /dev/null +++ b/packages/cursorless-engine/util/allocateHats/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../*"], + "message": "Cursorless engine has restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Cursorless engine shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/util/allocateHats/HatMetrics.ts b/packages/cursorless-engine/util/allocateHats/HatMetrics.ts similarity index 95% rename from src/util/allocateHats/HatMetrics.ts rename to packages/cursorless-engine/util/allocateHats/HatMetrics.ts index 41629a8821..37ec1afdb8 100644 --- a/src/util/allocateHats/HatMetrics.ts +++ b/packages/cursorless-engine/util/allocateHats/HatMetrics.ts @@ -1,6 +1,5 @@ +import { CompositeKeyMap, HatStability } from "@cursorless/common"; import { min } from "lodash"; -import { HatStability } from "../../libs/common/ide/types/HatStability"; -import CompositeKeyMap from "../../libs/common/util/CompositeKeyMap"; import { HatCandidate, TokenHat } from "./allocateHats"; /** diff --git a/src/util/allocateHats/allocateHats.ts b/packages/cursorless-engine/util/allocateHats/allocateHats.ts similarity index 92% rename from src/util/allocateHats/allocateHats.ts rename to packages/cursorless-engine/util/allocateHats/allocateHats.ts index b192663e84..141681e1ad 100644 --- a/src/util/allocateHats/allocateHats.ts +++ b/packages/cursorless-engine/util/allocateHats/allocateHats.ts @@ -1,13 +1,14 @@ -import { DefaultMap, Range, TextEditor } from "@cursorless/common"; -import { clone } from "lodash"; -import { HatStability } from "../../libs/common/ide/types/HatStability"; -import { HatStyleMap } from "../../libs/common/ide/types/Hats"; -import { HatStyleName } from "../../libs/common/ide/types/hatStyles.types"; -import CompositeKeyMap from "../../libs/common/util/CompositeKeyMap"; import { - Grapheme, - TokenGraphemeSplitter, -} from "../../libs/cursorless-engine/tokenGraphemeSplitter"; + CompositeKeyMap, + DefaultMap, + HatStability, + HatStyleMap, + HatStyleName, + Range, + TextEditor, +} from "@cursorless/common"; +import { clone } from "lodash"; +import { Grapheme, TokenGraphemeSplitter } from "../../tokenGraphemeSplitter"; import { Token } from "../../typings/Types"; import { chooseTokenHat } from "./chooseTokenHat"; import { getHatRankingContext } from "./getHatRankingContext"; diff --git a/src/util/allocateHats/chooseTokenHat.ts b/packages/cursorless-engine/util/allocateHats/chooseTokenHat.ts similarity index 100% rename from src/util/allocateHats/chooseTokenHat.ts rename to packages/cursorless-engine/util/allocateHats/chooseTokenHat.ts diff --git a/src/util/allocateHats/getDisplayLineMap.ts b/packages/cursorless-engine/util/allocateHats/getDisplayLineMap.ts similarity index 100% rename from src/util/allocateHats/getDisplayLineMap.ts rename to packages/cursorless-engine/util/allocateHats/getDisplayLineMap.ts diff --git a/src/util/allocateHats/getHatRankingContext.ts b/packages/cursorless-engine/util/allocateHats/getHatRankingContext.ts similarity index 88% rename from src/util/allocateHats/getHatRankingContext.ts rename to packages/cursorless-engine/util/allocateHats/getHatRankingContext.ts index 7cfce02a72..0f9cabcd34 100644 --- a/src/util/allocateHats/getHatRankingContext.ts +++ b/packages/cursorless-engine/util/allocateHats/getHatRankingContext.ts @@ -1,6 +1,5 @@ -import { HatStyleName } from "../../libs/common/ide/types/hatStyles.types"; -import CompositeKeyMap from "../../libs/common/util/CompositeKeyMap"; -import { TokenGraphemeSplitter } from "../../libs/cursorless-engine/tokenGraphemeSplitter"; +import { CompositeKeyMap, HatStyleName } from "@cursorless/common"; +import { TokenGraphemeSplitter } from "../../tokenGraphemeSplitter"; import { Token } from "../../typings/Types"; import { TokenHat } from "./allocateHats"; import { RankedToken } from "./getRankedTokens"; diff --git a/src/util/allocateHats/getRankedTokens.ts b/packages/cursorless-engine/util/allocateHats/getRankedTokens.ts similarity index 100% rename from src/util/allocateHats/getRankedTokens.ts rename to packages/cursorless-engine/util/allocateHats/getRankedTokens.ts diff --git a/src/util/allocateHats/getTokenComparator.ts b/packages/cursorless-engine/util/allocateHats/getTokenComparator.ts similarity index 100% rename from src/util/allocateHats/getTokenComparator.ts rename to packages/cursorless-engine/util/allocateHats/getTokenComparator.ts diff --git a/src/util/allocateHats/getTokensInRange.ts b/packages/cursorless-engine/util/allocateHats/getTokensInRange.ts similarity index 91% rename from src/util/allocateHats/getTokensInRange.ts rename to packages/cursorless-engine/util/allocateHats/getTokensInRange.ts index 23dbf5c6ee..78b9255cfa 100644 --- a/src/util/allocateHats/getTokensInRange.ts +++ b/packages/cursorless-engine/util/allocateHats/getTokensInRange.ts @@ -1,5 +1,5 @@ import { Range, TextEditor } from "@cursorless/common"; -import { tokenize } from "../../libs/cursorless-engine/tokenizer"; +import { tokenize } from "../../tokenizer"; import { Token } from "../../typings/Types"; export function getTokensInRange(editor: TextEditor, range: Range): Token[] { diff --git a/src/util/allocateHats/index.ts b/packages/cursorless-engine/util/allocateHats/index.ts similarity index 100% rename from src/util/allocateHats/index.ts rename to packages/cursorless-engine/util/allocateHats/index.ts diff --git a/src/util/allocateHats/maxByFirstDiffering.ts b/packages/cursorless-engine/util/allocateHats/maxByFirstDiffering.ts similarity index 100% rename from src/util/allocateHats/maxByFirstDiffering.ts rename to packages/cursorless-engine/util/allocateHats/maxByFirstDiffering.ts diff --git a/src/util/array.ts b/packages/cursorless-engine/util/array.ts similarity index 100% rename from src/util/array.ts rename to packages/cursorless-engine/util/array.ts diff --git a/src/util/bigint.ts b/packages/cursorless-engine/util/bigint.ts similarity index 100% rename from src/util/bigint.ts rename to packages/cursorless-engine/util/bigint.ts diff --git a/src/util/getMatchesInRange.ts b/packages/cursorless-engine/util/getMatchesInRange.ts similarity index 89% rename from src/util/getMatchesInRange.ts rename to packages/cursorless-engine/util/getMatchesInRange.ts index 6eb01df603..e7064e3e5d 100644 --- a/src/util/getMatchesInRange.ts +++ b/packages/cursorless-engine/util/getMatchesInRange.ts @@ -1,7 +1,7 @@ import { Range, TextEditor } from "@cursorless/common"; import { imap } from "itertools"; -import { matchAll } from "../libs/cursorless-engine/util/regex"; -import type { Direction } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { matchAll } from "./regex"; +import type { Direction } from "@cursorless/common"; export function getMatchesInRange( regex: RegExp, diff --git a/src/util/getPrimitiveTargets.ts b/packages/cursorless-engine/util/getPrimitiveTargets.ts similarity index 97% rename from src/util/getPrimitiveTargets.ts rename to packages/cursorless-engine/util/getPrimitiveTargets.ts index 29051b7d84..8d8aae4111 100644 --- a/src/util/getPrimitiveTargets.ts +++ b/packages/cursorless-engine/util/getPrimitiveTargets.ts @@ -3,7 +3,7 @@ import { PartialPrimitiveTargetDescriptor, PartialRangeTargetDescriptor, PartialTargetDescriptor, -} from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; import { PrimitiveTargetDescriptor, TargetDescriptor, diff --git a/src/util/graphFactories.ts b/packages/cursorless-engine/util/graphFactories.ts similarity index 63% rename from src/util/graphFactories.ts rename to packages/cursorless-engine/util/graphFactories.ts index c72abe1195..2ce63a4b5b 100644 --- a/src/util/graphFactories.ts +++ b/packages/cursorless-engine/util/graphFactories.ts @@ -2,11 +2,9 @@ import Actions from "../actions"; import Debug from "../core/Debug"; import HatTokenMap from "../core/HatTokenMap"; import { Snippets } from "../core/Snippets"; -import StatusBarItem from "../core/StatusBarItem"; import { RangeUpdater } from "../core/updateSelections/RangeUpdater"; -import KeyboardCommands from "../keyboard/KeyboardCommands"; -import { TestCaseRecorder } from "../testUtil/TestCaseRecorder"; -import { Graph } from "../typings/Types"; +import { TestCaseRecorder } from "../testCaseRecorder/TestCaseRecorder"; +import { Graph } from "../typings/Graph"; import { FactoryMap } from "./makeGraph"; type ConstructorMap = { @@ -20,15 +18,11 @@ const graphConstructors: Partial> = { rangeUpdater: RangeUpdater, debug: Debug, testCaseRecorder: TestCaseRecorder, - statusBarItem: StatusBarItem, - keyboardCommands: KeyboardCommands, }; -const graphFactories: Partial> = Object.fromEntries( +export const graphFactories: Partial> = Object.fromEntries( Object.entries(graphConstructors).map(([key, constructor]) => [ key, (graph: Graph) => new constructor(graph), ]), ); - -export default graphFactories; diff --git a/src/util/makeGraph.ts b/packages/cursorless-engine/util/makeGraph.ts similarity index 93% rename from src/util/makeGraph.ts rename to packages/cursorless-engine/util/makeGraph.ts index 145a896bc6..a279349562 100644 --- a/src/util/makeGraph.ts +++ b/packages/cursorless-engine/util/makeGraph.ts @@ -1,4 +1,4 @@ -import isTesting from "../testUtil/isTesting"; +import { isTesting } from "@cursorless/common"; export type FactoryMap = { [P in keyof T]: (t: T) => T[P]; @@ -36,7 +36,7 @@ function makeGetter( }; } -export default function makeGraph( +export function makeGraph( factoryMap: FactoryMap, ) { const components: Partial = {}; diff --git a/src/util/map.ts b/packages/cursorless-engine/util/map.ts similarity index 100% rename from src/util/map.ts rename to packages/cursorless-engine/util/map.ts diff --git a/src/util/nodeFinders.ts b/packages/cursorless-engine/util/nodeFinders.ts similarity index 100% rename from src/util/nodeFinders.ts rename to packages/cursorless-engine/util/nodeFinders.ts diff --git a/src/util/nodeMatchers.ts b/packages/cursorless-engine/util/nodeMatchers.ts similarity index 98% rename from src/util/nodeMatchers.ts rename to packages/cursorless-engine/util/nodeMatchers.ts index 9c90035986..f52e19af12 100644 --- a/src/util/nodeMatchers.ts +++ b/packages/cursorless-engine/util/nodeMatchers.ts @@ -1,5 +1,5 @@ import { SyntaxNode } from "web-tree-sitter"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { NodeFinder, NodeMatcher, diff --git a/src/util/nodeSelectors.ts b/packages/cursorless-engine/util/nodeSelectors.ts similarity index 100% rename from src/util/nodeSelectors.ts rename to packages/cursorless-engine/util/nodeSelectors.ts diff --git a/src/util/object.ts b/packages/cursorless-engine/util/object.ts similarity index 100% rename from src/util/object.ts rename to packages/cursorless-engine/util/object.ts diff --git a/src/util/performDocumentEdits.ts b/packages/cursorless-engine/util/performDocumentEdits.ts similarity index 100% rename from src/util/performDocumentEdits.ts rename to packages/cursorless-engine/util/performDocumentEdits.ts diff --git a/src/util/rangeUtils.ts b/packages/cursorless-engine/util/rangeUtils.ts similarity index 100% rename from src/util/rangeUtils.ts rename to packages/cursorless-engine/util/rangeUtils.ts diff --git a/src/libs/cursorless-engine/util/regex.ts b/packages/cursorless-engine/util/regex.ts similarity index 100% rename from src/libs/cursorless-engine/util/regex.ts rename to packages/cursorless-engine/util/regex.ts diff --git a/src/util/selectionUtils.ts b/packages/cursorless-engine/util/selectionUtils.ts similarity index 100% rename from src/util/selectionUtils.ts rename to packages/cursorless-engine/util/selectionUtils.ts diff --git a/src/util/setSelectionsAndFocusEditor.ts b/packages/cursorless-engine/util/setSelectionsAndFocusEditor.ts similarity index 100% rename from src/util/setSelectionsAndFocusEditor.ts rename to packages/cursorless-engine/util/setSelectionsAndFocusEditor.ts diff --git a/src/util/targetUtils.ts b/packages/cursorless-engine/util/targetUtils.ts similarity index 94% rename from src/util/targetUtils.ts rename to packages/cursorless-engine/util/targetUtils.ts index 95134acb18..4e0e33a701 100644 --- a/src/util/targetUtils.ts +++ b/packages/cursorless-engine/util/targetUtils.ts @@ -1,17 +1,18 @@ -import { IDE, Range, Selection, TextEditor } from "@cursorless/common"; -import { zip } from "lodash"; import { FlashDescriptor, FlashStyle, -} from "../libs/common/ide/types/FlashDescriptor"; -import { GeneralizedRange, + groupBy, + IDE, + Range, + Selection, + TextEditor, toCharacterRange, toLineRange, -} from "../libs/common/types/GeneralizedRange"; +} from "@cursorless/common"; +import { zip } from "lodash"; import { Target } from "../typings/target.types"; import { SelectionWithEditor } from "../typings/Types"; -import { groupBy } from "./itertools"; export function ensureSingleEditor(targets: Target[]): TextEditor { if (targets.length === 0) { diff --git a/src/util/treeSitterUtils.ts b/packages/cursorless-engine/util/treeSitterUtils.ts similarity index 100% rename from src/util/treeSitterUtils.ts rename to packages/cursorless-engine/util/treeSitterUtils.ts diff --git a/src/util/tryConstructTarget.ts b/packages/cursorless-engine/util/tryConstructTarget.ts similarity index 100% rename from src/util/tryConstructTarget.ts rename to packages/cursorless-engine/util/tryConstructTarget.ts diff --git a/src/util/type.ts b/packages/cursorless-engine/util/type.ts similarity index 100% rename from src/util/type.ts rename to packages/cursorless-engine/util/type.ts diff --git a/src/util/typeUtils.ts b/packages/cursorless-engine/util/typeUtils.ts similarity index 100% rename from src/util/typeUtils.ts rename to packages/cursorless-engine/util/typeUtils.ts diff --git a/src/util/unifyRanges.ts b/packages/cursorless-engine/util/unifyRanges.ts similarity index 100% rename from src/util/unifyRanges.ts rename to packages/cursorless-engine/util/unifyRanges.ts diff --git a/src/util/uniqDeep.ts b/packages/cursorless-engine/util/uniqDeep.ts similarity index 100% rename from src/util/uniqDeep.ts rename to packages/cursorless-engine/util/uniqDeep.ts diff --git a/src/libs/vscode-common/.eslintrc.json b/packages/cursorless-vscode-core/.eslintrc.json similarity index 100% rename from src/libs/vscode-common/.eslintrc.json rename to packages/cursorless-vscode-core/.eslintrc.json diff --git a/packages/cursorless-vscode-core/StatusBarItem.ts b/packages/cursorless-vscode-core/StatusBarItem.ts new file mode 100644 index 0000000000..f28735065d --- /dev/null +++ b/packages/cursorless-vscode-core/StatusBarItem.ts @@ -0,0 +1,35 @@ +import * as vscode from "vscode"; + +const DEFAULT_TEXT = "$(cursorless-icon) Cursorless"; + +export class StatusBarItem { + private statusBarItem?: vscode.StatusBarItem; + + private constructor() { + // empty + } + + static create(showQuickPickCommandId: string) { + const statusBarItem = new StatusBarItem(); + statusBarItem.init(showQuickPickCommandId); + return statusBarItem; + } + + private init(showQuickPickCommandId: string) { + this.statusBarItem = vscode.window.createStatusBarItem( + vscode.StatusBarAlignment.Right, + 100, + ); + this.statusBarItem.command = showQuickPickCommandId; + this.statusBarItem.text = DEFAULT_TEXT; + this.statusBarItem.show(); + } + + setText(text: string) { + this.statusBarItem!.text = `$(cursorless-icon) ${text}`; + } + + unsetText() { + this.statusBarItem!.text = DEFAULT_TEXT; + } +} diff --git a/packages/cursorless-vscode-core/commands.ts b/packages/cursorless-vscode-core/commands.ts new file mode 100644 index 0000000000..4557357e6f --- /dev/null +++ b/packages/cursorless-vscode-core/commands.ts @@ -0,0 +1,11 @@ +import * as vscode from "vscode"; + +export const showDocumentation = () => + vscode.env.openExternal(vscode.Uri.parse("https://www.cursorless.org/docs/")); + +export const showQuickPick = () => + vscode.commands.executeCommand("workbench.action.quickOpen", ">Cursorless"); + +export const commandIds = { + showQuickPick: "cursorless.showQuickPick", +}; diff --git a/src/libs/vscode-common/testUtil/.eslintrc.json b/packages/cursorless-vscode-core/ide/vscode/.eslintrc.json similarity index 100% rename from src/libs/vscode-common/testUtil/.eslintrc.json rename to packages/cursorless-vscode-core/ide/vscode/.eslintrc.json diff --git a/src/ide/vscode/VscodeCapabilities.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeCapabilities.ts similarity index 88% rename from src/ide/vscode/VscodeCapabilities.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeCapabilities.ts index 67c98935e4..8230b233a3 100644 --- a/src/ide/vscode/VscodeCapabilities.ts +++ b/packages/cursorless-vscode-core/ide/vscode/VscodeCapabilities.ts @@ -1,7 +1,4 @@ -import { - Capabilities, - CommandCapabilityMap, -} from "../../libs/common/ide/types/Capabilities"; +import { Capabilities, CommandCapabilityMap } from "@cursorless/common"; const COMMAND_CAPABILITIES: CommandCapabilityMap = { clipboardCopy: { acceptsLocation: false }, diff --git a/src/ide/vscode/VscodeClipboard.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeClipboard.ts similarity index 80% rename from src/ide/vscode/VscodeClipboard.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeClipboard.ts index 0e806483df..2c3dd2e498 100644 --- a/src/ide/vscode/VscodeClipboard.ts +++ b/packages/cursorless-vscode-core/ide/vscode/VscodeClipboard.ts @@ -1,5 +1,5 @@ import * as vscode from "vscode"; -import { Clipboard } from "../../libs/common/ide/types/Clipboard"; +import { Clipboard } from "@cursorless/common"; export default class VscodeClipboard implements Clipboard { readText(): Thenable { diff --git a/src/ide/vscode/VscodeConfiguration.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeConfiguration.ts similarity index 83% rename from src/ide/vscode/VscodeConfiguration.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeConfiguration.ts index bda35e1e8b..9a00993e5e 100644 --- a/src/ide/vscode/VscodeConfiguration.ts +++ b/packages/cursorless-vscode-core/ide/vscode/VscodeConfiguration.ts @@ -5,10 +5,10 @@ import { Configuration, ConfigurationScope, CursorlessConfiguration, -} from "../../libs/common/ide/types/Configuration"; -import { GetFieldType, Paths } from "../../libs/common/ide/types/Paths"; -import { Notifier } from "../../libs/common/util/Notifier"; -import type VscodeIDE from "./VscodeIDE"; +} from "@cursorless/common"; +import { GetFieldType, Paths } from "@cursorless/common"; +import { Notifier } from "@cursorless/common"; +import type { VscodeIDE } from "./VscodeIDE"; const translators = { experimental: { diff --git a/src/ide/vscode/VscodeEdit.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeEdit.ts similarity index 100% rename from src/ide/vscode/VscodeEdit.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeEdit.ts diff --git a/src/ide/vscode/VscodeEnabledHatStyleManager.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeEnabledHatStyleManager.ts similarity index 94% rename from src/ide/vscode/VscodeEnabledHatStyleManager.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeEnabledHatStyleManager.ts index 00d90b1d7a..2f73a4e8e3 100644 --- a/src/ide/vscode/VscodeEnabledHatStyleManager.ts +++ b/packages/cursorless-vscode-core/ide/vscode/VscodeEnabledHatStyleManager.ts @@ -1,8 +1,8 @@ +import { isTesting } from "@cursorless/common"; import { pickBy } from "lodash"; import * as vscode from "vscode"; -import { HatStyleInfo, HatStyleMap } from "../../libs/common/ide/types/Hats"; -import { Listener, Notifier } from "../../libs/common/util/Notifier"; -import isTesting from "../../testUtil/isTesting"; +import { HatStyleInfo, HatStyleMap } from "@cursorless/common"; +import { Listener, Notifier } from "@cursorless/common"; import { HatColor, HatShape, diff --git a/src/ide/vscode/VscodeEvents.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeEvents.ts similarity index 90% rename from src/ide/vscode/VscodeEvents.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeEvents.ts index a7526a033a..395527e3c2 100644 --- a/src/ide/vscode/VscodeEvents.ts +++ b/packages/cursorless-vscode-core/ide/vscode/VscodeEvents.ts @@ -4,9 +4,9 @@ import type { TextDocumentChangeEvent, TextDocumentChangeReason, TextDocumentContentChangeEvent, -} from "../../libs/common/ide/types/Events"; -import { Event } from "../../libs/common/ide/types/events.types"; -import type { Disposable } from "../../libs/common/ide/types/ide.types"; +} from "@cursorless/common"; +import { Event } from "@cursorless/common"; +import type { Disposable } from "@cursorless/common"; import { VscodeTextDocumentImpl } from "./VscodeTextDocumentImpl"; export function vscodeOnDidChangeTextDocument( diff --git a/src/ide/vscode/VscodeFlashHandler.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeFlashHandler.ts similarity index 86% rename from src/ide/vscode/VscodeFlashHandler.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeFlashHandler.ts index 05bd9e24fc..d1e87ef409 100644 --- a/src/ide/vscode/VscodeFlashHandler.ts +++ b/packages/cursorless-vscode-core/ide/vscode/VscodeFlashHandler.ts @@ -1,12 +1,13 @@ -import { EditorGeneralizedRange, sleep } from "@cursorless/common"; -import { workspace } from "vscode"; import { + EditorGeneralizedRange, FlashDescriptor, FlashStyle, -} from "../../libs/common/ide/types/FlashDescriptor"; -import { groupBy } from "../../util/itertools"; + groupBy, + sleep, +} from "@cursorless/common"; +import { workspace } from "vscode"; import VscodeHighlights from "./VscodeHighlights"; -import VscodeIDE from "./VscodeIDE"; +import { VscodeIDE } from "./VscodeIDE"; export default class VscodeFlashHandler { constructor(private ide: VscodeIDE, private highlights: VscodeHighlights) {} diff --git a/src/ide/vscode/VscodeFocusEditor.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeFocusEditor.ts similarity index 96% rename from src/ide/vscode/VscodeFocusEditor.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeFocusEditor.ts index 12bb87c8de..8ace81a268 100644 --- a/src/ide/vscode/VscodeFocusEditor.ts +++ b/packages/cursorless-vscode-core/ide/vscode/VscodeFocusEditor.ts @@ -7,13 +7,13 @@ import { ViewColumn, window, } from "vscode"; -import { getCellIndex } from "../../libs/vscode-common/notebook"; +import { getCellIndex } from "@cursorless/vscode-common"; import { getNotebookFromCellDocument } from "./notebook/notebook"; import { focusNotebookCellLegacy, isVscodeLegacyNotebookVersion, } from "./notebook/notebookLegacy"; -import type VscodeIDE from "./VscodeIDE"; +import type { VscodeIDE } from "./VscodeIDE"; import { VscodeTextEditorImpl } from "./VscodeTextEditorImpl"; const columnFocusCommands = { diff --git a/src/ide/vscode/VscodeFold.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeFold.ts similarity index 97% rename from src/ide/vscode/VscodeFold.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeFold.ts index fe40b7f700..d8041ed8c4 100644 --- a/src/ide/vscode/VscodeFold.ts +++ b/packages/cursorless-vscode-core/ide/vscode/VscodeFold.ts @@ -1,6 +1,6 @@ import { Range } from "@cursorless/common"; import * as vscode from "vscode"; -import VscodeIDE from "./VscodeIDE"; +import { VscodeIDE } from "./VscodeIDE"; import { VscodeTextEditorImpl } from "./VscodeTextEditorImpl"; export async function vscodeFold( diff --git a/src/ide/vscode/VscodeGlobalState.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeGlobalState.ts similarity index 77% rename from src/ide/vscode/VscodeGlobalState.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeGlobalState.ts index 26776964ef..a8ba7bb9ef 100644 --- a/src/ide/vscode/VscodeGlobalState.ts +++ b/packages/cursorless-vscode-core/ide/vscode/VscodeGlobalState.ts @@ -1,10 +1,6 @@ import type { ExtensionContext } from "vscode"; -import type { - State, - StateData, - StateKey, -} from "../../libs/common/ide/types/State"; -import { STATE_DEFAULTS } from "../../libs/common/ide/types/State"; +import type { State, StateData, StateKey } from "@cursorless/common"; +import { STATE_DEFAULTS } from "@cursorless/common"; export default class VscodeGlobalState implements State { constructor(private extensionContext: ExtensionContext) { diff --git a/src/ide/vscode/VscodeHighlightDecorationTypes.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeHighlightDecorationTypes.ts similarity index 100% rename from src/ide/vscode/VscodeHighlightDecorationTypes.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeHighlightDecorationTypes.ts diff --git a/src/ide/vscode/VscodeHighlights.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeHighlights.ts similarity index 92% rename from src/ide/vscode/VscodeHighlights.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeHighlights.ts index 7aebacccc0..6f7388c051 100644 --- a/src/ide/vscode/VscodeHighlights.ts +++ b/packages/cursorless-vscode-core/ide/vscode/VscodeHighlights.ts @@ -1,13 +1,12 @@ import * as vscode from "vscode"; import { ExtensionContext } from "vscode"; -import { FlashStyle } from "../../libs/common/ide/types/FlashDescriptor"; +import { FlashStyle, partition } from "@cursorless/common"; import { CharacterRange, GeneralizedRange, isLineRange, LineRange, -} from "../../libs/common/types/GeneralizedRange"; -import { partition } from "../../util/itertools"; +} from "@cursorless/common"; import { VscodeHighlightDecorationTypes } from "./VscodeHighlightDecorationTypes"; import { VscodeTextEditorImpl } from "./VscodeTextEditorImpl"; diff --git a/src/ide/vscode/VscodeIDE.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeIDE.ts similarity index 93% rename from src/ide/vscode/VscodeIDE.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeIDE.ts index a0cd2aadab..2ae3665592 100644 --- a/src/ide/vscode/VscodeIDE.ts +++ b/packages/cursorless-vscode-core/ide/vscode/VscodeIDE.ts @@ -1,27 +1,25 @@ -import type { +import { + Disposable, EditableTextEditor, + FlashDescriptor, GeneralizedRange, + HighlightId, + IDE, InputBoxOptions, + OutdatedExtensionError, + QuickPickOptions, + RunMode, + TextDocumentChangeEvent, TextEditor, } from "@cursorless/common"; +import { + fromVscodeRange, + fromVscodeSelection, +} from "@cursorless/vscode-common"; import { pull } from "lodash"; import { v4 as uuid } from "uuid"; import * as vscode from "vscode"; import { ExtensionContext, window, workspace, WorkspaceFolder } from "vscode"; -import { OutdatedExtensionError } from "../../errors"; -import type { TextDocumentChangeEvent } from "../../libs/common/ide/types/Events"; -import { FlashDescriptor } from "../../libs/common/ide/types/FlashDescriptor"; -import type { - Disposable, - HighlightId, - IDE, - RunMode, -} from "../../libs/common/ide/types/ide.types"; -import { QuickPickOptions } from "../../libs/common/ide/types/QuickPickOptions"; -import { - fromVscodeRange, - fromVscodeSelection, -} from "../../libs/vscode-common/vscodeUtil"; import { VscodeHats } from "./hats/VscodeHats"; import { VscodeCapabilities } from "./VscodeCapabilities"; import VscodeClipboard from "./VscodeClipboard"; @@ -36,7 +34,7 @@ import { vscodeShowQuickPick } from "./vscodeShowQuickPick"; import { VscodeTextDocumentImpl } from "./VscodeTextDocumentImpl"; import { VscodeTextEditorImpl } from "./VscodeTextEditorImpl"; -export default class VscodeIDE implements IDE { +export class VscodeIDE implements IDE { readonly configuration: VscodeConfiguration; readonly globalState: VscodeGlobalState; readonly messages: VscodeMessages; diff --git a/src/ide/vscode/VscodeInsertSnippets.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeInsertSnippets.ts similarity index 100% rename from src/ide/vscode/VscodeInsertSnippets.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeInsertSnippets.ts diff --git a/src/ide/vscode/VscodeMessages.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeMessages.ts similarity index 85% rename from src/ide/vscode/VscodeMessages.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeMessages.ts index 9a7c21c330..1bcd35d305 100644 --- a/src/ide/vscode/VscodeMessages.ts +++ b/packages/cursorless-vscode-core/ide/vscode/VscodeMessages.ts @@ -1,9 +1,5 @@ import { window } from "vscode"; -import { - MessageId, - Messages, - MessageType, -} from "../../libs/common/ide/types/Messages"; +import { MessageId, Messages, MessageType } from "@cursorless/common"; export default class VscodeMessages implements Messages { async showMessage( diff --git a/src/ide/vscode/VscodeNotebooks.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeNotebooks.ts similarity index 100% rename from src/ide/vscode/VscodeNotebooks.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeNotebooks.ts diff --git a/src/ide/vscode/VscodeOpenLink.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeOpenLink.ts similarity index 100% rename from src/ide/vscode/VscodeOpenLink.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeOpenLink.ts diff --git a/src/ide/vscode/VscodeRevealLine.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeRevealLine.ts similarity index 100% rename from src/ide/vscode/VscodeRevealLine.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeRevealLine.ts diff --git a/src/ide/vscode/VscodeRunMode.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeRunMode.ts similarity index 100% rename from src/ide/vscode/VscodeRunMode.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeRunMode.ts diff --git a/src/ide/vscode/VscodeTextDocumentImpl.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeTextDocumentImpl.ts similarity index 100% rename from src/ide/vscode/VscodeTextDocumentImpl.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeTextDocumentImpl.ts diff --git a/src/ide/vscode/VscodeTextEditorImpl.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeTextEditorImpl.ts similarity index 99% rename from src/ide/vscode/VscodeTextEditorImpl.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeTextEditorImpl.ts index 1e88025ad8..ec4539199e 100644 --- a/src/ide/vscode/VscodeTextEditorImpl.ts +++ b/packages/cursorless-vscode-core/ide/vscode/VscodeTextEditorImpl.ts @@ -22,7 +22,7 @@ import * as vscode from "vscode"; import vscodeEdit from "./VscodeEdit"; import vscodeFocusEditor from "./VscodeFocusEditor"; import { vscodeFold, vscodeUnfold } from "./VscodeFold"; -import VscodeIDE from "./VscodeIDE"; +import { VscodeIDE } from "./VscodeIDE"; import { vscodeInsertSnippet } from "./VscodeInsertSnippets"; import { vscodeEditNewNotebookCellAbove, diff --git a/src/ide/vscode/VscodeTextLineImpl.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeTextLineImpl.ts similarity index 100% rename from src/ide/vscode/VscodeTextLineImpl.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeTextLineImpl.ts diff --git a/src/ide/vscode/VscodeToggleBreakpoint.ts b/packages/cursorless-vscode-core/ide/vscode/VscodeToggleBreakpoint.ts similarity index 100% rename from src/ide/vscode/VscodeToggleBreakpoint.ts rename to packages/cursorless-vscode-core/ide/vscode/VscodeToggleBreakpoint.ts diff --git a/src/ide/vscode/hatStyles.types.ts b/packages/cursorless-vscode-core/ide/vscode/hatStyles.types.ts similarity index 100% rename from src/ide/vscode/hatStyles.types.ts rename to packages/cursorless-vscode-core/ide/vscode/hatStyles.types.ts diff --git a/packages/cursorless-vscode-core/ide/vscode/hats/.eslintrc.json b/packages/cursorless-vscode-core/ide/vscode/hats/.eslintrc.json new file mode 100644 index 0000000000..35c0d420b7 --- /dev/null +++ b/packages/cursorless-vscode-core/ide/vscode/hats/.eslintrc.json @@ -0,0 +1,16 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../../*"], + "message": "VSCode common shouldn't import from Cursorless extension", + "allowTypeImports": true + } + ] + } + ] + } +} diff --git a/src/ide/vscode/hats/FontMeasurements.ts b/packages/cursorless-vscode-core/ide/vscode/hats/FontMeasurements.ts similarity index 100% rename from src/ide/vscode/hats/FontMeasurements.ts rename to packages/cursorless-vscode-core/ide/vscode/hats/FontMeasurements.ts diff --git a/src/ide/vscode/hats/VscodeHatRenderer.ts b/packages/cursorless-vscode-core/ide/vscode/hats/VscodeHatRenderer.ts similarity index 99% rename from src/ide/vscode/hats/VscodeHatRenderer.ts rename to packages/cursorless-vscode-core/ide/vscode/hats/VscodeHatRenderer.ts index 82b9cd48a9..d909032f7c 100644 --- a/src/ide/vscode/hats/VscodeHatRenderer.ts +++ b/packages/cursorless-vscode-core/ide/vscode/hats/VscodeHatRenderer.ts @@ -9,7 +9,7 @@ import { DEFAULT_VERTICAL_OFFSET_EM, IndividualHatAdjustmentMap, } from "./shapeAdjustments"; -import { Listener, Notifier } from "../../../libs/common/util/Notifier"; +import { Listener, Notifier } from "@cursorless/common"; import FontMeasurements from "./FontMeasurements"; import { HatShape, HAT_SHAPES, VscodeHatStyleName } from "../hatStyles.types"; import VscodeEnabledHatStyleManager, { diff --git a/src/ide/vscode/hats/VscodeHats.ts b/packages/cursorless-vscode-core/ide/vscode/hats/VscodeHats.ts similarity index 91% rename from src/ide/vscode/hats/VscodeHats.ts rename to packages/cursorless-vscode-core/ide/vscode/hats/VscodeHats.ts index 4238a02352..fecf425b54 100644 --- a/src/ide/vscode/hats/VscodeHats.ts +++ b/packages/cursorless-vscode-core/ide/vscode/hats/VscodeHats.ts @@ -1,19 +1,21 @@ -import { Range, TextEditor } from "@cursorless/common"; -import * as vscode from "vscode"; -import { Disposable } from "vscode"; import { HatRange, Hats, HatStyleMap, -} from "../../../libs/common/ide/types/Hats"; -import { Listener, Notifier } from "../../../libs/common/util/Notifier"; -import { toVscodeRange } from "../../../libs/vscode-common/vscodeUtil"; + HatStyleName, + Listener, + Notifier, + Range, + TextEditor, +} from "@cursorless/common"; +import { toVscodeRange } from "@cursorless/vscode-common"; +import * as vscode from "vscode"; +import { Disposable } from "vscode"; import { VscodeHatStyleName } from "../hatStyles.types"; import VscodeEnabledHatStyleManager from "../VscodeEnabledHatStyleManager"; -import VscodeHatRenderer from "./VscodeHatRenderer"; -import type VscodeIDE from "../VscodeIDE"; +import type { VscodeIDE } from "../VscodeIDE"; import { VscodeTextEditorImpl } from "../VscodeTextEditorImpl"; -import { HatStyleName } from "../../../libs/common/ide/types/hatStyles.types"; +import VscodeHatRenderer from "./VscodeHatRenderer"; export class VscodeHats implements Hats { private enabledHatStyleManager: VscodeEnabledHatStyleManager; diff --git a/src/ide/vscode/hats/getHatThemeColors.ts b/packages/cursorless-vscode-core/ide/vscode/hats/getHatThemeColors.ts similarity index 100% rename from src/ide/vscode/hats/getHatThemeColors.ts rename to packages/cursorless-vscode-core/ide/vscode/hats/getHatThemeColors.ts diff --git a/src/ide/vscode/hats/getStyleName.ts b/packages/cursorless-vscode-core/ide/vscode/hats/getStyleName.ts similarity index 100% rename from src/ide/vscode/hats/getStyleName.ts rename to packages/cursorless-vscode-core/ide/vscode/hats/getStyleName.ts diff --git a/src/ide/vscode/hats/shapeAdjustments.ts b/packages/cursorless-vscode-core/ide/vscode/hats/shapeAdjustments.ts similarity index 100% rename from src/ide/vscode/hats/shapeAdjustments.ts rename to packages/cursorless-vscode-core/ide/vscode/hats/shapeAdjustments.ts diff --git a/src/ide/vscode/notebook/notebook.ts b/packages/cursorless-vscode-core/ide/vscode/notebook/notebook.ts similarity index 100% rename from src/ide/vscode/notebook/notebook.ts rename to packages/cursorless-vscode-core/ide/vscode/notebook/notebook.ts diff --git a/src/ide/vscode/notebook/notebookLegacy.ts b/packages/cursorless-vscode-core/ide/vscode/notebook/notebookLegacy.ts similarity index 94% rename from src/ide/vscode/notebook/notebookLegacy.ts rename to packages/cursorless-vscode-core/ide/vscode/notebook/notebookLegacy.ts index 868ac5dd9b..f3dc7dbd13 100644 --- a/src/ide/vscode/notebook/notebookLegacy.ts +++ b/packages/cursorless-vscode-core/ide/vscode/notebook/notebookLegacy.ts @@ -3,8 +3,8 @@ import { range } from "lodash"; import * as semver from "semver"; import { commands, NotebookDocument, TextDocument, version } from "vscode"; import type { VscodeTextEditorImpl } from "../VscodeTextEditorImpl"; -import type VscodeIDE from "../VscodeIDE"; -import { getCellIndex } from "../../../libs/vscode-common/notebook"; +import type { VscodeIDE } from "../VscodeIDE"; +import { getCellIndex } from "@cursorless/vscode-common"; import { getNotebookFromCellDocument } from "./notebook"; export function isVscodeLegacyNotebookVersion() { diff --git a/src/ide/vscode/textLine.test.ts b/packages/cursorless-vscode-core/ide/vscode/textLine.test.ts similarity index 92% rename from src/ide/vscode/textLine.test.ts rename to packages/cursorless-vscode-core/ide/vscode/textLine.test.ts index ec71f2f79f..cbbe591d64 100644 --- a/src/ide/vscode/textLine.test.ts +++ b/packages/cursorless-vscode-core/ide/vscode/textLine.test.ts @@ -1,5 +1,5 @@ import * as assert from "assert"; -import { openNewEditor } from "../../libs/vscode-common/testUtil/openNewEditor"; +import { openNewEditor } from "@cursorless/vscode-common"; import VscodeTextLineImpl from "./VscodeTextLineImpl"; /** diff --git a/src/ide/vscode/vscodeShowQuickPick.ts b/packages/cursorless-vscode-core/ide/vscode/vscodeShowQuickPick.ts similarity index 95% rename from src/ide/vscode/vscodeShowQuickPick.ts rename to packages/cursorless-vscode-core/ide/vscode/vscodeShowQuickPick.ts index 73d6d22557..d17b1d6993 100644 --- a/src/ide/vscode/vscodeShowQuickPick.ts +++ b/packages/cursorless-vscode-core/ide/vscode/vscodeShowQuickPick.ts @@ -1,8 +1,5 @@ import * as vscode from "vscode"; -import { - QuickPickOptions, - UnknownValuesOptions, -} from "../../libs/common/ide/types/QuickPickOptions"; +import { QuickPickOptions, UnknownValuesOptions } from "@cursorless/common"; export async function vscodeShowQuickPick( items: readonly string[], diff --git a/packages/cursorless-vscode-core/index.ts b/packages/cursorless-vscode-core/index.ts new file mode 100644 index 0000000000..536466c890 --- /dev/null +++ b/packages/cursorless-vscode-core/index.ts @@ -0,0 +1,4 @@ +export * from "./StatusBarItem"; +export * from "./commands"; +export * from "./ide/vscode/VscodeIDE"; +export * from "./keyboard/KeyboardCommands"; diff --git a/packages/cursorless-vscode-core/keyboard/.eslintrc.json b/packages/cursorless-vscode-core/keyboard/.eslintrc.json new file mode 100644 index 0000000000..a9563bc5a2 --- /dev/null +++ b/packages/cursorless-vscode-core/keyboard/.eslintrc.json @@ -0,0 +1,16 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "VSCode common shouldn't import from Cursorless extension", + "allowTypeImports": true + } + ] + } + ] + } +} diff --git a/packages/cursorless-vscode-core/keyboard/KeyboardCommands.ts b/packages/cursorless-vscode-core/keyboard/KeyboardCommands.ts new file mode 100644 index 0000000000..bfbdc55efe --- /dev/null +++ b/packages/cursorless-vscode-core/keyboard/KeyboardCommands.ts @@ -0,0 +1,36 @@ +import { ExtensionContext } from "vscode"; +import { StatusBarItem } from "../StatusBarItem"; +import KeyboardCommandsModal from "./KeyboardCommandsModal"; +import KeyboardCommandsTargeted from "./KeyboardCommandsTargeted"; +import KeyboardHandler from "./KeyboardHandler"; + +export class KeyboardCommands { + targeted: KeyboardCommandsTargeted; + modal: KeyboardCommandsModal; + keyboardHandler: KeyboardHandler; + + private constructor( + private context: ExtensionContext, + statusBarItem: StatusBarItem, + ) { + this.keyboardHandler = new KeyboardHandler(context, statusBarItem); + this.targeted = new KeyboardCommandsTargeted(this.keyboardHandler); + this.modal = new KeyboardCommandsModal( + context, + this.targeted, + this.keyboardHandler, + ); + } + + static create(context: ExtensionContext, statusBarItem: StatusBarItem) { + const keyboardCommands = new KeyboardCommands(context, statusBarItem); + keyboardCommands.init(); + return keyboardCommands; + } + + private init() { + this.modal.init(); + this.keyboardHandler.init(); + this.targeted.init(this.modal); + } +} diff --git a/src/keyboard/KeyboardCommandsModal.ts b/packages/cursorless-vscode-core/keyboard/KeyboardCommandsModal.ts similarity index 76% rename from src/keyboard/KeyboardCommandsModal.ts rename to packages/cursorless-vscode-core/keyboard/KeyboardCommandsModal.ts index 7c3c1876a6..820a19c111 100644 --- a/src/keyboard/KeyboardCommandsModal.ts +++ b/packages/cursorless-vscode-core/keyboard/KeyboardCommandsModal.ts @@ -1,7 +1,5 @@ import { keys, merge, toPairs } from "lodash"; import * as vscode from "vscode"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; -import { Graph } from "../typings/Types"; import { DEFAULT_ACTION_KEYMAP, DEFAULT_COLOR_KEYMAP, @@ -9,6 +7,8 @@ import { DEFAULT_SCOPE_KEYMAP, DEFAULT_SHAPE_KEYMAP, } from "./defaultKeymaps"; +import KeyboardCommandsTargeted from "./KeyboardCommandsTargeted"; +import KeyboardHandler from "./KeyboardHandler"; type SectionName = "actions" | "scopes" | "colors" | "shapes"; @@ -35,7 +35,11 @@ export default class KeyboardCommandsModal { */ private mergedKeymap!: Record>; - constructor(private graph: Graph) { + constructor( + private extensionContext: vscode.ExtensionContext, + private targeted: KeyboardCommandsTargeted, + private keyboardHandler: KeyboardHandler, + ) { this.modeOn = this.modeOn.bind(this); this.modeOff = this.modeOff.bind(this); this.handleInput = this.handleInput.bind(this); @@ -44,19 +48,7 @@ export default class KeyboardCommandsModal { } init() { - ide().disposeOnExit( - vscode.commands.registerCommand( - "cursorless.keyboard.modal.modeOn", - this.modeOn, - ), - vscode.commands.registerCommand( - "cursorless.keyboard.modal.modeOff", - this.modeOff, - ), - vscode.commands.registerCommand( - "cursorless.keyboard.modal.modeToggle", - this.modeToggle, - ), + this.extensionContext.subscriptions.push( vscode.workspace.onDidChangeConfiguration((event) => { if ( event.affectsConfiguration( @@ -73,20 +65,20 @@ export default class KeyboardCommandsModal { this.mergedKeymap = {}; this.handleSection("actions", DEFAULT_ACTION_KEYMAP, (value) => - this.graph.keyboardCommands.targeted.performActionOnTarget(value), + this.targeted.performActionOnTarget(value), ); this.handleSection("scopes", DEFAULT_SCOPE_KEYMAP, (value) => - this.graph.keyboardCommands.targeted.targetScopeType({ + this.targeted.targetScopeType({ scopeType: value, }), ); this.handleSection("colors", DEFAULT_COLOR_KEYMAP, (value) => - this.graph.keyboardCommands.targeted.targetDecoratedMark({ + this.targeted.targetDecoratedMark({ color: value, }), ); this.handleSection("shapes", DEFAULT_SHAPE_KEYMAP, (value) => - this.graph.keyboardCommands.targeted.targetDecoratedMark({ + this.targeted.targetDecoratedMark({ shape: value, }), ); @@ -138,19 +130,18 @@ export default class KeyboardCommandsModal { return; } - this.inputDisposable = - this.graph.keyboardCommands.keyboardHandler.pushListener({ - handleInput: this.handleInput, - displayOptions: { - cursorStyle: vscode.TextEditorCursorStyle.BlockOutline, - whenClauseContext: "cursorless.keyboard.modal.mode", - statusBarText: "Listening...", - }, - handleCancelled: this.modeOff, - }); + this.inputDisposable = this.keyboardHandler.pushListener({ + handleInput: this.handleInput, + displayOptions: { + cursorStyle: vscode.TextEditorCursorStyle.BlockOutline, + whenClauseContext: "cursorless.keyboard.modal.mode", + statusBarText: "Listening...", + }, + handleCancelled: this.modeOff, + }); // Set target to current selection when we enter the mode - await this.graph.keyboardCommands.targeted.targetSelection(); + await this.targeted.targetSelection(); }; modeOff = async () => { @@ -162,7 +153,7 @@ export default class KeyboardCommandsModal { this.inputDisposable = undefined; // Clear target upon exiting mode; this will remove the highlight - await this.graph.keyboardCommands.targeted.clearTarget(); + await this.targeted.clearTarget(); }; modeToggle = () => { @@ -190,12 +181,11 @@ export default class KeyboardCommandsModal { throw Error(errorMessage); } - const nextKey = - await this.graph.keyboardCommands.keyboardHandler.awaitSingleKeypress({ - cursorStyle: vscode.TextEditorCursorStyle.Underline, - whenClauseContext: "cursorless.keyboard.targeted.awaitingKeys", - statusBarText: "Finish sequence...", - }); + const nextKey = await this.keyboardHandler.awaitSingleKeypress({ + cursorStyle: vscode.TextEditorCursorStyle.Underline, + whenClauseContext: "cursorless.keyboard.targeted.awaitingKeys", + statusBarText: "Finish sequence...", + }); if (nextKey == null) { return; diff --git a/src/keyboard/KeyboardCommandsTargeted.ts b/packages/cursorless-vscode-core/keyboard/KeyboardCommandsTargeted.ts similarity index 82% rename from src/keyboard/KeyboardCommandsTargeted.ts rename to packages/cursorless-vscode-core/keyboard/KeyboardCommandsTargeted.ts index 40851a9f59..94b562c9ba 100644 --- a/src/keyboard/KeyboardCommandsTargeted.ts +++ b/packages/cursorless-vscode-core/keyboard/KeyboardCommandsTargeted.ts @@ -1,20 +1,18 @@ -import * as vscode from "vscode"; -import { runCursorlessCommand } from "../apps/cursorless-vscode-e2e/runCommand"; -import { ActionType } from "../core/commandRunner/typings/ActionCommand"; import { + ActionType, CommandLatest, - LATEST_VERSION, -} from "../core/commandRunner/typings/command.types"; -import { ImplicitTargetDescriptor, + LATEST_VERSION, PartialPrimitiveTargetDescriptor, PartialTargetDescriptor, SimpleScopeTypeType, -} from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +} from "@cursorless/common"; +import { runCursorlessCommand } from "@cursorless/vscode-common"; +import * as vscode from "vscode"; import { getStyleName } from "../ide/vscode/hats/getStyleName"; -import { HatColor, HatShape } from "../ide/vscode/hatStyles.types"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; -import { Graph } from "../typings/Types"; +import type { HatColor, HatShape } from "../ide/vscode/hatStyles.types"; +import KeyboardCommandsModal from "./KeyboardCommandsModal"; +import KeyboardHandler from "./KeyboardHandler"; type TargetingMode = "replace" | "extend" | "append"; @@ -40,7 +38,9 @@ interface TargetScopeTypeArgument { * actions on highlighted targets. */ export default class KeyboardCommandsTargeted { - constructor(private graph: Graph) { + private modal!: KeyboardCommandsModal; + + constructor(private keyboardHandler: KeyboardHandler) { this.targetDecoratedMark = this.targetDecoratedMark.bind(this); this.performActionOnTarget = this.performActionOnTarget.bind(this); this.targetScopeType = this.targetScopeType.bind(this); @@ -48,29 +48,8 @@ export default class KeyboardCommandsTargeted { this.clearTarget = this.clearTarget.bind(this); } - init() { - ide().disposeOnExit( - vscode.commands.registerCommand( - "cursorless.keyboard.targeted.targetHat", - this.targetDecoratedMark, - ), - vscode.commands.registerCommand( - "cursorless.keyboard.targeted.targetScope", - this.targetScopeType, - ), - vscode.commands.registerCommand( - "cursorless.keyboard.targeted.targetSelection", - this.targetSelection, - ), - vscode.commands.registerCommand( - "cursorless.keyboard.targeted.clearTarget", - this.clearTarget, - ), - vscode.commands.registerCommand( - "cursorless.keyboard.targeted.runActionOnTarget", - this.performActionOnTarget, - ), - ); + init(modal: KeyboardCommandsModal) { + this.modal = modal; } /** @@ -87,7 +66,7 @@ export default class KeyboardCommandsTargeted { }: TargetDecoratedMarkArgument) => { character = character ?? - (await this.graph.keyboardCommands.keyboardHandler.awaitSingleKeypress({ + (await this.keyboardHandler.awaitSingleKeypress({ cursorStyle: vscode.TextEditorCursorStyle.Underline, whenClauseContext: "cursorless.keyboard.targeted.awaitingHatCharacter", statusBarText: "Which hat?", @@ -231,7 +210,7 @@ export default class KeyboardCommandsTargeted { if (EXIT_CURSORLESS_MODE_ACTIONS.includes(action)) { // For some Cursorless actions, it is more convenient if we automatically // exit modal mode - await this.graph.keyboardCommands.modal.modeOff(); + await this.modal.modeOff(); } return returnValue; diff --git a/src/keyboard/KeyboardHandler.ts b/packages/cursorless-vscode-core/keyboard/KeyboardHandler.ts similarity index 95% rename from src/keyboard/KeyboardHandler.ts rename to packages/cursorless-vscode-core/keyboard/KeyboardHandler.ts index 7f6b10a567..80e161fd9c 100644 --- a/src/keyboard/KeyboardHandler.ts +++ b/packages/cursorless-vscode-core/keyboard/KeyboardHandler.ts @@ -1,8 +1,7 @@ import { pull } from "lodash"; import * as vscode from "vscode"; import { Disposable } from "vscode"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; -import { Graph } from "../typings/Types"; +import { StatusBarItem } from "../StatusBarItem"; /** * This when clause context is active if any Cursorless listener is in control @@ -87,17 +86,16 @@ export default class KeyboardHandler { private isActivated = false; private disposables: Disposable[] = []; - constructor(private graph: Graph) { + constructor( + extensionContext: vscode.ExtensionContext, + private statusBarItem: StatusBarItem, + ) { this.cancelActiveListener = this.cancelActiveListener.bind(this); - ide().disposeOnExit(this); + extensionContext.subscriptions.push(this); } init() { this.disposables.push( - vscode.commands.registerCommand( - "cursorless.keyboard.escape", - this.cancelActiveListener, - ), vscode.window.onDidChangeActiveTextEditor((textEditor) => { if (!textEditor) { return; @@ -307,9 +305,9 @@ export default class KeyboardHandler { this.activeListener?.listener.displayOptions.statusBarText; if (statusBarText == null) { - this.graph.statusBarItem.unsetText(); + this.statusBarItem.unsetText(); } else { - this.graph.statusBarItem.setText(statusBarText); + this.statusBarItem.setText(statusBarText); } } diff --git a/src/keyboard/defaultKeymaps.ts b/packages/cursorless-vscode-core/keyboard/defaultKeymaps.ts similarity index 76% rename from src/keyboard/defaultKeymaps.ts rename to packages/cursorless-vscode-core/keyboard/defaultKeymaps.ts index 6945603e94..a35daad0e7 100644 --- a/src/keyboard/defaultKeymaps.ts +++ b/packages/cursorless-vscode-core/keyboard/defaultKeymaps.ts @@ -1,7 +1,7 @@ -import { ActionType } from "../core/commandRunner/typings/ActionCommand"; -import { SimpleScopeTypeType } from "../core/commandRunner/typings/PartialTargetDescriptor.types"; +import { ActionType } from "@cursorless/common"; +import { SimpleScopeTypeType } from "@cursorless/common"; import { HatColor, HatShape } from "../ide/vscode/hatStyles.types"; -import isTesting from "../testUtil/isTesting"; +import { isTesting } from "@cursorless/common"; export type Keymap = Record; diff --git a/packages/cursorless-vscode-core/scripts/.eslintrc.json b/packages/cursorless-vscode-core/scripts/.eslintrc.json new file mode 100644 index 0000000000..c9b5c8708c --- /dev/null +++ b/packages/cursorless-vscode-core/scripts/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "Scripts have restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Scripts shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/packages/cursorless-vscode-core/scripts/hatAdjustments/.eslintrc.json b/packages/cursorless-vscode-core/scripts/hatAdjustments/.eslintrc.json new file mode 100644 index 0000000000..5304fd139d --- /dev/null +++ b/packages/cursorless-vscode-core/scripts/hatAdjustments/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../../*"], + "message": "Scripts have restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Scripts shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/scripts/hatAdjustments/add.ts b/packages/cursorless-vscode-core/scripts/hatAdjustments/add.ts similarity index 100% rename from src/scripts/hatAdjustments/add.ts rename to packages/cursorless-vscode-core/scripts/hatAdjustments/add.ts diff --git a/src/scripts/hatAdjustments/average.ts b/packages/cursorless-vscode-core/scripts/hatAdjustments/average.ts similarity index 100% rename from src/scripts/hatAdjustments/average.ts rename to packages/cursorless-vscode-core/scripts/hatAdjustments/average.ts diff --git a/src/scripts/hatAdjustments/lib.ts b/packages/cursorless-vscode-core/scripts/hatAdjustments/lib.ts similarity index 100% rename from src/scripts/hatAdjustments/lib.ts rename to packages/cursorless-vscode-core/scripts/hatAdjustments/lib.ts diff --git a/src/scripts/initLaunchSandbox.ts b/packages/cursorless-vscode-core/scripts/initLaunchSandbox.ts similarity index 93% rename from src/scripts/initLaunchSandbox.ts rename to packages/cursorless-vscode-core/scripts/initLaunchSandbox.ts index f04fb0b0dd..c0a40f32d9 100644 --- a/src/scripts/initLaunchSandbox.ts +++ b/packages/cursorless-vscode-core/scripts/initLaunchSandbox.ts @@ -3,8 +3,8 @@ * allowing you to have a separate set of extensions and settings for use when * developing the Cursorless VSCode extension locally. */ +import { extensionDependencies } from "@cursorless/common"; import * as cp from "child_process"; -import { extensionDependencies } from "../test/extensionDependencies"; const extraExtensions = ["pokey.command-server", "pokey.talon"]; diff --git a/src/scripts/prepareForExtensionPublish.ts b/packages/cursorless-vscode-core/scripts/prepareForExtensionPublish.ts similarity index 100% rename from src/scripts/prepareForExtensionPublish.ts rename to packages/cursorless-vscode-core/scripts/prepareForExtensionPublish.ts diff --git a/src/scripts/preprocessSvgHats.ts b/packages/cursorless-vscode-core/scripts/preprocessSvgHats.ts similarity index 100% rename from src/scripts/preprocessSvgHats.ts rename to packages/cursorless-vscode-core/scripts/preprocessSvgHats.ts diff --git a/src/apps/cursorless-vscode-e2e/.eslintrc.json b/packages/cursorless-vscode-e2e/.eslintrc.json similarity index 100% rename from src/apps/cursorless-vscode-e2e/.eslintrc.json rename to packages/cursorless-vscode-e2e/.eslintrc.json diff --git a/src/apps/cursorless-vscode-e2e/asyncSafety.ts b/packages/cursorless-vscode-e2e/asyncSafety.ts similarity index 100% rename from src/apps/cursorless-vscode-e2e/asyncSafety.ts rename to packages/cursorless-vscode-e2e/asyncSafety.ts diff --git a/src/apps/cursorless-vscode-e2e/endToEndTestSetup.ts b/packages/cursorless-vscode-e2e/endToEndTestSetup.ts similarity index 100% rename from src/apps/cursorless-vscode-e2e/endToEndTestSetup.ts rename to packages/cursorless-vscode-e2e/endToEndTestSetup.ts diff --git a/src/apps/cursorless-vscode-e2e/mockPrePhraseGetVersion.ts b/packages/cursorless-vscode-e2e/mockPrePhraseGetVersion.ts similarity index 82% rename from src/apps/cursorless-vscode-e2e/mockPrePhraseGetVersion.ts rename to packages/cursorless-vscode-e2e/mockPrePhraseGetVersion.ts index 184a7f5a97..767e04809f 100644 --- a/src/apps/cursorless-vscode-e2e/mockPrePhraseGetVersion.ts +++ b/packages/cursorless-vscode-e2e/mockPrePhraseGetVersion.ts @@ -1,5 +1,5 @@ import * as sinon from "sinon"; -import type { Graph } from "../../typings/Types"; +import { Graph } from "@cursorless/cursorless-engine"; export function mockPrePhraseGetVersion( graph: Graph, diff --git a/src/apps/cursorless-vscode-e2e/notebook.ts b/packages/cursorless-vscode-e2e/notebook.ts similarity index 100% rename from src/apps/cursorless-vscode-e2e/notebook.ts rename to packages/cursorless-vscode-e2e/notebook.ts diff --git a/src/apps/cursorless-vscode-e2e/shouldUpdateFixtures.ts b/packages/cursorless-vscode-e2e/shouldUpdateFixtures.ts similarity index 100% rename from src/apps/cursorless-vscode-e2e/shouldUpdateFixtures.ts rename to packages/cursorless-vscode-e2e/shouldUpdateFixtures.ts diff --git a/src/apps/cursorless-vscode-e2e/suite/.eslintrc.json b/packages/cursorless-vscode-e2e/suite/.eslintrc.json similarity index 100% rename from src/apps/cursorless-vscode-e2e/suite/.eslintrc.json rename to packages/cursorless-vscode-e2e/suite/.eslintrc.json diff --git a/src/apps/cursorless-vscode-e2e/suite/backwardCompatibility.test.ts b/packages/cursorless-vscode-e2e/suite/backwardCompatibility.test.ts similarity index 100% rename from src/apps/cursorless-vscode-e2e/suite/backwardCompatibility.test.ts rename to packages/cursorless-vscode-e2e/suite/backwardCompatibility.test.ts diff --git a/src/apps/cursorless-vscode-e2e/suite/breakpoints.test.ts b/packages/cursorless-vscode-e2e/suite/breakpoints.test.ts similarity index 98% rename from src/apps/cursorless-vscode-e2e/suite/breakpoints.test.ts rename to packages/cursorless-vscode-e2e/suite/breakpoints.test.ts index 13cfdb0a9f..b4b7a932e7 100644 --- a/src/apps/cursorless-vscode-e2e/suite/breakpoints.test.ts +++ b/packages/cursorless-vscode-e2e/suite/breakpoints.test.ts @@ -2,7 +2,7 @@ import { getCursorlessApi, openNewEditor } from "@cursorless/vscode-common"; import * as assert from "assert"; import * as vscode from "vscode"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "../runCommand"; +import { runCursorlessCommand } from "@cursorless/vscode-common"; suite("breakpoints", async function () { endToEndTestSetup(this); diff --git a/src/apps/cursorless-vscode-e2e/suite/containingTokenTwice.test.ts b/packages/cursorless-vscode-e2e/suite/containingTokenTwice.test.ts similarity index 95% rename from src/apps/cursorless-vscode-e2e/suite/containingTokenTwice.test.ts rename to packages/cursorless-vscode-e2e/suite/containingTokenTwice.test.ts index 5bfe47beb0..4e3f2db1b5 100644 --- a/src/apps/cursorless-vscode-e2e/suite/containingTokenTwice.test.ts +++ b/packages/cursorless-vscode-e2e/suite/containingTokenTwice.test.ts @@ -2,7 +2,7 @@ import { getCursorlessApi, openNewEditor } from "@cursorless/vscode-common"; import { assert } from "chai"; import * as vscode from "vscode"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "../runCommand"; +import { runCursorlessCommand } from "@cursorless/vscode-common"; // Check that we don't run afoul of stateful regex craziness // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec#finding_successive_matches diff --git a/src/apps/cursorless-vscode-e2e/suite/crossCellsSetSelection.test.ts b/packages/cursorless-vscode-e2e/suite/crossCellsSetSelection.test.ts similarity index 95% rename from src/apps/cursorless-vscode-e2e/suite/crossCellsSetSelection.test.ts rename to packages/cursorless-vscode-e2e/suite/crossCellsSetSelection.test.ts index 3ee3ad584e..ecd8791851 100644 --- a/src/apps/cursorless-vscode-e2e/suite/crossCellsSetSelection.test.ts +++ b/packages/cursorless-vscode-e2e/suite/crossCellsSetSelection.test.ts @@ -5,7 +5,7 @@ import { import * as assert from "assert"; import { window } from "vscode"; import { endToEndTestSetup, sleepWithBackoff } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "../runCommand"; +import { runCursorlessCommand } from "@cursorless/vscode-common"; import { skipIfWindowsCi } from "./skipIfWindowsCi"; // Check that setSelection is able to focus the correct cell diff --git a/src/apps/cursorless-vscode-e2e/suite/editNewCell.test.ts b/packages/cursorless-vscode-e2e/suite/editNewCell.test.ts similarity index 96% rename from src/apps/cursorless-vscode-e2e/suite/editNewCell.test.ts rename to packages/cursorless-vscode-e2e/suite/editNewCell.test.ts index 17f133a3dd..2de10b1658 100644 --- a/src/apps/cursorless-vscode-e2e/suite/editNewCell.test.ts +++ b/packages/cursorless-vscode-e2e/suite/editNewCell.test.ts @@ -7,7 +7,7 @@ import * as assert from "assert"; import { window } from "vscode"; import { endToEndTestSetup, sleepWithBackoff } from "../endToEndTestSetup"; import { getPlainNotebookContents } from "../notebook"; -import { runCursorlessCommand } from "../runCommand"; +import { runCursorlessCommand } from "@cursorless/vscode-common"; import { skipIfWindowsCi } from "./skipIfWindowsCi"; // Check that setSelection is able to focus the correct cell diff --git a/src/test/suite/fixtures/cursorless-snippets/duplicatedVariableTest.cursorless-snippets b/packages/cursorless-vscode-e2e/suite/fixtures/cursorless-snippets/duplicatedVariableTest.cursorless-snippets similarity index 100% rename from src/test/suite/fixtures/cursorless-snippets/duplicatedVariableTest.cursorless-snippets rename to packages/cursorless-vscode-e2e/suite/fixtures/cursorless-snippets/duplicatedVariableTest.cursorless-snippets diff --git a/src/test/suite/fixtures/cursorless-snippets/spaghetti.cursorless-snippets b/packages/cursorless-vscode-e2e/suite/fixtures/cursorless-snippets/spaghetti.cursorless-snippets similarity index 100% rename from src/test/suite/fixtures/cursorless-snippets/spaghetti.cursorless-snippets rename to packages/cursorless-vscode-e2e/suite/fixtures/cursorless-snippets/spaghetti.cursorless-snippets diff --git a/src/test/suite/fixtures/cursorless-snippets/tryCatchStatement.cursorless-snippets b/packages/cursorless-vscode-e2e/suite/fixtures/cursorless-snippets/tryCatchStatement.cursorless-snippets similarity index 100% rename from src/test/suite/fixtures/cursorless-snippets/tryCatchStatement.cursorless-snippets rename to packages/cursorless-vscode-e2e/suite/fixtures/cursorless-snippets/tryCatchStatement.cursorless-snippets diff --git a/src/test/suite/fixtures/helloWorld.txt b/packages/cursorless-vscode-e2e/suite/fixtures/helloWorld.txt similarity index 100% rename from src/test/suite/fixtures/helloWorld.txt rename to packages/cursorless-vscode-e2e/suite/fixtures/helloWorld.txt diff --git a/src/test/suite/fixtures/recorded/actions/_bringLineHarpAndWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/_bringLineHarpAndWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/_bringLineHarpAndWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/_bringLineHarpAndWhale.yml diff --git a/src/test/suite/fixtures/recorded/actions/alternateHighlightHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/alternateHighlightHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/alternateHighlightHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/alternateHighlightHarp.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringAirAndBatAndCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringAirAndBatAndCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringAirAndBatAndCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringAirAndBatAndCap.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringAirAndBatAndCapToAfterDrum.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringAirAndBatAndCapToAfterDrum.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringAirAndBatAndCapToAfterDrum.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringAirAndBatAndCapToAfterDrum.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringAirAndBatAndCapToAfterItemEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringAirAndBatAndCapToAfterItemEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringAirAndBatAndCapToAfterItemEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringAirAndBatAndCapToAfterItemEach.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringAirAndBatAndCapToBeforeDrum.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringAirAndBatAndCapToBeforeDrum.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringAirAndBatAndCapToBeforeDrum.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringAirAndBatAndCapToBeforeDrum.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringAirAndBatAndCapToBeforeItemEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringAirAndBatAndCapToBeforeItemEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringAirAndBatAndCapToBeforeItemEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringAirAndBatAndCapToBeforeItemEach.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringArgMadeAfterLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringArgMadeAfterLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringArgMadeAfterLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringArgMadeAfterLook.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringArgMadeAfterVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringArgMadeAfterVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringArgMadeAfterVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringArgMadeAfterVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringArgWhaleBeforeLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringArgWhaleBeforeLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringArgWhaleBeforeLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringArgWhaleBeforeLook.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringArgueFineAndZip.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringArgueFineAndZip.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringArgueFineAndZip.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringArgueFineAndZip.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringArgueOxAndZipToAfterJustLeper.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringArgueOxAndZipToAfterJustLeper.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringArgueOxAndZipToAfterJustLeper.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringArgueOxAndZipToAfterJustLeper.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringFineAfterLineVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringFineAfterLineVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringFineAfterLineVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringFineAfterLineVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringFineBeforeLineVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringFineBeforeLineVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringFineBeforeLineVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringFineBeforeLineVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringItemAirAfterCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringItemAirAfterCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringItemAirAfterCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringItemAirAfterCap.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringLineAirAndBatAndCapToAfterDrum.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringLineAirAndBatAndCapToAfterDrum.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringLineAirAndBatAndCapToAfterDrum.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringLineAirAndBatAndCapToAfterDrum.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringLineAirAndBatAndCapToBeforeDrum.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringLineAirAndBatAndCapToBeforeDrum.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringLineAirAndBatAndCapToBeforeDrum.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringLineAirAndBatAndCapToBeforeDrum.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/bringVestToCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringVestToCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/bringVestToCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/bringVestToCap.yml diff --git a/src/test/suite/fixtures/recorded/actions/callFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/callFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/callFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/callFine.yml diff --git a/src/test/suite/fixtures/recorded/actions/callVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/callVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/callVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/callVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/callVestOnCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/callVestOnCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/callVestOnCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/callVestOnCap.yml diff --git a/src/test/suite/fixtures/recorded/actions/carveVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/carveVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/carveVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/carveVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/chuckArgMadeAndAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/chuckArgMadeAndAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/chuckArgMadeAndAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/chuckArgMadeAndAir.yml diff --git a/src/test/suite/fixtures/recorded/actions/chuckArgMadeAndAirAndJustSoon.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/chuckArgMadeAndAirAndJustSoon.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/chuckArgMadeAndAirAndJustSoon.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/chuckArgMadeAndAirAndJustSoon.yml diff --git a/src/test/suite/fixtures/recorded/actions/chuckEveryArgMade.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/chuckEveryArgMade.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/chuckEveryArgMade.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/chuckEveryArgMade.yml diff --git a/src/test/suite/fixtures/recorded/actions/chuckVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/chuckVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/chuckVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/chuckVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/clearVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/clearVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/clearVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/clearVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneArgue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneArgue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneArgue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneArgue.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneArgue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneArgue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneArgue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneArgue2.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneEveryArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneEveryArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneEveryArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneEveryArg.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneHarp.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneHarp2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneHarp2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneHarp2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneHarp2.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneToken.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneToken2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneToken2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneToken2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneToken2.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneToken3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneToken3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneToken3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneToken3.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneToken4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneToken4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneToken4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneToken4.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneToken5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneToken5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneToken5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneToken5.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneUpArgue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpArgue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneUpArgue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpArgue.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneUpArgue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpArgue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneUpArgue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpArgue2.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneUpEveryArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpEveryArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneUpEveryArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpEveryArg.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneUpHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneUpHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpHarp.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneUpHarp2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpHarp2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneUpHarp2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpHarp2.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneUpToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneUpToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpToken.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneUpToken2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpToken2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneUpToken2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpToken2.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneUpToken3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpToken3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneUpToken3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpToken3.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneUpToken4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpToken4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneUpToken4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpToken4.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneUpToken5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpToken5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneUpToken5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpToken5.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneUpVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneUpVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneUpVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/cloneVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cloneVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cloneVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/commentVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/commentVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/commentVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/commentVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/config.json b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/config.json similarity index 100% rename from src/test/suite/fixtures/recorded/actions/config.json rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/config.json diff --git a/src/test/suite/fixtures/recorded/actions/copyVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/copyVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/copyVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/copyVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/curlyRepackRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/curlyRepackRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/curlyRepackRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/curlyRepackRound.yml diff --git a/src/test/suite/fixtures/recorded/actions/customHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/customHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/customHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/customHarp.yml diff --git a/src/test/suite/fixtures/recorded/actions/cutEveryArgMade.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cutEveryArgMade.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/cutEveryArgMade.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/cutEveryArgMade.yml diff --git a/src/test/suite/fixtures/recorded/actions/dedentVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/dedentVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/dedentVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/dedentVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/defineVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/defineVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/defineVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/defineVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkArg.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkArg2.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkArg3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkArg3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkArg3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkArg3.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkArg4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkArg4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkArg4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkArg4.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkArg5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkArg5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkArg5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkArg5.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkBlock.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkBlock.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkBlock.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkBlock.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkDrumAndSpunAndTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkDrumAndSpunAndTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkDrumAndSpunAndTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkDrumAndSpunAndTrap.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkHarpAndLookAndTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkHarpAndLookAndTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkHarpAndLookAndTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkHarpAndLookAndTrap.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkItem.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkItem2.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkItem3.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkLine.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkThis.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/drinkVest2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkVest2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/drinkVest2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/drinkVest2.yml diff --git a/src/test/suite/fixtures/recorded/actions/findVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/findVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/findVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/findVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveAfterDot.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveAfterDot.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveAfterDot.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveAfterDot.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveAirAndBang.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveAirAndBang.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveAirAndBang.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveAirAndBang.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveBat.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveBat2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveBat2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveBat2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveBat2.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveBeforeDot.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveBeforeDot.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveBeforeDot.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveBeforeDot.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveBlueQuote.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveBlueQuote.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveBlueQuote.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveBlueQuote.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveBlueQuoteAndQuote.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveBlueQuoteAndQuote.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveBlueQuoteAndQuote.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveBlueQuoteAndQuote.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveCap.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveDot.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveDot.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveDot.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveDot.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveDot2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveDot2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveDot2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveDot2.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveDrum.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveDrum.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveDrum.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveDrum.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveEqualsPastColon.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveEqualsPastColon.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveEqualsPastColon.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveEqualsPastColon.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveHarp.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveHarpAndWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveHarpAndWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveHarpAndWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveHarpAndWhale.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveQuote.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveQuote.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveQuote.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveQuote.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveQuoteAndAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveQuoteAndAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveQuoteAndAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveQuoteAndAir.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveQuoteAndBang.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveQuoteAndBang.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveQuoteAndBang.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveQuoteAndBang.yml diff --git a/src/test/suite/fixtures/recorded/actions/giveVestAndHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveVestAndHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/giveVestAndHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/giveVestAndHarp.yml diff --git a/src/test/suite/fixtures/recorded/actions/highlightNothing.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/highlightNothing.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/highlightNothing.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/highlightNothing.yml diff --git a/src/test/suite/fixtures/recorded/actions/indentVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/indentVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/indentVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/indentVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis10.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis11.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis12.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis2.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis3.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis4.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis5.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis6.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis7.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis8.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropThis9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropThis9.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropVest2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropVest2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/dropVest2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/dropVest2.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis10.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis11.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis12.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis13.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis13.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis13.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis13.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis2.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis3.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis4.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis5.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis6.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis7.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis8.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatThis9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatThis9.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatVest2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatVest2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/floatVest2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/floatVest2.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis10.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis11.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis12.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis13.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis13.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis13.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis13.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis14.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis14.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis14.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis14.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis15.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis15.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis15.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis15.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis16.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis16.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis16.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis16.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis17.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis17.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis17.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis17.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis18.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis18.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis18.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis18.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis19.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis19.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis19.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis19.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis2.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis20.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis20.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis20.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis20.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis21.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis21.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis21.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis21.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis22.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis22.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis22.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis22.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis3.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis4.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis5.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis6.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis7.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis8.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffThis9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffThis9.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffVest2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffVest2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/insertEmptyLines/puffVest2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/insertEmptyLines/puffVest2.yml diff --git a/src/test/suite/fixtures/recorded/actions/moveEveryArgMade.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/moveEveryArgMade.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/moveEveryArgMade.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/moveEveryArgMade.yml diff --git a/src/test/suite/fixtures/recorded/actions/moveVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/moveVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/moveVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/moveVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/moveVestToCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/moveVestToCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/moveVestToCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/moveVestToCap.yml diff --git a/src/test/suite/fixtures/recorded/actions/pasteAfterArgueBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteAfterArgueBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pasteAfterArgueBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteAfterArgueBat.yml diff --git a/src/test/suite/fixtures/recorded/actions/pasteAfterLineSpunAndAfterBlockLookAndBeforeLineSpun.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteAfterLineSpunAndAfterBlockLookAndBeforeLineSpun.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pasteAfterLineSpunAndAfterBlockLookAndBeforeLineSpun.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteAfterLineSpunAndAfterBlockLookAndBeforeLineSpun.yml diff --git a/src/test/suite/fixtures/recorded/actions/pasteAfterLineTrapAndAfterBlockTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteAfterLineTrapAndAfterBlockTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pasteAfterLineTrapAndAfterBlockTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteAfterLineTrapAndAfterBlockTrap.yml diff --git a/src/test/suite/fixtures/recorded/actions/pasteAfterState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteAfterState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pasteAfterState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteAfterState.yml diff --git a/src/test/suite/fixtures/recorded/actions/pasteBeforeArgueZip.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteBeforeArgueZip.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pasteBeforeArgueZip.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteBeforeArgueZip.yml diff --git a/src/test/suite/fixtures/recorded/actions/pasteBeforeState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteBeforeState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pasteBeforeState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteBeforeState.yml diff --git a/src/test/suite/fixtures/recorded/actions/pasteCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pasteCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pasteCap.yml diff --git a/src/test/suite/fixtures/recorded/actions/phonesSpy.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/phonesSpy.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/phonesSpy.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/phonesSpy.yml diff --git a/src/test/suite/fixtures/recorded/actions/postVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/postVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/postVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/postVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourArg.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourArg2.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourArg3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourArg3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourArg3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourArg3.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourArg4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourArg4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourArg4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourArg4.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourBlock.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourBlock.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourBlock.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourBlock.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourBlockHarpAndLineWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourBlockHarpAndLineWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourBlockHarpAndLineWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourBlockHarpAndLineWhale.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourHarpAndLookAndTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourHarpAndLookAndTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourHarpAndLookAndTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourHarpAndLookAndTrap.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourItem.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourItem2.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourItem3.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourLine.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourLineHarpAndBlockWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourLineHarpAndBlockWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourLineHarpAndBlockWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourLineHarpAndBlockWhale.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourThis.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/pourVest2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourVest2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/pourVest2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/pourVest2.yml diff --git a/src/test/suite/fixtures/recorded/actions/preeVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/preeVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/preeVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/preeVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/reformatHarpAsSnake.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/reformatHarpAsSnake.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/reformatHarpAsSnake.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/reformatHarpAsSnake.yml diff --git a/src/test/suite/fixtures/recorded/actions/reformatHarpAsSnake2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/reformatHarpAsSnake2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/reformatHarpAsSnake2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/reformatHarpAsSnake2.yml diff --git a/src/test/suite/fixtures/recorded/actions/replaceAirAndBatAndCapWithCount.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/replaceAirAndBatAndCapWithCount.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/replaceAirAndBatAndCapWithCount.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/replaceAirAndBatAndCapWithCount.yml diff --git a/src/test/suite/fixtures/recorded/actions/replaceVestWithWhatever.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/replaceVestWithWhatever.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/replaceVestWithWhatever.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/replaceVestWithWhatever.yml diff --git a/src/test/suite/fixtures/recorded/actions/reverseAirAndBatAndCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/reverseAirAndBatAndCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/reverseAirAndBatAndCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/reverseAirAndBatAndCap.yml diff --git a/src/test/suite/fixtures/recorded/actions/roundWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/roundWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/roundWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/roundWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/actions/roundWrapVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/roundWrapVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/roundWrapVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/roundWrapVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/roundWrapVest2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/roundWrapVest2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/roundWrapVest2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/roundWrapVest2.yml diff --git a/src/test/suite/fixtures/recorded/actions/shuffleThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/shuffleThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/shuffleThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/shuffleThis.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/duplicatedDuplicatedWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/duplicatedDuplicatedWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/duplicatedDuplicatedWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/duplicatedDuplicatedWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/duplicatedUniqueWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/duplicatedUniqueWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/duplicatedUniqueWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/duplicatedUniqueWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipDuplicatedDuplicated.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipDuplicatedDuplicated.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipDuplicatedDuplicated.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipDuplicatedDuplicated.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipDuplicatedDuplicatedHelloWorld.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipDuplicatedDuplicatedHelloWorld.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipDuplicatedDuplicatedHelloWorld.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipDuplicatedDuplicatedHelloWorld.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipDuplicatedUniqueHelloWorld.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipDuplicatedUniqueHelloWorld.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipDuplicatedUniqueHelloWorld.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipDuplicatedUniqueHelloWorld.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunk.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterFineAndZip.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterFineAndZip.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterFineAndZip.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterFineAndZip.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterMadeAndBeforeFineAndZip.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterMadeAndBeforeFineAndZip.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterMadeAndBeforeFineAndZip.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterMadeAndBeforeFineAndZip.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis2.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis3.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterThis4.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterZipAndBeforeFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterZipAndBeforeFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipFunkAfterZipAndBeforeFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkAfterZipAndBeforeFine.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipFunkBeforeThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkBeforeThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipFunkBeforeThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkBeforeThis.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipFunkBeforeThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkBeforeThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipFunkBeforeThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkBeforeThis2.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipFunkBeforeThis3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkBeforeThis3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipFunkBeforeThis3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkBeforeThis3.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipFunkHelloWorld.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkHelloWorld.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipFunkHelloWorld.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkHelloWorld.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipFunkHelloWorld2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkHelloWorld2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipFunkHelloWorld2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipFunkHelloWorld2.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipIf.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipIf.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipIf.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipIf.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipMakeFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipMakeFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipMakeFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipMakeFunk.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipMakeState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipMakeState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipMakeState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipMakeState.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipSpaghetti.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipSpaghetti.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipSpaghetti.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipSpaghetti.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/snipSpaghettiGraceHopper.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipSpaghettiGraceHopper.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/snipSpaghettiGraceHopper.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/snipSpaghettiGraceHopper.yml diff --git a/src/test/suite/fixtures/recorded/actions/snippets/spaghettiWrapPastGust.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/spaghettiWrapPastGust.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/snippets/spaghettiWrapPastGust.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/snippets/spaghettiWrapPastGust.yml diff --git a/src/test/suite/fixtures/recorded/actions/sortAirAndCapAndBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/sortAirAndCapAndBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/sortAirAndCapAndBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/sortAirAndCapAndBat.yml diff --git a/src/test/suite/fixtures/recorded/actions/sortEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/sortEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/sortEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/sortEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/actions/sortEveryItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/sortEveryItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/sortEveryItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/sortEveryItem2.yml diff --git a/src/test/suite/fixtures/recorded/actions/sortThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/sortThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/sortThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/sortThis.yml diff --git a/src/test/suite/fixtures/recorded/actions/sortThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/sortThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/sortThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/sortThis2.yml diff --git a/src/test/suite/fixtures/recorded/actions/squareRepackHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/squareRepackHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/squareRepackHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/squareRepackHarp.yml diff --git a/src/test/suite/fixtures/recorded/actions/squareRepackLeper.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/squareRepackLeper.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/squareRepackLeper.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/squareRepackLeper.yml diff --git a/src/test/suite/fixtures/recorded/actions/squareRepackPair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/squareRepackPair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/squareRepackPair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/squareRepackPair.yml diff --git a/src/test/suite/fixtures/recorded/actions/squareRepackThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/squareRepackThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/squareRepackThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/squareRepackThis.yml diff --git a/src/test/suite/fixtures/recorded/actions/swapVestWithCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/swapVestWithCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/swapVestWithCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/swapVestWithCap.yml diff --git a/src/test/suite/fixtures/recorded/actions/swapWithVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/swapWithVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/swapWithVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/swapWithVest.yml diff --git a/src/test/suite/fixtures/recorded/actions/takeVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/takeVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/actions/takeVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/actions/takeVest.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/bringAirToAfterBatVerticalPastFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/bringAirToAfterBatVerticalPastFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/bringAirToAfterBatVerticalPastFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/bringAirToAfterBatVerticalPastFine.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/bringAirToBatVerticalPastFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/bringAirToBatVerticalPastFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/bringAirToBatVerticalPastFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/bringAirToBatVerticalPastFine.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/bringAirToBeforeBatVerticalPastFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/bringAirToBeforeBatVerticalPastFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/bringAirToBeforeBatVerticalPastFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/bringAirToBeforeBatVerticalPastFine.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/bringAirToEndOfBatVerticalPastFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/bringAirToEndOfBatVerticalPastFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/bringAirToEndOfBatVerticalPastFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/bringAirToEndOfBatVerticalPastFine.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/bringAirToStartOfBatVerticalPastFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/bringAirToStartOfBatVerticalPastFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/bringAirToStartOfBatVerticalPastFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/bringAirToStartOfBatVerticalPastFine.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/chuckBlockEachBetweenLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckBlockEachBetweenLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/chuckBlockEachBetweenLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckBlockEachBetweenLook.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/chuckBlockEachUntilLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckBlockEachUntilLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/chuckBlockEachUntilLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckBlockEachUntilLook.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/chuckLineEachBetweenLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckLineEachBetweenLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/chuckLineEachBetweenLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckLineEachBetweenLook.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/chuckLineEachBetweenLook2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckLineEachBetweenLook2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/chuckLineEachBetweenLook2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckLineEachBetweenLook2.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/chuckLineEachUntilLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckLineEachUntilLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/chuckLineEachUntilLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckLineEachUntilLook.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/chuckLineHarpBetweenFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckLineHarpBetweenFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/chuckLineHarpBetweenFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckLineHarpBetweenFine.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/chuckLineRiskSliceMade.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckLineRiskSliceMade.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/chuckLineRiskSliceMade.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/chuckLineRiskSliceMade.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/clearJustThisPastBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearJustThisPastBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/clearJustThisPastBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearJustThisPastBatt.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/clearJustThisPastEndOfToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearJustThisPastEndOfToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/clearJustThisPastEndOfToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearJustThisPastEndOfToken.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/clearJustThisPastStartOfToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearJustThisPastStartOfToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/clearJustThisPastStartOfToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearJustThisPastStartOfToken.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/clearJustThisPastTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearJustThisPastTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/clearJustThisPastTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearJustThisPastTrap.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/clearPastBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearPastBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/clearPastBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearPastBatt.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/clearPastEndOfToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearPastEndOfToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/clearPastEndOfToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearPastEndOfToken.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/clearPastStartOfToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearPastStartOfToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/clearPastStartOfToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearPastStartOfToken.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/clearPastTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearPastTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/clearPastTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearPastTrap.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/clearThisPastBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearThisPastBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/clearThisPastBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearThisPastBatt.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/clearThisPastEndOfToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearThisPastEndOfToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/clearThisPastEndOfToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearThisPastEndOfToken.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/clearThisPastStartOfToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearThisPastStartOfToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/clearThisPastStartOfToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearThisPastStartOfToken.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/clearThisPastTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearThisPastTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/clearThisPastTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearThisPastTrap.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/clearThisSliceBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearThisSliceBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/clearThisSliceBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/clearThisSliceBatt.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/postBatVerticalUntilFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/postBatVerticalUntilFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/postBatVerticalUntilFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/postBatVerticalUntilFine.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/preBatVerticalBetweenFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/preBatVerticalBetweenFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/preBatVerticalBetweenFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/preBatVerticalBetweenFine.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/takeBatVerticalPastFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeBatVerticalPastFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/takeBatVerticalPastFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeBatVerticalPastFine.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/takeCapAndVestAndHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeCapAndVestAndHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/takeCapAndVestAndHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeCapAndVestAndHarp.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/takeCapPastHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeCapPastHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/takeCapPastHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeCapPastHarp.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/takeFineVerticalPastBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeFineVerticalPastBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/takeFineVerticalPastBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeFineVerticalPastBat.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/takeHarpAndVestAndCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeHarpAndVestAndCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/takeHarpAndVestAndCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeHarpAndVestAndCap.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/takeHarpPastCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeHarpPastCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/takeHarpPastCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeHarpPastCap.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/takeLineVestAndAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeLineVestAndAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/takeLineVestAndAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeLineVestAndAir.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/takeTokenPastTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeTokenPastTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/takeTokenPastTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeTokenPastTrap.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/takeVerticalPastFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeVerticalPastFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/takeVerticalPastFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeVerticalPastFine.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/takeVestTweenWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeVestTweenWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/takeVestTweenWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeVestTweenWhale.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/takeVestUntilWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeVestUntilWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/takeVestUntilWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeVestUntilWhale.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/takeWhaleTweenVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeWhaleTweenVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/takeWhaleTweenVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeWhaleTweenVest.yml diff --git a/src/test/suite/fixtures/recorded/compoundTargets/takeWhaleUntilVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeWhaleUntilVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/compoundTargets/takeWhaleUntilVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/compoundTargets/takeWhaleUntilVest.yml diff --git a/src/test/suite/fixtures/recorded/containingScope/clearToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/containingScope/clearToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/containingScope/clearToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/containingScope/clearToken.yml diff --git a/src/test/suite/fixtures/recorded/containingScope/clearWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/containingScope/clearWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/containingScope/clearWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/containingScope/clearWord.yml diff --git a/src/test/suite/fixtures/recorded/containingScope/clearWord2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/containingScope/clearWord2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/containingScope/clearWord2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/containingScope/clearWord2.yml diff --git a/src/test/suite/fixtures/recorded/customRegex/clearWhite.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/customRegex/clearWhite.yml similarity index 100% rename from src/test/suite/fixtures/recorded/customRegex/clearWhite.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/customRegex/clearWhite.yml diff --git a/src/test/suite/fixtures/recorded/decorations/carveLineHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/carveLineHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/carveLineHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/carveLineHarp.yml diff --git a/src/test/suite/fixtures/recorded/decorations/chuckBlockAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckBlockAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/chuckBlockAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckBlockAir.yml diff --git a/src/test/suite/fixtures/recorded/decorations/chuckBlockAirUntilBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckBlockAirUntilBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/chuckBlockAirUntilBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckBlockAirUntilBatt.yml diff --git a/src/test/suite/fixtures/recorded/decorations/chuckBlockBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckBlockBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/chuckBlockBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckBlockBatt.yml diff --git a/src/test/suite/fixtures/recorded/decorations/chuckBlockBatt2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckBlockBatt2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/chuckBlockBatt2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckBlockBatt2.yml diff --git a/src/test/suite/fixtures/recorded/decorations/chuckBlockBattUntilAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckBlockBattUntilAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/chuckBlockBattUntilAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckBlockBattUntilAir.yml diff --git a/src/test/suite/fixtures/recorded/decorations/chuckFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/chuckFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckFine.yml diff --git a/src/test/suite/fixtures/recorded/decorations/chuckLineFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckLineFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/chuckLineFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckLineFine.yml diff --git a/src/test/suite/fixtures/recorded/decorations/chuckLineFineBetweenRisk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckLineFineBetweenRisk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/chuckLineFineBetweenRisk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/chuckLineFineBetweenRisk.yml diff --git a/src/test/suite/fixtures/recorded/decorations/clearBlockFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/clearBlockFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/clearBlockFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/clearBlockFine.yml diff --git a/src/test/suite/fixtures/recorded/decorations/clearFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/clearFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/clearFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/clearFine.yml diff --git a/src/test/suite/fixtures/recorded/decorations/clearLineFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/clearLineFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/clearLineFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/clearLineFine.yml diff --git a/src/test/suite/fixtures/recorded/decorations/config.json b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/config.json similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/config.json rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/config.json diff --git a/src/test/suite/fixtures/recorded/decorations/cutFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/cutFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/cutFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/cutFine.yml diff --git a/src/test/suite/fixtures/recorded/decorations/highlightFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/highlightFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/highlightFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/highlightFine.yml diff --git a/src/test/suite/fixtures/recorded/decorations/highlightLineFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/highlightLineFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/highlightLineFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/highlightLineFine.yml diff --git a/src/test/suite/fixtures/recorded/decorations/moveLineAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/moveLineAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/decorations/moveLineAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/decorations/moveLineAir.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringAirToThirdCarWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringAirToThirdCarWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringAirToThirdCarWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringAirToThirdCarWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringCommaToEndOfPointTakePoint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringCommaToEndOfPointTakePoint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringCommaToEndOfPointTakePoint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringCommaToEndOfPointTakePoint.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringCommaToStartOfPointTakePoint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringCommaToStartOfPointTakePoint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringCommaToStartOfPointTakePoint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringCommaToStartOfPointTakePoint.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringHarpAfterWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpAfterWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringHarpAfterWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpAfterWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringHarpAndPointToEndOfThisAndEndOfWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpAndPointToEndOfThisAndEndOfWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringHarpAndPointToEndOfThisAndEndOfWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpAndPointToEndOfThisAndEndOfWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringHarpAndPointToJustThisAndStartOfWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpAndPointToJustThisAndStartOfWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringHarpAndPointToJustThisAndStartOfWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpAndPointToJustThisAndStartOfWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringHarpBeforeWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpBeforeWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringHarpBeforeWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpBeforeWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringHarpTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringHarpTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringHarpToEndOfPointTakePoint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpToEndOfPointTakePoint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringHarpToEndOfPointTakePoint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpToEndOfPointTakePoint.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringHarpToStartOfPointTakePoint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpToStartOfPointTakePoint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringHarpToStartOfPointTakePoint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpToStartOfPointTakePoint.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringHarpToStartOfWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpToStartOfWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringHarpToStartOfWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringHarpToStartOfWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringPointAfterFirstCarWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAfterFirstCarWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringPointAfterFirstCarWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAfterFirstCarWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToEndOfSecondCarWhaleAndEndOfJustWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToEndOfSecondCarWhaleAndEndOfJustWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToEndOfSecondCarWhaleAndEndOfJustWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToEndOfSecondCarWhaleAndEndOfJustWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToEndOfThisAndEndOfWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToEndOfThisAndEndOfWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToEndOfThisAndEndOfWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToEndOfThisAndEndOfWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToStartOfSecondCarWhaleAndStartOfJustWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToStartOfSecondCarWhaleAndStartOfJustWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToStartOfSecondCarWhaleAndStartOfJustWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToStartOfSecondCarWhaleAndStartOfJustWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToThisAndStartOfWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToThisAndStartOfWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToThisAndStartOfWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAndHarpToThisAndStartOfWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringPointAndPointToEndOfSecondCarWhaleAndEndOfJustWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAndPointToEndOfSecondCarWhaleAndEndOfJustWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringPointAndPointToEndOfSecondCarWhaleAndEndOfJustWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAndPointToEndOfSecondCarWhaleAndEndOfJustWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringPointAndPointToStartOfSecondCarWhaleAndStartOfJustWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAndPointToStartOfSecondCarWhaleAndStartOfJustWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringPointAndPointToStartOfSecondCarWhaleAndStartOfJustWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointAndPointToStartOfSecondCarWhaleAndStartOfJustWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringPointToEndOfWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointToEndOfWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringPointToEndOfWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointToEndOfWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringPointToStartOfWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointToStartOfWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringPointToStartOfWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointToStartOfWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/bringPointToThirdCarWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointToThirdCarWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/bringPointToThirdCarWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/bringPointToThirdCarWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/chuckFirstTwoCarWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/chuckFirstTwoCarWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/chuckFirstTwoCarWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/chuckFirstTwoCarWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/chuckFourthCarWhalePastThirdCarAirTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/chuckFourthCarWhalePastThirdCarAirTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/chuckFourthCarWhalePastThirdCarAirTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/chuckFourthCarWhalePastThirdCarAirTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/chuckHarpPastAirTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/chuckHarpPastAirTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/chuckHarpPastAirTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/chuckHarpPastAirTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/chuckLastTwoCarWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/chuckLastTwoCarWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/chuckLastTwoCarWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/chuckLastTwoCarWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/chuckSecondPastThirdCarWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/chuckSecondPastThirdCarWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/chuckSecondPastThirdCarWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/chuckSecondPastThirdCarWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/chuckThirdCarHarpPastSecondCarWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/chuckThirdCarHarpPastSecondCarWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/chuckThirdCarHarpPastSecondCarWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/chuckThirdCarHarpPastSecondCarWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/clearBlueSpecial.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/clearBlueSpecial.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/clearBlueSpecial.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/clearBlueSpecial.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/clearNear.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/clearNear.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/clearNear.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/clearNear.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/clearNear2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/clearNear2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/clearNear2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/clearNear2.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/clearNear3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/clearNear3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/clearNear3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/clearNear3.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/clearSpecial.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/clearSpecial.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/clearSpecial.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/clearSpecial.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/config.json b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/config.json similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/config.json rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/config.json diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/moveFourthCarHarpPastSecondCarWhaleToEndOfJustWhaleTakeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/moveFourthCarHarpPastSecondCarWhaleToEndOfJustWhaleTakeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/moveFourthCarHarpPastSecondCarWhaleToEndOfJustWhaleTakeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/moveFourthCarHarpPastSecondCarWhaleToEndOfJustWhaleTakeWhale.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/sendEmoji.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/sendEmoji.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/sendEmoji.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/sendEmoji.yml diff --git a/src/test/suite/fixtures/recorded/hatTokenMap/takeHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/takeHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/hatTokenMap/takeHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/hatTokenMap/takeHarp.yml diff --git a/src/test/suite/fixtures/recorded/headTail/chuckHeadAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/chuckHeadAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/headTail/chuckHeadAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/chuckHeadAir.yml diff --git a/src/test/suite/fixtures/recorded/headTail/chuckHeadWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/chuckHeadWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/headTail/chuckHeadWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/chuckHeadWhale.yml diff --git a/src/test/suite/fixtures/recorded/headTail/chuckTailHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/chuckTailHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/headTail/chuckTailHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/chuckTailHarp.yml diff --git a/src/test/suite/fixtures/recorded/headTail/chuckTailWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/chuckTailWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/headTail/chuckTailWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/chuckTailWhale.yml diff --git a/src/test/suite/fixtures/recorded/headTail/clearHeadAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/clearHeadAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/headTail/clearHeadAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/clearHeadAir.yml diff --git a/src/test/suite/fixtures/recorded/headTail/clearTailHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/clearTailHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/headTail/clearTailHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/clearTailHarp.yml diff --git a/src/test/suite/fixtures/recorded/headTail/takeHead.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/takeHead.yml similarity index 100% rename from src/test/suite/fixtures/recorded/headTail/takeHead.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/takeHead.yml diff --git a/src/test/suite/fixtures/recorded/headTail/takeHeadVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/takeHeadVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/headTail/takeHeadVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/takeHeadVest.yml diff --git a/src/test/suite/fixtures/recorded/headTail/takeTail.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/takeTail.yml similarity index 100% rename from src/test/suite/fixtures/recorded/headTail/takeTail.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/takeTail.yml diff --git a/src/test/suite/fixtures/recorded/headTail/takeTailVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/takeTailVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/headTail/takeTailVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/headTail/takeTailVest.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/bringHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/bringHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/bringHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/bringHarp.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/bringHarpToThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/bringHarpToThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/bringHarpToThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/bringHarpToThis.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/bringThisToWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/bringThisToWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/bringThisToWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/bringThisToWhale.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/chuckBoundingThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/chuckBoundingThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/chuckBoundingThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/chuckBoundingThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/chuckCoreThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/chuckCoreThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/chuckCoreThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/chuckCoreThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/chuckLeadingThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/chuckLeadingThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/chuckLeadingThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/chuckLeadingThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/chuckSecondWordThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/chuckSecondWordThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/chuckSecondWordThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/chuckSecondWordThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearBoundingThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearBoundingThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearBoundingThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearBoundingThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearBounds.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearBounds.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearBounds.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearBounds.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearBounds2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearBounds2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearBounds2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearBounds2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearBoundsAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearBoundsAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearBoundsAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearBoundsAir.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearBoundsToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearBoundsToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearBoundsToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearBoundsToken.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearCore.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearCore.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearCore.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearCore.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearCore2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearCore2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearCore2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearCore2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearCoreAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearCoreAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearCoreAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearCoreAir.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearCoreThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearCoreThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearCoreThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearCoreThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearCoreToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearCoreToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearCoreToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearCoreToken.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearEveryItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearEveryItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryItem2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearEveryItemAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryItemAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearEveryItemAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryItemAir.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearEveryLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearEveryLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryLine.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearEveryLine2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryLine2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearEveryLine2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryLine2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearEveryLineAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryLineAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearEveryLineAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryLineAir.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearEveryLineFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryLineFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearEveryLineFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryLineFunk.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearEveryLineThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryLineThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearEveryLineThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryLineThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearEveryLineThat2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryLineThat2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearEveryLineThat2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearEveryLineThat2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearFirstCarSecondWordHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearFirstCarSecondWordHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearFirstCarSecondWordHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearFirstCarSecondWordHarp.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearFirstWordPastTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearFirstWordPastTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearFirstWordPastTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearFirstWordPastTrap.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearFirstWordThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearFirstWordThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearFirstWordThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearFirstWordThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearLeadingPastWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearLeadingPastWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearLeadingPastWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearLeadingPastWhale.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearLeadingSecondWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearLeadingSecondWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearLeadingSecondWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearLeadingSecondWord.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearPastTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearPastTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearPastTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearPastTrap.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearSecondWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearSecondWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearSecondWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearSecondWord.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearSecondWord2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearSecondWord2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearSecondWord2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearSecondWord2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearSecondWordAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearSecondWordAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearSecondWordAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearSecondWordAir.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearThisSliceBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearThisSliceBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearThisSliceBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearThisSliceBat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearTrailing.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearTrailing.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearTrailing.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearTrailing.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearTrailing2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearTrailing2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearTrailing2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearTrailing2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearTrailingAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearTrailingAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearTrailingAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearTrailingAir.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearTrailingLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearTrailingLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearTrailingLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearTrailingLine.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clearTrailingThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearTrailingThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clearTrailingThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clearTrailingThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/cloneAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/cloneAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneAir.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/cloneFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/cloneFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneFunk.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/cloneNearPastWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneNearPastWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/cloneNearPastWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneNearPastWhale.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/clonePastWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clonePastWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/clonePastWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/clonePastWhale.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/cloneThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/cloneThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/cloneThat2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneThat2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/cloneThat2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneThat2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/cloneThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/cloneThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneThis.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/cloneThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/cloneThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/cloneThis2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/funkWrapPastInk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapPastInk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/funkWrapPastInk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapPastInk.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/funkWrapThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/funkWrapThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/funkWrapThat2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapThat2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/funkWrapThat2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapThat2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/funkWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/funkWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/funkWrapThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/funkWrapThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapThis2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/funkWrapToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/funkWrapToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapToken.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/funkWrapWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/funkWrapWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapWhale.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/funkWrapWhalePastBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapWhalePastBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/funkWrapWhalePastBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/funkWrapWhalePastBat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/pourAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/pourAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourAir.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/pourFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/pourFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourFunk.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/pourNearPastWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourNearPastWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/pourNearPastWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourNearPastWhale.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/pourPastWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourPastWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/pourPastWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourPastWhale.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/pourThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/pourThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/pourThat2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourThat2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/pourThat2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourThat2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/pourThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/pourThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourThis.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/pourThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/pourThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/pourThis2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThat2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThat2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThat2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThat2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThis.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkAfterThis2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/snipFunkAfterToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkAfterToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/snipFunkAfterToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkAfterToken.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/snipFunkAfterWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkAfterWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/snipFunkAfterWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkAfterWhale.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/snipFunkToAirPastWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkToAirPastWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/snipFunkToAirPastWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkToAirPastWhale.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/snipFunkToThisPastEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkToThisPastEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/snipFunkToThisPastEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/snipFunkToThisPastEach.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchAir.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchFunk.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchLookPastTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchLookPastTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchLookPastTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchLookPastTrap.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchPastWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchPastWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchPastWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchPastWhale.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchThat.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchThat2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchThat2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchThat2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchThat2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchThis.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/squareSwitchThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/squareSwitchThis2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEveryBlock.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryBlock.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEveryBlock.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryBlock.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEveryBlock2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryBlock2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEveryBlock2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryBlock2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEveryBlockFunkWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryBlockFunkWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEveryBlockFunkWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryBlockFunkWhale.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEveryPaint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryPaint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEveryPaint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryPaint.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEveryPaintBlockRisk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryPaintBlockRisk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEveryPaintBlockRisk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryPaintBlockRisk.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEveryPaintEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryPaintEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEveryPaintEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryPaintEach.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaint.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaint2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaint2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaint2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaint2.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintBlockRisk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintBlockRisk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintBlockRisk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintBlockRisk.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintEach.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintToken.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEverySmallPaintWhale.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEveryToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEveryToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryToken.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEveryTokenBlockRisk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryTokenBlockRisk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEveryTokenBlockRisk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryTokenBlockRisk.yml diff --git a/src/test/suite/fixtures/recorded/implicitExpansion/takeEveryTokenEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryTokenEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/implicitExpansion/takeEveryTokenEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/implicitExpansion/takeEveryTokenEach.yml diff --git a/src/test/suite/fixtures/recorded/inference/bringBattBeforeFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringBattBeforeFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/bringBattBeforeFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringBattBeforeFunk.yml diff --git a/src/test/suite/fixtures/recorded/inference/bringBattBeforeItsFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringBattBeforeItsFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/bringBattBeforeItsFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringBattBeforeItsFunk.yml diff --git a/src/test/suite/fixtures/recorded/inference/bringHarpAfterLineTrapAndBlockSpun.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringHarpAfterLineTrapAndBlockSpun.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/bringHarpAfterLineTrapAndBlockSpun.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringHarpAfterLineTrapAndBlockSpun.yml diff --git a/src/test/suite/fixtures/recorded/inference/bringLineBattPastEndOfItsFunkToThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringLineBattPastEndOfItsFunkToThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/bringLineBattPastEndOfItsFunkToThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringLineBattPastEndOfItsFunkToThis.yml diff --git a/src/test/suite/fixtures/recorded/inference/bringLineLookToJustAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringLineLookToJustAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/bringLineLookToJustAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringLineLookToJustAir.yml diff --git a/src/test/suite/fixtures/recorded/inference/bringMapAirToLineHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringMapAirToLineHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/bringMapAirToLineHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringMapAirToLineHarp.yml diff --git a/src/test/suite/fixtures/recorded/inference/bringMapAirToTokenHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringMapAirToTokenHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/bringMapAirToTokenHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringMapAirToTokenHarp.yml diff --git a/src/test/suite/fixtures/recorded/inference/bringOddToLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringOddToLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/bringOddToLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringOddToLine.yml diff --git a/src/test/suite/fixtures/recorded/inference/bringOddToState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringOddToState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/bringOddToState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringOddToState.yml diff --git a/src/test/suite/fixtures/recorded/inference/bringOddToToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringOddToToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/bringOddToToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringOddToToken.yml diff --git a/src/test/suite/fixtures/recorded/inference/bringRowOneBeforeBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringRowOneBeforeBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/bringRowOneBeforeBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringRowOneBeforeBatt.yml diff --git a/src/test/suite/fixtures/recorded/inference/bringRowOnePastTwoBeforeBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringRowOnePastTwoBeforeBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/bringRowOnePastTwoBeforeBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringRowOnePastTwoBeforeBatt.yml diff --git a/src/test/suite/fixtures/recorded/inference/bringTokenHarpToMapAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringTokenHarpToMapAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/bringTokenHarpToMapAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/bringTokenHarpToMapAir.yml diff --git a/src/test/suite/fixtures/recorded/inference/clearAirPastEndOfItsLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/clearAirPastEndOfItsLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/clearAirPastEndOfItsLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/clearAirPastEndOfItsLine.yml diff --git a/src/test/suite/fixtures/recorded/inference/clearEachPastStartOfItsLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/clearEachPastStartOfItsLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/clearEachPastStartOfItsLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/clearEachPastStartOfItsLine.yml diff --git a/src/test/suite/fixtures/recorded/inference/clearNearPastEndOfItsState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/clearNearPastEndOfItsState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/clearNearPastEndOfItsState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/clearNearPastEndOfItsState.yml diff --git a/src/test/suite/fixtures/recorded/inference/clearSecondCarLookPastEndOfItsToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/clearSecondCarLookPastEndOfItsToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/clearSecondCarLookPastEndOfItsToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/clearSecondCarLookPastEndOfItsToken.yml diff --git a/src/test/suite/fixtures/recorded/inference/clearThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/clearThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/clearThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/clearThis.yml diff --git a/src/test/suite/fixtures/recorded/inference/ifWrapTokenFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/ifWrapTokenFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/ifWrapTokenFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/ifWrapTokenFine.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeAfterVestPastAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeAfterVestPastAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeAfterVestPastAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeAfterVestPastAir.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeAfterVestPastBeforeAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeAfterVestPastBeforeAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeAfterVestPastBeforeAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeAfterVestPastBeforeAir.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeFirstWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeFirstWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeFirstWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeFirstWord.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeHarpAndStringEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeHarpAndStringEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeHarpAndStringEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeHarpAndStringEach.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeHarpPastStringEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeHarpPastStringEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeHarpPastStringEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeHarpPastStringEach.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeLastChar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeLastChar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeLastChar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeLastChar.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeLinePastAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeLinePastAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeLinePastAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeLinePastAir.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeLineVestAndAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeLineVestAndAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeLineVestAndAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeLineVestAndAir.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeLineVestPastAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeLineVestPastAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeLineVestPastAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeLineVestPastAir.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeOddPastLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeOddPastLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeOddPastLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeOddPastLine.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeOddPastState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeOddPastState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeOddPastState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeOddPastState.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeOddPastToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeOddPastToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeOddPastToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeOddPastToken.yml diff --git a/src/test/suite/fixtures/recorded/inference/takePastLineAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takePastLineAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takePastLineAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takePastLineAir.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeStringHarpAndEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeStringHarpAndEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeStringHarpAndEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeStringHarpAndEach.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeStringHarpPastEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeStringHarpPastEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeStringHarpPastEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeStringHarpPastEach.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeVestAndLineAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeVestAndLineAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeVestAndLineAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeVestAndLineAir.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeVestPastAfterAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeVestPastAfterAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeVestPastAfterAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeVestPastAfterAir.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeVestPastBeforeAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeVestPastBeforeAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeVestPastBeforeAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeVestPastBeforeAir.yml diff --git a/src/test/suite/fixtures/recorded/inference/takeVestPastLineAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeVestPastLineAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/inference/takeVestPastLineAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/inference/takeVestPastLineAir.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/chuckEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/chuckEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/chuckEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/chuckEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/chuckItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/chuckItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/chuckItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/chuckItem.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/chuckItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/chuckItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/chuckItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/chuckItem2.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/chuckItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/chuckItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/chuckItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/chuckItem3.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/chuckItem4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/chuckItem4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/chuckItem4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/chuckItem4.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearEveryItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearEveryItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem2.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearEveryItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearEveryItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem3.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearEveryItem4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearEveryItem4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem4.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearEveryItem5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearEveryItem5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem5.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearEveryItem6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearEveryItem6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem6.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearEveryItem7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearEveryItem7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItem7.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearEveryItemBlock.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItemBlock.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearEveryItemBlock.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItemBlock.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearEveryItemToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItemToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearEveryItemToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearEveryItemToken.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearItem10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearItem10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem10.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearItem11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearItem11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem11.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem2.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem3.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearItem4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearItem4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem4.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearItem5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearItem5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem5.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearItem6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearItem6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem6.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearItem7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearItem7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem7.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearItem8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearItem8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem8.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearItem9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearItem9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItem9.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/clearItemDrip.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItemDrip.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/clearItemDrip.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/clearItemDrip.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/drinkItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/drinkItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/drinkItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/drinkItem.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/drinkItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/drinkItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/drinkItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/drinkItem2.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/takeEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/takeEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/takeEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/takeEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/takeEveryItemAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/takeEveryItemAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/takeEveryItemAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/takeEveryItemAir.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/takeItemAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/takeItemAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/takeItemAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/takeItemAir.yml diff --git a/src/test/suite/fixtures/recorded/itemTextual/takeItemBlueRisk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/takeItemBlueRisk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/itemTextual/takeItemBlueRisk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/itemTextual/takeItemBlueRisk.yml diff --git a/src/test/suite/fixtures/recorded/languages/c/clearFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/c/clearFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/c/clearFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/c/clearFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/changeCallee.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/changeCallee.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/changeCallee.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/changeCallee.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/changeCallee2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/changeCallee2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/changeCallee2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/changeCallee2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/changeCallee3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/changeCallee3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/changeCallee3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/changeCallee3.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/changeCallee4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/changeCallee4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/changeCallee4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/changeCallee4.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/chuckItemFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/chuckItemFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/chuckItemFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/chuckItemFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/chuckItemFine2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/chuckItemFine2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/chuckItemFine2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/chuckItemFine2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/chuckItemZip.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/chuckItemZip.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/chuckItemZip.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/chuckItemZip.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/chuckItemZip2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/chuckItemZip2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/chuckItemZip2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/chuckItemZip2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearArgue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearArgue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearArgue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearArgue.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearArgue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearArgue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearArgue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearArgue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearArgue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearArgue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearArgue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearArgue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearCall2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearCall2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearCall2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearCall2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearCondition.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearCondition.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearCondition.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearCondition.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearEveryKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearEveryKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearEveryKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearEveryKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearEveryValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearEveryValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearEveryValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearEveryValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearFunk2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearFunk2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearFunk2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearFunk2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearIfState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearIfState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearIfState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearIfState.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItem2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItem3.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearItem4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItem4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearItem4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItem4.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearItem5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItem5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearItem5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItem5.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearItem6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItem6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearItem6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItem6.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearItemBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItemBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearItemBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItemBat.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearItemBatClearItemBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItemBatClearItemBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearItemBatClearItemBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItemBatClearItemBat.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearItemFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItemFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearItemFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItemFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearItemWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItemWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearItemWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItemWhale.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearItemZip.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItemZip.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearItemZip.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearItemZip.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearKeyWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearKeyWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearKeyWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearKeyWhale.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearKeyWhale2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearKeyWhale2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearKeyWhale2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearKeyWhale2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearKeyZip.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearKeyZip.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearKeyZip.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearKeyZip.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearKeyZip2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearKeyZip2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearKeyZip2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearKeyZip2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearLambda.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearLambda.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearLambda.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearLambda.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearLambda2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearLambda2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearLambda2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearLambda2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearList.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearList.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearList.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearList.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearList2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearList2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearList2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearList2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearMap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearMap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearMap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearMap.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearName.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearValueBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearValueBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearValueBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearValueBat.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/clearValueZip.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearValueZip.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/clearValueZip.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/clearValueZip.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/takeValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/takeValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/takeValueBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/takeValueBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueBat.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/takeValueBat2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueBat2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/takeValueBat2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueBat2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/takeValueFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/takeValueFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/takeValueFine2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueFine2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/takeValueFine2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueFine2.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/takeValueWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/takeValueWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueWhale.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/takeValueZip.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueZip.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/takeValueZip.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueZip.yml diff --git a/src/test/suite/fixtures/recorded/languages/clojure/takeValueZip2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueZip2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/clojure/takeValueZip2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/clojure/takeValueZip2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/changeCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/changeCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/changeCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/changeCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/changeCallee.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/changeCallee.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/changeCallee.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/changeCallee.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/changeCallee2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/changeCallee2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/changeCallee2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/changeCallee2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/changeCallee3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/changeCallee3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/changeCallee3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/changeCallee3.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/changeCallee4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/changeCallee4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/changeCallee4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/changeCallee4.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/chuckTypeAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/chuckTypeAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/chuckTypeAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/chuckTypeAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/chuckTypeSoon.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/chuckTypeSoon.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/chuckTypeSoon.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/chuckTypeSoon.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/chuckValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/chuckValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/chuckValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/chuckValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/clearName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/clearName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/clearName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/clearName.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/clearSubject.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/clearSubject.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/clearSubject.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/clearSubject.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/clearSubject2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/clearSubject2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/clearSubject2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/clearSubject2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/clearValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/clearValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/clearValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/clearValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/elseStateWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/elseStateWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/elseStateWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/elseStateWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/ifElseWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/ifElseWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/ifElseWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/ifElseWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/ifStateWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/ifStateWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/ifStateWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/ifStateWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeAttribute.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeAttribute.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeAttribute.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeAttribute.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeClass.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeClass.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeClass.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeClass.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeClass2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeClass2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeClass2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeClass2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeClassName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeClassName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeClassName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeClassName.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeClassName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeClassName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeClassName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeClassName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeClassName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeClassName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeClassName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeClassName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeEveryArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeEveryArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeEveryArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeEveryArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeFunk2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeFunk2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeFunk2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeFunk2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeFunkName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeFunkName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeFunkName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeFunkName.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeFunkName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeFunkName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeFunkName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeFunkName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeFunkName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeFunkName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeFunkName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeFunkName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeIf.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeIf.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeIf.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeIf.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeIf2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeIf2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeIf2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeIf2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeItem2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeLambda.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeLambda.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeLambda.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeLambda.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeList.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeList.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeList.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeList.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeList2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeList2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeList2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeList2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeName.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeState.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeState2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeState2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeState2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeState2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeState3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeState3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeState3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeState3.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeString.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeString.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeString.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeString.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeType.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeType.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeType.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeType.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeType2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeType2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeType2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeType2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeType3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeType3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeType3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeType3.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/takeValue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeValue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/takeValue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/takeValue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/tryCatchWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/tryCatchWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/tryCatchWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/tryCatchWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/cpp/tryCatchWrapThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/tryCatchWrapThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/cpp/tryCatchWrapThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/cpp/tryCatchWrapThis2.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCall2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCall2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCall2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCall2.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCall3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCall3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCall3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCall3.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCallee.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCallee.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCallee.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCallee.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCallee2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCallee2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCallee2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCallee2.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCallee3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCallee3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCallee3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCallee3.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCallee4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCallee4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCallee4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCallee4.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCallee5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCallee5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCallee5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCallee5.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCallee6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCallee6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCallee6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCallee6.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCondition.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCondition.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCondition2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCondition2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition2.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCondition3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCondition3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition3.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCondition4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCondition4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition4.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCondition5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCondition5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition5.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCondition6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCondition6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition6.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCondition7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCondition7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition7.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCondition8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCondition8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition8.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/changeCondition9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/changeCondition9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/changeCondition9.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/chuckTypeSoon.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/chuckTypeSoon.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/chuckTypeSoon.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/chuckTypeSoon.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/chuckTypeSoon2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/chuckTypeSoon2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/chuckTypeSoon2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/chuckTypeSoon2.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/chuckValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/chuckValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/chuckValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/chuckValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/clearName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/clearName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearName.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/clearName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/clearName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/clearName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/clearName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/clearSubject.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearSubject.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/clearSubject.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearSubject.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/clearSubject2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearSubject2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/clearSubject2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearSubject2.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/clearValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/clearValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/clearValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/clearValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/clearValue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearValue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/clearValue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/clearValue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/elseStateWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/elseStateWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/elseStateWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/elseStateWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/ifElseWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/ifElseWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/ifElseWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/ifElseWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/ifStateWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/ifStateWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/ifStateWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/ifStateWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/tryCatchWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/tryCatchWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/tryCatchWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/tryCatchWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/csharp/tryCatchWrapThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/tryCatchWrapThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/csharp/tryCatchWrapThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/csharp/tryCatchWrapThis2.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeArgue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeArgue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeArgue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeArgue.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeArgue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeArgue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeArgue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeArgue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeArgue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeArgue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeArgue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeArgue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeArgue4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeArgue4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeArgue4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeArgue4.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeArgue5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeArgue5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeArgue5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeArgue5.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeEveryArgue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeEveryArgue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeEveryArgue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeEveryArgue.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeEveryArgue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeEveryArgue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeEveryArgue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeEveryArgue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeEveryArgue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeEveryArgue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeEveryArgue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeEveryArgue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeKey2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeKey2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeKey2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeKey2.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeName.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeName6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeName6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeName6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeName6.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeRound.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeSelector.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeSelector.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeSelector.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeSelector.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeSelector2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeSelector2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeSelector2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeSelector2.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeSelector3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeSelector3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeSelector3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeSelector3.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeSelector4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeSelector4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeSelector4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeSelector4.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeSelector5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeSelector5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeSelector5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeSelector5.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeState.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeState5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeState5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeState5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeState5.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeStateAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeStateAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeStateAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeStateAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeStateHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeStateHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeStateHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeStateHarp.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeValue4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeValue4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeValue4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeValue4.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeValue6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeValue6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeValue6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeValue6.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/changeValue9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeValue9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/changeValue9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/changeValue9.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckArgue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckArgue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckArgue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckArgue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckArgue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckArgue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckArgue4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckArgue4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue4.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckArgue5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckArgue5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue5.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckArgue6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckArgue6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue6.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckArgue7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckArgue7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue7.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckArgue8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckArgue8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckArgue8.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckEveryArgue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckEveryArgue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckEveryArgue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckEveryArgue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckState.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckState2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckState2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckState2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckState2.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/chuckValue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckValue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/chuckValue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/chuckValue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/clearUnit.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/clearUnit.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/clearUnit.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/clearUnit.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/clearUnit2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/clearUnit2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/clearUnit2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/clearUnit2.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/clearUnit3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/clearUnit3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/clearUnit3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/clearUnit3.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/clearUnit4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/clearUnit4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/clearUnit4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/clearUnit4.yml diff --git a/src/test/suite/fixtures/recorded/languages/css/clearUnit5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/clearUnit5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/css/clearUnit5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/css/clearUnit5.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/changeCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/changeCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/changeCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/changeCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/changeCallee.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/changeCallee.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/changeCallee.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/changeCallee.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/changeCallee2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/changeCallee2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/changeCallee2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/changeCallee2.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/changeCallee3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/changeCallee3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/changeCallee3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/changeCallee3.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/changeCallee4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/changeCallee4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/changeCallee4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/changeCallee4.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/changeCallee5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/changeCallee5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/changeCallee5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/changeCallee5.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/chuckArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/chuckArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/chuckArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/chuckArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/chuckArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/chuckArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/chuckArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/chuckArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/chuckValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/chuckValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/chuckValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/chuckValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/clearCondition.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/clearCondition.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/clearCondition.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/clearCondition.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/clearIfState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/clearIfState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/clearIfState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/clearIfState.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/clearPair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/clearPair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/clearPair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/clearPair.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/clearState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/clearState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/clearState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/clearState.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeArg3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeArg3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeArg3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeArg3.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeEveryKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeEveryKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeEveryKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeEveryKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeFunkName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeFunkName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeFunkName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeFunkName.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeKey2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeKey2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeKey2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeKey2.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeList.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeList.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeList.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeList.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeMap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeMap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeMap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeMap.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeState.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeString.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeString.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeString.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeString.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeType.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeType.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeType.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeType.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/go/takeValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/go/takeValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/go/takeValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/html/chuckCoreElement.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/chuckCoreElement.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/html/chuckCoreElement.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/chuckCoreElement.yml diff --git a/src/test/suite/fixtures/recorded/languages/html/chuckValueInk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/chuckValueInk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/html/chuckValueInk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/chuckValueInk.yml diff --git a/src/test/suite/fixtures/recorded/languages/html/clearAttributeVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearAttributeVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/html/clearAttributeVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearAttributeVest.yml diff --git a/src/test/suite/fixtures/recorded/languages/html/clearComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/html/clearComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/html/clearCoreElement.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearCoreElement.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/html/clearCoreElement.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearCoreElement.yml diff --git a/src/test/suite/fixtures/recorded/languages/html/clearCoreElement2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearCoreElement2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/html/clearCoreElement2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearCoreElement2.yml diff --git a/src/test/suite/fixtures/recorded/languages/html/clearElement.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearElement.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/html/clearElement.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearElement.yml diff --git a/src/test/suite/fixtures/recorded/languages/html/clearEndTag.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearEndTag.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/html/clearEndTag.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearEndTag.yml diff --git a/src/test/suite/fixtures/recorded/languages/html/clearKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/html/clearKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/html/clearName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/html/clearName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearName.yml diff --git a/src/test/suite/fixtures/recorded/languages/html/clearStartTag.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearStartTag.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/html/clearStartTag.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearStartTag.yml diff --git a/src/test/suite/fixtures/recorded/languages/html/clearString.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearString.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/html/clearString.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearString.yml diff --git a/src/test/suite/fixtures/recorded/languages/html/clearTags.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearTags.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/html/clearTags.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/html/clearTags.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/changeCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/changeCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/changeCall2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCall2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/changeCall2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCall2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/changeCallee.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCallee.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/changeCallee.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCallee.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/changeCallee2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCallee2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/changeCallee2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCallee2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/changeCallee3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCallee3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/changeCallee3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCallee3.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/changeCallee5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCallee5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/changeCallee5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCallee5.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/changeCallee6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCallee6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/changeCallee6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCallee6.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/changeCallee7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCallee7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/changeCallee7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCallee7.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/changeCalleeSoap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCalleeSoap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/changeCalleeSoap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/changeCalleeSoap.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/chuckTypeNear.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/chuckTypeNear.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/chuckTypeNear.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/chuckTypeNear.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/chuckTypeUrge.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/chuckTypeUrge.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/chuckTypeUrge.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/chuckTypeUrge.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/chuckValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/chuckValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/chuckValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/chuckValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearBranch.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearBranch.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearBranch.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearBranch.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearBranch2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearBranch2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearBranch2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearBranch2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearName.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearState2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearState2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearState3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearState3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState3.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearState4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearState4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState4.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearState5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearState5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState5.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearState6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearState6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState6.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearState7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearState7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearState7.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearSubject.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearSubject.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearSubject.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearSubject.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearSubject2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearSubject2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearSubject2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearSubject2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/clearValue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearValue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/clearValue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/clearValue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/elseStateWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/elseStateWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/elseStateWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/elseStateWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/ifElseWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/ifElseWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/ifElseWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/ifElseWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/ifStateWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/ifStateWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/ifStateWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/ifStateWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/pourBranch.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/pourBranch.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/pourBranch.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/pourBranch.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeClass.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeClass.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeClass.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeClass.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeClassName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeClassName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeClassName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeClassName.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeCondition.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeCondition.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeCondition.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeCondition.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeCondition2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeCondition2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeCondition2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeCondition2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeCondition3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeCondition3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeCondition3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeCondition3.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeEveryArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeEveryArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeEveryArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeEveryArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeEveryArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeEveryArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeEveryArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeEveryArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeFunk2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeFunk2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeFunk2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeFunk2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeFunkName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeFunkName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeFunkName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeFunkName.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeFunkName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeFunkName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeFunkName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeFunkName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeIf.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeIf.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeIf.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeIf.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeList.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeList.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeList.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeList.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeMap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeMap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeMap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeMap.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeName.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeState.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeString.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeString.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeString.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeString.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeType.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeType.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeType.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeType.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeType2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeType2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeType2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeType2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeType3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeType3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeType3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeType3.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeTypeBlueLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeBlueLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeTypeBlueLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeBlueLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeTypeGust.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeGust.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeTypeGust.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeGust.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeTypeGust2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeGust2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeTypeGust2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeGust2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeTypeHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeTypeHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeHarp.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeTypeLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeTypeLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeTypePit.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypePit.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeTypePit.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypePit.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeTypeSoon.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeSoon.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeTypeSoon.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeSoon.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeTypeSoon2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeSoon2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeTypeSoon2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeSoon2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeTypeTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeTypeTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeTrap.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeTypeTrap2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeTrap2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeTypeTrap2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeTrap2.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeTypeYank.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeYank.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeTypeYank.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeTypeYank.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/takeValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/takeValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/takeValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/tryCatchWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/tryCatchWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/tryCatchWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/tryCatchWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/java/tryCatchWrapThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/tryCatchWrapThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/java/tryCatchWrapThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/java/tryCatchWrapThis2.yml diff --git a/src/test/suite/fixtures/recorded/languages/javascript/clearCoreWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/javascript/clearCoreWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/javascript/clearCoreWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/javascript/clearCoreWhale.yml diff --git a/src/test/suite/fixtures/recorded/languages/json/takeItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/json/takeItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/json/takeItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/json/takeItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/json/takeItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/json/takeItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/json/takeItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/json/takeItem2.yml diff --git a/src/test/suite/fixtures/recorded/languages/json/takeKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/json/takeKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/json/takeKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/json/takeKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/json/takeList.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/json/takeList.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/json/takeList.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/json/takeList.yml diff --git a/src/test/suite/fixtures/recorded/languages/json/takeString.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/json/takeString.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/json/takeString.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/json/takeString.yml diff --git a/src/test/suite/fixtures/recorded/languages/json/takeValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/json/takeValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/json/takeValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/json/takeValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/jsx/takeAttribute.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeAttribute.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/jsx/takeAttribute.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeAttribute.yml diff --git a/src/test/suite/fixtures/recorded/languages/jsx/takeElement.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeElement.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/jsx/takeElement.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeElement.yml diff --git a/src/test/suite/fixtures/recorded/languages/jsx/takeEndTag.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeEndTag.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/jsx/takeEndTag.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeEndTag.yml diff --git a/src/test/suite/fixtures/recorded/languages/jsx/takeEveryAttribute.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeEveryAttribute.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/jsx/takeEveryAttribute.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeEveryAttribute.yml diff --git a/src/test/suite/fixtures/recorded/languages/jsx/takeKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/jsx/takeKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/jsx/takeStartTag.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeStartTag.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/jsx/takeStartTag.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeStartTag.yml diff --git a/src/test/suite/fixtures/recorded/languages/jsx/takeTags.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeTags.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/jsx/takeTags.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeTags.yml diff --git a/src/test/suite/fixtures/recorded/languages/jsx/takeValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/jsx/takeValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/jsx/takeValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeArg3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeArg3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeArg3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeArg3.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeArg4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeArg4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeArg4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeArg4.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeArg5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeArg5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeArg5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeArg5.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeCall2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCall2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeCall2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCall2.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeCall3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCall3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeCall3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCall3.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeCall4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCall4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeCall4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCall4.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeCall5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCall5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeCall5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCall5.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeCallee.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCallee.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeCallee.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCallee.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeChapter.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeChapter.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeChapter.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeChapter.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeComment2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeComment2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeComment2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeComment2.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeCurly.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCurly.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeCurly.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeCurly.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeEnvironment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeEnvironment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeEnvironment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeEnvironment.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeEveryArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeEveryArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeEveryArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeEveryArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeName.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeParagraph.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeParagraph.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeParagraph.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeParagraph.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changePart.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changePart.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changePart.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changePart.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeSection.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeSection.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeSection.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeSection.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeSubparagraph.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeSubparagraph.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeSubparagraph.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeSubparagraph.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeSubsection.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeSubsection.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeSubsection.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeSubsection.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/changeSubsubsection.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeSubsubsection.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/changeSubsubsection.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/changeSubsubsection.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/chuckArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/chuckArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/chuckArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/chuckArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/chuckArg3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckArg3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/chuckArg3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckArg3.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/chuckArg4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckArg4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/chuckArg4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckArg4.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/chuckEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/chuckEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/chuckItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/chuckItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/chuckName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/chuckName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/chuckName.yml diff --git a/src/test/suite/fixtures/recorded/languages/latex/clearRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/clearRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/latex/clearRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/latex/clearRound.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/changeName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/changeName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeName.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/changeName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/changeName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/changeOneSection.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeOneSection.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/changeOneSection.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeOneSection.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/changeOneSection2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeOneSection2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/changeOneSection2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeOneSection2.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/changeSection.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeSection.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/changeSection.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeSection.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/changeSection2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeSection2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/changeSection2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeSection2.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/changeSection3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeSection3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/changeSection3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeSection3.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/changeSection4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeSection4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/changeSection4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeSection4.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/changeSection5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeSection5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/changeSection5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeSection5.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/changeSection6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeSection6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/changeSection6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/changeSection6.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/chuckItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/chuckItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/chuckItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/chuckItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/chuckName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/chuckName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/chuckName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/chuckName.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/clearComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/clearComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/clearComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/clearComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/clearItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/clearItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/clearItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/clearItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/markdown/clearList.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/clearList.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/markdown/clearList.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/markdown/clearList.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeArg10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeArg10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg10.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeArg3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeArg3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg3.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeArg4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeArg4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg4.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeArg5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeArg5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg5.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeArg6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeArg6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg6.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeArg7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeArg7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg7.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeArg8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeArg8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg8.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeArg9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeArg9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeArg9.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeCall2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeCall2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeCall2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeCall2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeClass.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeClass.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeClass.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeClass.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeClassName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeClassName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeClassName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeClassName.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeEveryArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeEveryArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeEveryArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeEveryArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeFunkName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeFunkName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeFunkName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeFunkName.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeFunkName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeFunkName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeFunkName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeFunkName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeIfState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeIfState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeIfState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeIfState.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeItem2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeItem3.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeItem4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeItem4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeItem4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeItem4.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeItem5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeItem5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeItem5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeItem5.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeKey2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeKey2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeKey2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeKey2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeLambda.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeLambda.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeLambda.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeLambda.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeLambda2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeLambda2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeLambda2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeLambda2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeLambda3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeLambda3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeLambda3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeLambda3.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeLambda4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeLambda4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeLambda4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeLambda4.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeName.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeName4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeName4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeName4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeName4.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeName5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeName5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeName5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeName5.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeName6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeName6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeName6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeName6.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeRound.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeString.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeString.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeString.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeString.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeString2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeString2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeString2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeString2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeType.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeType.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeType.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeType.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeType2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeType2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeType2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeType2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeType3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeType3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeType3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeType3.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeType4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeType4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeType4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeType4.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeType5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeType5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeType5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeType5.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeType6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeType6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeType6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeType6.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeValue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeValue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeValue4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeValue4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue4.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeValue5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeValue5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue5.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeValue6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeValue6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue6.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/changeValue7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/changeValue7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/changeValue7.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckArg10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckArg10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg10.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckArg3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckArg3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg3.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckArg4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckArg4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg4.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckArg5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckArg5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg5.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckArg6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckArg6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg6.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckArg7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckArg7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg7.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckArg8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckArg8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg8.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckArg9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckArg9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckArg9.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckEveryArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckEveryArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckEveryArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckEveryArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckFunk2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckFunk2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckFunk2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckFunk2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckInside.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckInside.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckInside.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckInside.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckItem2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckItem3.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckItem4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckItem4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckItem4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckItem4.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckItem5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckItem5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckItem5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckItem5.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckKey2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckKey2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckKey2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckKey2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckPair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckPair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckPair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckPair.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckType.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckType.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckType.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckType.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckType2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckType2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckType2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckType2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckType3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckType3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckType3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckType3.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckType4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckType4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckType4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckType4.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckType5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckType5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckType5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckType5.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckValue10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckValue10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue10.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckValue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckValue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckValue4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckValue4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue4.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckValue5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckValue5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue5.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckValue6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckValue6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue6.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckValue7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckValue7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue7.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckValue8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckValue8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue8.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/chuckValue9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/chuckValue9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/chuckValue9.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/elseWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/elseWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/elseWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/elseWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/ifElseWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/ifElseWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/ifElseWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/ifElseWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/ifWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/ifWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/ifWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/ifWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/tryWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/tryWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/tryWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/tryWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/php/tryWrapThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/tryWrapThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/php/tryWrapThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/php/tryWrapThis2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/changeCallee.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/changeCallee.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/changeCallee.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/changeCallee.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/changeCallee3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/changeCallee3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/changeCallee3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/changeCallee3.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/changeCallee4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/changeCallee4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/changeCallee4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/changeCallee4.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/changeCalleeParen.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/changeCalleeParen.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/changeCalleeParen.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/changeCalleeParen.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckArgDrum.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckArgDrum.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckArgDrum.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckArgDrum.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckArgFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckArgFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckArgFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckArgFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckArgWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckArgWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckArgWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckArgWhale.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckEveryArgAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckEveryArgAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckEveryArgAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckEveryArgAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckEveryArgRed.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckEveryArgRed.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckEveryArgRed.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckEveryArgRed.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckEveryArgSit.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckEveryArgSit.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckEveryArgSit.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckEveryArgSit.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckKey2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckKey2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckKey2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckKey2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckType.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckType.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckType.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckType.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckTypeSoon.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckTypeSoon.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckTypeSoon.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckTypeSoon.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckTypeTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckTypeTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckTypeTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckTypeTrap.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/chuckValue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckValue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/chuckValue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/chuckValue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch10.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch11.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch12.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch13.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch13.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch13.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch13.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch14.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch14.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch14.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch14.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch15.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch15.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch15.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch15.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch16.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch16.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch16.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch16.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch17.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch17.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch17.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch17.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch18.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch18.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch18.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch18.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch19.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch19.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch19.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch19.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch20.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch20.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch20.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch20.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch3.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch4.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch5.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch6.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch7.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch8.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearBranch9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearBranch9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearBranch9.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearCondition.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearCondition.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearCondition.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearCondition.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearCondition2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearCondition2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearCondition2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearCondition2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearCondition3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearCondition3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearCondition3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearCondition3.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearCondition4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearCondition4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearCondition4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearCondition4.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearCondition5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearCondition5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearCondition5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearCondition5.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearCondition6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearCondition6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearCondition6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearCondition6.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearEveryItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearEveryItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearEveryItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearEveryItem2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearEveryValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearEveryValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearEveryValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearEveryValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearName.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearSubject.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearSubject.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearSubject.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearSubject.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/clearValue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearValue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/clearValue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/clearValue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/ditchBranch.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/ditchBranch.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/ditchBranch.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/ditchBranch.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/ditchBranch2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/ditchBranch2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/ditchBranch2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/ditchBranch2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/ditchCondition.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/ditchCondition.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/ditchCondition.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/ditchCondition.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/ditchCondition2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/ditchCondition2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/ditchCondition2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/ditchCondition2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/elseStateWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/elseStateWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/elseStateWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/elseStateWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/ifElseWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/ifElseWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/ifElseWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/ifElseWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/ifStateWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/ifStateWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/ifStateWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/ifStateWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeArgDrum.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeArgDrum.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeArgDrum.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeArgDrum.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeArgRed.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeArgRed.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeArgRed.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeArgRed.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeArgWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeArgWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeArgWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeArgWhale.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeClass.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeClass.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeClass.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeClass.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeClass2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeClass2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeClass2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeClass2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeClassName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeClassName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeClassName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeClassName.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeCondition.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeCondition.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeCondition.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeCondition.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeCondition2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeCondition2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeCondition2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeCondition2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeEveryArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeEveryArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeEveryArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeEveryArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeEveryArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeEveryArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeEveryArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeEveryArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeEveryItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeEveryItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeEveryItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeEveryItem2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeEveryItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeEveryItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeEveryItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeEveryItem3.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeFunk2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeFunk2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeFunk2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeFunk2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeFunkName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeFunkName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeFunkName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeFunkName.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeIf.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeIf.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeIf.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeIf.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeItem2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeItem3.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeLambda.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeLambda.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeLambda.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeLambda.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeLambdaMade.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeLambdaMade.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeLambdaMade.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeLambdaMade.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeLambdaPit.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeLambdaPit.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeLambdaPit.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeLambdaPit.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeList.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeList.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeList.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeList.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeList2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeList2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeList2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeList2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeMap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeMap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeMap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeMap.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeName.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeState.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeString.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeString.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeString.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeString.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeType.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeType.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeType.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeType.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeType2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeType2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeType2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeType2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/takeValueZero.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeValueZero.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/takeValueZero.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/takeValueZero.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/tryCatchWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/tryCatchWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/tryCatchWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/tryCatchWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/python/tryCatchWrapThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/tryCatchWrapThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/python/tryCatchWrapThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/python/tryCatchWrapThis2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeArgWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeArgWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeArgWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeArgWhale.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeArgWhale2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeArgWhale2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeArgWhale2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeArgWhale2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeArgWhale3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeArgWhale3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeArgWhale3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeArgWhale3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeClass.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeClass.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeClass.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeClass.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeComment2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeComment2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeComment2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeComment2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeComment3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeComment3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeComment3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeComment3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeCondition.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeCondition.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeCondition.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeCondition.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeEveryArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeEveryArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeEveryArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeEveryArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeEveryArg3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryArg3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeEveryArg3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryArg3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeEveryKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeEveryKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeEveryKey2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryKey2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeEveryKey2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryKey2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeEveryKey3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryKey3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeEveryKey3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryKey3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeEveryKey4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryKey4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeEveryKey4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeEveryKey4.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeFunk2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunk2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeFunk2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunk2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeFunk3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunk3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeFunk3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunk3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeFunk4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunk4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeFunk4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunk4.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeFunkName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunkName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeFunkName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunkName.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeFunkName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunkName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeFunkName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunkName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeFunkName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunkName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeFunkName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeFunkName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeIfState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeIfState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeIfState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeIfState.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeItemThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeItemThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeItemThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeItemThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeKey2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeKey2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeKey2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeKey2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeLambda.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeLambda.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeLambda.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeLambda.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeLambda2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeLambda2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeLambda2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeLambda2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeLambda3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeLambda3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeLambda3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeLambda3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeLambda4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeLambda4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeLambda4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeLambda4.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeLambda5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeLambda5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeLambda5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeLambda5.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeList.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeList.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeList.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeList.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeList2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeList2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeList2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeList2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeList3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeList3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeList3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeList3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeMap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeMap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeMap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeMap.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeName.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeNameThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeNameThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeNameThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeNameThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeRegex.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeRegex.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeRegex.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeRegex.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeRound.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeRound2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeRound2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeRound2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeRound2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeState.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeState2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeState2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeState2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeState2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeState3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeState3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeState3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeState3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeState4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeState4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeState4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeState4.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeState5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeState5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeState5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeState5.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeString.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeString.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeString.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeString.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeString2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeString2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeString2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeString2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/changeValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/changeValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/changeValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckArg3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckArg3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckArg3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckArg3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckArg4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckArg4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckArg4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckArg4.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckEveryArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckEveryArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckEveryArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckEveryArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckEveryArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckEveryArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckEveryArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckEveryArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckItem4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckItem4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem4.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckItem5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckItem5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem5.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckItem6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckItem6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem6.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckItem7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckItem7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckItem7.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckNameThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckNameThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckNameThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckNameThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckNameThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckNameThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckNameThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckNameThis2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckState10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckState10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState10.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckState11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckState11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState11.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckState2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckState2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckState3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckState3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckState4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckState4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState4.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckState5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckState5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState5.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckState6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckState6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState6.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckState7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckState7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState7.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckState8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckState8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState8.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckState9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckState9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckState9.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckValue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckValue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckValue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckValue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckValue5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckValue5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckValue5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckValue5.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/chuckValue6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckValue6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/chuckValue6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/chuckValue6.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/clearState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/clearState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/clearState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/clearState.yml diff --git a/src/test/suite/fixtures/recorded/languages/ruby/clearState2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/clearState2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/ruby/clearState2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/ruby/clearState2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeArgAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeArgAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeArgAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeArgAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeArgBlueAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeArgBlueAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeArgBlueAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeArgBlueAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeArgEight.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeArgEight.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeArgEight.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeArgEight.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeArgSun.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeArgSun.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeArgSun.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeArgSun.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeArgTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeArgTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeArgTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeArgTrap.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeArgTrapAndBlueTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeArgTrapAndBlueTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeArgTrapAndBlueTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeArgTrapAndBlueTrap.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeCallSun.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeCallSun.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeCallSun.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeCallSun.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeClass.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeClass.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeClass.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeClass.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeClassName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeClassName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeClassName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeClassName.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeFunkName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeFunkName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeFunkName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeFunkName.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeItemAir2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeItemAir2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeItemAir2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeItemAir2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeItemNear.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeItemNear.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeItemNear.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeItemNear.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeItemOne.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeItemOne.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeItemOne.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeItemOne.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeKeyDrum.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeKeyDrum.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeKeyDrum.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeKeyDrum.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeKeyJury.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeKeyJury.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeKeyJury.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeKeyJury.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeLambda.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeLambda.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeLambda.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeLambda.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeName.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameDrum.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameDrum.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameDrum.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameDrum.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameDrum2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameDrum2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameDrum2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameDrum2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameDrum3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameDrum3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameDrum3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameDrum3.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameEach.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameFine2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameFine2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameFine2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameFine2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameJury.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameJury.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameJury.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameJury.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameNear.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameNear.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameNear.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameNear.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameOdd.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameOdd.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameOdd.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameOdd.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameOdd2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameOdd2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameOdd2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameOdd2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameOdd3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameOdd3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameOdd3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameOdd3.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameSun.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameSun.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameSun.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameSun.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameSun2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameSun2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameSun2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameSun2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeNameTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeNameTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeNameTrap.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeRound.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeState.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeState2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeState2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeState2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeState2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeState3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeState3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeState3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeState3.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeSubject.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeSubject.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeSubject.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeSubject.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeTypeAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeTypeAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeTypeEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeTypeEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeEach.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeTypeLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeTypeLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeTypeOdd.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeOdd.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeTypeOdd.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeOdd.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeTypePlex.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypePlex.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeTypePlex.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypePlex.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeTypePlex2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypePlex2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeTypePlex2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypePlex2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeTypeSun.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeSun.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeTypeSun.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeSun.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeTypeSun2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeSun2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeTypeSun2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeSun2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeTypeTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeTypeTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeTrap.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeTypeTrap3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeTrap3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeTypeTrap3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeTrap3.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeTypeUrge.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeUrge.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeTypeUrge.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeTypeUrge.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeValueCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeValueCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueCap.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeValueEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeValueEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueEach.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeValueFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeValueFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeValueFine2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueFine2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeValueFine2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueFine2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeValueLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeValueLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeValueNear.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueNear.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeValueNear.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueNear.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/changeValueZero.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueZero.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/changeValueZero.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/changeValueZero.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckArgAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckArgAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckArgBlueAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgBlueAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckArgBlueAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgBlueAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckArgDrum.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgDrum.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckArgDrum.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgDrum.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckArgEight2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgEight2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckArgEight2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgEight2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckArgOne.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgOne.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckArgOne.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgOne.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckArgSun.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgSun.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckArgSun.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgSun.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckArgSun2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgSun2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckArgSun2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgSun2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckArgThree.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgThree.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckArgThree.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgThree.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckArgTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckArgTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgTrap.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckArgTrap2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgTrap2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckArgTrap2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckArgTrap2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckAttributeDrum.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckAttributeDrum.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckAttributeDrum.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckAttributeDrum.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckAttributeMade.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckAttributeMade.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckAttributeMade.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckAttributeMade.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckAttributeMade2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckAttributeMade2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckAttributeMade2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckAttributeMade2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckCall2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckCall2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckCall2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckCall2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckCallNear.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckCallNear.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckCallNear.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckCallNear.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckClassName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckClassName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckClassName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckClassName.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckComment2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckComment2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckComment2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckComment2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckCondition.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckCondition.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckCondition.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckCondition.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckFunkMade.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckFunkMade.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckFunkMade.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckFunkMade.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckFunkNameFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckFunkNameFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckFunkNameFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckFunkNameFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckItemOne.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckItemOne.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckItemOne.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckItemOne.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckItemOne2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckItemOne2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckItemOne2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckItemOne2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckItemSit2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckItemSit2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckItemSit2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckItemSit2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckItemTwo.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckItemTwo.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckItemTwo.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckItemTwo.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckItemVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckItemVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckItemVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckItemVest.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckKeyAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckKeyAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckKeyAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckKeyAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckKeyLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckKeyLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckKeyLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckKeyLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckListOne.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckListOne.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckListOne.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckListOne.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckName.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckNameFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckNameFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckNameFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckNameFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckNameJury.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckNameJury.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckNameJury.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckNameJury.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckState.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckString.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckString.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckString.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckString.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckTypeAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckTypeAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckTypeLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckTypeLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckTypeMade.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeMade.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckTypeMade.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeMade.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckTypeOdd.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeOdd.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckTypeOdd.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeOdd.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckTypeOdd2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeOdd2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckTypeOdd2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeOdd2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckTypePlex.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypePlex.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckTypePlex.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypePlex.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckTypePlex2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypePlex2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckTypePlex2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypePlex2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckTypeSun.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeSun.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckTypeSun.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeSun.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckTypeYank.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeYank.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckTypeYank.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckTypeYank.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckValueFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckValueFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckValueFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckValueFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckValueNear.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckValueNear.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckValueNear.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckValueNear.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/chuckValueZero.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckValueZero.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/chuckValueZero.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/chuckValueZero.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearArgue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearArgue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearArgue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearArgue.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearBranch.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearBranch.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearBranch2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearBranch2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearBranch3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearBranch3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch3.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearBranch4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearBranch4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch4.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearBranch5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearBranch5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch5.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearBranch6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearBranch6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch6.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearBranch7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearBranch7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch7.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearBranch8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearBranch8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearBranch8.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearCondition.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearCondition.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearCondition2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearCondition2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearCondition3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearCondition3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition3.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearCondition4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearCondition4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition4.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearCondition5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearCondition5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition5.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearCondition6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearCondition6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition6.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearCondition7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearCondition7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition7.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearCondition8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearCondition8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearCondition8.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearName.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearState.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearState2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearState2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearState2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearState2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearState3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearState3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearState3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearState3.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearState4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearState4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearState4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearState4.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearValue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearValue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearValue4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearValue4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue4.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearValue5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearValue5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue5.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearValue6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearValue6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue6.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearValue7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearValue7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue7.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearValue8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearValue8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue8.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/clearValue9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/clearValue9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/clearValue9.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/ditchBranch.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/ditchBranch.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/ditchBranch.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/ditchBranch.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/ditchBranch2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/ditchBranch2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/ditchBranch2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/ditchBranch2.yml diff --git a/src/test/suite/fixtures/recorded/languages/rust/ditchBranch3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/ditchBranch3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/rust/ditchBranch3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/rust/ditchBranch3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckArgFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckArgFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckArgFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckArgFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckArgFine2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckArgFine2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckArgFine2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckArgFine2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckArgFine3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckArgFine3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckArgFine3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckArgFine3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckBranchSun.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckBranchSun.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckBranchSun.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckBranchSun.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckConditionFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckConditionFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckConditionFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckConditionFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeBat.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeFine2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeFine2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeFine2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeFine2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeFine3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeFine3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeFine3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeFine3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeLook2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeLook2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeLook2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeLook2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeLook3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeLook3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeLook3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeLook3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeOdd.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeOdd.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeOdd.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeOdd.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeOdd2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeOdd2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeOdd2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeOdd2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeOdd3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeOdd3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeOdd3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeOdd3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeRed.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeRed.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeRed.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeRed.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeRed2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeRed2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeRed2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeRed2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeSit.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSit.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeSit.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSit.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeSit2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSit2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeSit2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSit2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeSun.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSun.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeSun.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSun.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeSun2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSun2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeSun2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSun2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeSun3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSun3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeSun3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSun3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeSun4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSun4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeSun4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSun4.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeSun5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSun5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeSun5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeSun5.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckTypeTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckTypeTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckTypeTrap.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckValueOdd.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckValueOdd.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckValueOdd.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckValueOdd.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckValueRed.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckValueRed.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckValueRed.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckValueRed.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/chuckValueSit.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckValueSit.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/chuckValueSit.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/chuckValueSit.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearArgFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearArgFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearArgFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearArgFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearArgFine2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearArgFine2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearArgFine2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearArgFine2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearArgFine3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearArgFine3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearArgFine3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearArgFine3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearBranch.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearBranch.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearBranch.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearBranch.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearCallMade.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearCallMade.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearCallMade.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearCallMade.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearClass.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClass.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearClass.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClass.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearClass2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClass2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearClass2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClass2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearClass3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClass3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearClass3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClass3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearClass4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClass4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearClass4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClass4.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearClassName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClassName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearClassName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClassName.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearClassName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClassName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearClassName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClassName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearClassName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClassName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearClassName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClassName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearClassName4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClassName4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearClassName4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearClassName4.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearComment2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearComment2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearComment2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearComment2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearConditionEquals.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearConditionEquals.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearConditionEquals.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearConditionEquals.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearConditionFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearConditionFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearConditionFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearConditionFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearFunkFour.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearFunkFour.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearFunkFour.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearFunkFour.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearFunkNameFour.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearFunkNameFour.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearFunkNameFour.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearFunkNameFour.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearIfState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearIfState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearIfState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearIfState.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearIfState2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearIfState2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearIfState2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearIfState2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearLambdaPlus.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearLambdaPlus.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearLambdaPlus.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearLambdaPlus.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearLambdaPlus2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearLambdaPlus2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearLambdaPlus2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearLambdaPlus2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearLambdaPlus3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearLambdaPlus3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearLambdaPlus3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearLambdaPlus3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearName.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearNameFour.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearNameFour.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearNameFour.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearNameFour.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearNameFour2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearNameFour2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearNameFour2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearNameFour2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearRoundWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearRoundWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearRoundWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearRoundWhale.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearRoundWhale2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearRoundWhale2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearRoundWhale2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearRoundWhale2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearString.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearString.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearString.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearString.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearString2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearString2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearString2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearString2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearStringOdd.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearStringOdd.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearStringOdd.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearStringOdd.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearSubject.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearSubject.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearSubject.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearSubject.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearType.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearType.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearType.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearType.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeBat.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeComma.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeComma.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeComma.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeComma.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeFine2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeFine2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeFine2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeFine2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeFine3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeFine3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeFine3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeFine3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeLook2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeLook2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeLook2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeLook2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeLook3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeLook3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeLook3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeLook3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeOdd.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeOdd.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeOdd.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeOdd.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeOdd2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeOdd2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeOdd2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeOdd2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeOdd3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeOdd3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeOdd3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeOdd3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeRed.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeRed.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeRed.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeRed.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeRed2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeRed2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeRed2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeRed2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeSit.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSit.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeSit.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSit.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeSit2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSit2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeSit2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSit2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeSun.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSun.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeSun.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSun.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeSun2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSun2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeSun2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSun2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeSun3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSun3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeSun3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSun3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeSun4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSun4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeSun4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSun4.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeSun5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSun5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeSun5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeSun5.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearTypeTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearTypeTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearTypeTrap.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearValueOdd.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearValueOdd.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearValueOdd.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearValueOdd.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearValueRed.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearValueRed.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearValueRed.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearValueRed.yml diff --git a/src/test/suite/fixtures/recorded/languages/scala/clearValueSit.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearValueSit.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scala/clearValueSit.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scala/clearValueSit.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeArgue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeArgue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeArgue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeArgue.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeArgue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeArgue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeArgue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeArgue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeArgue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeArgue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeArgue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeArgue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeArgue4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeArgue4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeArgue4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeArgue4.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeArgue5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeArgue5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeArgue5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeArgue5.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeArgue6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeArgue6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeArgue6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeArgue6.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeCallee.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeCallee.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeCallee.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeCallee.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeComment2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeComment2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeComment2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeComment2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeEveryArgue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeEveryArgue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeEveryArgue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeEveryArgue.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeEveryArgue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeEveryArgue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeEveryArgue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeEveryArgue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeEveryArgue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeEveryArgue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeEveryArgue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeEveryArgue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeFirstWordLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeFirstWordLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeFirstWordLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeFirstWordLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeFunk2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeFunk2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeFunk2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeFunk2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeKey2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeKey2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeKey2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeKey2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeLastWordLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeLastWordLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeLastWordLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeLastWordLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeLeadingLastWordLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeLeadingLastWordLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeLeadingLastWordLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeLeadingLastWordLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeName4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeName4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName4.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeName5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeName5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName5.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeName6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeName6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName6.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeName7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeName7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName7.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeName8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeName8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName8.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeName9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeName9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeName9.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeRound.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeSecondWordLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeSecondWordLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeSecondWordLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeSecondWordLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeSelector.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeSelector.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeSelector.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeSelector.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeSelector2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeSelector2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeSelector2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeSelector2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeSelector3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeSelector3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeSelector3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeSelector3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeState.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeState4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeState4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeState4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeState4.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeState5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeState5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeState5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeState5.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeState6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeState6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeState6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeState6.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeStateAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeStateAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeStateAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeStateAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeStateHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeStateHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeStateHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeStateHarp.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeTrailingFirstWordLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeTrailingFirstWordLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeTrailingFirstWordLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeTrailingFirstWordLook.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeUnit.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeUnit.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeUnit.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeUnit.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeUnit2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeUnit2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeUnit2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeUnit2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeUnitGust.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeUnitGust.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeUnitGust.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeUnitGust.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeUnitOne.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeUnitOne.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeUnitOne.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeUnitOne.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue10.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue11.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue12.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue13.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue13.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue13.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue13.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue14.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue14.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue14.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue14.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue15.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue15.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue15.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue15.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue4.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue5.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue6.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue7.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue8.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/changeValue9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/changeValue9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/changeValue9.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckArgue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckArgue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckArgue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckArgue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckArgue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckArgue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckArgue4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckArgue4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue4.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckArgue5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckArgue5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue5.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckArgue6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckArgue6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue6.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckArgue7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckArgue7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue7.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckArgue8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckArgue8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue8.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckArgue9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckArgue9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckArgue9.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckEveryArgue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckEveryArgue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckEveryArgue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckEveryArgue.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckFirstWordCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckFirstWordCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckFirstWordCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckFirstWordCap.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckLastWordCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckLastWordCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckLastWordCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckLastWordCap.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckState.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckState2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckState2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckState2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckState2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/chuckValue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckValue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/chuckValue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/chuckValue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/moveFirstWordZipBeforeFineTakeFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/moveFirstWordZipBeforeFineTakeFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/moveFirstWordZipBeforeFineTakeFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/moveFirstWordZipBeforeFineTakeFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/moveFirstWordZipBeforeFineTakeZip.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/moveFirstWordZipBeforeFineTakeZip.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/moveFirstWordZipBeforeFineTakeZip.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/moveFirstWordZipBeforeFineTakeZip.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/moveLastWordZipAfterFineTakeFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/moveLastWordZipAfterFineTakeFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/moveLastWordZipAfterFineTakeFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/moveLastWordZipAfterFineTakeFine.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/moveLastWordZipAfterFineTakeZip.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/moveLastWordZipAfterFineTakeZip.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/moveLastWordZipAfterFineTakeZip.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/moveLastWordZipAfterFineTakeZip.yml diff --git a/src/test/suite/fixtures/recorded/languages/scss/takeEveryToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/takeEveryToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/scss/takeEveryToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/scss/takeEveryToken.yml diff --git a/src/test/suite/fixtures/recorded/languages/shellscript/changeThirdWordDash.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/shellscript/changeThirdWordDash.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/shellscript/changeThirdWordDash.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/shellscript/changeThirdWordDash.yml diff --git a/src/test/suite/fixtures/recorded/languages/shellscript/chuckFirstWordBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/shellscript/chuckFirstWordBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/shellscript/chuckFirstWordBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/shellscript/chuckFirstWordBat.yml diff --git a/src/test/suite/fixtures/recorded/languages/shellscript/chuckSecondWordCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/shellscript/chuckSecondWordCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/shellscript/chuckSecondWordCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/shellscript/chuckSecondWordCap.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeCallee.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCallee.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeCallee.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCallee.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeCallee3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCallee3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeCallee3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCallee3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeCallee4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCallee4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeCallee4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCallee4.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeCallee5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCallee5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeCallee5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCallee5.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeCallee6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCallee6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeCallee6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCallee6.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeCallee7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCallee7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeCallee7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCallee7.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeCalleeParen.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCalleeParen.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeCalleeParen.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCalleeParen.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeCalleeParen2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCalleeParen2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeCalleeParen2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeCalleeParen2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeName.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeName4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeName4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeName4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeName4.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeName5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeName5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeName5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeName5.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/changeValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/changeValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/changeValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/chuckCoreElement.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckCoreElement.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/chuckCoreElement.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckCoreElement.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/chuckKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/chuckKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/chuckState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/chuckState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckState.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/chuckState2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckState2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/chuckState2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckState2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/chuckTypeRam.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckTypeRam.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/chuckTypeRam.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckTypeRam.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/chuckTypeSoon.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckTypeSoon.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/chuckTypeSoon.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckTypeSoon.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/chuckTypeSoon2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckTypeSoon2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/chuckTypeSoon2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckTypeSoon2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/chuckTypeTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckTypeTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/chuckTypeTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckTypeTrap.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/chuckTypeYank.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckTypeYank.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/chuckTypeYank.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckTypeYank.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/chuckValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/chuckValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/chuckValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearBranch.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearBranch.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearBranch10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearBranch10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch10.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearBranch11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearBranch11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch11.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearBranch12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearBranch12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch12.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearBranch2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearBranch2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearBranch3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearBranch3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearBranch4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearBranch4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch4.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearBranch5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearBranch5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch5.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearBranch6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearBranch6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch6.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearBranch7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearBranch7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch7.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearBranch8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearBranch8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch8.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearBranch9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearBranch9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearBranch9.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearClass.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearClass.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearClass.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearClass.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearClass2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearClass2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearClass2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearClass2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearClass3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearClass3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearClass3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearClass3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearClass4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearClass4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearClass4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearClass4.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearCondition.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearCondition.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearCondition.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearCondition.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearCondition2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearCondition2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearCondition2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearCondition2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearCoreElement.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearCoreElement.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearCoreElement.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearCoreElement.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearCoreElement2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearCoreElement2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearCoreElement2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearCoreElement2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearFunk2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearFunk2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearFunk2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearFunk2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearFunk3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearFunk3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearFunk3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearFunk3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearFunkName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearFunkName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearFunkName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearFunkName.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearItem2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearItem3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearItemBrace.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearItemBrace.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearItemBrace.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearItemBrace.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearLambda.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearLambda.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearLambda.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearLambda.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearLambda2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearLambda2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearLambda2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearLambda2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearLambda3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearLambda3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearLambda3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearLambda3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearLambda4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearLambda4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearLambda4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearLambda4.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearName.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearPair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearPair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearPair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearPair.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearState.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearState2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearState2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearState2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearState2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearState3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearState3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearState3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearState3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearState4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearState4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearState4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearState4.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearState5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearState5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearState5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearState5.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearSubject.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearSubject.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearSubject.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearSubject.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearSubject2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearSubject2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearSubject2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearSubject2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearType.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearType.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearType.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearType.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearType2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearType2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearType2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearType2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearTypeAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearTypeAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearTypeBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearTypeBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeBat.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearTypeLangle.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeLangle.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearTypeLangle.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeLangle.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearTypeNear.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeNear.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearTypeNear.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeNear.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearTypeNear2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeNear2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearTypeNear2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeNear2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearTypeOx.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeOx.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearTypeOx.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeOx.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearTypeOx2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeOx2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearTypeOx2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeOx2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearTypeUrge.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeUrge.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearTypeUrge.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeUrge.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearTypeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearTypeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeWhale.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearTypeWrangle.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeWrangle.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearTypeWrangle.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearTypeWrangle.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/clearValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/clearValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/clearValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/ditchBranch.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ditchBranch.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/ditchBranch.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ditchBranch.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/ditchBranch2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ditchBranch2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/ditchBranch2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ditchBranch2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/ditchBranch3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ditchBranch3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/ditchBranch3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ditchBranch3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/ditchFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ditchFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/ditchFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ditchFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/ditchFunk2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ditchFunk2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/ditchFunk2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ditchFunk2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/elseStateWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/elseStateWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/elseStateWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/elseStateWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/ifElseWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ifElseWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/ifElseWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ifElseWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/ifStateWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ifStateWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/ifStateWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/ifStateWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeArg.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeArg2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeArg2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeArg2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeArg2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeArrow.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeArrow.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeArrow.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeArrow.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeCall.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeCall.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeCall.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeCall.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeClass.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeClass.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeClass.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeClass.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeClassName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeClassName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeClassName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeClassName.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeComment.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeCondition.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeCondition.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeCondition.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeCondition.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeCondition2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeCondition2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeCondition2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeCondition2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeCondition3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeCondition3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeCondition3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeCondition3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeEveryArgAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryArgAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeEveryArgAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryArgAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeEveryArgBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryArgBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeEveryArgBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryArgBat.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeEveryArgRam.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryArgRam.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeEveryArgRam.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryArgRam.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeEveryItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeEveryItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeEveryItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeEveryItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryItem2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeEveryItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeEveryItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryItem3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeEveryItem4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryItem4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeEveryItem4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryItem4.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeEveryItem5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryItem5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeEveryItem5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryItem5.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeEveryKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeEveryKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeEveryKey2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryKey2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeEveryKey2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryKey2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeEveryValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeEveryValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeEveryValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeEveryValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeEveryValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunk10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunk10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk10.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunk11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunk11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk11.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunk12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunk12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk12.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunk13.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk13.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunk13.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk13.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunk2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunk2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunk3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunk3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunk4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunk4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk4.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunk5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunk5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk5.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunk6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunk6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk6.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunk7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunk7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk7.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunk8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunk8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk8.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunk9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunk9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunk9.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkCap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkCap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkCap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkCap.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkMade.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkMade.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkMade.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkMade.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkMade2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkMade2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkMade2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkMade2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkName10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkName10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName10.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkName11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkName11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName11.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkName3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkName3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkName4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkName4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName4.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkName5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkName5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName5.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkName6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkName6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName6.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkName7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkName7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName7.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkName8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkName8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName8.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkName9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkName9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkName9.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeFunkSoon.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkSoon.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeFunkSoon.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeFunkSoon.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeIf.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeIf.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeIf.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeIf.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItem.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeItem2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItem2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeItem2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItem2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeItem3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItem3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeItem3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItem3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeItem4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItem4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeItem4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItem4.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeItemAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItemAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeItemAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItemAir.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeItemComma.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItemComma.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeItemComma.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItemComma.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeItemOne.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItemOne.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeItemOne.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeItemOne.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeKey.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeKey.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeKey.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeKey.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeList.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeList.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeList.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeList.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeList2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeList2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeList2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeList2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeMap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeMap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeMap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeMap.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeMap2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeMap2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeMap2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeMap2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeName.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeName2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeName2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeName2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeName2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeRegex.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeRegex.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeRegex.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeRegex.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeState.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeState2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeState2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeState2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeState2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeString.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeString.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeString.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeString.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeType.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeType.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeType.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeType.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeType2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeType2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeType2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeType2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeValue.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeValue2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeValue2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeValue2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeValue2.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeValue3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeValue3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeValue3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeValue3.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/takeValue4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeValue4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/takeValue4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/takeValue4.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/tryCatchWrapThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/tryCatchWrapThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/tryCatchWrapThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/tryCatchWrapThis.yml diff --git a/src/test/suite/fixtures/recorded/languages/typescript/tryCatchWrapThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/tryCatchWrapThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/typescript/tryCatchWrapThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/typescript/tryCatchWrapThis2.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearAtHerThen.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearAtHerThen.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearAtHerThen.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearAtHerThen.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearCore.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearCore.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearCore.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearCore.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearCore2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearCore2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearCore2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearCore2.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearEli.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearEli.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearEli.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearEli.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearEndTag.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearEndTag.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearEndTag.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearEndTag.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearEveryAtHer.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearEveryAtHer.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearEveryAtHer.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearEveryAtHer.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearEveryEli.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearEveryEli.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearEveryEli.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearEveryEli.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearEveryTags.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearEveryTags.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearEveryTags.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearEveryTags.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearKeyThen.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearKeyThen.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearKeyThen.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearKeyThen.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearName.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearName.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearName.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearName.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearPair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearPair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearPair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearPair.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearPair2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearPair2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearPair2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearPair2.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearRound.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearStartTag.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearStartTag.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearStartTag.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearStartTag.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/clearTags.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearTags.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/clearTags.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/clearTags.yml diff --git a/src/test/suite/fixtures/recorded/languages/xml/scratchClearValue.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/scratchClearValue.yml similarity index 100% rename from src/test/suite/fixtures/recorded/languages/xml/scratchClearValue.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/languages/xml/scratchClearValue.yml diff --git a/src/test/suite/fixtures/recorded/leadingTrailing/chuckLeadingWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/leadingTrailing/chuckLeadingWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/leadingTrailing/chuckLeadingWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/leadingTrailing/chuckLeadingWhale.yml diff --git a/src/test/suite/fixtures/recorded/leadingTrailing/chuckPastLeadingTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/leadingTrailing/chuckPastLeadingTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/leadingTrailing/chuckPastLeadingTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/leadingTrailing/chuckPastLeadingTrap.yml diff --git a/src/test/suite/fixtures/recorded/leadingTrailing/chuckPastTrailingLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/leadingTrailing/chuckPastTrailingLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/leadingTrailing/chuckPastTrailingLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/leadingTrailing/chuckPastTrailingLook.yml diff --git a/src/test/suite/fixtures/recorded/leadingTrailing/chuckTrailingDrum.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/leadingTrailing/chuckTrailingDrum.yml similarity index 100% rename from src/test/suite/fixtures/recorded/leadingTrailing/chuckTrailingDrum.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/leadingTrailing/chuckTrailingDrum.yml diff --git a/src/test/suite/fixtures/recorded/leadingTrailing/clearLeadingWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/leadingTrailing/clearLeadingWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/leadingTrailing/clearLeadingWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/leadingTrailing/clearLeadingWhale.yml diff --git a/src/test/suite/fixtures/recorded/leadingTrailing/clearTrailingWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/leadingTrailing/clearTrailingWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/leadingTrailing/clearTrailingWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/leadingTrailing/clearTrailingWhale.yml diff --git a/src/test/suite/fixtures/recorded/lineEndings/chuckVestLF.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/lineEndings/chuckVestLF.yml similarity index 100% rename from src/test/suite/fixtures/recorded/lineEndings/chuckVestLF.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/lineEndings/chuckVestLF.yml diff --git a/src/test/suite/fixtures/recorded/lineEndings/chuckVestLFCR.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/lineEndings/chuckVestLFCR.yml similarity index 100% rename from src/test/suite/fixtures/recorded/lineEndings/chuckVestLFCR.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/lineEndings/chuckVestLFCR.yml diff --git a/src/test/suite/fixtures/recorded/lineEndings/clearCoreFileLFCR.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/lineEndings/clearCoreFileLFCR.yml similarity index 100% rename from src/test/suite/fixtures/recorded/lineEndings/clearCoreFileLFCR.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/lineEndings/clearCoreFileLFCR.yml diff --git a/src/test/suite/fixtures/recorded/lineEndings/dropVestLF.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/lineEndings/dropVestLF.yml similarity index 100% rename from src/test/suite/fixtures/recorded/lineEndings/dropVestLF.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/lineEndings/dropVestLF.yml diff --git a/src/test/suite/fixtures/recorded/lineEndings/dropVestLFCR.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/lineEndings/dropVestLFCR.yml similarity index 100% rename from src/test/suite/fixtures/recorded/lineEndings/dropVestLFCR.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/lineEndings/dropVestLFCR.yml diff --git a/src/test/suite/fixtures/recorded/marks/chuckNothing.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/chuckNothing.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/chuckNothing.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/chuckNothing.yml diff --git a/src/test/suite/fixtures/recorded/marks/highlightHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/highlightHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/highlightHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/highlightHarp.yml diff --git a/src/test/suite/fixtures/recorded/marks/takeDownOne.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeDownOne.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/takeDownOne.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeDownOne.yml diff --git a/src/test/suite/fixtures/recorded/marks/takeDownOnePastThree.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeDownOnePastThree.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/takeDownOnePastThree.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeDownOnePastThree.yml diff --git a/src/test/suite/fixtures/recorded/marks/takeRowFive.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeRowFive.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/takeRowFive.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeRowFive.yml diff --git a/src/test/suite/fixtures/recorded/marks/takeRowFour.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeRowFour.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/takeRowFour.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeRowFour.yml diff --git a/src/test/suite/fixtures/recorded/marks/takeRowOne.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeRowOne.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/takeRowOne.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeRowOne.yml diff --git a/src/test/suite/fixtures/recorded/marks/takeRowTwoPastDownThree.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeRowTwoPastDownThree.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/takeRowTwoPastDownThree.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeRowTwoPastDownThree.yml diff --git a/src/test/suite/fixtures/recorded/marks/takeRowTwoPastFour.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeRowTwoPastFour.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/takeRowTwoPastFour.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeRowTwoPastFour.yml diff --git a/src/test/suite/fixtures/recorded/marks/takeSource.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeSource.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/takeSource.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeSource.yml diff --git a/src/test/suite/fixtures/recorded/marks/takeThat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeThat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/takeThat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeThat.yml diff --git a/src/test/suite/fixtures/recorded/marks/takeThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/takeThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeThis.yml diff --git a/src/test/suite/fixtures/recorded/marks/takeUpOnePastDownOne.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeUpOnePastDownOne.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/takeUpOnePastDownOne.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeUpOnePastDownOne.yml diff --git a/src/test/suite/fixtures/recorded/marks/takeUpOnePastRowFour.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeUpOnePastRowFour.yml similarity index 100% rename from src/test/suite/fixtures/recorded/marks/takeUpOnePastRowFour.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/marks/takeUpOnePastRowFour.yml diff --git a/src/test/suite/fixtures/recorded/modifiers/everyScope/clearEveryLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/modifiers/everyScope/clearEveryLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/modifiers/everyScope/clearEveryLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/modifiers/everyScope/clearEveryLine.yml diff --git a/src/test/suite/fixtures/recorded/modifiers/everyScope/clearEveryToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/modifiers/everyScope/clearEveryToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/modifiers/everyScope/clearEveryToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/modifiers/everyScope/clearEveryToken.yml diff --git a/src/test/suite/fixtures/recorded/modifiers/everyScope/clearFirstToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/modifiers/everyScope/clearFirstToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/modifiers/everyScope/clearFirstToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/modifiers/everyScope/clearFirstToken.yml diff --git a/src/test/suite/fixtures/recorded/modifiers/everyScope/clearLastToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/modifiers/everyScope/clearLastToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/modifiers/everyScope/clearLastToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/modifiers/everyScope/clearLastToken.yml diff --git a/src/test/suite/fixtures/recorded/modifiers/everyScope/clearSecondLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/modifiers/everyScope/clearSecondLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/modifiers/everyScope/clearSecondLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/modifiers/everyScope/clearSecondLine.yml diff --git a/src/test/suite/fixtures/recorded/nonMatchErrors/takeFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/nonMatchErrors/takeFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/nonMatchErrors/takeFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/nonMatchErrors/takeFunk.yml diff --git a/src/test/suite/fixtures/recorded/nonMatchErrors/takeList.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/nonMatchErrors/takeList.yml similarity index 100% rename from src/test/suite/fixtures/recorded/nonMatchErrors/takeList.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/nonMatchErrors/takeList.yml diff --git a/src/test/suite/fixtures/recorded/ordinalScopes/clearFirstPaint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearFirstPaint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/ordinalScopes/clearFirstPaint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearFirstPaint.yml diff --git a/src/test/suite/fixtures/recorded/ordinalScopes/clearFirstPaint2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearFirstPaint2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/ordinalScopes/clearFirstPaint2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearFirstPaint2.yml diff --git a/src/test/suite/fixtures/recorded/ordinalScopes/clearFirstToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearFirstToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/ordinalScopes/clearFirstToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearFirstToken.yml diff --git a/src/test/suite/fixtures/recorded/ordinalScopes/clearFirstToken2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearFirstToken2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/ordinalScopes/clearFirstToken2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearFirstToken2.yml diff --git a/src/test/suite/fixtures/recorded/ordinalScopes/clearLastPaint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearLastPaint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/ordinalScopes/clearLastPaint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearLastPaint.yml diff --git a/src/test/suite/fixtures/recorded/ordinalScopes/clearLastPaint2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearLastPaint2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/ordinalScopes/clearLastPaint2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearLastPaint2.yml diff --git a/src/test/suite/fixtures/recorded/ordinalScopes/clearLastToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearLastToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/ordinalScopes/clearLastToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearLastToken.yml diff --git a/src/test/suite/fixtures/recorded/ordinalScopes/clearLastToken2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearLastToken2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/ordinalScopes/clearLastToken2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/ordinalScopes/clearLastToken2.yml diff --git a/src/test/suite/fixtures/recorded/positions/bringArgMadeAndGustToEndOfJustThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringArgMadeAndGustToEndOfJustThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/bringArgMadeAndGustToEndOfJustThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringArgMadeAndGustToEndOfJustThis.yml diff --git a/src/test/suite/fixtures/recorded/positions/bringBlockAirBeforeBatAndDrumAndAfterBatAndDrum.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringBlockAirBeforeBatAndDrumAndAfterBatAndDrum.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/bringBlockAirBeforeBatAndDrumAndAfterBatAndDrum.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringBlockAirBeforeBatAndDrumAndAfterBatAndDrum.yml diff --git a/src/test/suite/fixtures/recorded/positions/bringFunkAirAfterBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringFunkAirAfterBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/bringFunkAirAfterBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringFunkAirAfterBat.yml diff --git a/src/test/suite/fixtures/recorded/positions/bringFunkBatBeforeAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringFunkBatBeforeAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/bringFunkBatBeforeAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringFunkBatBeforeAir.yml diff --git a/src/test/suite/fixtures/recorded/positions/bringHarpAfterLineOatsAndWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringHarpAfterLineOatsAndWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/bringHarpAfterLineOatsAndWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringHarpAfterLineOatsAndWhale.yml diff --git a/src/test/suite/fixtures/recorded/positions/bringHarpToAfterFile.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringHarpToAfterFile.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/bringHarpToAfterFile.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringHarpToAfterFile.yml diff --git a/src/test/suite/fixtures/recorded/positions/bringStateFineToAfterBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringStateFineToAfterBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/bringStateFineToAfterBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringStateFineToAfterBatt.yml diff --git a/src/test/suite/fixtures/recorded/positions/bringWhaleToBeforeFile.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringWhaleToBeforeFile.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/bringWhaleToBeforeFile.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/bringWhaleToBeforeFile.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckAfterHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckAfterHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckAfterHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckAfterHarp.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckAfterLineVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckAfterLineVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckAfterLineVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckAfterLineVest.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckAfterLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckAfterLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckAfterLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckAfterLook.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckAfterVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckAfterVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckAfterVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckAfterVest.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckAfterWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckAfterWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckAfterWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckAfterWhale.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckAir.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckBeforeAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckBeforeAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckBeforeAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckBeforeAir.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckBeforeEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckBeforeEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckBeforeEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckBeforeEach.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckBeforeHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckBeforeHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckBeforeHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckBeforeHarp.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckBeforeLineAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckBeforeLineAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckBeforeLineAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckBeforeLineAir.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckBeforeVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckBeforeVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckBeforeVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckBeforeVest.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckBeforeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckBeforeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckBeforeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckBeforeWhale.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckEndOfWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckEndOfWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckEndOfWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckEndOfWhale.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckLeadingBlockAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckLeadingBlockAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckLeadingBlockAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckLeadingBlockAir.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckPastEndOfLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckPastEndOfLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckPastEndOfLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckPastEndOfLine.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckPastEndOfLook.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckPastEndOfLook.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckPastEndOfLook.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckPastEndOfLook.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckPastStartOfTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckPastStartOfTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckPastStartOfTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckPastStartOfTrap.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckStartOfWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckStartOfWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckStartOfWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckStartOfWhale.yml diff --git a/src/test/suite/fixtures/recorded/positions/chuckTrailingBlockVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckTrailingBlockVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/chuckTrailingBlockVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/chuckTrailingBlockVest.yml diff --git a/src/test/suite/fixtures/recorded/positions/replaceAfterVestWithHallo.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/replaceAfterVestWithHallo.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/replaceAfterVestWithHallo.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/replaceAfterVestWithHallo.yml diff --git a/src/test/suite/fixtures/recorded/positions/replaceBeforeVestWithHello.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/replaceBeforeVestWithHello.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/replaceBeforeVestWithHello.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/replaceBeforeVestWithHello.yml diff --git a/src/test/suite/fixtures/recorded/positions/replaceEndOfVestWithHello.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/replaceEndOfVestWithHello.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/replaceEndOfVestWithHello.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/replaceEndOfVestWithHello.yml diff --git a/src/test/suite/fixtures/recorded/positions/replaceStartOfVestWithHello.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/replaceStartOfVestWithHello.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/replaceStartOfVestWithHello.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/replaceStartOfVestWithHello.yml diff --git a/src/test/suite/fixtures/recorded/positions/takeAfterWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/takeAfterWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/takeAfterWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/takeAfterWhale.yml diff --git a/src/test/suite/fixtures/recorded/positions/takeBeforeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/takeBeforeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/takeBeforeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/takeBeforeWhale.yml diff --git a/src/test/suite/fixtures/recorded/positions/takeEndOfWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/takeEndOfWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/takeEndOfWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/takeEndOfWhale.yml diff --git a/src/test/suite/fixtures/recorded/positions/takeStartOfWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/takeStartOfWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/positions/takeStartOfWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/positions/takeStartOfWhale.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearFirstTokenRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearFirstTokenRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearFirstTokenRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearFirstTokenRound.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearLastTokenRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearLastTokenRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearLastTokenRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearLastTokenRound.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearLineBackward.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearLineBackward.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearLineBackward.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearLineBackward.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearNextToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearNextToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextToken.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearNextToken2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextToken2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearNextToken2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextToken2.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearNextToken3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextToken3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearNextToken3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextToken3.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearNextTokenRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextTokenRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearNextTokenRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextTokenRound.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearNextTwoToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextTwoToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearNextTwoToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextTwoToken.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearNextTwoToken2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextTwoToken2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearNextTwoToken2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextTwoToken2.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearNextTwoTokens.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextTwoTokens.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearNextTwoTokens.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearNextTwoTokens.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearOneLines.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearOneLines.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearOneLines.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearOneLines.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearOneToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearOneToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearOneToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearOneToken.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearOneTokens.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearOneTokens.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearOneTokens.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearOneTokens.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearPreviousToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearPreviousToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearPreviousToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearPreviousToken.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearPreviousTokenRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearPreviousTokenRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearPreviousTokenRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearPreviousTokenRound.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearPreviousTwoToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearPreviousTwoToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearPreviousTwoToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearPreviousTwoToken.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearPreviousTwoToken2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearPreviousTwoToken2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearPreviousTwoToken2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearPreviousTwoToken2.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearPreviousTwoToken3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearPreviousTwoToken3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearPreviousTwoToken3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearPreviousTwoToken3.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearPreviousTwoTokens.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearPreviousTwoTokens.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearPreviousTwoTokens.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearPreviousTwoTokens.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearSecondNextToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearSecondNextToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearSecondNextToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearSecondNextToken.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearSecondPreviousToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearSecondPreviousToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearSecondPreviousToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearSecondPreviousToken.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearThreeToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearThreeToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearThreeToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearThreeToken.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearThreeTokenBackward.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearThreeTokenBackward.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearThreeTokenBackward.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearThreeTokenBackward.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTokenBackward.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTokenBackward.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTokenBackward.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTokenBackward.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTokenBackward2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTokenBackward2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTokenBackward2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTokenBackward2.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoLinesBackward.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoLinesBackward.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoLinesBackward.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoLinesBackward.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoToken.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoToken2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoToken2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoToken2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoToken2.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoToken3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoToken3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoToken3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoToken3.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoToken4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoToken4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoToken4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoToken4.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokenBackward.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokenBackward.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokenBackward.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokenBackward.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokenBackward2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokenBackward2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokenBackward2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokenBackward2.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens2.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens3.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens4.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens5.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens6.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens7.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokens8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokens8.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward2.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward3.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward4.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward5.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward6.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward7.yml diff --git a/src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/relativeScopes/clearTwoTokensBackward8.yml diff --git a/src/test/suite/fixtures/recorded/scopes/character/clearCar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearCar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/character/clearCar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearCar.yml diff --git a/src/test/suite/fixtures/recorded/scopes/character/clearCar2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearCar2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/character/clearCar2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearCar2.yml diff --git a/src/test/suite/fixtures/recorded/scopes/character/clearCar3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearCar3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/character/clearCar3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearCar3.yml diff --git a/src/test/suite/fixtures/recorded/scopes/character/clearCar4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearCar4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/character/clearCar4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearCar4.yml diff --git a/src/test/suite/fixtures/recorded/scopes/character/clearNextCar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearNextCar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/character/clearNextCar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearNextCar.yml diff --git a/src/test/suite/fixtures/recorded/scopes/character/clearPreviousCar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearPreviousCar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/character/clearPreviousCar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearPreviousCar.yml diff --git a/src/test/suite/fixtures/recorded/scopes/character/clearTwentiethNextCar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearTwentiethNextCar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/character/clearTwentiethNextCar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/clearTwentiethNextCar.yml diff --git a/src/test/suite/fixtures/recorded/scopes/character/ditchFirstCarLeadingBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/ditchFirstCarLeadingBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/character/ditchFirstCarLeadingBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/ditchFirstCarLeadingBat.yml diff --git a/src/test/suite/fixtures/recorded/scopes/character/takeCarForward.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/takeCarForward.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/character/takeCarForward.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/takeCarForward.yml diff --git a/src/test/suite/fixtures/recorded/scopes/character/takeEveryCarFile.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/takeEveryCarFile.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/character/takeEveryCarFile.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/character/takeEveryCarFile.yml diff --git a/src/test/suite/fixtures/recorded/scopes/clearEveryIdentifier.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/clearEveryIdentifier.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/clearEveryIdentifier.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/clearEveryIdentifier.yml diff --git a/src/test/suite/fixtures/recorded/scopes/clearIdentifier.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/clearIdentifier.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/clearIdentifier.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/clearIdentifier.yml diff --git a/src/test/suite/fixtures/recorded/scopes/clearIdentifier2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/clearIdentifier2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/clearIdentifier2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/clearIdentifier2.yml diff --git a/src/test/suite/fixtures/recorded/scopes/clearLastIdentifier.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/clearLastIdentifier.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/clearLastIdentifier.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/clearLastIdentifier.yml diff --git a/src/test/suite/fixtures/recorded/scopes/line/clearTwoLines.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/line/clearTwoLines.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/line/clearTwoLines.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/line/clearTwoLines.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/chuckBlockAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/chuckBlockAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/chuckBlockAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/chuckBlockAir.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/chuckBlockAir2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/chuckBlockAir2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/chuckBlockAir2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/chuckBlockAir2.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/chuckBlockHarpBetweenFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/chuckBlockHarpBetweenFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/chuckBlockHarpBetweenFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/chuckBlockHarpBetweenFine.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/chuckBlockVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/chuckBlockVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/chuckBlockVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/chuckBlockVest.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearBlock.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearBlock.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearBlock.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearBlock.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearBlock2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearBlock2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearBlock2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearBlock2.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearBlock3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearBlock3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearBlock3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearBlock3.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearNextBlock.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearNextBlock.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearNextBlock.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearNextBlock.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearNextBlock2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearNextBlock2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearNextBlock2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearNextBlock2.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearNextBlock3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearNextBlock3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearNextBlock3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearNextBlock3.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearPreviousBlock.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearPreviousBlock.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearPreviousBlock.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearPreviousBlock.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearPreviousBlock2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearPreviousBlock2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearPreviousBlock2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearPreviousBlock2.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearPreviousBlock3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearPreviousBlock3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearPreviousBlock3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearPreviousBlock3.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocks.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocks.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocks.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocks.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocks2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocks2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocks2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocks2.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocks3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocks3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocks3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocks3.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocksBackward.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocksBackward.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocksBackward.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocksBackward.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocksBackward2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocksBackward2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocksBackward2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocksBackward2.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocksBackward3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocksBackward3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocksBackward3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/clearTwoBlocksBackward3.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/drinkBlock.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/drinkBlock.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/drinkBlock.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/drinkBlock.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/pourBlock.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/pourBlock.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/pourBlock.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/pourBlock.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/takeBlockAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/takeBlockAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/takeBlockAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/takeBlockAir.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/takeEveryBlock.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/takeEveryBlock.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/takeEveryBlock.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/takeEveryBlock.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/takeEveryBlock2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/takeEveryBlock2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/takeEveryBlock2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/takeEveryBlock2.yml diff --git a/src/test/suite/fixtures/recorded/scopes/paragraph/takeEveryBlock3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/takeEveryBlock3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/paragraph/takeEveryBlock3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/paragraph/takeEveryBlock3.yml diff --git a/src/test/suite/fixtures/recorded/scopes/token/clearTokenBackward.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/clearTokenBackward.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/token/clearTokenBackward.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/clearTokenBackward.yml diff --git a/src/test/suite/fixtures/recorded/scopes/token/clearTokenBackward2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/clearTokenBackward2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/token/clearTokenBackward2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/clearTokenBackward2.yml diff --git a/src/test/suite/fixtures/recorded/scopes/token/clearTokenForward.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/clearTokenForward.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/token/clearTokenForward.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/clearTokenForward.yml diff --git a/src/test/suite/fixtures/recorded/scopes/token/clearTokenForward2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/clearTokenForward2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/token/clearTokenForward2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/clearTokenForward2.yml diff --git a/src/test/suite/fixtures/recorded/scopes/token/ditchFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/ditchFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/token/ditchFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/ditchFine.yml diff --git a/src/test/suite/fixtures/recorded/scopes/token/ditchFinePastBat.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/ditchFinePastBat.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/token/ditchFinePastBat.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/ditchFinePastBat.yml diff --git a/src/test/suite/fixtures/recorded/scopes/token/ditchFinePastPoint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/ditchFinePastPoint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/token/ditchFinePastPoint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/ditchFinePastPoint.yml diff --git a/src/test/suite/fixtures/recorded/scopes/token/ditchFinePastPoint2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/ditchFinePastPoint2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/token/ditchFinePastPoint2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/ditchFinePastPoint2.yml diff --git a/src/test/suite/fixtures/recorded/scopes/token/takeToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/takeToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/token/takeToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/takeToken.yml diff --git a/src/test/suite/fixtures/recorded/scopes/token/takeToken2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/takeToken2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/scopes/token/takeToken2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/scopes/token/takeToken2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/bringHarpToAfterFile.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/bringHarpToAfterFile.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/bringHarpToAfterFile.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/bringHarpToAfterFile.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/bringWhaleToBeforeFile.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/bringWhaleToBeforeFile.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/bringWhaleToBeforeFile.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/bringWhaleToBeforeFile.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/changeEveryPaint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryPaint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/changeEveryPaint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryPaint.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/changeEveryPaint2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryPaint2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/changeEveryPaint2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryPaint2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/changeEveryPaint3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryPaint3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/changeEveryPaint3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryPaint3.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/changeEveryPaintInsideParen2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryPaintInsideParen2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/changeEveryPaintInsideParen2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryPaintInsideParen2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/changeEveryPaintPairParen2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryPaintPairParen2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/changeEveryPaintPairParen2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryPaintPairParen2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint3.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryShortPaint4.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/changeEveryShortPaintInsideParen.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryShortPaintInsideParen.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/changeEveryShortPaintInsideParen.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryShortPaintInsideParen.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/changeEveryShortPaintPairParen.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryShortPaintPairParen.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/changeEveryShortPaintPairParen.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeEveryShortPaintPairParen.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/changeShortPaintParen.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeShortPaintParen.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/changeShortPaintParen.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/changeShortPaintParen.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckDot.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckDot.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckDot.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckDot.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckDot2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckDot2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckDot2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckDot2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckDot3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckDot3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckDot3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckDot3.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckEveryShortPaint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckEveryShortPaint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckEveryShortPaint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckEveryShortPaint.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckFile.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckFile.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckFile.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckFile.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckFile2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckFile2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckFile2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckFile2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckLastTwoItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckLastTwoItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckLastTwoItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckLastTwoItem.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckLineVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckLineVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckLineVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckLineVest.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckLineVest2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckLineVest2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckLineVest2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckLineVest2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckLinkMade.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckLinkMade.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckLinkMade.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckLinkMade.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckLinkMadePastLinkAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckLinkMadePastLinkAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckLinkMadePastLinkAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckLinkMadePastLinkAir.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckLinkPit.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckLinkPit.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckLinkPit.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckLinkPit.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckPaintBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckPaintBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckPaintBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckPaintBatt.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckSmallPaintAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckSmallPaintAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckSmallPaintAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckSmallPaintAir.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckSmallPaintFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckSmallPaintFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckSmallPaintFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckSmallPaintFine.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckSmallPaintFine2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckSmallPaintFine2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckSmallPaintFine2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckSmallPaintFine2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckSmallPaintSoap2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckSmallPaintSoap2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckSmallPaintSoap2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckSmallPaintSoap2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckSmallPaintZero.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckSmallPaintZero.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckSmallPaintZero.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckSmallPaintZero.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckTokenVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckTokenVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckTokenVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckTokenVest.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckWord.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/chuckWord2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckWord2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/chuckWord2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/chuckWord2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearCar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearCar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCar.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearCar2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCar2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearCar2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCar2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearCar3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCar3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearCar3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCar3.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearCar4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCar4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearCar4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCar4.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearCar5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCar5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearCar5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCar5.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearContent.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearContent.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearContent.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearContent.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearCore.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCore.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearCore.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCore.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearCore2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCore2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearCore2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCore2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearCustomRegex.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCustomRegex.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearCustomRegex.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearCustomRegex.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearEmpty.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearEmpty.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearEmpty.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearEmpty.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearEveryCustomRegex.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearEveryCustomRegex.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearEveryCustomRegex.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearEveryCustomRegex.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearEveryShortPaint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearEveryShortPaint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearEveryShortPaint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearEveryShortPaint.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearEveryShortPaint2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearEveryShortPaint2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearEveryShortPaint2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearEveryShortPaint2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearFirstTwoItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearFirstTwoItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearFirstTwoItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearFirstTwoItem.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearHeadCore.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearHeadCore.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearHeadCore.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearHeadCore.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearHeadCoreCurly.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearHeadCoreCurly.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearHeadCoreCurly.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearHeadCoreCurly.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearHeadFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearHeadFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearHeadFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearHeadFunk.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearLastTwoItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearLastTwoItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearLastTwoItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearLastTwoItem.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearLeading.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearLeading.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearLeading.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearLeading.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearLinePair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearLinePair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearLinePair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearLinePair.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearNextFile.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearNextFile.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearNextFile.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearNextFile.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearNextFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearNextFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearNextFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearNextFunk.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearNextToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearNextToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearNextToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearNextToken.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearNextWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearNextWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearNextWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearNextWord.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearNextWord2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearNextWord2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearNextWord2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearNextWord2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearNextWord3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearNextWord3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearNextWord3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearNextWord3.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearPaint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPaint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearPaint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPaint.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearPaintBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPaintBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearPaintBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPaintBatt.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearPaintBattPastBlueBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPaintBattPastBlueBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearPaintBattPastBlueBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPaintBattPastBlueBatt.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearPreviousFunk.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPreviousFunk.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearPreviousFunk.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPreviousFunk.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearPreviousToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPreviousToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearPreviousToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPreviousToken.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearPreviousWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPreviousWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearPreviousWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPreviousWord.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearPreviousWord2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPreviousWord2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearPreviousWord2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPreviousWord2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearPreviousWord3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPreviousWord3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearPreviousWord3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearPreviousWord3.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearRowTwoPastFour.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearRowTwoPastFour.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearRowTwoPastFour.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearRowTwoPastFour.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearRowTwoUntilFour.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearRowTwoUntilFour.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearRowTwoUntilFour.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearRowTwoUntilFour.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearSecondBetweenThirdItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearSecondBetweenThirdItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearSecondBetweenThirdItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearSecondBetweenThirdItem.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearSecondItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearSecondItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearSecondItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearSecondItem.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearSecondLastWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearSecondLastWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearSecondLastWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearSecondLastWord.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearSecondNextWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearSecondNextWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearSecondNextWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearSecondNextWord.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearSecondPastThirdItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearSecondPastThirdItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearSecondPastThirdItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearSecondPastThirdItem.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearSecondUntilFourthItem.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearSecondUntilFourthItem.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearSecondUntilFourthItem.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearSecondUntilFourthItem.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearShortPaint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearShortPaint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearShortPaint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearShortPaint.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearShortPaint2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearShortPaint2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearShortPaint2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearShortPaint2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearShortPaint3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearShortPaint3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearShortPaint3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearShortPaint3.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearShortPaintLeper.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearShortPaintLeper.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearShortPaintLeper.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearShortPaintLeper.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearTrailing.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearTrailing.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearTrailing.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearTrailing.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearWord2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearWord2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearWord3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearWord3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord3.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearWord4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearWord4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord4.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearWord5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearWord5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord5.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearWord6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearWord6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord6.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/clearWord7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/clearWord7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/clearWord7.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/drinkCell.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/drinkCell.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/drinkCell.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/drinkCell.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/drinkCellEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/drinkCellEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/drinkCellEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/drinkCellEach.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/drinkEveryArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/drinkEveryArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/drinkEveryArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/drinkEveryArg.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/drinkJustFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/drinkJustFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/drinkJustFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/drinkJustFine.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/drinkToken.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/drinkToken.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/drinkToken.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/drinkToken.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/pourCell.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/pourCell.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/pourCell.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/pourCell.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/pourCellEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/pourCellEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/pourCellEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/pourCellEach.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/pourEveryArg.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/pourEveryArg.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/pourEveryArg.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/pourEveryArg.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeEveryCar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryCar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeEveryCar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryCar.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeEveryCarBlock.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryCarBlock.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeEveryCarBlock.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryCarBlock.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeEveryFile.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryFile.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeEveryFile.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryFile.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeEveryLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeEveryLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryLine.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeEveryLine2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryLine2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeEveryLine2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryLine2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeEveryLine3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryLine3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeEveryLine3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryLine3.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeEveryShortPaint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryShortPaint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeEveryShortPaint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryShortPaint.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeEveryShortPaint2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryShortPaint2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeEveryShortPaint2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryShortPaint2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeEveryShortPaint3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryShortPaint3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeEveryShortPaint3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryShortPaint3.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeEveryWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeEveryWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeEveryWord.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeFile.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeFile.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeFile.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeFile.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeLineVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeLineVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeLineVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeLineVest.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeShortPaint.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeShortPaint.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeShortPaint.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeShortPaint.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeSmallPaintAir.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeSmallPaintAir.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeSmallPaintAir.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeSmallPaintAir.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeSmallPaintFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeSmallPaintFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeSmallPaintFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeSmallPaintFine.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeSmallPaintFine2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeSmallPaintFine2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeSmallPaintFine2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeSmallPaintFine2.yml diff --git a/src/test/suite/fixtures/recorded/selectionTypes/takeTokenVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeTokenVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/selectionTypes/takeTokenVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/selectionTypes/takeTokenVest.yml diff --git a/src/test/suite/fixtures/recorded/spokenGrammar/bringLineBeforeWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/spokenGrammar/bringLineBeforeWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/spokenGrammar/bringLineBeforeWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/spokenGrammar/bringLineBeforeWhale.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/chuckFirstCharVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckFirstCharVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/chuckFirstCharVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckFirstCharVest.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/chuckFirstWordVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckFirstWordVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/chuckFirstWordVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckFirstWordVest.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/chuckLastCharVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckLastCharVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/chuckLastCharVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckLastCharVest.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/chuckLastWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckLastWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/chuckLastWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckLastWord.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/chuckLastWordVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckLastWordVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/chuckLastWordVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckLastWordVest.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/chuckSecondWordVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckSecondWordVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/chuckSecondWordVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckSecondWordVest.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/chuckSixthCharVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckSixthCharVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/chuckSixthCharVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/chuckSixthCharVest.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/clearFirstCharVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearFirstCharVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/clearFirstCharVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearFirstCharVest.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/clearFirstWordVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearFirstWordVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/clearFirstWordVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearFirstWordVest.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/clearLastCharVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearLastCharVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/clearLastCharVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearLastCharVest.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/clearLastWordVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearLastWordVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/clearLastWordVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearLastWordVest.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/clearNextWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearNextWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/clearNextWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearNextWord.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/clearSecondWordVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearSecondWordVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/clearSecondWordVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearSecondWordVest.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/clearSixthCharVest.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearSixthCharVest.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/clearSixthCharVest.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearSixthCharVest.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/clearSixthNextWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearSixthNextWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/clearSixthNextWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/clearSixthNextWord.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/ditchFourthWordLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/ditchFourthWordLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/ditchFourthWordLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/ditchFourthWordLine.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/ditchLastCar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/ditchLastCar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/ditchLastCar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/ditchLastCar.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/ditchLastCar2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/ditchLastCar2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/ditchLastCar2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/ditchLastCar2.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/ditchLastWordLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/ditchLastWordLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/ditchLastWordLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/ditchLastWordLine.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/ditchSecondCar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/ditchSecondCar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/ditchSecondCar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/ditchSecondCar.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/ditchThirdWordLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/ditchThirdWordLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/ditchThirdWordLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/ditchThirdWordLine.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeEveryWordLine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeEveryWordLine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeEveryWordLine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeEveryWordLine.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeEveryWordLine2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeEveryWordLine2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeEveryWordLine2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeEveryWordLine2.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeFirstChar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstChar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeFirstChar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstChar.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeFirstChar2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstChar2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeFirstChar2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstChar2.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeFirstChar3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstChar3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeFirstChar3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstChar3.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeFirstChar4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstChar4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeFirstChar4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstChar4.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeFirstChar5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstChar5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeFirstChar5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstChar5.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeFirstPastLastCharHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstPastLastCharHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeFirstPastLastCharHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstPastLastCharHarp.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeFirstPastLastWordHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstPastLastWordHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeFirstPastLastWordHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstPastLastWordHarp.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeFirstPastSecondWordHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstPastSecondWordHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeFirstPastSecondWordHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstPastSecondWordHarp.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeFirstThreeCharHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstThreeCharHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeFirstThreeCharHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstThreeCharHarp.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeFirstTwoWordHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstTwoWordHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeFirstTwoWordHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstTwoWordHarp.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeFirstWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeFirstWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeFirstWord.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeLastPastFirstCharHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeLastPastFirstCharHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeLastPastFirstCharHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeLastPastFirstCharHarp.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeLastPastFirstWordHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeLastPastFirstWordHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeLastPastFirstWordHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeLastPastFirstWordHarp.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeLastThreeCharHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeLastThreeCharHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeLastThreeCharHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeLastThreeCharHarp.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeLastTwoWordHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeLastTwoWordHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeLastTwoWordHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeLastTwoWordHarp.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeSecondCharLookPastSecondCharTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeSecondCharLookPastSecondCharTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeSecondCharLookPastSecondCharTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeSecondCharLookPastSecondCharTrap.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeSecondWord.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeSecondWord.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeSecondWord.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeSecondWord.yml diff --git a/src/test/suite/fixtures/recorded/subtoken/takeThirdPastSecondWordHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeThirdPastSecondWordHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/subtoken/takeThirdPastSecondWordHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/subtoken/takeThirdPastSecondWordHarp.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/chuckCore.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/chuckCore.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/chuckCore.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/chuckCore.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/chuckCore2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/chuckCore2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/chuckCore2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/chuckCore2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/clearCoreRiskPastHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/clearCoreRiskPastHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/clearCoreRiskPastHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/clearCoreRiskPastHarp.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/ditchCoreEachPastWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/ditchCoreEachPastWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/ditchCoreEachPastWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/ditchCoreEachPastWhale.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearBoundsBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearBoundsBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearBoundsBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearBoundsBatt.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearBoundsEach.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearBoundsEach.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearBoundsEach.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearBoundsEach.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearBoundsHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearBoundsHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearBoundsHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearBoundsHarp.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearBoundsOx.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearBoundsOx.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearBoundsOx.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearBoundsOx.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearBoundsRam.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearBoundsRam.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearBoundsRam.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearBoundsRam.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearCurly.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearCurly.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearCurly.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearCurly.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair10.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair11.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair12.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair13.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair13.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair13.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair13.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair14.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair14.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair14.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair14.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair15.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair15.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair15.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair15.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair16.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair16.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair16.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair16.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair17.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair17.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair17.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair17.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair7.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair8.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPair9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPair9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPair9.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPairBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPairBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPairBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPairBatt.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPairOx.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPairOx.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPairOx.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPairOx.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearPairRam.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPairRam.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearPairRam.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearPairRam.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/html/clearRound2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearRound2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/html/clearRound2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/html/clearRound2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearBound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearBound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearBound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearBound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearCore.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearCore.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearCore.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearCore.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearCore2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearCore2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearCore2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearCore2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/clojure/clearPair4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/cpp/clearOutside.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/cpp/clearOutside.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/cpp/clearOutside.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/cpp/clearOutside.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/cpp/clearRound8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/cpp/clearRound8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/cpp/clearRound8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/cpp/clearRound8.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/java/clearQuad3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/java/clearQuad3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/java/clearQuad3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/java/clearQuad3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/java/clearRound10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/java/clearRound10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/java/clearRound10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/java/clearRound10.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/java/clearRound11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/java/clearRound11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/java/clearRound11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/java/clearRound11.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/json/clearPair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/json/clearPair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/json/clearPair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/json/clearPair.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/json/clearPair2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/json/clearPair2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/json/clearPair2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/json/clearPair2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/json/clearRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/json/clearRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/json/clearRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/json/clearRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/json/clearRound2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/json/clearRound2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/json/clearRound2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/json/clearRound2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckMatching.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckMatching.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckMatching.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckMatching.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckMatching2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckMatching2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckMatching2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckMatching2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckMatching3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckMatching3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckMatching3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckMatching3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckPair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckPair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckPair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckPair.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/chuckRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearCurly.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearCurly.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearCurly.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearCurly.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearCurly3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearCurly3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearCurly3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearCurly3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearInside.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearInside.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearInside.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearInside.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching10.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching11.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching7.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearMatching8.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearOutside7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearOutside7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearOutside7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearOutside7.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearOutside8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearOutside8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearOutside8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearOutside8.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPair4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPairCurly.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPairCurly.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPairCurly.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearPairCurly.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearQuad2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearQuad2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearQuad2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearQuad2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearQuad4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearQuad4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearQuad4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearQuad4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearRound7.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearSquare.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearSquare.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearSquare.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearSquare.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearSquare2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearSquare2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/python/clearSquare2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/python/clearSquare2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearCurly4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearCurly4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearCurly4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearCurly4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearOutside23.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearOutside23.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearOutside23.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearOutside23.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearPair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearPair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearPair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearPair.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearString5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearString5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearString5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/shellscript/clearString5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair10.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair11.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair12.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair13.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair13.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair13.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair13.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair14.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair14.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair14.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair14.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair15.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair15.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair15.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair15.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair16.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair16.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair16.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair16.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair17.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair17.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair17.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair17.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair18.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair18.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair18.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair18.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair19.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair19.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair19.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair19.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair20.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair20.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair20.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair20.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair21.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair21.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair21.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair21.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair23.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair23.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair23.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair23.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair7.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair8.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/tsx/clearPair9.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearMatching14.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearMatching14.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearMatching14.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearMatching14.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearMatching15.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearMatching15.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearMatching15.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearMatching15.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside10.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside11.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside12.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside13.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside13.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside13.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside13.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside14.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside14.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside14.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside14.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside15.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside15.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside15.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside15.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside16.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside16.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside16.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside16.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside17.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside17.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside17.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside17.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside18.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside18.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside18.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside18.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside19.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside19.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside19.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside19.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside20.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside20.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside20.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside20.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside21.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside21.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside21.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside21.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside22.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside22.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside22.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside22.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearOutside9.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair10.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair7.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair8.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearPair9.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearQuad.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearQuad.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearQuad.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearQuad.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearRound2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearRound2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearRound2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearRound2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearRound3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearRound3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearRound3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearRound3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearRound4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearRound4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearRound4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearRound4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSkis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSkis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSkis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSkis.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquare3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquare3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquare3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquare3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquare4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquare4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquare4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquare4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquare5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquare5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquare5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquare5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquareLack.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquareLack.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquareLack.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquareLack.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquareRack.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquareRack.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquareRack.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearSquareRack.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearString.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearString.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearString.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearString.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearString2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearString2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearString2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearString2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearString3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearString3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearString3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/clearString3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/takeCore.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/takeCore.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/takeCore.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/takeCore.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/takePairBatt.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/takePairBatt.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTree/typescript/takePairBatt.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTree/typescript/takePairBatt.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/README.md b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/README.md similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/README.md rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/README.md diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/chuckInsideRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/chuckInsideRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/chuckInsideRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/chuckInsideRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/chuckPairRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/chuckPairRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/chuckPairRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/chuckPairRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/chuckRound2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/chuckRound2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/chuckRound2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/chuckRound2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearBoundsDouble.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearBoundsDouble.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearBoundsDouble.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearBoundsDouble.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearBoundsRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearBoundsRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearBoundsRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearBoundsRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearBoundsRound2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearBoundsRound2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearBoundsRound2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearBoundsRound2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearCurly2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearCurly2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearCurly2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearCurly2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearOutsideGreenDouble.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearOutsideGreenDouble.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearOutsideGreenDouble.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearOutsideGreenDouble.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearRound9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearRound9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearRound9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/clearRound9.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeInsideRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeInsideRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeInsideRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeInsideRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeInsideRound2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeInsideRound2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeInsideRound2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeInsideRound2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside11.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside12.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside13.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside13.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside13.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside13.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside14.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside14.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside14.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside14.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside15.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside15.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside15.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside15.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside16.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside16.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside16.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside16.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside17.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside17.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside17.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside17.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside18.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside18.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside18.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside18.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside19.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside19.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside19.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside19.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside20.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside20.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside20.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside20.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside21.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside21.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside21.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside21.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside22.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside22.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside22.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside22.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside23.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside23.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside23.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside23.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside24.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside24.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside24.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside24.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside25.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside25.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside25.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside25.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside26.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside26.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside26.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside26.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside7.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside8.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutside9.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutsideLeper.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutsideLeper.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutsideLeper.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutsideLeper.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutsideRack.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutsideRack.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutsideRack.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeOutsideRack.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeQuad6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound10.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound11.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound12.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound13.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound13.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound13.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound13.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound14.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound14.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound14.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound14.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound15.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound15.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound15.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound15.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound16.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound16.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound16.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound16.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound17.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound17.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound17.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound17.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound18.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound18.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound18.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound18.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound19.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound19.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound19.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound19.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound20.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound20.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound20.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound20.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound21.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound21.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound21.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound21.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound22.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound22.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound22.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound22.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound23.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound23.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound23.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound23.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound7.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound8.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRound9.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRoundLeper.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRoundLeper.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRoundLeper.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRoundLeper.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRoundRepper.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRoundRepper.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRoundRepper.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeRoundRepper.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeSquare.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeSquare.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeSquare.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/parseTreeParity/takeSquare.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/takeCore.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/takeCore.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/takeCore.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/takeCore.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/takeCore2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/takeCore2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/takeCore2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/takeCore2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/takeCoreRiskPastJustHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/takeCoreRiskPastJustHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/takeCoreRiskPastJustHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/takeCoreRiskPastJustHarp.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/chuckInsideRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/chuckInsideRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/chuckInsideRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/chuckInsideRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/chuckPairHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/chuckPairHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/chuckPairHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/chuckPairHarp.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/chuckPairRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/chuckPairRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/chuckPairRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/chuckPairRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/chuckRound2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/chuckRound2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/chuckRound2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/chuckRound2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsBatt2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsBatt2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsBatt2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsBatt2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsDouble.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsDouble.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsDouble.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsDouble.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsEach2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsEach2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsEach2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsEach2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsOx2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsOx2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsOx2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsOx2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsRam2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsRam2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsRam2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsRam2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsRound2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsRound2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearBoundsRound2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearBoundsRound2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearCurly2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearCurly2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearCurly2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearCurly2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearEscapedSquare.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearEscapedSquare.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearEscapedSquare.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearEscapedSquare.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearOutsideGreenDouble.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearOutsideGreenDouble.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearOutsideGreenDouble.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearOutsideGreenDouble.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair10.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair11.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair12.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair13.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair13.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair13.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair13.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair14.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair14.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair14.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair14.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair15.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair15.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair15.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair15.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair16.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair16.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair16.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair16.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair7.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair8.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearPair9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearPair9.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearRound9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearRound9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearRound9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearRound9.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearSquare.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearSquare.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearSquare.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearSquare.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/clearString4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearString4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/clearString4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/clearString4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/tailTakeEscapedQuad.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/tailTakeEscapedQuad.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/tailTakeEscapedQuad.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/tailTakeEscapedQuad.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeEscapedQuad5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeInsideRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeInsideRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeInsideRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeInsideRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeInsideRound2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeInsideRound2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeInsideRound2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeInsideRound2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeLeftQuad7.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside10.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside11.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside12.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside13.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside13.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside13.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside13.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside14.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside14.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside14.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside14.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside15.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside15.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside15.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside15.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside16.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside16.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside16.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside16.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside17.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside17.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside17.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside17.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside18.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside18.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside18.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside18.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside19.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside19.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside19.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside19.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside20.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside20.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside20.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside20.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside21.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside21.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside21.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside21.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside22.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside22.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside22.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside22.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside23.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside23.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside23.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside23.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside24.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside24.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside24.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside24.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside25.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside25.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside25.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside25.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside26.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside26.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside26.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside26.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside27.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside27.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside27.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside27.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside7.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside8.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutside9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutside9.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutsideFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutsideFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutsideFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutsideFine.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutsideLeper.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutsideLeper.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutsideLeper.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutsideLeper.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutsideRack.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutsideRack.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutsideRack.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutsideRack.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutsideUrge.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutsideUrge.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeOutsideUrge.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeOutsideUrge.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeQuad.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeQuad.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeQuad.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeQuad.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeQuad2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeQuad2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeQuad2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeQuad2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeQuad3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeQuad3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeQuad3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeQuad3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeQuad4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeQuad4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeQuad4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeQuad4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeQuad5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeQuad5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeQuad5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeQuad5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeQuad6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeQuad6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeQuad6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeQuad6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRightQuad7.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound10.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound10.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound10.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound10.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound11.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound11.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound11.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound11.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound12.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound12.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound12.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound12.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound13.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound13.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound13.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound13.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound14.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound14.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound14.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound14.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound15.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound15.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound15.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound15.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound16.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound16.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound16.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound16.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound17.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound17.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound17.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound17.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound18.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound18.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound18.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound18.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound19.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound19.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound19.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound19.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound2.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound20.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound20.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound20.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound20.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound21.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound21.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound21.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound21.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound22.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound22.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound22.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound22.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound23.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound23.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound23.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound23.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound3.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound4.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound5.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound6.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound6.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound6.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound6.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound7.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound7.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound7.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound7.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound8.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound8.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound8.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound8.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound9.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound9.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRound9.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRound9.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRoundLeper.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRoundLeper.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRoundLeper.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRoundLeper.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeRoundRepper.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRoundRepper.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeRoundRepper.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeRoundRepper.yml diff --git a/src/test/suite/fixtures/recorded/surroundingPair/textual/takeSquare.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeSquare.yml similarity index 100% rename from src/test/suite/fixtures/recorded/surroundingPair/textual/takeSquare.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/surroundingPair/textual/takeSquare.yml diff --git a/src/test/suite/fixtures/recorded/targets/scopeType/bringSectionMadeAfterThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/targets/scopeType/bringSectionMadeAfterThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/targets/scopeType/bringSectionMadeAfterThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/targets/scopeType/bringSectionMadeAfterThis.yml diff --git a/src/test/suite/fixtures/recorded/targets/scopeType/pourComment.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/targets/scopeType/pourComment.yml similarity index 100% rename from src/test/suite/fixtures/recorded/targets/scopeType/pourComment.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/targets/scopeType/pourComment.yml diff --git a/src/test/suite/fixtures/recorded/targets/scopeType/pourElm.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/targets/scopeType/pourElm.yml similarity index 100% rename from src/test/suite/fixtures/recorded/targets/scopeType/pourElm.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/targets/scopeType/pourElm.yml diff --git a/src/test/suite/fixtures/recorded/targets/scopeType/pourEntry.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/targets/scopeType/pourEntry.yml similarity index 100% rename from src/test/suite/fixtures/recorded/targets/scopeType/pourEntry.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/targets/scopeType/pourEntry.yml diff --git a/src/test/suite/fixtures/recorded/targets/scopeType/pourIfState.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/targets/scopeType/pourIfState.yml similarity index 100% rename from src/test/suite/fixtures/recorded/targets/scopeType/pourIfState.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/targets/scopeType/pourIfState.yml diff --git a/src/test/suite/fixtures/recorded/targets/scopeType/pourSection.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/targets/scopeType/pourSection.yml similarity index 100% rename from src/test/suite/fixtures/recorded/targets/scopeType/pourSection.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/targets/scopeType/pourSection.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFine.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineAfterThirdCarThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineAfterThirdCarThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineAfterThirdCarThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineAfterThirdCarThis.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineAfterThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineAfterThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineAfterThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineAfterThis.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineAfterThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineAfterThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineAfterThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineAfterThis2.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineBeforeThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineBeforeThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineBeforeThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineBeforeThis.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineToFirstCarWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToFirstCarWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineToFirstCarWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToFirstCarWhale.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineToFirstTwoCar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToFirstTwoCar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineToFirstTwoCar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToFirstTwoCar.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineToLastCarWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToLastCarWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineToLastCarWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToLastCarWhale.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineToLastTwoCar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToLastTwoCar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineToLastTwoCar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToLastTwoCar.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineToThirdCarWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToThirdCarWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineToThirdCarWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToThirdCarWhale.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineToWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineToWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToWhale.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineToWhale2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToWhale2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineToWhale2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToWhale2.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineToWhale3.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToWhale3.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineToWhale3.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToWhale3.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineToWhale4.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToWhale4.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineToWhale4.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToWhale4.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringFineToWhale5.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToWhale5.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringFineToWhale5.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringFineToWhale5.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringHarpToEndOfWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringHarpToEndOfWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringHarpToEndOfWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringHarpToEndOfWhale.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringHarpToFourthCarWhalePastSecondCarHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringHarpToFourthCarWhalePastSecondCarHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringHarpToFourthCarWhalePastSecondCarHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringHarpToFourthCarWhalePastSecondCarHarp.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringHarpToSecondCarFinePastThirdCarHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringHarpToSecondCarFinePastThirdCarHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringHarpToSecondCarFinePastThirdCarHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringHarpToSecondCarFinePastThirdCarHarp.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringHarpToSecondCarFinePastThirdCarWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringHarpToSecondCarFinePastThirdCarWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringHarpToSecondCarFinePastThirdCarWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringHarpToSecondCarFinePastThirdCarWhale.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringHarpToStartOfWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringHarpToStartOfWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringHarpToStartOfWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringHarpToStartOfWhale.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhale.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringWhaleAfterFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhaleAfterFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringWhaleAfterFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhaleAfterFine.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringWhaleAfterThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhaleAfterThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringWhaleAfterThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhaleAfterThis.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringWhaleAfterThis2.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhaleAfterThis2.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringWhaleAfterThis2.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhaleAfterThis2.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringWhaleBeforeThis.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhaleBeforeThis.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringWhaleBeforeThis.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhaleBeforeThis.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringWhaleToEndOfFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhaleToEndOfFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringWhaleToEndOfFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhaleToEndOfFine.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/bringWhaleToFine.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhaleToFine.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/bringWhaleToFine.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/bringWhaleToFine.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/chuckFirstCarWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckFirstCarWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/chuckFirstCarWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckFirstCarWhale.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/chuckFirstPastSecondCar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckFirstPastSecondCar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/chuckFirstPastSecondCar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckFirstPastSecondCar.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/chuckFourthPastFifthCar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckFourthPastFifthCar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/chuckFourthPastFifthCar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckFourthPastFifthCar.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/chuckLastCarWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckLastCarWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/chuckLastCarWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckLastCarWhale.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/chuckSecondCarFinePastThirdCarWhale.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckSecondCarFinePastThirdCarWhale.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/chuckSecondCarFinePastThirdCarWhale.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckSecondCarFinePastThirdCarWhale.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/chuckSecondPastThirdCar.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckSecondPastThirdCar.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/chuckSecondPastThirdCar.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckSecondPastThirdCar.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/chuckThirdCarWhalePastSecondCarHarp.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckThirdCarWhalePastSecondCarHarp.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/chuckThirdCarWhalePastSecondCarHarp.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/chuckThirdCarWhalePastSecondCarHarp.yml diff --git a/src/test/suite/fixtures/recorded/updateSelections/commentTrap.yml b/packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/commentTrap.yml similarity index 100% rename from src/test/suite/fixtures/recorded/updateSelections/commentTrap.yml rename to packages/cursorless-vscode-e2e/suite/fixtures/recorded/updateSelections/commentTrap.yml diff --git a/src/test/suite/fixtures/subtoken.fixture.ts b/packages/cursorless-vscode-e2e/suite/fixtures/subtoken.fixture.ts similarity index 100% rename from src/test/suite/fixtures/subtoken.fixture.ts rename to packages/cursorless-vscode-e2e/suite/fixtures/subtoken.fixture.ts diff --git a/src/apps/cursorless-vscode-e2e/suite/fold.test.ts b/packages/cursorless-vscode-e2e/suite/fold.test.ts similarity index 95% rename from src/apps/cursorless-vscode-e2e/suite/fold.test.ts rename to packages/cursorless-vscode-e2e/suite/fold.test.ts index e7d479ef39..35a37cb992 100644 --- a/src/apps/cursorless-vscode-e2e/suite/fold.test.ts +++ b/packages/cursorless-vscode-e2e/suite/fold.test.ts @@ -2,7 +2,7 @@ import * as assert from "assert"; import * as vscode from "vscode"; import { openNewEditor } from "@cursorless/vscode-common"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "../runCommand"; +import { runCursorlessCommand } from "@cursorless/vscode-common"; suite("fold", async function () { endToEndTestSetup(this); diff --git a/src/apps/cursorless-vscode-e2e/suite/followLink.test.ts b/packages/cursorless-vscode-e2e/suite/followLink.test.ts similarity index 93% rename from src/apps/cursorless-vscode-e2e/suite/followLink.test.ts rename to packages/cursorless-vscode-e2e/suite/followLink.test.ts index 03c2c00a8a..a66add112b 100644 --- a/src/apps/cursorless-vscode-e2e/suite/followLink.test.ts +++ b/packages/cursorless-vscode-e2e/suite/followLink.test.ts @@ -3,8 +3,8 @@ import * as assert from "assert"; import * as os from "os"; import * as vscode from "vscode"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { getFixturePath } from "../getFixturePaths"; -import { runCursorlessCommand } from "../runCommand"; +import { runCursorlessCommand } from "@cursorless/vscode-common"; +import { getFixturePath } from "@cursorless/common"; suite("followLink", async function () { endToEndTestSetup(this); diff --git a/src/apps/cursorless-vscode-e2e/suite/groupByDocument.test.ts b/packages/cursorless-vscode-e2e/suite/groupByDocument.test.ts similarity index 96% rename from src/apps/cursorless-vscode-e2e/suite/groupByDocument.test.ts rename to packages/cursorless-vscode-e2e/suite/groupByDocument.test.ts index d463fbcc20..a348da37b1 100644 --- a/src/apps/cursorless-vscode-e2e/suite/groupByDocument.test.ts +++ b/packages/cursorless-vscode-e2e/suite/groupByDocument.test.ts @@ -3,7 +3,7 @@ import { getCursorlessApi, toVscodeEditor } from "@cursorless/vscode-common"; import * as assert from "assert"; import * as vscode from "vscode"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "../runCommand"; +import { runCursorlessCommand } from "@cursorless/vscode-common"; suite("Group by document", async function () { endToEndTestSetup(this); diff --git a/src/apps/cursorless-vscode-e2e/suite/intraCellSetSelection.test.ts b/packages/cursorless-vscode-e2e/suite/intraCellSetSelection.test.ts similarity index 95% rename from src/apps/cursorless-vscode-e2e/suite/intraCellSetSelection.test.ts rename to packages/cursorless-vscode-e2e/suite/intraCellSetSelection.test.ts index dd098b5241..53cffca1e9 100644 --- a/src/apps/cursorless-vscode-e2e/suite/intraCellSetSelection.test.ts +++ b/packages/cursorless-vscode-e2e/suite/intraCellSetSelection.test.ts @@ -5,7 +5,7 @@ import { import * as assert from "assert"; import { window } from "vscode"; import { endToEndTestSetup, sleepWithBackoff } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "../runCommand"; +import { runCursorlessCommand } from "@cursorless/vscode-common"; import { skipIfWindowsCi } from "./skipIfWindowsCi"; // Check that setSelection is able to focus the correct cell diff --git a/src/apps/cursorless-vscode-e2e/suite/keyboard/.eslintrc.json b/packages/cursorless-vscode-e2e/suite/keyboard/.eslintrc.json similarity index 100% rename from src/apps/cursorless-vscode-e2e/suite/keyboard/.eslintrc.json rename to packages/cursorless-vscode-e2e/suite/keyboard/.eslintrc.json diff --git a/src/apps/cursorless-vscode-e2e/suite/keyboard/basic.test.ts b/packages/cursorless-vscode-e2e/suite/keyboard/basic.test.ts similarity index 100% rename from src/apps/cursorless-vscode-e2e/suite/keyboard/basic.test.ts rename to packages/cursorless-vscode-e2e/suite/keyboard/basic.test.ts diff --git a/src/apps/cursorless-vscode-e2e/suite/pourAcrossSplit.test.ts b/packages/cursorless-vscode-e2e/suite/pourAcrossSplit.test.ts similarity index 93% rename from src/apps/cursorless-vscode-e2e/suite/pourAcrossSplit.test.ts rename to packages/cursorless-vscode-e2e/suite/pourAcrossSplit.test.ts index acc0803fe6..c7343bddad 100644 --- a/src/apps/cursorless-vscode-e2e/suite/pourAcrossSplit.test.ts +++ b/packages/cursorless-vscode-e2e/suite/pourAcrossSplit.test.ts @@ -1,7 +1,7 @@ import { getCursorlessApi, openNewEditor } from "@cursorless/vscode-common"; import * as assert from "assert"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "../runCommand"; +import { runCursorlessCommand } from "@cursorless/vscode-common"; suite("Pour across split", async function () { endToEndTestSetup(this); diff --git a/src/apps/cursorless-vscode-e2e/suite/prePhraseSnapshot.test.ts b/packages/cursorless-vscode-e2e/suite/prePhraseSnapshot.test.ts similarity index 97% rename from src/apps/cursorless-vscode-e2e/suite/prePhraseSnapshot.test.ts rename to packages/cursorless-vscode-e2e/suite/prePhraseSnapshot.test.ts index a84ddc84ee..c02237bc8e 100644 --- a/src/apps/cursorless-vscode-e2e/suite/prePhraseSnapshot.test.ts +++ b/packages/cursorless-vscode-e2e/suite/prePhraseSnapshot.test.ts @@ -8,7 +8,7 @@ import * as assert from "assert"; import * as vscode from "vscode"; import { endToEndTestSetup } from "../endToEndTestSetup"; import { mockPrePhraseGetVersion } from "../mockPrePhraseGetVersion"; -import { runCursorlessCommand } from "../runCommand"; +import { runCursorlessCommand } from "@cursorless/vscode-common"; import { setupFake } from "./setupFake"; /** diff --git a/src/apps/cursorless-vscode-e2e/suite/recorded.test.ts b/packages/cursorless-vscode-e2e/suite/recorded.test.ts similarity index 94% rename from src/apps/cursorless-vscode-e2e/suite/recorded.test.ts rename to packages/cursorless-vscode-e2e/suite/recorded.test.ts index d61601d67f..e196a1289b 100644 --- a/src/apps/cursorless-vscode-e2e/suite/recorded.test.ts +++ b/packages/cursorless-vscode-e2e/suite/recorded.test.ts @@ -1,5 +1,7 @@ import { + DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST, extractTargetedMarks, + getRecordedTestPaths, HatStability, marksToPlainObject, omitByDeep, @@ -15,26 +17,23 @@ import { TextEditor, } from "@cursorless/common"; import { - DEFAULT_TEXT_EDITOR_OPTIONS_FOR_TEST, - ExcludableSnapshotField, getCursorlessApi, openNewEditor, - takeSnapshot, + runCursorlessCommand, } from "@cursorless/vscode-common"; import { assert } from "chai"; import { promises as fsp } from "fs"; import * as yaml from "js-yaml"; import { isUndefined } from "lodash"; import * as vscode from "vscode"; -import type { ReadOnlyHatMap } from "../../../core/IndividualHatMap"; -import type { TestCaseFixture } from "../../../testUtil/TestCaseFixture"; -import type { TokenHat } from "../../../util/allocateHats/allocateHats"; +import type { TestCaseFixture } from "@cursorless/cursorless-engine"; +import type { ExcludableSnapshotField } from "@cursorless/cursorless-engine"; import asyncSafety from "../asyncSafety"; import { endToEndTestSetup, sleepWithBackoff } from "../endToEndTestSetup"; -import { getRecordedTestPaths } from "../getFixturePaths"; -import { runCursorlessCommand } from "../runCommand"; import shouldUpdateFixtures from "../shouldUpdateFixtures"; import { setupFake } from "./setupFake"; +import type { ReadOnlyHatMap } from "../../cursorless-engine/core/IndividualHatMap"; +import type { TokenHat } from "../../cursorless-engine/util/allocateHats/allocateHats"; function createPosition(position: PositionPlainObject) { return new vscode.Position(position.line, position.character); @@ -74,7 +73,8 @@ async function runTest(file: string, spyIde: SpyIDE) { const usePrePhraseSnapshot = false; const cursorlessApi = await getCursorlessApi(); - const { graph, plainObjectToTarget } = cursorlessApi.testHelpers!; + const { graph, plainObjectToTarget, takeSnapshot } = + cursorlessApi.testHelpers!; const editor = await openNewEditor(fixture.initialState.documentContents, { languageId: fixture.languageId, diff --git a/src/apps/cursorless-vscode-e2e/suite/scroll.test.ts b/packages/cursorless-vscode-e2e/suite/scroll.test.ts similarity index 95% rename from src/apps/cursorless-vscode-e2e/suite/scroll.test.ts rename to packages/cursorless-vscode-e2e/suite/scroll.test.ts index b1d09bb92f..0ae2b8d350 100644 --- a/src/apps/cursorless-vscode-e2e/suite/scroll.test.ts +++ b/packages/cursorless-vscode-e2e/suite/scroll.test.ts @@ -2,7 +2,7 @@ import { openNewEditor } from "@cursorless/vscode-common"; import * as assert from "assert"; import * as vscode from "vscode"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "../runCommand"; +import { runCursorlessCommand } from "@cursorless/vscode-common"; suite("scroll", async function () { endToEndTestSetup(this); diff --git a/packages/cursorless-vscode-e2e/suite/setupFake.ts b/packages/cursorless-vscode-e2e/suite/setupFake.ts new file mode 100644 index 0000000000..9f02b0e5fe --- /dev/null +++ b/packages/cursorless-vscode-e2e/suite/setupFake.ts @@ -0,0 +1,12 @@ +import { + getFixturePath, + HatStability, + NormalizedIDE, +} from "@cursorless/common"; + +export function setupFake(ide: NormalizedIDE, hatStability: HatStability) { + ide.configuration.mockConfiguration("experimental", { + snippetsDir: getFixturePath("cursorless-snippets"), + hatStability, + }); +} diff --git a/src/apps/cursorless-vscode-e2e/suite/skipIfWindowsCi.ts b/packages/cursorless-vscode-e2e/suite/skipIfWindowsCi.ts similarity index 100% rename from src/apps/cursorless-vscode-e2e/suite/skipIfWindowsCi.ts rename to packages/cursorless-vscode-e2e/suite/skipIfWindowsCi.ts diff --git a/src/apps/cursorless-vscode-e2e/suite/toggleDecorations.test.ts b/packages/cursorless-vscode-e2e/suite/toggleDecorations.test.ts similarity index 100% rename from src/apps/cursorless-vscode-e2e/suite/toggleDecorations.test.ts rename to packages/cursorless-vscode-e2e/suite/toggleDecorations.test.ts diff --git a/src/apps/cursorless-vscode-e2e/suite/wrapWithSnippetAcrossSplit.test.ts b/packages/cursorless-vscode-e2e/suite/wrapWithSnippetAcrossSplit.test.ts similarity index 95% rename from src/apps/cursorless-vscode-e2e/suite/wrapWithSnippetAcrossSplit.test.ts rename to packages/cursorless-vscode-e2e/suite/wrapWithSnippetAcrossSplit.test.ts index 88f4829f18..86a8d00a6f 100644 --- a/src/apps/cursorless-vscode-e2e/suite/wrapWithSnippetAcrossSplit.test.ts +++ b/packages/cursorless-vscode-e2e/suite/wrapWithSnippetAcrossSplit.test.ts @@ -2,7 +2,7 @@ import { HatStability } from "@cursorless/common"; import { getCursorlessApi, openNewEditor } from "@cursorless/vscode-common"; import * as assert from "assert"; import { endToEndTestSetup } from "../endToEndTestSetup"; -import { runCursorlessCommand } from "../runCommand"; +import { runCursorlessCommand } from "@cursorless/vscode-common"; import { setupFake } from "./setupFake"; suite("Wrap with snippet across split", async function () { diff --git a/packages/cursorless-vscode/.eslintrc.json b/packages/cursorless-vscode/.eslintrc.json new file mode 100644 index 0000000000..41d683909c --- /dev/null +++ b/packages/cursorless-vscode/.eslintrc.json @@ -0,0 +1,16 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../*"], + "message": "VSCode common shouldn't import from Cursorless extension", + "allowTypeImports": true + } + ] + } + ] + } +} diff --git a/src/extension.ts b/packages/cursorless-vscode/extension.ts similarity index 62% rename from src/extension.ts rename to packages/cursorless-vscode/extension.ts index 3564d6f4dc..793a5eea09 100644 --- a/src/extension.ts +++ b/packages/cursorless-vscode/extension.ts @@ -1,28 +1,43 @@ -import { CURSORLESS_COMMAND_ID, Range, TextDocument } from "@cursorless/common"; -import { toVscodeRange } from "@cursorless/vscode-common"; -import * as vscode from "vscode"; -import { showCheatsheet, updateDefaults } from "./core/Cheatsheet"; -import CommandRunner from "./core/commandRunner/CommandRunner"; -import { Command } from "./core/commandRunner/typings/command.types"; -import { ThatMark } from "./core/ThatMark"; -import VscodeIDE from "./ide/vscode/VscodeIDE"; -import FakeIDE from "./libs/common/ide/fake/FakeIDE"; -import NormalizedIDE from "./libs/common/ide/normalized/NormalizedIDE"; -import ide, { +import { + CURSORLESS_COMMAND_ID, + FakeIDE, + isTesting, + NormalizedIDE, + Range, + TargetPlainObject, + TextDocument, + Command, +} from "@cursorless/common"; +import { + CommandRunner, + FactoryMap, + Graph, + graphFactories, + ide, injectIde, -} from "./libs/cursorless-engine/singletons/ide.singleton"; + makeGraph, + plainObjectToTarget, + showCheatsheet, + takeSnapshot, + TestCaseRecorder, + ThatMark, + updateDefaults, +} from "@cursorless/cursorless-engine"; +import { + commandIds, + showDocumentation, + showQuickPick, + StatusBarItem, + VscodeIDE, + KeyboardCommands, +} from "@cursorless/cursorless-vscode-core"; import { CursorlessApi, getCommandServerApi, getParseTreeApi, -} from "./libs/vscode-common/getExtensionApi"; -import { TargetPlainObject } from "./libs/common/testUtil/toPlainObject"; -import { plainObjectToTarget } from "./testUtil/plainObjectToTarget"; -import isTesting from "./testUtil/isTesting"; -import { TestCaseRecorder } from "./testUtil/TestCaseRecorder"; -import { Graph } from "./typings/Types"; -import graphFactories from "./util/graphFactories"; -import makeGraph, { FactoryMap } from "./util/makeGraph"; + toVscodeRange, +} from "@cursorless/vscode-common"; +import * as vscode from "vscode"; /** * Extension entrypoint called by VSCode on Cursorless startup. @@ -64,8 +79,9 @@ export async function activate( graph.debug.init(); graph.snippets.init(); graph.hatTokenMap.init(); - graph.statusBarItem.init(); - graph.keyboardCommands.init(); + + const statusBarItem = StatusBarItem.create(commandIds.showQuickPick); + const keyboardCommands = KeyboardCommands.create(context, statusBarItem); const thatMark = new ThatMark(); const sourceMark = new ThatMark(); @@ -73,7 +89,13 @@ export async function activate( // TODO: Do this using the graph once we migrate its dependencies onto the graph const commandRunner = new CommandRunner(graph, thatMark, sourceMark); - registerCommands(context, vscodeIDE, commandRunner, graph.testCaseRecorder); + registerCommands( + context, + vscodeIDE, + commandRunner, + graph.testCaseRecorder, + keyboardCommands, + ); return { thatMark, @@ -95,6 +117,10 @@ export async function activate( plainObject, ); }, + + // FIXME: Remove this once we have a better way to get this function + // accessible from our tests + takeSnapshot, } : undefined, @@ -114,6 +140,7 @@ function registerCommands( vscodeIde: VscodeIDE, commandRunner: CommandRunner, testCaseRecorder: TestCaseRecorder, + keyboardCommands: KeyboardCommands, ): void { const commands = [ // The core Cursorless command @@ -143,6 +170,43 @@ function registerCommands( ["cursorless.pauseRecording", testCaseRecorder.pause], ["cursorless.resumeRecording", testCaseRecorder.resume], ["cursorless.takeSnapshot", testCaseRecorder.takeSnapshot], + + // Other commands + [commandIds.showQuickPick, showQuickPick], + ["cursorless.showDocumentation", showDocumentation], + + // General keyboard commands + [ + "cursorless.keyboard.escape", + keyboardCommands.keyboardHandler.cancelActiveListener, + ], + + // Targeted keyboard commands + [ + "cursorless.keyboard.targeted.targetHat", + keyboardCommands.targeted.targetDecoratedMark, + ], + [ + "cursorless.keyboard.targeted.targetScope", + keyboardCommands.targeted.targetScopeType, + ], + [ + "cursorless.keyboard.targeted.targetSelection", + keyboardCommands.targeted.targetSelection, + ], + [ + "cursorless.keyboard.targeted.clearTarget", + keyboardCommands.targeted.clearTarget, + ], + [ + "cursorless.keyboard.targeted.runActionOnTarget", + keyboardCommands.targeted.performActionOnTarget, + ], + + // Modal keyboard commands + ["cursorless.keyboard.modal.modeOn", keyboardCommands.modal.modeOn], + ["cursorless.keyboard.modal.modeOff", keyboardCommands.modal.modeOff], + ["cursorless.keyboard.modal.modeToggle", keyboardCommands.modal.modeToggle], ] as const; extensionContext.subscriptions.push( diff --git a/packages/test-harness/.eslintrc.json b/packages/test-harness/.eslintrc.json new file mode 100644 index 0000000000..aa32e083c7 --- /dev/null +++ b/packages/test-harness/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../*"], + "message": "Tests have restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Tests shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/packages/test-harness/runners/.eslintrc.json b/packages/test-harness/runners/.eslintrc.json new file mode 100644 index 0000000000..9d763ccfe5 --- /dev/null +++ b/packages/test-harness/runners/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "Tests have restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Tests shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/test/runners/README.md b/packages/test-harness/runners/README.md similarity index 100% rename from src/test/runners/README.md rename to packages/test-harness/runners/README.md diff --git a/src/test/runners/all.ts b/packages/test-harness/runners/all.ts similarity index 100% rename from src/test/runners/all.ts rename to packages/test-harness/runners/all.ts diff --git a/src/test/runners/endToEndOnly.ts b/packages/test-harness/runners/endToEndOnly.ts similarity index 88% rename from src/test/runners/endToEndOnly.ts rename to packages/test-harness/runners/endToEndOnly.ts index c83397228c..5fb6d84163 100644 --- a/src/test/runners/endToEndOnly.ts +++ b/packages/test-harness/runners/endToEndOnly.ts @@ -12,6 +12,6 @@ import { runAllTestsInDir } from "../util/runAllTestsInDir"; */ export function run(): Promise { return runAllTestsInDir( - path.resolve(__dirname, "../../apps/cursorless-vscode-e2e"), + path.resolve(__dirname, "../../packages/cursorless-vscode-e2e"), ); } diff --git a/src/test/runners/unitTestsOnly.ts b/packages/test-harness/runners/unitTestsOnly.ts similarity index 69% rename from src/test/runners/unitTestsOnly.ts rename to packages/test-harness/runners/unitTestsOnly.ts index bb64d9546e..6f3d11de81 100644 --- a/src/test/runners/unitTestsOnly.ts +++ b/packages/test-harness/runners/unitTestsOnly.ts @@ -4,16 +4,12 @@ import "module-alias/register"; import * as path from "path"; import { runAllTestsInDirs } from "../util/runAllTestsInDir"; -const testDirectories = [ - "../../libs/cursorless-engine", - "../../libs/common", - "../../test/suite", -]; +const testDirectories = ["cursorless-engine", "common"]; export function run(): Promise { return runAllTestsInDirs( testDirectories.map((testDirectory) => - path.resolve(__dirname, testDirectory), + path.resolve(__dirname, `../../${testDirectory}`), ), ); } diff --git a/packages/test-harness/scripts/.eslintrc.json b/packages/test-harness/scripts/.eslintrc.json new file mode 100644 index 0000000000..9d763ccfe5 --- /dev/null +++ b/packages/test-harness/scripts/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "Tests have restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Tests shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/test/scripts/runTestsCI.ts b/packages/test-harness/scripts/runTestsCI.ts similarity index 75% rename from src/test/scripts/runTestsCI.ts rename to packages/test-harness/scripts/runTestsCI.ts index f5c5dfe04c..f5fc09d663 100644 --- a/src/test/scripts/runTestsCI.ts +++ b/packages/test-harness/scripts/runTestsCI.ts @@ -2,8 +2,12 @@ * This file can be run from node to run tests in CI */ +// Ensures that the aliases such as @cursorless/common that we define in +// package.json are active +import "module-alias/register"; + import * as path from "path"; -import { launchVscodeAndRunTests } from "../launchVscodeAndRunTests"; +import { launchVscodeAndRunTests } from "../util/launchVscodeAndRunTests"; async function main() { // Note that we run all tests, including unit tests, in VSCode, even though diff --git a/src/test/scripts/runUnitTestsOnly.ts b/packages/test-harness/scripts/runUnitTestsOnly.ts similarity index 100% rename from src/test/scripts/runUnitTestsOnly.ts rename to packages/test-harness/scripts/runUnitTestsOnly.ts diff --git a/packages/test-harness/util/.eslintrc.json b/packages/test-harness/util/.eslintrc.json new file mode 100644 index 0000000000..9d763ccfe5 --- /dev/null +++ b/packages/test-harness/util/.eslintrc.json @@ -0,0 +1,21 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "Tests have restricted dependencies" + } + ], + "paths": [ + { + "name": "vscode", + "message": "Tests shouldn't depend on vscode" + } + ] + } + ] + } +} diff --git a/src/test/launchVscodeAndRunTests.ts b/packages/test-harness/util/launchVscodeAndRunTests.ts similarity index 96% rename from src/test/launchVscodeAndRunTests.ts rename to packages/test-harness/util/launchVscodeAndRunTests.ts index e3663c3cc1..c313b022cd 100644 --- a/src/test/launchVscodeAndRunTests.ts +++ b/packages/test-harness/util/launchVscodeAndRunTests.ts @@ -5,7 +5,7 @@ import { resolveCliArgsFromVSCodeExecutablePath, runTests, } from "@vscode/test-electron"; -import { extensionDependencies } from "./extensionDependencies"; +import { extensionDependencies } from "@cursorless/common"; /** * Downloads and launches VSCode, instructing it to run the test runner @@ -17,7 +17,7 @@ export async function launchVscodeAndRunTests(extensionTestsPath: string) { try { // The folder containing the Extension Manifest package.json // Passed to `--extensionDevelopmentPath` - const extensionDevelopmentPath = path.resolve(__dirname, "../../"); + const extensionDevelopmentPath = path.resolve(__dirname, "../../../"); const crashDir = getEnvironmentVariableStrict("VSCODE_CRASH_DIR"); const logsDir = getEnvironmentVariableStrict("VSCODE_LOGS_DIR"); diff --git a/src/test/util/runAllTestsInDir.ts b/packages/test-harness/util/runAllTestsInDir.ts similarity index 100% rename from src/test/util/runAllTestsInDir.ts rename to packages/test-harness/util/runAllTestsInDir.ts diff --git a/packages/vscode-common/.eslintrc.json b/packages/vscode-common/.eslintrc.json new file mode 100644 index 0000000000..41d683909c --- /dev/null +++ b/packages/vscode-common/.eslintrc.json @@ -0,0 +1,16 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../*"], + "message": "VSCode common shouldn't import from Cursorless extension", + "allowTypeImports": true + } + ] + } + ] + } +} diff --git a/src/libs/vscode-common/getExtensionApi.ts b/packages/vscode-common/getExtensionApi.ts similarity index 64% rename from src/libs/vscode-common/getExtensionApi.ts rename to packages/vscode-common/getExtensionApi.ts index 70b367c6ca..39d912d4d3 100644 --- a/src/libs/vscode-common/getExtensionApi.ts +++ b/packages/vscode-common/getExtensionApi.ts @@ -1,12 +1,23 @@ +import type { + CommandServerApi, + IDE, + NormalizedIDE, + SerializedMarks, + TargetPlainObject, + TextEditor, +} from "@cursorless/common"; +import type { + ExcludableSnapshotField, + ExtraContext, + ExtraSnapshotField, + Graph, + TestCaseSnapshot, + ThatMark, +} from "@cursorless/cursorless-engine"; import * as vscode from "vscode"; import type { SyntaxNode } from "web-tree-sitter"; -import type { ThatMark } from "../../core/ThatMark"; -import type { SnippetMap } from "../../typings/snippet"; -import type { Target } from "../../typings/target.types"; -import type { Graph } from "../../typings/Types"; -import type NormalizedIDE from "../common/ide/normalized/NormalizedIDE"; -import type { IDE } from "../common/ide/types/ide.types"; -import type { TargetPlainObject } from "../common/testUtil/toPlainObject"; +import type { SnippetMap } from "../cursorless-engine/snippets/snippet.types"; +import type { Target } from "../cursorless-engine/typings/target.types"; interface TestHelpers { graph: Graph; @@ -19,6 +30,21 @@ interface TestHelpers { editor: vscode.TextEditor, plainObject: TargetPlainObject, ): Target; + + // FIXME: Remove this once we have a better way to get this function + // accessible from our tests + takeSnapshot( + thatMark: ThatMark | undefined, + sourceMark: ThatMark | undefined, + excludeFields: ExcludableSnapshotField[], + extraFields: ExtraSnapshotField[], + editor: TextEditor, + ide: IDE, + marks?: SerializedMarks, + extraContext?: ExtraContext, + metadata?: unknown, + clipboard?: vscode.Clipboard, + ): Promise; } export interface CursorlessApi { @@ -40,16 +66,6 @@ export interface ParseTreeApi { loadLanguage: (languageId: string) => Promise; } -export interface InboundSignal { - getVersion(): Promise; -} - -export interface CommandServerApi { - signals: { - prePhrase: InboundSignal; - }; -} - export async function getExtensionApi(extensionId: string) { const extension = vscode.extensions.getExtension(extensionId); diff --git a/packages/vscode-common/index.ts b/packages/vscode-common/index.ts new file mode 100644 index 0000000000..15435d5cc6 --- /dev/null +++ b/packages/vscode-common/index.ts @@ -0,0 +1,5 @@ +export * from "./getExtensionApi"; +export * from "./notebook"; +export * from "./testUtil/openNewEditor"; +export * from "./vscodeUtil"; +export * from "./runCommand"; diff --git a/src/libs/vscode-common/notebook.ts b/packages/vscode-common/notebook.ts similarity index 100% rename from src/libs/vscode-common/notebook.ts rename to packages/vscode-common/notebook.ts diff --git a/src/apps/cursorless-vscode-e2e/runCommand.ts b/packages/vscode-common/runCommand.ts similarity index 54% rename from src/apps/cursorless-vscode-e2e/runCommand.ts rename to packages/vscode-common/runCommand.ts index 98aaafb057..4ed553b8b7 100644 --- a/src/apps/cursorless-vscode-e2e/runCommand.ts +++ b/packages/vscode-common/runCommand.ts @@ -1,6 +1,5 @@ -import { CURSORLESS_COMMAND_ID } from "@cursorless/common"; +import { Command, CURSORLESS_COMMAND_ID } from "@cursorless/common"; import * as vscode from "vscode"; -import type { Command } from "../../core/commandRunner/typings/command.types"; export function runCursorlessCommand(command: Command) { return vscode.commands.executeCommand(CURSORLESS_COMMAND_ID, command); diff --git a/packages/vscode-common/testUtil/.eslintrc.json b/packages/vscode-common/testUtil/.eslintrc.json new file mode 100644 index 0000000000..a9563bc5a2 --- /dev/null +++ b/packages/vscode-common/testUtil/.eslintrc.json @@ -0,0 +1,16 @@ +{ + "rules": { + "@typescript-eslint/no-restricted-imports": [ + "error", + { + "patterns": [ + { + "group": ["../../*"], + "message": "VSCode common shouldn't import from Cursorless extension", + "allowTypeImports": true + } + ] + } + ] + } +} diff --git a/src/libs/vscode-common/testUtil/openNewEditor.ts b/packages/vscode-common/testUtil/openNewEditor.ts similarity index 97% rename from src/libs/vscode-common/testUtil/openNewEditor.ts rename to packages/vscode-common/testUtil/openNewEditor.ts index ab68fb0308..c83e9b4a1d 100644 --- a/src/libs/vscode-common/testUtil/openNewEditor.ts +++ b/packages/vscode-common/testUtil/openNewEditor.ts @@ -1,4 +1,4 @@ -import { getParseTreeApi } from "@cursorless/vscode-common"; +import { getParseTreeApi } from ".."; import * as vscode from "vscode"; interface NewEditorOptions { diff --git a/src/libs/vscode-common/vscodeUtil.ts b/packages/vscode-common/vscodeUtil.ts similarity index 94% rename from src/libs/vscode-common/vscodeUtil.ts rename to packages/vscode-common/vscodeUtil.ts index bf8077363f..5268acef34 100644 --- a/src/libs/vscode-common/vscodeUtil.ts +++ b/packages/vscode-common/vscodeUtil.ts @@ -6,7 +6,7 @@ import { TextEditor, } from "@cursorless/common"; import * as vscode from "vscode"; -import type { VscodeTextEditorImpl } from "../../ide/vscode/VscodeTextEditorImpl"; +import type { VscodeTextEditorImpl } from "../cursorless-vscode-core/ide/vscode/VscodeTextEditorImpl"; export function toVscodeRange(range: Range): vscode.Range { return new vscode.Range( diff --git a/src/apps/cursorless-vscode-e2e/suite/setupFake.ts b/src/apps/cursorless-vscode-e2e/suite/setupFake.ts deleted file mode 100644 index fde82f06f4..0000000000 --- a/src/apps/cursorless-vscode-e2e/suite/setupFake.ts +++ /dev/null @@ -1,10 +0,0 @@ -import type NormalizedIDE from "../../../libs/common/ide/normalized/NormalizedIDE"; -import type { HatStability } from "../../../libs/common/ide/types/HatStability"; -import { getFixturePath } from "../getFixturePaths"; - -export function setupFake(ide: NormalizedIDE, hatStability: HatStability) { - ide.configuration.mockConfiguration("experimental", { - snippetsDir: getFixturePath("cursorless-snippets"), - hatStability, - }); -} diff --git a/src/core/StatusBarItem.ts b/src/core/StatusBarItem.ts deleted file mode 100644 index 6ef9af2ecd..0000000000 --- a/src/core/StatusBarItem.ts +++ /dev/null @@ -1,50 +0,0 @@ -import * as vscode from "vscode"; -import ide from "../libs/cursorless-engine/singletons/ide.singleton"; -import { Graph } from "../typings/Types"; - -const DEFAULT_TEXT = "$(cursorless-icon) Cursorless"; - -export default class StatusBarItem { - private disposables: vscode.Disposable[] = []; - private statusBarItem?: vscode.StatusBarItem; - - constructor(private graph: Graph) { - ide().disposeOnExit(this); - } - - init() { - const commandId = "cursorless.showQuickPick"; - this.statusBarItem = vscode.window.createStatusBarItem( - vscode.StatusBarAlignment.Right, - 100, - ); - this.statusBarItem.command = commandId; - this.statusBarItem.text = DEFAULT_TEXT; - this.statusBarItem.show(); - - this.disposables.push( - vscode.commands.registerCommand("cursorless.showDocumentation", () => - vscode.env.openExternal( - vscode.Uri.parse("https://www.cursorless.org/docs/"), - ), - ), - vscode.commands.registerCommand(commandId, this.showQuickOpen), - this.statusBarItem, - ); - } - - setText(text: string) { - this.statusBarItem!.text = `$(cursorless-icon) ${text}`; - } - - unsetText() { - this.statusBarItem!.text = DEFAULT_TEXT; - } - - private showQuickOpen = () => - vscode.commands.executeCommand("workbench.action.quickOpen", ">Cursorless"); - - dispose() { - this.disposables.forEach(({ dispose }) => dispose()); - } -} diff --git a/src/keyboard/KeyboardCommands.ts b/src/keyboard/KeyboardCommands.ts deleted file mode 100644 index eabe2e40e8..0000000000 --- a/src/keyboard/KeyboardCommands.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { Graph } from "../typings/Types"; -import KeyboardCommandsTargeted from "./KeyboardCommandsTargeted"; -import KeyboardCommandsModal from "./KeyboardCommandsModal"; -import KeyboardHandler from "./KeyboardHandler"; - -export default class KeyboardCommands { - targeted: KeyboardCommandsTargeted; - modal: KeyboardCommandsModal; - keyboardHandler: KeyboardHandler; - - constructor(graph: Graph) { - this.targeted = new KeyboardCommandsTargeted(graph); - this.modal = new KeyboardCommandsModal(graph); - this.keyboardHandler = new KeyboardHandler(graph); - } - - init() { - this.targeted.init(); - this.modal.init(); - this.keyboardHandler.init(); - } -} diff --git a/src/libs/vscode-common/index.ts b/src/libs/vscode-common/index.ts deleted file mode 100644 index 1da297179a..0000000000 --- a/src/libs/vscode-common/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -export * from "./getExtensionApi"; -export * from "./notebook"; -export * from "./testUtil/testConstants"; -export * from "./testUtil/openNewEditor"; -export * from "./vscodeUtil"; -export { - takeSnapshot, - TestCaseSnapshot, - ExcludableSnapshotField, -} from "./testUtil/takeSnapshot"; diff --git a/src/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts b/src/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts deleted file mode 100644 index b39e4f70a1..0000000000 --- a/src/processTargets/modifiers/scopeHandlers/scopeTypeUtil.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { ScopeType } from "../../../core/commandRunner/typings/PartialTargetDescriptor.types"; - -export function scopeTypeToString(scopeType: ScopeType) { - return scopeType.type; -} diff --git a/src/testUtil/isTesting.ts b/src/testUtil/isTesting.ts deleted file mode 100644 index 2c0cf4a148..0000000000 --- a/src/testUtil/isTesting.ts +++ /dev/null @@ -1,3 +0,0 @@ -const isTesting = () => process.env.CURSORLESS_TEST != null; - -export default isTesting; diff --git a/tsconfig.json b/tsconfig.json index 46b8206bdc..24ff36cc3b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -5,21 +5,25 @@ "outDir": "out", "lib": ["es2020"], "sourceMap": true, - "rootDir": "src", + "rootDir": "packages", "strict": true /* enable all strict type-checking options */, /* Additional Checks */ // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */ // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */ // "noUnusedParameters": true, /* Report errors on unused parameters. */ "paths": { - "@cursorless/common": ["./src/libs/common/index.ts"], - "@cursorless/vscode-common": ["./src/libs/vscode-common/index.ts"] + "@cursorless/common": ["./packages/common/index.ts"], + "@cursorless/vscode-common": ["./packages/vscode-common/index.ts"], + "@cursorless/cursorless-vscode-core": [ + "./packages/cursorless-vscode-core/index.ts" + ], + "@cursorless/cursorless-engine": ["./packages/cursorless-engine/index.ts"] } }, "exclude": [ "cursorless-nx", "node_modules", - "src/vendor", + "**/vendor/**", ".vscode-test", "data" ] diff --git a/vsc-extension-quickstart.md b/vsc-extension-quickstart.md deleted file mode 100644 index a099532454..0000000000 --- a/vsc-extension-quickstart.md +++ /dev/null @@ -1,41 +0,0 @@ -# Welcome to your VS Code Extension - -## What's in the folder - -- This folder contains all of the files necessary for your extension. -- `package.json` - this is the manifest file in which you declare your extension and command. - - The sample plugin registers a command and defines its title and command name. With this information VS Code can show the command in the command palette. It doesn’t yet need to load the plugin. -- `src/extension.ts` - this is the main file where you will provide the implementation of your command. - - The file exports one function, `activate`, which is called the very first time your extension is activated (in this case by executing the command). Inside the `activate` function we call `registerCommand`. - - We pass the function containing the implementation of the command as the second parameter to `registerCommand`. - -## Get up and running straight away - -- Press `F5` to open a new window with your extension loaded. -- Run your command from the command palette by pressing (`Ctrl+Shift+P` or `Cmd+Shift+P` on Mac) and typing `Hello World`. -- Set breakpoints in your code inside `src/extension.ts` to debug your extension. -- Find output from your extension in the debug console. - -## Make changes - -- You can relaunch the extension from the debug toolbar after changing code in `src/extension.ts`. -- You can also reload (`Ctrl+R` or `Cmd+R` on Mac) the VS Code window with your extension to load your changes. - -## Explore the API - -- You can open the full set of our API when you open the file `node_modules/@types/vscode/index.d.ts`. - -## Run tests - -- Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Extension Tests`. -- Press `F5` to run the tests in a new window with your extension loaded. -- See the output of the test result in the debug console. -- Make changes to `src/test/suite/extension.test.ts` or create new test files inside the `test/suite` folder. - - The provided test runner will only consider files matching the name pattern `**.test.ts`. - - You can create folders inside the `test` folder to structure your tests any way you want. - -## Go further - -- Reduce the extension size and improve the startup time by [bundling your extension](https://code.visualstudio.com/api/working-with-extensions/bundling-extension). -- [Publish your extension](https://code.visualstudio.com/api/working-with-extensions/publishing-extension) on the VSCode extension marketplace. -- Automate builds by setting up [Continuous Integration](https://code.visualstudio.com/api/working-with-extensions/continuous-integration).