Tags: 71/dance
Tags
1) fix: respect language-specific dance.defaultMode overrides
dance.defaultMode is declared as language-overridable in package.json,
but observePreference reads it via getConfiguration("dance") without a
document scope, so language-specific overrides (e.g. [magit] or
[git-commit]) are never resolved. The global value is stored as a
single _defaultMode and applied to every new editor.
Move the configuration lookup into _getDefaultModeForEditor, which
passes the editor's document as the scope so that VS Code resolves
language-specific values correctly.
Co-Authored-By: Claude Opus 4.6 <[email protected]> (jariji)
(SHA: 0051821)
2) misc: publish helix extension in ci, add cache (71)
(SHA: ce6ce98)
1) leap command highlight rule improved: clear unrelated unlabeledSelection highlight after 2ndChar was pressed. (petertheprocess) (SHA: 7bf1463) 2) misc: add Helix keymap (#338) * Behavior choice: Basic helix keymap * Behavior choice: Helix keymap as an extension * Fix shift+c in helix modes Remove category field from package.json * Fix missing editorTextFocus condition * Add `%` binding to helix * Fix binding: `Shift+R` * PR Fixes * Fix typos and title, add toggle indices * Add numpad bindings to select mode * PR Fixes * Improve keybind parsing for less verbose definitions * use symlinks * Fix invalid pre-release version string It's not consistent, but vscode sometimes gives me errors about the semver for the helix package not being valid, and indeed it seems leading zeroes are not valid semver, so switching to a tag to mark the prerelease * fix go to menu items * Keymap: Add switch back to normal mode on some keybinds * remove symlinks And: - Update LICENSE to ~2025. - Add purple Dance logo for Helix. --------- Co-authored-by: Grégoire Geis <[email protected]> Co-authored-by: Karim Abou Zeid <[email protected]> (Strackeror) (SHA: 036cdfd) 3) commands: remove broken reverse regexp search optimization (71) (SHA: 1c0e1fd) 4) misc: allow ordinary menus (#353) * wip: allow ordinary menus * Apply suggestions from code review * more PR feedback * PR feedback * bump typescript to 5.7 * eslint / format * menu.menuType -> menu.type * fix bug from code review, thanks @71 * use vscode schema to give autocomplete on configuring menus --------- Co-authored-by: Grégoire Geis <[email protected]> (jwhitaker-gridcog) (SHA: 4e3d259) 5) misc: update to @vscode/vsce; specify helix extension files (71) (SHA: 92cadab) 6) misc: always show commands in command palette (71) (SHA: f3117fd) 7) fix: keep anchor in place when extending selection by word (#367) * Add expected result as a test case * Ensure that anchor stays in place when seeking by word if the selection is not changing direction Fix #366 * Add semicolons * Fix casing for variable names (JJK96) (SHA: e017a76) 8) misc: update actions, grant permission to write tag in publish (#387) (71) (SHA: db9646b) 9) ci: fix publish workflow (#388) Also set `shell: bash` to automatically use `-eo pipefail`. (71) (SHA: ea5952e) 10) feat: Add the rest of match mode to Helix keymap (#386) This pull request adds `ms`, `mr`, and `md` to the Helix keymap, along with the following fixes: * Line numbers are now absolute in `helix/insert` and `helix/select`, relative in `helix/normal`. * Unimpaired mappings `[` and `]` are added back to the Helix keymap, they were missing for some reason. All these keybinds use existing Dance commands, the only limitation being that `md` will replace the nearest pair instead of asking for the pair to delete. It may be more efficient to implement these as commands, though I understand that the core is still supposed to be Kakoune-based. (ongyx) (SHA: 70e419f) 11) modes: explicitly merge builtin and contributed modes (71) (SHA: 9e5b1de) 12) commands: map smart select in helix/select mode (jgdhs27) (SHA: e9e67a6) 13) history: fix repeat.edit with namespaced modes (#393) (71) (SHA: 065ddb1) 14) misc: bump pre-release (71) (SHA: 5ef4474) 15) misc: rename Helix extension to "Dance - Helix keymap" ...to resolve the conflict with the existing extension "Dance - Helix keybindings". "keymap" seems closer to the VS Code naming (e.g. "Atom Keymap" by Microsoft). Also update a few scripts to publish the extension. (71) (SHA: 28c1fc9) 16) misc: bump Helix version to 0.1.1 Generating a pre-release which looks like 0.1.0001 broke VS Code: > ScanningExtension: Cannot read the extension from > $HOME/.vscode/extensions/gregoire.dance-helix-0.1.0001 (71) (SHA: 5720277) 17) fix: jump vertically by page folding bug (#384) Before this change, the jump vertically by page / halfPage fails when the first visible range is near a folded region. This solution considers all visible ranges, rather than just the first to calculate the page height. Alternatively, there can be a minimum number of lines to consider a "page", or the largest unfolded region could be used, or the difference between the first region's start and the last region's end. (forivall) (SHA: ef505d7) 18) .search.selection: do not add `\b` after line end (#400) The "smart select" logic considered that a newline was a word boundary, and inserted a `\b`, which doesn't actually match a newline. Also replace newlines with `\n` to make sure the prompt doesn't erase newlines. Fixes #390. (71) (SHA: a531f3a) 19) misc: add `CONTRIBUTING.md`, update documentation (#399) (71) (SHA: 1995be3) 20) commands: add Helix goto word commands (#370) Adds two new commands: 'Goto command' and 'Goto command (extend)'. The commands add 2 character labels to every visible word of length >= 2. Then, they wait for user input. After receiving two characters of input, the regular command jumps to the selected word, and the extend command extends from the primary selection to the current word. I don't know how to add keybinds for this so I haven't done so - both commands should be activated by `gw` in helix. This command is also affected by the bug described in #369. Resolves: #339 Co-authored-by: jgdhs27 <[email protected]> (jgdhs27) (SHA: 22c1ae5) 21) misc: fix README.md links (#405) They were broken by #399. (71) (SHA: 4b761e3) 22) Use same register for search and select (#373) Uses the same default register for select and search operations. This allows users to use `s` in conjunction with `*` or `/`. Fix: #372 Co-authored-by: jgdhs27 <[email protected]> (jgdhs27) (SHA: 59897f7) 23) helix: add bracket menus (#401) Missing: **Left bracket** - D: Goto first diagnostic - G: Goto first change - f: Goto previous function - t: Goto previous type definition - a: Goto previous parameter - c: Goto previous comment - e: Goto previous pairing - T: Goto previous test - p: Goto previous paragraph **Right bracket** - D: Goto last diagnostic - G: Goto last change - f: Goto next function - t: Goto next type definition - a: Goto next parameter - c: Goto next comment - e: Goto next pairing - T: Goto next test - p: Goto next paragraph VS Code currently does not support jumping to the first/last diagnostic. Others might be supported through tree-sitter, but I don't know how to implement them. (Huliiiiii) (SHA: a081758) 24) misc: add smart case search setting (#371) Adds a setting "dance.smartCase" to enable smart case in searches. This is a global setting that will apply to all `/` and `s` searches, similar to how it is in helix. Defaults to false. Issue: #354 Co-authored-by: jgdhs27 <[email protected]> (jgdhs27) (SHA: 20aec09) 25) search: preserve selection direction with search-next (#406) When using `n` to select the next occurrence, give the new selection the same direction as the previous main selection. This matches the behaviour from kakoune and helix. Fix: #360 (At least, I assume that this is what #360 is referring to.) Co-authored-by: jgdhs27 <[email protected]> (jgdhs27) (SHA: 097c9ae) 26) helix: add paragraph to bracket menus (#407) Add 'Goto next paragraph' and 'Goto previous paragraph' to helix, under the keybinds `[p` and `]p`. Co-authored-by: jgdhs27 <[email protected]> (jgdhs27) (SHA: c004520) 27) helix: add space menu and window menu (#402) Not implemented: - `j`: Open jumplist picker - `'`: Open last picker --- - `d`: Open diagnostic picker VS Code doesn’t have a single-file diagnostic picker, so it currently behaves the same as `D`. --- The window menu was copied directly from Silverquark’s fork. (Huliiiiii) (SHA: 546d09c) 28) add keybinding for space menu (#411) This keybinding seems to have been forgotten in #402 Co-authored-by: jgdhs27 <[email protected]> (jgdhs27) (SHA: 7fbb911) 29) do not use code execution in .selections.clear.* This allows using this functionality within environments that prohibit arbitrary code execution (such as certain CSPs). Fixes: #349 (sdoerner) (SHA: 3183056) 30) fix minor memory leaks (#416) These are pretty minor: - The one in `editors.ts` only leaks memory until a new editor is opened. - The other one only happens when Dance is disabled. Also fixes iteration of recorder when reaching the start of a buffer. Co-authored-by: Enrico Lumetti <[email protected]> (71) (SHA: a11c36e) 31) fix horizontal movement adjustment for Character SelectionBehavior (morth1) (SHA: 8470009) 32) misc: bump version to 0.5.16 (71) (SHA: 6b3cc6b)
1) commands: add support for tree-sitter textobjects (71) (SHA: 21a8b2e) 2) misc: fix format, bump prerelease to 0.5.14002 (71) (SHA: 822dc5b) 3) misc: use dance.inPrompt instead of !textInputFocus `textInputFocus` doesn't seem to exist, but until recently this wasn't a problem. In Insiders 1.90, `!textInputFocus` evaluates to true in quick-open boxes, so arrow keys no longer work in these input boxes because of Dance. This change adds a custom Dance context key, `dance.inPrompt`, to only enable input box keybindings in prompts created by Dance. (71) (SHA: d20be49) 4) misc: bump version to 0.5.15 (71) (SHA: 12f6a79)
1) commands: remap {a-,}space to {a-,}, (#281) (71)
(SHA: 5779d9c)
2) commands: remap {a-x,s-a-x}to {x,a-x} (#281)
Also fix issues with `.selections.trimLines` and
`.selections.expandToLines` and upgrade `typescript`. (71)
(SHA: a3772ef)
3) commands: make {a-,}! select inserted contents (#281) (71)
(SHA: eeda66b)
4) misc: make sure READMEs are generated after commands.yaml (71)
(SHA: 1d28df9)
5) commands: scroll buffer after .seek.object (fixes #266) (71)
(SHA: 52a7c20)
6) enable word highlighting for dance selection (kabouzeid)
(SHA: 0acf74f)
7) commands: select with {p,s-p}, fix {p,s-p,a-p,s-a-p} (fixes #276, #281) (71)
(SHA: ec90111)
8) package.json: pre-release 0.5.12001 (71)
(SHA: ec6cc87)
9) package.json: fix pre-release script (71)
(SHA: 7d73bfc)
10) keybindings: add tab/s-tab to ignored keys in normal mode (fixes #289) (71)
(SHA: 1c23f8b)
11) tests: hopefully fix tab size in gh action tests (71)
(SHA: 94ce76b)
12) commands: fix crash in .selections.filter* (fixes #290) (71)
(SHA: eb5eab6)
13) api: execute now inherits env, uses current file or workspace as cwd (fixes #286) (71)
(SHA: b144b02)
14) keybindings: add gp, gn, gA for buffer selection (71)
(SHA: 64bf13e)
15) commands: .edit.align now works with multiple columns (#296)
* Alignment for multiple columns
* Align by selection active/head point
* Add some alignment tests
* Additional small cleaning
* Fixing nitpicks :)
* run generate (Strackeror)
(SHA: a139b2b)
16) misc: mark layouts/*.md files as generated (71)
(SHA: 882ca13)
17) commands: experimental/wip support for helix-like keybindings (71)
(SHA: 38001b1)
18) commands: only enable tree sitter commands when tree sitter is available (71)
(SHA: 413e833)
19) misc: add setting to toggle the yank register using the system clipboard (#295)
* feat: add setting to toggle yank using the system clipboard
* feat: swaps the toggle for a select list allowing the user to choose a system clipboard register (or null)
* fix: addresses feedback
* fix: changes from review
* fix: expect dquote exists and make null checks more strict (blefevre)
(SHA: 3a75750)
20) fix: allow more than 2 keybindings per command (gouegd)
(SHA: dd69f4b)
21) feat: add Helix-based select mode and its most common keybindings (#301)
* Add basic Helix select mode word movement
* Handle left, right, long word moves in helix select mode
* Handle f, t, g motions for helix select mode
* Add d, c, u, s+u for helix select mode
* Lint fix
* Add left, right, up, down for helix select mode (gouegd)
(SHA: 63dd82d)
22) misc: fix packaging issues (71)
(SHA: 24efcfb)
23) misc: bundle and compile with esbuild (71)
(SHA: 590a4b6)
24) misc: fix silent "rejected promise not handled within 1 second" error (71)
(SHA: 7937ef4)
25) ci: publish pre-release versions automatically (71)
(SHA: 96fc46f)
26) ci: fetch packages before running vsce / yarn run (71)
(SHA: 547ffc4)
27) misc: add basic nix flake / direnv setup (71)
(SHA: 986d728)
28) api: fix typing error caused by overload
also use "as Iterable<string>" to clarify intent with new Set() constructor (71)
(SHA: 6a36f0d)
29) readme: link to dance.run docs (71)
(SHA: cced113)
30) readme: fix formatting (71)
(SHA: 20f85ec)
31) readme: link to custom mode example (71)
(SHA: 1faf63f)
32) misc: only depend on tree-sitter.ts (71)
(SHA: dc68b02)
33) package.json: replace glob-exec with globstar for compiling tests
glob-exec does not seem to work on macos (71)
(SHA: e15330a)
34) fix register view error handling (fixes #316) (71)
(SHA: 5fffe3b)
35) registers: do not assign ascii letters to special registers (fixes #318) (71)
(SHA: fe89fb5)
36) misc: bump version to 0.5.13 (71)
(SHA: f0f58f5)
37) ci: fix publishing workflow (71)
(SHA: d630c38)
38) ci: allow skipping duplicates (71)
(SHA: 5d5efc0)
39) ci: upgrade publish-vscode-extension (71)
(SHA: 715542d)
1) commands: change Alt modifier for rotate commands (71) (SHA: d7fc7e4) 2) misc: some typescript changes (71) (SHA: 17aec4e) 3) api: make switchToDocument a no-op for same doc Switching to a document always leads to VS Code focusing on the document in a **non-diff** editor, so if we focus on the current document while editing it in a diff-editor, it will exit the diff, which is undesired. This change makes switchToDocument a no-op when switching to the current document, avoiding this problem. Fixes #268. (71) (SHA: a8cc624) 4) actions: clean up main.yml - separate publishing to a separate job - remove redundant calls to `success()` - only publish if `github.event_name` is "push" (71) (SHA: cd05df6) 5) commands: fix argument not being properly passed to .run (71) (SHA: ad61336) 6) commands: prepare support for multiple layouts and locales (71) (SHA: 1341210) 7) commands: accept modifiers e.g. (?i) in regexps (71) (SHA: 6d305ef) 8) commands: add .seek.leap (wip) Inspired by https://github.com/ggandor/leap.nvim, `.seek.leap` leaps to the first position on the screen that matches the two given characters, with the ability to further jump to other labels. `s` and `a-s` are rebound to call `.seek.leap` when all current selections are empty. Unfortunately, due to limitations in VS Code (/ lack of proper hacks in Dance), the character sent directly after the leap will be ignored. (71) (SHA: 8d3e539) 9) package.json: bump version to 0.5.12 (prerelease) (71) (SHA: 73d32ad)
1) misc: convert .then() to await in most functions (71) (SHA: bea5c50) 2) misc: upgrade dependencies (71) (SHA: 12c7877) 3) test: disable last (flaky) history test (71) (SHA: 8c9f9c2) 4) misc: fix code style (71) (SHA: 8439f2a) 5) api: fix run with non-dance commands (fixes #262) (71) (SHA: 771a8bc) 6) misc: fix .build.ts detection on Windows (71) (SHA: a869306) 7) package.json: bump version to 0.5.11 (71) (SHA: d719077)
1) misc: upgrade dependencies and fix packaging issues (71) (SHA: 6611fe6) 2) test: disable flaky history test (71) (SHA: 3230c23) 3) build(deps): bump minimist from 1.2.5 to 1.2.6 Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] <[email protected]> (dependabot[bot]) (SHA: fe55de8) 4) api: use search in moveTo (fixes #251) (71) (SHA: e5a821e) 5) api: respect automation profile to run commands (fixes #248) (71) (SHA: 4e9d32f) 6) api: let node.js handle missing automation profile (71) (SHA: 74d2238) 7) commands: pass input to first command in additional commands list (71) (SHA: 57fc476) 8) misc: support escape sequences in regexp replacement strings (fixes #252) (71) (SHA: 1bd3a7c) 9) misc: add keybindings for numpad keys (fixes #137) (71) (SHA: da1682b) 10) api: improve allowed run patterns (fixes #256) (71) (SHA: cd345d5) 11) misc: change how commands are defined and executed (fixes #258) (71) (SHA: 7f1963c) 12) commands: fix .history.repeat.seek (fixes #257) (71) (SHA: c7ded66) 13) commands: add .selections.changeOrder, .selections.sort (71) (SHA: 6ae4288) 14) misc: rename input to more accurate identifiers (71) (SHA: 3430afb) 15) misc: fix recursive module dependency (71) (SHA: 3929318) 16) test: disable other flaky history test (71) (SHA: d8e1553) 17) package.json: bump version to 0.5.10 (71) (SHA: 29d9b02)
1) misc: rename step of main GitHub action (71) (SHA: 2cfa928) 2) api: export Registers instead of a register function (fixes #214) (71) (SHA: 0ad9833) 3) commands: add action argument to .selections.restore.withCurrent (fixes #215) (71) (SHA: f6fa713) 4) recipes: move recipes to wiki (71) (SHA: e6af50d) 5) commands: respect editor.language.brackets in .seek.enclosing (fixes #210) (71) (SHA: 4967bf9) 6) doc: fix doc parser (71) (SHA: eb21890) 7) api: properly handle notebooks in .selections.restore (fixes #217) (71) (SHA: 4c2b8f5) 8) tests: fix typing error (71) (SHA: 56d4e6b) 9) api: fix Selections.endsWithEntireLine (fixes #218) (71) (SHA: 29f4ab9) 10) misc: fix vscode-based settings reading (71) (SHA: 9e3bbe9) 11) commands: jump instead of selecting for c-{fdbu} (fixes #224) (71) (SHA: 9265b42) 12) doc: improve src/commands/README.md - escape pipes in tables - add better links - print default keybindings (71) (SHA: 6d59e4c) 13) commands: fix some usages of .seek.enclosing (71) (SHA: 6603df9) 14) api: no longer use namespaces Namespaces are no longer being used, so APIs such as `replace.byIndex` are now `replaceByIndex`. This slightly improves the generated code and the editing experience. (71) (SHA: ffe1db9) 15) api: rename Range to Objects (71) (SHA: 944bf1e) 16) misc: remove debug code (71) (SHA: 1bbd626) 17) api: use expect instead of assert in tests (71) (SHA: 2389a77) 18) commands: add title argument to .showMenu (fixes #228) (71) (SHA: b98437a) 19) implement g a to switch to previous buffer (71) (SHA: c16096c) 20) commands: ignore Escape when markers are visible (fixes #237) (71) (SHA: 925f173) 21) misc: enable noImplicitOverride and noPropertyAccessFromIndexSignature in tsconfig (71) (SHA: 55dde9d) 22) misc: fix typo (71) (SHA: 1483e7d) 23) misc: fix infinite loop in regexp analyzer (71) (SHA: 6b8c5b8) 24) api: fix commands ignoring count and register changes (71) (SHA: 042a044) 25) misc: add registers view (71) (SHA: db2fbbf) 26) doc: remove disclaimer and update README (71) (SHA: e57f951) 27) misc: fix style, eslint config (71) (SHA: 54fccd5) 28) misc: improve sidebar logo (71) (SHA: 4332956) 29) commands: fix esc, s-q not stopping recording (fixes #243) (71) (SHA: ff1df1c) 30) package.json: bump version to 0.5.9 (71) (SHA: 577d168)
1) commands: fix doc for history.repeat (71) (SHA: 1625ca7) 2) commands: use run instead of commands by default in dance.run (71) (SHA: 6c63542) 3) commands: improve .edit.insert: add text argument and use shift instead of select (71) (SHA: e5d7752) 4) commands: fix type error for edit and newLine (71) (SHA: 8ed6c65) 5) history: add utils and initial tests for history replaying (71) (SHA: a844ede) 6) modes: allow setting textStyle (71) (SHA: f22f603) 7) doc: tweak conf section language (#208) * Tweak conf section language Switching to `js` for the config sample causes the comment to render as a comment. Bit unfortunate, but probably a net improvement :) * Updated to jsonc formatting in README (stuarth) (SHA: d17c6cd) 8) api: remove all circular dependencies (71) (SHA: a3213bd) 9) api: export Selections, Positions and Lines as modules instead of namespaces (71) (SHA: d0a6047) 10) api: re-order exports in index (71) (SHA: 44012f6) 11) package.json: bump version to 0.5.8 (71) (SHA: 6388c0a) 12) misc: publish extension automatically on version bump (71) (SHA: 54d4040)
PreviousNext