Allow for targeting the visible part of wrapped last lines
NVIM v0.6.0-dev+266-g5fd21b8d3 Lightspeed: 27625ea437f44570477a608a1091ece9e244fb53
If I have some very long lines which are wrapped, lightspeed doesn't seem to let me search everything visible. This may be a deliberate limitation for performance?
It's easier to see with a video. I have 3 lines. From line 1, I can only "query" (with s) into lines 1 and 2. From line 2, I can only query into line 2. I think it's to do with line 3 ending off screen?
https://user-images.githubusercontent.com/866010/134817249-ab4a655c-5ee3-47b3-9d7d-97c3776f29f1.mp4
(if embed is broken https://streamable.com/rvs7as)
Content used, but any long, wrapped content will work.
Ipsum accusamus minus totam eum aliquid. Nisi animi accusantium nam suscipit mollitia. Quae animi veritatis at ex unde! Natus doloribus ducimus mollitia provident facere Pariatur hic omnis adipisci eos consequuntur Ipsum accusamus minus totam eum aliquid. Nisi animi accusantium nam suscipit mollitia. Quae animi veritatis at ex unde! Natus doloribus ducimus mollitia provident facere Pariatur hic omnis adipisci eos consequuntur Ipsum accusamus minus totam eum aliquid. Nisi animi accusantium nam suscipit mollitia. Quae animi veritatis at ex unde! Natus doloribus ducimus mollitia provident facere Pariatur hic omnis adipisci eos consequuntur Ipsum accusamus minus totam eum aliquid. Nisi animi accusantium nam suscipit mollitia. Quae animi veritatis at ex unde! Natus doloribus ducimus mollitia provident facere Pariatur hic omnis adipisci eos consequuntur Ipsum accusamus minus totam eum aliquid. Nisi animi accusantium nam suscipit mollitia. Quae animi veritatis at ex unde! Natus doloribus ducimus mollitia provident facere Pariatur hic omnis adipisci eos consequuntur Ipsum accusamus minus totam eum aliquid. Nisi animi accusantium nam suscipit mollitia. Quae animi veritatis at ex unde! Natus doloribus ducimus mollitia provident facere Pariatur hic omnis adipisci eos consequuntur Ipsum accusamus minus totam eum aliquid. Nisi animi accusantium nam suscipit mollitia. Quae animi veritatis at ex unde! Natus doloribus ducimus mollitia provident facere Pariatur hic omnis adipisci eos consequuntur Ipsum accusamus minus totam eum aliquid. Nisi animi accusantium nam suscipit mollitia.
Consectetur autem cupiditate nemo harum pariatur! Vero unde adipisci velit aperiam in. Nostrum aspernatur eligendi hic praesentium optio Tenetur officiis aperiam non necessitatibus architecto Beatae sit ex dolor doloremque doloribus. Consectetur autem cupiditate nemo harum pariatur! Vero unde adipisci velit aperiam in. Nostrum aspernatur eligendi hic praesentium optio Tenetur officiis aperiam non necessitatibus architecto Beatae sit ex dolor doloremque doloribus. Consectetur autem cupiditate nemo harum pariatur! Vero unde adipisci velit aperiam in. Nostrum aspernatur eligendi hic praesentium optio Tenetur officiis aperiam non necessitatibus architecto Beatae sit ex dolor doloremque doloribus. Consectetur autem cupiditate nemo harum pariatur! Vero unde adipisci velit aperiam in. Nostrum aspernatur eligendi hic praesentium optio Tenetur officiis aperiam non necessitatibus architecto Beatae sit ex dolor doloremque doloribus.
Adipisicing consequuntur obcaecati dolorem quae reprehenderit Perspiciatis reiciendis architecto molestiae odio corporis Architecto soluta optio quaerat expedita expedita. Neque voluptate tempora magni consectetur suscipit ea. Architecto nihil vitae delectus a? Adipisicing consequuntur obcaecati dolorem quae reprehenderit Perspiciatis reiciendis architecto molestiae odio corporis Architecto soluta optio quaerat expedita expedita. Neque voluptate tempora magni consectetur suscipit ea. Architecto nihil vitae delectus a? Adipisicing consequuntur obcaecati dolorem quae reprehenderit Perspiciatis reiciendis architecto molestiae odio corporis Architecto soluta optio quaerat expedita expedita. Neque voluptate tempora magni consectetur suscipit ea. Architecto nihil vitae delectus a? Adipisicing consequuntur obcaecati dolorem quae reprehenderit Perspiciatis reiciendis architecto molestiae odio corporis Architecto soluta optio quaerat expedita expedita. Neque voluptate tempora magni consectetur suscipit ea. Architecto nihil vitae delectus a? Adipisicing consequuntur obcaecati dolorem quae reprehenderit Perspiciatis reiciendis architecto molestiae odio corporis Architecto soluta optio quaerat expedita expedita. Neque volupccctate tempora magni consectetur suscipit ea. Architecto nihil vitae delectus a? Adipisicing consequuntur obcaecati dolorem quae reprehenderit Perspiciatis reiciendis architecto molestiae odio corporis Architecto soluta optio quaerat expedita expedita. Neque voluptate tempora magni consectetur suscipit ea. Architecto nihil vitae delectus a?
I think it's to do with line 3 ending off screen?
Yep, it's not part of the window area technically, i.e., it's beyond vim.fn.line("w$"). We could just include the whole w$+1 line in the search area of course, but we don't want to register (and label) invisible positions, we should know where the visible part ends.
This may be a deliberate limitation for performance?
Not at all, it's just not trivial to handle this. (EasyMotion has an open issue about this for a while now.) I'm not saying it's a terribly complex problem, I just haven't got the time to think it through yet. But this is on my todo list.
Someone just raised the issue in vim-sneak too. I hoped Justin will have an idea on how to handle this, but it's only the w$ + 1 workaround at the moment...