-
-
Notifications
You must be signed in to change notification settings - Fork 85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release 0.29.0 #2621
Merged
Merged
Release 0.29.0 #2621
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
87 changes: 87 additions & 0 deletions
87
packages/cursorless-org-docs/src/docs/user/release-notes/0.29.0.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
--- | ||
version: "0.29.0" | ||
releaseDate: "2024-08-02" | ||
--- | ||
|
||
# Release Notes for 0.29.0 | ||
|
||
## Preamble | ||
|
||
Welcome to the last pre-1.0 Cursorless release notes! As you may or may not already know, Cursorless is all-in on continuous delivery, so you get features as soon as they hit `main`. But to keep up the 🙌🎉🎸 around releases and to give you that which you already have but do not know, we now do release notes. If you like what we've been up to, consider [sponsoring the project](https://github.com/sponsors/pokey) so we can afford the legal bills when Netflix sues me for the Law of Surprise reference above. | ||
|
||
Given we don't actually have "releases" (cf continuous delivery above), we're arbitrarily considering everything merged since [the last "release"](./0.28.0.md) to be part of this one. | ||
|
||
## The subject at hand | ||
|
||
Since the last release notes, we've merged [405 PRs from 18 authors](https://github.com/cursorless-dev/cursorless/pulls?q=is%3Apr+is%3Amerged+merged%3A2023-09-02..2024-08-02+sort%3Aupdated-asc+) (including a whopping [141](https://github.com/cursorless-dev/cursorless/pulls?q=is%3Apr+is%3Amerged+merged%3A2023-09-02..2024-08-02+sort%3Aupdated-asc+author%3AAndreasArvidsson) from [@AndreasArvidsson](https://github.com/sponsors/AndreasArvidsson)!), so let's get to it 🏎️ | ||
|
||
### Next-gen all day | ||
|
||
Welcome to the next-gen. We've now migrated all scopes for nearly every language to our new, more powerful next-gen scope engine, enabling next-gen inference (eg `"every funk air past bat"`), scope visualization, scope tree view, etc. | ||
|
||
We've also migrated many of our globally available text-based scopes, including surrounding pairs, so you can now say things like `"copy next round"`, `"chuck two strings"`, etc. Surrounding pair scopes also form the basis for other scopes, such as `"short paint"`, which is like `"paint"` (expand till you hit whitespace), but stops when it hits a closing bracket. This enabled us to easily add a new scope called `"short block"` ([video 🎬](https://youtu.be/GEFJKOSiAPQ)) | ||
|
||
In addition to migrating old scopes, we added a couple new languages: yaml and lua. So now that Cursorless understand the [arcane vagaries of yaml](https://noyaml.com/), you're free to spend time on the big things, like wondering what you did wrong in a past life to end up writing yaml all day. | ||
|
||
### New modifiers | ||
|
||
Everyone loves `"take two tokens"`, `"chuck next two lines"`, and `"bring air to every instance two tokens bat"` (maybe that last one is just me?). What everyone doesn't love is saying `"pre two lines air"` and wondering why you end up with one cursor at the start of line `"air"`. Well allow me to introduce you to the new, more powerful `"every"` modifier. You can now put an `"every"` in front of any modifier that refers to multiple scopes, and instead of constructing a range from the first to the last, Cursorless will let you target them individually. So `"take every two tokens"` will give you two selections, `"pre every two lines air"` will give you cursors at the start of those two lines, and `"ski wrap every three strings air"` is how I wrapped the first three commands in this paragraph backticks when I realised I forgot to give them styling. | ||
|
||
### Interactive tutorials | ||
|
||
Yep, they're here. I'll let myself speak for myself here ([video 🎬](https://youtu.be/5XLbfzcyTvs)) | ||
|
||
### Cursorless everywhere | ||
|
||
We're taking those first wobbly, beautiful steps out of VSCode 🐣🥲. We have now shipped very early, experimental support for [Cursorless in Neovim](https://github.com/hands-free-vim/cursorless.nvim). It's still missing hats and a parse tree, but the engine is there. We've landed; now we'll expand. Big shout-out to the dream team, [@saidelike](https://github.com/saidelike) and [@fidgetingbits](https://github.com/fidgetingbits), for the long hours and shower of tears as this came together. This one shipped with continuous delivery, because we're psycho about CD, so any improvements to Cursorless will automatically make their way into Neovim using the confusingly-named Lazy package manager 🤔 | ||
|
||
We also have an internal experiment with a version of Cursorless that runs literally anywhere, using accessibility APIs. This one is so experimental that I'll probably get in trouble for even mentioning it. So definitely don't heckle @AndreasArvidsson and @phillco to tell you how to play with this completely not-ready-for-primetime early experiment. | ||
|
||
### New hat shapes | ||
|
||
It's unfortunate that we don't record our Discord sessions, because the discussions about the new hat shapes would make fantastic examples for the Wikipedia page on [bike-shedding](https://en.wikipedia.org/wiki/Law_of_triviality). I'm really happy with how they turned out. Except for fox. Such a shame about that pixel. | ||
|
||
### Strange Loop 2023 | ||
|
||
ICYMI Cursorless went to Strange Loop. The talk was so wild that they had to close Strange Loop forever. Sorry. I really liked Strange Loop too. Here's the talk ([video 🎬](https://youtu.be/NcUJnmBqHTY)); I think it's a nice way to understand the concepts underlying Cursorless -- its platonic form, if you will. (And I really hope that you will.) | ||
|
||
### Improved Talon-side API | ||
|
||
We beefed up our Talon-side API to allow you to build your own grammars on top of Cursorless. See the [talon-side api docs](https://www.cursorless.org/docs/user/customization/#public-talon-actions) for more. | ||
|
||
We also have an undocumented, secret action that has a built-in parser for building arbitrarily powerful custom commands on the fly. You should also definitely not heckle @AndreasArvidsson and @phillco to tell you how to use this one either. | ||
|
||
### Experimental keyboard interface | ||
|
||
The keyboard interface continues to grow and is getting close to feature-parity with our spoken grammar, but is still very much in the experimental phase. We're looking for feedback on this one, so if you're interested in trying it out, come find us on Slack or Discord. | ||
|
||
### Falling back | ||
|
||
You know when you're in a text box or the VSCode integrated terminal and you're like "Man, I wish I could bring that line right to my cursor"? Do it. Go on. `"bring line air"`. You can also use some hatless Cursorless commands on your cursor in that text box (`"quad wrap token"`, `"copy two tokens backward"`, `"chuck third previous paint"`, etc etc etc nbd 🙄) | ||
|
||
### Cursorless sidebar | ||
|
||
Rumour has it ([video 🎬](https://youtu.be/4LKxAeWXpOA)) | ||
|
||
### Other stuff | ||
|
||
- New `"grand"` modifier that takes the scope one bigger than regular-old containing. Eg if you're trapped in a `"round"` and can't get to the bigger `"round"`, `"take grand round"` has your back 🤝 | ||
- New `"break"` and `"join"` actions to break and join lines, respectively. | ||
- New `"increment"` and `"decrement"` modifiers. Living that 0 to 1 mindset | ||
|
||
## 📈 What's next? | ||
|
||
Have a look at our [1.0 milestone](https://github.com/cursorless-dev/cursorless/milestone/11) for the near term; we're getting close | ||
|
||
After that, see our [medium-](https://github.com/cursorless-dev/cursorless/milestone/10) and [long-term roadmaps](https://github.com/cursorless-dev/cursorless/milestone/8), including: | ||
|
||
- Cursorless on vscode.dev / other VSCode web clients ([#1023](https://github.com/cursorless-dev/cursorless/issues/1023)). We're a lot closer to this one now, having already completely abstracted all node references from our core engine. | ||
- Cursorless for more IDEs, such as JetBrains, emacs, etc | ||
- Cursorless everywhere using accessibility comes out of secret mode | ||
- Vastly expanded Talon-side API comes out of secret mode ([#494](https://github.com/cursorless-dev/cursorless/issues/494)) | ||
- Bookmarking targets to allow more complex commands, even across multiple files ([#46](https://github.com/cursorless-dev/cursorless/issues/46)) | ||
- Changes that will enable more fluent chaining, such as modifying the target of a bring in a single phrase ([#414](https://github.com/cursorless-dev/cursorless/issues/414)) | ||
- More videos ([#506](https://github.com/cursorless-dev/cursorless/discussions/506)) | ||
- And so much more! | ||
|
||
We'd like to end with a massive thank you to [our sponsors 🎉](https://github.com/sponsors/pokey), without whom Cursorless development would not be possible! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think two tokens or ordinals work in our fallback code.