Giter VIP home page Giter VIP logo

Comments (4)

thenyeguy avatar thenyeguy commented on May 29, 2024 1

I discovered your leap.nvim plugin, and tried it. I actually find it less disorienting, even with safe_labels. I think the combination of (a) no graywash and (b) repeat being opt-in with enter means that the jumping behavior is a lot more predictable. Surprisingly I don't even miss timeouts being gone there, due to the predictability.

So maybe leap.nvim is just more what I'm looking for, and my thoughts on lightspeed are less relevant? Either way, kudos for your great plugins.

from lightspeed.nvim.

ggandor avatar ggandor commented on May 29, 2024

Currently, all uses of 2-character search use the same timeout (exit_after_idle_msecs.labeled).

No, that is not entirely true. It is as simple and consistent as possible: if there are labels on the screen, the labeled timeout value applies, if there are no labels, only match highlights, then the unlabeled one (otherwise it is a bug). The kind of motion doesn't matter. For example, if you do a repeated 2-char search, but there are lots of matches (more than the number of safe labels), you can see that after the initial ; the labels will disappear, and change to match highlights. (Otherwise you could not exit safely.)

On the other hand, it is an intentional feature that the labels usually remain active even after ;. You might notice that there are too many matches to ;;;;;; through them, and want to use the label instead. What you're really asking for is a means for disabling this feature, I guess.

The problem is, I'm actually considering removing the timeout option entirely. It is a pretty useless gimmick actually: you most probably want to do something after a jump; the only exception I could think of is if one has some very big scrolloff value set, and want to use a lightspeed motion as a substitute for scrolling; that sounds a bit silly for me though, and in any case, is far from being compelling enough.

from lightspeed.nvim.

ggandor avatar ggandor commented on May 29, 2024

otherwise it is a bug

...and indeed it is the case! Thanks for bringing this to my attention, I'll look into it ASAP.

Still, what about the rest (1. keeping the labels available as a worthwhile feature 2. do we need timeout at all)?

from lightspeed.nvim.

thenyeguy avatar thenyeguy commented on May 29, 2024

No, that is not entirely true. It is as simple and consistent as possible: if there are labels on the screen, the labeled timeout value applies, if there are no labels, only match highlights, then the unlabeled one (otherwise it is a bug).

After experimenting a little bit more, I actually found the thing that was most disorienting to me was safe_labels, since that is what causes a jump without remove the graywashing, or the labels when using instant repeat. I'm experimenting with unsetting safe_labels. With that unset, it's just the highlights not timing out that bother me. Sounds like that's just a bug.

Still, what about the rest (1. keeping the labels available as a worthwhile feature 2. do we need timeout at all)?

For highlights, I definitely like those timing out (both for instant repeat and for f/t motion). One thing I do pretty commonly is move to a place where I plan to work on next, without having fully decided what I actually want to do. Leaving the highlights indefinitely is distracting. It's more of a polish thing, since the only key that is still bottled is s, and you can always just escape out of it.

Sorry if I'm unclear! I've generally found lightspeed to behave intuitively, but it seems like you built some complex concepts to accomplish that. I definitely had to spend a decent amount of time reading the manual to try to map what I'm seeing onto all those concepts. Lightspeed is definitely my favorite easymotion-style plugin though. Thanks for considering my feedback!

from lightspeed.nvim.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.