Skip to content

Latest commit

 

History

History
587 lines (434 loc) · 42.5 KB

CHANGELOG.md

File metadata and controls

587 lines (434 loc) · 42.5 KB

Change Log

All notable changes to the "cursorless" extension will be documented in this file.

0.25.0 (2022-01-09)

Full Changelog

Highlights

New languages

Improved Jupyter notebook support

We're beefing up our support for Jupyter notebooks. This release adds support for cross-cell cursor movement:

"Clear harp"

Expect more cool stuff in future releases.

Miscellaneous

  • You can now abbreviate "slice past" to just "slice", eg "pre air slice bat" instead of "pre air slice past bat"

Issues / PRs

Fixed bugs:

  • Support moving cursor between cells in a notebook #420
  • Support "key" and "value" with javascript object property shorthand #369
  • fold/unfold requires funk modifier #72
  • Fix bug with "every funk" in private class function #22

Merged pull requests:

0.24.1 (2021-12-23)

Full Changelog

Merged pull requests:

0.24.0 (2021-12-21)

Full Changelog

Highlights

New languages

"Take round"

We now support targets which consist of matching pairs of parentheses, square brackets, curly brackets, etc. These targets make cursorless a lot more useful in places where we don't have a parse tree, for example in markdown, plaintext or within a string or comment. See the docs for more info, but in case you're one for GIFs:

"Clear square"

And another one:

"Swap pair ox with pit"

This scope type pairs nicely with the new "repack" action:

"Curly repack ox"

"Slice" ranges

We now support vertical ranges which put a selection on every line between the start and end of the range:

Here's a simple(-ish 😊) example:

"Pre cap slice past green risk"

And a more advanced one:

"Chuck tail red pipe slice past end of file"

See the demo video for more.

Auto-joining targets

It is now possible to bring multiple sources to a single destination using the "bring" and "move" actions. The type of the source / destination will be used to determine how the sources are joined.

Here's an example where we bring multiple lines to the current cursor position:

"Bring line harp and sun and made"

And here's an example with an explicit destination:

"Move arg air and each to after drum"

And much more!

There's too much new stuff in this release to fit in a highlights reel, so we'll be releasing more videos, GIFs, and blurbs over the next couple weeks. In the meantime, below is a comprehensive list of PRs and issues included in this release.

Issues / PRs

Implemented enhancements:

  • Basic clojure support #373
  • Modifier that allows you to put cursor on column in every row between two targets #345
  • Support "round rewrap" action #270
  • Auto-join multiple targets with new lines #237
  • Add text-based surrounding pair implementation #218
  • Support auto-joining multiple arguments #184
  • Add "remove cursor" action #95
  • Support "enclosing <symbol>" transformation #14
  • Don't write hat_styles.csv if there was error reading VSCode settings #134
  • Be more robust to not finding settings file #119
  • Pop up notification when there is a problem finding / loading vscode settings #91
  • Change some default terms #66

Fixed bugs:

  • Text-based surrounding pair doesn't work in json strings #364
  • Angle bracket surrounding pair for type parameters in typescript #363
  • Fix Typescript text-based surrounding pairs #355
  • Hats don't show up when the line contains a £ #315
  • Automatic token expansion doesn't work if token is offscreen #298
  • "chuck type" leaves trailing colon #281
  • Use time stamps for decorated marks #249
  • Improve and unify selection updating behaviour to handle overlapping ranges #138
  • Duplicate symbols after VS Code update #111
  • Fold action not working properly with multiple list elements #39
  • The clear command clashes with Knausj commands #68

Closed issues:

  • Fix Windows CI regression #388
  • Add code links to hat snapshots doc #358
  • Add scope type for condition/guard #336
  • Get unit tests working again #16
  • Update scope type documentation #124
  • Replace try/except with hasattr #117
  • Not recognising colour/shape modifiers #100
  • Cheatsheet surrounding pair delimiters; other improvements #67

Merged pull requests:

0.23.0 (2021-10-27)

Full Changelog

Highlights

[experimental] Wrap with snippet

There is now experimental support for wrapping a target in a snippet. See the docs for more info. Expect snippet insertion and automatic snippet creation in the next release.

Wrapper snippet demo

Issues / PRs

Implemented enhancements:

  • Support "wrap with snippet" #21

Closed issues:

  • Change inference rule for “bring <mark> to <scopeType>” #283

Merged pull requests:

0.22.0 (2021-10-06)

Full Changelog

Highlights

Customizing spoken forms by csv

One of the biggest changes in this release is support for customizing nearly every spoken form via csv. So if you find the color name "plum" hard to remember, you can just change it to "pink". Or if "format" as an action name is just too long for you, change it to "form". The spoken forms in your csv's will be preserved across cursorless updates, even if we change the default spoken form going forward.

If you have a fork of cursorless-talon just to change some spoken forms, please try out the new csv's! Should make updating cursorless-talon much easier in the future 😊. If you still need to maintain a fork for some other reason, please file an issue. We'd like cursorless-talon to be the same for all users, so that we can move to a talon plugin model in the future.

Extra shapes

Another major usability issue addressed in this release is the fact that you will run out of dots on a text-heavy screen, or when trying to target other splits. We now support 10 new shapes. You can turn them on with one click in your extension settings, as described in the docs. And of course, you can change the spoken form for any shape as described above.

Turning off colors

If you find it difficult to distinguish the colors, and tweaking them doesn't work, you can just turn some colors off with one click in the same way you turn shapes on / off. Adding a couple of shapes will more than make up for the lost hats.

Fix bug with click target area

There was a bug where cursorless hats would obstruct the target area when clicking with the mouse. This issue didn't affect cursorless operation, but was quite painful when using a mouse / eyetracker. That issue is now fixed.

Gotchas

  • You may need to tweak your hat sizes, because we made a fix to the algorithm that computes them based on font size

Issues / PRs

Implemented enhancements:

  • Invert color settings #271
  • Do one more pass at shapes and colors #269
  • Treat hex colors as single tokens #266
  • Regular expression splits words with swedish characters #252
  • Add modifier preferences support #230
  • Implement delimiter generators for "change" #219
  • Switch svg colour code to use themes properly #212
  • Add action term override csv #40

Fixed bugs:

  • "take every value" is broken in python #257
  • SVG hat obstructs click target area #110
  • Fix decoration appearing after GitLens Current Line Blame #92

Closed issues:

  • Move token scope type code out of navigation map #236
  • Filter out duplicate selections #228
  • Set decoration sleep timeout to 0 during tests #175
  • Fix nondeterministic test failures #173
  • Review all identifiers #62
  • Add missing things to cheatsheet #17

Merged pull requests:

0.21.0 (2021-08-17)

Full Changelog

Implemented enhancements:

  • Improve error messages for sub token modifiers #201
  • Rename xmlAttribute scope type to attribute #198
  • Change highlight for insert new empty line #139
  • Add "source" mark #107
  • Add "reversed" modifier #99
  • Add "reverse" action #98
  • Add "sort" action #97
  • Scope modifier for regex #89
  • Support "map" and "item" modifiers for pattern destructuring #85
  • Support "reformat as" action #74
  • Support head and tail modifiers #70
  • Support duplication of lines #55
  • Support numeric ranges for insert #48
  • Support absolute line number mark #44
  • Standardize and align on terms for map entries and list elements #40
  • Support "call" action #38
  • Add "phones" action #31
  • Support "replace with" action #15
  • Support subword for token containing cursor #10
  • Infer type of first swap argument #8

Fixed bugs:

  • "Value" scope type in Python doesn't work when value contains array index #223
  • "Take past end of token" doesn't work #222
  • "token" modifier doesn't work with ranges #221
  • "take every key" and "take every value" are broken #220
  • "Chuck past end of T" removes trailing delimiter #209
  • Containing token inference doesn't work next to single-character token #200
  • "float" highlights wrong line when applied to last line of file #197
  • Breakpoint action not working on mac #195
  • "take block" ends up with reversed selection #155
  • "dupe block" should add an extra newline before the new block #154
  • "Pour block" creates new line after the wrong line #153
  • Space delimiter code is too aggressive #152
  • "arg" modifier doesn't work in javascript #109
  • Support Javascript template literals for string scope #86
  • Fix function transformation in Typescript with "export default" #20
  • Merge sequential pending change highlights #2

Closed issues:

  • Switch to flow-style for simple objects in test yaml dump #161
  • Implement scope modifier for argument name #144
  • Add documentation for how to add a new language #132
  • Change "copy", "paste" and "cut" actions by moving selection and using built-ins #127
  • Error: Cannot read property 'rootNode' of undefined #113
  • Make test case recorder #59
  • "token" selection type should expand to nearest containing token #37
  • Change “if” to “if state” #50
  • Try “pre” instead of “pree” #22

Merged pull requests:

0.20.0 (24 July 2021)

Enhancements

Bugs fixed

Code quality

0.19.0 (16 July 2021)

Enhancements

  • Support "move", "bring to after" / "move to after", and properly cleaning up spaces / newlines on delete

0.18.0 (12 July 2021)

Enhancements

  • Add support for untrusted workspaces (#104)

0.17.0 (9 July 2021)

Documentation

0.16.0 (9 July 2021)

Enhancements

  • Svg Hats (#66)
  • Add type modifier (#32)
  • Updated regexp to support fixed tokens and sequential symbols (#33)
  • Add name modifier (#56)
  • Added actions to scroll target top/center (#58)

Fixes

  • Fix subword for all caps tokens (#67)

0.15.0

  • Support "character" subtoken modifier (eg "take fine third character") (thanks @brxck!)

0.14.0

  • Support insertLineBefore and insertLineAfter actions ("drink" and "pour")

0.13.0

  • Support "file" selection type to refer to the entire file
  • Improve error messages

0.12.0

  • Add subword support
  • [python] Fix parameter modifier
  • Show exceptions to user
  • Properly support using "token" to select only token, eg "take funk gust and token fine" to prevent "fine" from being inferred to have the function modifier.
  • Support "bring" action to use another target from elsewhere in the document

0.11.0

  • Simplify token regex

0.10.0

  • Add Python support

0.9.0

  • Support "string" and "comment" scope types

0.8.0

  • Support "fold", "unfold", and "swap" actions

0.7.0

  • Support "cut" action (default term in vscode-talon is "carve")

0.6.0

  • Support "copy" action

0.5.0

  • Support "that" to refer to previous target
  • Support "extract" action to extract to constant

0.4.0

  • Support pair key and value nodes
  • Support selecting all siblings

0.3.0

  • Support wrap

0.2.0

  • Add support for arguments and pairs