-
Notifications
You must be signed in to change notification settings - Fork 3.6k
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
[WIP] Easy motion #12106
[WIP] Easy motion #12106
Conversation
Hi, I'm looking forward to this feature, although I'm a vim user, I understand that there is a partial audience of non-vim users, can these features be made public? |
@babyccino Thanks for sending this! I'm curious about the overlay approach vs the updates to the What other feedback would be helpful at this point? |
I realised that the highlight style approach just wasn't going to work. Trying to take away the copy on the highlight objects was proving to be a real pain. At the moment the copy is fine because that struct is pretty small so adding a field which is not copyable is totally changing the API. You'd also have to add some way of dealing with the style going over the boundary of two chunks. I just think that api is incompatible with what I'm trying to do I didn't really think about the performance to be honest because I just assumed adding a bunch of elements would be fine like it is in the browser 😅. The least hacky way I could see it being done is adding another layer of chunks into the Other than that I don't think any feedback will be all that helpful, you can see how rough it is at the moment and by the next time I push it'll be completely different. I'll try get it sort of usuable and then we can talk about it |
Screen.Recording.2024-05-23.at.3.55.33.PM.movIt's not pretty but it is sort of working! |
- used a very hacky keybind to stop vim motions overlapping with easy -
Screen.Recording.2024-05-24.at.1.42.04.AM.movComing along 🙂 |
We (probably) just need a cx.with_content_mask (or to re-use one of the ones that already exists in editor element rendering) |
Okay seems to be fixed now. I'll try and get some actual real world use with it next week |
Is this feature planned to be available outside of vim? |
Spectactular work by the looks of it. Thank you so much for putting in the effort. |
@ConradIrwin sorry haven't had much time to work on this. It's now back up to date with main. I haven't really got much real world use but it at least seems to work. Are you still interested in merging this? If so what else what we need to get done to make that happen |
TBH I am on the fence about merging it. On the one hand it's highly requested, on the other it's a large change that I'll probably end up having to maintain. Let me chat with some people internally and try and figure out what we want to do. If we do merge it, the code needs a bit of polish - deleting comments and unused functions, making the diff look good; etc. |
Ok, so I talked about this a bit internally, and I've decided that we're not going to merge this right now. This is very contextual, but it really boils down to three things for me:
I realize this is probably not the outcome you hoped for, and I'd like to be clear that this is just a "no right now", not a "no never". |
Pretty saddened by this, but I totally respect and understand your reasoning. Can you elaborate on why it's obviously not possible as an extension right now? And if and when that may change? Thanks! |
@ConradIrwin totally agree it should be a plugin but it is so pity we won't have this functionality anytime soon. |
@machin3io Zed extensions can currently only add languages, themes, and slash commands (https://zed.dev/docs/extensions/developing-extensions) I wonder if more elaborate extensions could start their lives as extensions within the Zed codebase and eventually be extracted out when the infrastructure is in place to support them. And, if so, perhaps easymotion-ish functionality might be a good early candidate for that sort of thing. Or maybe there are some existing smaller features (that I can't think of :)) that are better suited as early candidates. |
@baldwindavid Thanks, wasn't aware they are so limited still |
I did notice the new |
Obviously won't matter now but I've trimmed all the nonsense out of the diff, so it's now 21 files instead of 28 |
Once again, thank you so much for all your work. I hope it will see the light of the day. IMO, this feature alone would push zed to another level. |
Requested at #4930
Release Notes:
Current state: