question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Dance 0.5.0 wishlist

See original GitHub issue

Dance 0.5.0 is coming. It’s basically rewritten from scratch to be nicer to work on, and to add many more features that work well together.

It’s still very much a work in progress, but I’d like to know what features you’d like to see in this release, and more importantly what you’d like to do with the upcoming features.

At the source-code level, a new API is introduced, which is very easy to document and test. Having more tests will hopefully make Dance more stable in the long term. Also, the root commands directory is removed, and instead all commands are defined directly in src/commands using JSDoc. Now, there is a single source of truth.

At the user level, a lot of things will change too:

  • Status bar items are more useful.
  • Most commands either take arguments or are implemented by passing arguments to existing commands.
  • The “character” selection behavior is now designed to work with "block" cursor styles. It will no longer mess with your selections while you’re editing, so you won’t have single characters highlighted when navigating your code. It should also make it easier to work with for maintainers.
  • All modes are now custom. You can customize which mode is the default mode, as well as define your own modes that inherit from VS Code or from other custom modes. The default will still be the Kakoune-like insert / normal modes, but I have other things modes in mind for the future.
  • A new command, dance.run, will be added. It will be able to run custom JavaScript code with access to the Dance API, allowing complex scripts (for instance, manipulating different selections individually).

The last thing I’d like to change is how keybindings are defined. I wanted to add a dance.defaultKeybindings option / context value, but unfortunately even if we set this to false the keybindings still appear in the command palette. As such I’d like to simple remove all default keybindings, and to add utilities in the Dance API for generating keybindings (that can then be pasted into keybindings.json).

Another nice thing about this solution is that it would make supporting alternative keyboard layouts and Mac easier. Unfortunately, removing default keybindings may make it harder for new users to get started.

So, any feedback?

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Reactions:12
  • Comments:21 (18 by maintainers)

github_iconTop GitHub Comments

5reactions
71commented, May 16, 2021

We still find bugs from time to time, but I think it’s close to being as stable as 0.4 (if not more stable). The changes I made to history recently had me remove the command “Jump to last modification”, so I have to re-implement it and then it should be a few days until the release.

5reactions
71commented, Apr 27, 2021

I’m getting close to being done with Dance 0.5. The remaining things before releasing it are:

  1. Porting all remaining tests.
  2. Ensuring that they all pass.
  3. Adding a few more recognized patterns for replaying history.

Edit: I also just added something I had forgotten until now: safer settings. Until now, menus and modes could be overridden in the current workspace, and therefore they could be configured to silently execute arbitrary commands (with dance.run, that’s a no-no). With the latest changes to 0.5, if a menu item or mode already existed at the global level, workspace settings won’t be able to override the commands it might run.
It might be nice to add a way to disable this on a per-workspace basis, but this will have to wait for a future release.

After this I’ll probably take a break from working on Dance, but for the near-ish future I’m planning:

  • For 0.5.x, to add new tests, especially regarding the history and the new API.
  • For 0.6.0, improving the API, especially regarding keybindings. For now all keybindings are bundled with Dance, but for this release I’d like all keybindings to be generated with the keybindings API, with support for other layouts like azerty.
    • I’d like to add a compatibility mode with Kakoune, too. Many of the newer commands have a parameter to behave more like Kakoune, but can be tweaked to behave in a way that I personally prefer.
  • For 0.6.x, I’ll add more tests and flesh out the documentation.

And after that hopefully I’ll release Dance 1.0 with a stable API and minimal bugs.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Just Dance 2023 Wishlist - YouTube
Just Dance 2023: Updated Wishlist · Just Dance 2022: Full Songlist & Regional Exclusives (18-11-21) · 1st JUST DANCE 2023 STREAM w/ ...
Read more >
Alpaca Party - Apps on Google Play
Dance, Groom, Collect, Repeat! Alpaca Party brings the party to you with fun and casual, jump-in, jump-out alpaca collecting antics!
Read more >
Project OutFox - Facebook
Check out our new trailer and wish list us at https: //store.steampowered. ... A pre-alpha testing program for Alpha 0.5.0 will begin
Read more >
https://www.amazon.com/registry/wishlist/35T1H1L1C...
No information is available for this page.
Read more >
IDE Setup - Apache Brooklyn
This content is for Brooklyn 0.5.0, and may differ across versions. ... But with a bit of a dance the IDE can still...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found