Skip to content

Commit 3f6b627

Browse files
Merge branch 'main' into nix-flake
2 parents fc6ba7d + 2d07d11 commit 3f6b627

File tree

3,804 files changed

+23158
-13237
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,804 files changed

+23158
-13237
lines changed

.editorconfig

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ insert_final_newline = false
2222
# with a line that has trailing white space. Many of our recorded
2323
# tests use strings with trailing white space to represent the final
2424
# document contents. For example
25-
# packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/ruby/changeCondition.yml
25+
# data/fixtures/recorded/languages/ruby/changeCondition.yml
2626
trim_trailing_whitespace = false
2727

2828
[Makefile]

.github/CODEOWNERS

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
* @pokey @AndreasArvidsson
22

3-
*keyboard* @pokey @josharian
4-
*Keyboard* @pokey @josharian
3+
*keyboard* @pokey @AndreasArvidsson @josharian
4+
*Keyboard* @pokey @AndreasArvidsson @josharian
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
body:
2+
- type: markdown
3+
attributes:
4+
value: |
5+
You are submitting to our Architecture Decision Record.
6+
Learn more about ADRs at <https://adr.github.io>, and discussion #1211.
7+
8+
- type: textarea
9+
attributes:
10+
label: Context
11+
description: The issue motivating this decision, and any context that influences or constrains the decision.
12+
validations:
13+
required: true
14+
15+
- type: textarea
16+
attributes:
17+
label: Options considered
18+
19+
- type: textarea
20+
attributes:
21+
label: Decision
22+
description: "The change that we're proposing or have agreed to implement."
23+
24+
- type: textarea
25+
attributes:
26+
label: Consequences
27+
description: What becomes easier or more difficult to do and any risks introduced by the change that will need to be mitigated.

.github/workflows/codeql.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ jobs:
4545

4646
steps:
4747
- name: Checkout repository
48-
uses: actions/checkout@v3
48+
uses: actions/checkout@v4
4949

5050
# Initializes the CodeQL tools for scanning.
5151
- name: Initialize CodeQL

.github/workflows/deploy.yaml

+5-5
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ jobs:
1414
env:
1515
CURSORLESS_REPO_ROOT: ${{ github.workspace }}
1616
steps:
17-
- uses: actions/checkout@v3
17+
- uses: actions/checkout@v4
1818
with:
1919
fetch-depth: 0
20-
- uses: pnpm/action-setup@v2
21-
- uses: actions/setup-node@v3
20+
- run: corepack enable
21+
- uses: actions/setup-node@v4
2222
with:
23-
node-version-file: package.json
23+
node-version-file: .nvmrc
2424
cache: pnpm
2525
- run: pnpm --color install
2626
- run: pnpm --color compile
@@ -46,7 +46,7 @@ jobs:
4646
needs: publish-extension
4747
environment: production
4848
steps:
49-
- uses: actions/checkout@v3
49+
- uses: actions/checkout@v4
5050
with:
5151
fetch-depth: 0
5252
token: ${{ secrets.CURSORLESS_BOT_TOKEN }}

.github/workflows/forbid-todo.yml

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
name: Forbid TODO
2+
3+
on:
4+
pull_request:
5+
types: [opened, synchronize, reopened]
6+
merge_group:
7+
branches: [main]
8+
9+
jobs:
10+
forbid-todo:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
- name: Forbid TODO
15+
run: ./scripts/forbid-todo.sh

.github/workflows/pre-commit.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ jobs:
1414
name: Pre-commit
1515
runs-on: ubuntu-latest
1616
steps:
17-
- uses: actions/checkout@v3
17+
- uses: actions/checkout@v4
1818
- uses: actions/setup-python@v4
1919
with:
2020
python-version: 3.x
21-
- uses: pnpm/action-setup@v2
22-
- uses: actions/setup-node@v3
21+
- run: corepack enable
22+
- uses: actions/setup-node@v4
2323
with:
24-
node-version-file: package.json
24+
node-version-file: .nvmrc
2525
cache: pnpm
2626
- run: pnpm --color install
2727
- uses: pre-commit/[email protected]

.github/workflows/test-docs.yml

+4-4
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ jobs:
1212
env:
1313
CURSORLESS_REPO_ROOT: ${{ github.workspace }}
1414
steps:
15-
- uses: actions/checkout@v3
16-
- uses: pnpm/action-setup@v2
17-
- uses: actions/setup-node@v3
15+
- uses: actions/checkout@v4
16+
- run: corepack enable
17+
- uses: actions/setup-node@v4
1818
with:
19-
node-version-file: package.json
19+
node-version-file: .nvmrc
2020
cache: pnpm
2121
- run: bash -x scripts/build-and-assemble-website.sh

.github/workflows/test.yml

+7-9
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ jobs:
2727
VSCODE_LOGS_DIR: ${{ github.workspace }}/artifacts/logs
2828
CURSORLESS_REPO_ROOT: ${{ github.workspace }}
2929
steps:
30-
- uses: actions/checkout@v3
31-
- uses: pnpm/action-setup@v2
32-
- uses: actions/setup-node@v3
30+
- uses: actions/checkout@v4
31+
- run: corepack enable
32+
- uses: actions/setup-node@v4
3333
with:
34-
node-version-file: package.json
34+
node-version-file: .nvmrc
3535
cache: pnpm
3636
- run: mkdir -p "${{ env.VSCODE_CRASH_DIR }}" "${{ env.VSCODE_LOGS_DIR }}"
3737
shell: bash
@@ -55,22 +55,20 @@ jobs:
5555
- run: mv ${{ steps.createVsix.outputs.vsixPath }} cursorless-development.vsix
5656
if: runner.os == 'Linux' && matrix.vscode_version == 'stable'
5757
- name: Upload vsix
58-
uses: actions/upload-artifact@v3
58+
uses: actions/upload-artifact@v4
5959
if: runner.os == 'Linux' && matrix.vscode_version == 'stable'
6060
with:
6161
name: vsix
6262
path: cursorless-development.vsix
6363
- name: Archive logs
64-
uses: actions/upload-artifact@v3
64+
uses: actions/upload-artifact@v4
6565
with:
6666
name: logs
6767
path: ${{ env.VSCODE_LOGS_DIR }}
6868
if: failure()
6969
- name: Archive dumps
70-
uses: actions/upload-artifact@v3
70+
uses: actions/upload-artifact@v4
7171
with:
7272
name: dumps
7373
path: ${{ env.VSCODE_CRASH_DIR }}
7474
if: failure()
75-
- name: Forbid TODOs
76-
run: ./scripts/forbid-todo.sh

.nvmrc

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v20.12.1

.pre-commit-config.yaml

+6-9
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ repos:
3939
# with a line that has trailing white space. Many of our recorded
4040
# tests use strings with trailing white space to represent the final
4141
# document contents. For example
42-
# packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/languages/ruby/changeCondition.yml
43-
exclude: ^packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/.*/[^/]*\.yml$|\.scope$|/generated/|^patches/
42+
# data/fixtures/recorded/languages/ruby/changeCondition.yml
43+
exclude: ^data/fixtures/recorded/.*/[^/]*\.yml$|\.scope$|/generated/|^patches/
4444
- repo: local
4545
hooks:
4646
- id: eslint
@@ -61,26 +61,23 @@ repos:
6161
hooks:
6262
- id: format-recorded-tests
6363
name: format-recorded-tests
64-
files: ^packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/.*/[^/]*\.yml$
64+
files: ^data/fixtures/recorded/.*/[^/]*\.yml$
6565
language: system
6666
entry: pnpm exec ./packages/common/scripts/my-ts-node.js packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts
6767
- repo: local
6868
hooks:
6969
- id: check-recorded-test-marks
7070
name: check-recorded-test-marks
71-
files: ^packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/.*/[^/]*\.yml$
71+
files: ^data/fixtures/recorded/.*/[^/]*\.yml$
7272
language: system
7373
entry: pnpm exec ./packages/common/scripts/my-ts-node.js packages/cursorless-engine/src/scripts/transformRecordedTests/index.ts --check-marks
7474
- repo: https://github.com/ikamensh/flynt
7575
rev: "1.0.1"
7676
hooks:
7777
- id: flynt
7878
- repo: https://github.com/astral-sh/ruff-pre-commit
79-
rev: v0.1.11
79+
rev: v0.4.1
8080
hooks:
8181
- id: ruff
8282
args: [--fix, --exit-non-zero-on-fix]
83-
- repo: https://github.com/psf/black-pre-commit-mirror
84-
rev: 24.1.1
85-
hooks:
86-
- id: black
83+
- id: ruff-format

.prettierignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
**/generated
33

44
# We use our own format for our recorded yaml tests to keep them compact
5-
/packages/cursorless-vscode-e2e/src/suite/fixtures/recorded/**/*.yml
5+
/data/fixtures/recorded/**/*.yml
66

77
pnpm-lock.yaml
88

.prettierrc

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
{
2-
"trailingComma": "all"
2+
"trailingComma": "all",
3+
"plugins": ["prettier-plugin-tailwindcss"]
34
}

.vscode/extensions.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
"dbaeumer.vscode-eslint",
88
"esbenp.prettier-vscode",
99
"jrieken.vscode-tree-sitter-query",
10-
"wenkokke.tree-sitter-talon"
10+
"wenkokke.tree-sitter-talon",
11+
"usernamehw.commands"
1112
]
1213
}

.vscode/launch.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
"args": [
3535
"--profile=cursorlessDevelopment",
3636
"--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist",
37-
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTests.cjs"
37+
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTestsVscode.cjs"
3838
],
3939
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
4040
"preLaunchTask": "${defaultBuildTask}",
@@ -55,7 +55,7 @@
5555
"args": [
5656
"--profile=cursorlessDevelopment",
5757
"--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist",
58-
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTests.cjs"
58+
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTestsVscode.cjs"
5959
],
6060
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
6161
"preLaunchTask": "Prepare test subset",
@@ -125,7 +125,7 @@
125125
"args": [
126126
"--profile=cursorlessDevelopment",
127127
"--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist",
128-
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTests.cjs"
128+
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTestsVscode.cjs"
129129
],
130130
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
131131
"preLaunchTask": "${defaultBuildTask}",
@@ -147,7 +147,7 @@
147147
"args": [
148148
"--profile=cursorlessDevelopment",
149149
"--extensionDevelopmentPath=${workspaceFolder}/packages/cursorless-vscode/dist",
150-
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTests.cjs"
150+
"--extensionTestsPath=${workspaceFolder}/packages/test-harness/dist/extensionTestsVscode.cjs"
151151
],
152152
"outFiles": ["${workspaceFolder}/**/out/**/*.js"],
153153
"preLaunchTask": "${defaultBuildTask}",

.vscode/settings.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Place your settings in this file to overwrite default and user settings.
22
{
33
"[python]": {
4-
"editor.defaultFormatter": "ms-python.black-formatter"
4+
"editor.defaultFormatter": "charliermarsh.ruff"
55
},
66
"[scm]": {
77
"editor.defaultFormatter": "AndreasArvidsson.andreas-talon"

.vscode/tasks.json

-1
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,6 @@
6666
"label": "Generate grammar",
6767
"type": "npm",
6868
"script": "generate-grammar",
69-
"path": "packages/cursorless-vscode",
7069
"presentation": {
7170
"reveal": "silent"
7271
},

changelog/2024-03-addLuaSupport.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
tags: [enhancement]
3+
pullRequest: 1962
4+
---
5+
6+
- Add support for the Lua programming language
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
tags: [enhancement]
3+
pullRequest: 2254
4+
---
5+
6+
- Added every/spread ordinal/relative modifier. Turns relative and ordinal range modifiers into multiple target selections instead of contiguous range.
7+
8+
- `"take every two tokens"` selects two tokens as separate selections
9+
- `"pre every first two lines"` puts a cursor before each of first two lines in block (results in multiple cursors)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
tags: [enhancement]
3+
pullRequest: 2235
4+
---
5+
6+
- Fall back to text-based Talon actions when editor is not focused. This allows you to say things like "take token", "bring air", etc, when in the terminal, search bar, etc.
+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
tags: [enhancement]
3+
pullRequest: 1998
4+
---
5+
6+
- Add support for using community snippets for wrapping / cursorless insertion instead of snippets defined in Cursorless. See [Using community snippets](../docs/user/experimental/snippets.md#using-community-snippets) for more information.
+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
tags: [enhancement]
3+
pullRequest: 2358
4+
---
5+
6+
- Added public `user.cursorless_reformat` action to the Cursorless api
7+
eg: `user.cursorless_reformat(cursorless_target, "ALL_CAPS")`

cursorless-talon-dev/src/cursorless_dev.talon

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ tag: user.cursorless
1010
user.run_rpc_command("cursorless.recordTestCase")
1111
{user.cursorless_homophone} record one:
1212
user.run_rpc_command("cursorless.recordOneTestCaseThenPause")
13+
{user.cursorless_homophone} record scope:
14+
user.run_rpc_command("cursorless.recordScopeTests.showUnimplementedFacets")
15+
{user.cursorless_homophone} save scope:
16+
user.run_rpc_command("cursorless.recordScopeTests.saveActiveDocument")
1317
{user.cursorless_homophone} pause:
1418
user.run_rpc_command("cursorless.pauseRecording")
1519
{user.cursorless_homophone} resume:

0 commit comments

Comments
 (0)