vim: Support gn command and remap gn to gl (#9982)

Release Notes:

- Resolves #4273

@algora-pbc /claim #4273

This is a work-in-progress. The process for `gn` command is:

- maintain updated vim.workspace_state.search.initial_query
- modify editor.select_next_state with
vim.workspace_state.search.initial_query
- use editor.select_next()
- merge selections
- set editor.select_next_state to previous state

To make this possible, several private members and editor structures are
made public. `gN` is not yet implemented and the cursor still does not
jump to the next selection in the first use.

Maybe there is an better way to do this?

---------

Co-authored-by: Conrad Irwin <conrad.irwin@gmail.com>
This commit is contained in:
joaquin30 2024-04-05 21:23:37 -05:00 committed by GitHub
parent fe4b345603
commit bf9b443b4a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 311 additions and 89 deletions

View file

@ -0,0 +1,14 @@
{"Put":{"state":"aaˇ aa aa aa aa"}}
{"Key":"/"}
{"Key":"a"}
{"Key":"a"}
{"Key":"enter"}
{"Get":{"state":"aa ˇaa aa aa aa","mode":"Normal"}}
{"Key":"c"}
{"Key":"g"}
{"Key":"n"}
{"Key":"x"}
{"Key":"escape"}
{"Get":{"state":"aa ˇx aa aa aa","mode":"Normal"}}
{"Key":"."}
{"Get":{"state":"aa x ˇx aa aa","mode":"Normal"}}

View file

@ -0,0 +1,14 @@
{"Put":{"state":"aaˇ aa aa aa aa"}}
{"Key":"/"}
{"Key":"a"}
{"Key":"a"}
{"Key":"enter"}
{"Get":{"state":"aa ˇaa aa aa aa","mode":"Normal"}}
{"Key":"d"}
{"Key":"g"}
{"Key":"n"}
{"Get":{"state":"aa ˇ aa aa aa","mode":"Normal"}}
{"Key":"."}
{"Get":{"state":"aa ˇ aa aa","mode":"Normal"}}
{"Key":"."}
{"Get":{"state":"aa ˇ aa","mode":"Normal"}}

View file

@ -0,0 +1,39 @@
{"Put":{"state":"aaˇ aa aa aa aa"}}
{"Key":"/"}
{"Key":"a"}
{"Key":"a"}
{"Key":"enter"}
{"Get":{"state":"aa ˇaa aa aa aa","mode":"Normal"}}
{"Key":"g"}
{"Key":"n"}
{"Get":{"state":"aa «aaˇ» aa aa aa","mode":"Visual"}}
{"Key":"g"}
{"Key":"n"}
{"Get":{"state":"aa «aa aaˇ» aa aa","mode":"Visual"}}
{"Key":"escape"}
{"Key":"d"}
{"Key":"g"}
{"Key":"n"}
{"Get":{"state":"aa aa ˇ aa aa","mode":"Normal"}}
{"Put":{"state":"aaˇ aa aa aa aa"}}
{"Key":"/"}
{"Key":"a"}
{"Key":"a"}
{"Key":"enter"}
{"Get":{"state":"aa ˇaa aa aa aa","mode":"Normal"}}
{"Key":"3"}
{"Key":"g"}
{"Key":"n"}
{"Get":{"state":"aa aa aa «aaˇ» aa","mode":"Visual"}}
{"Put":{"state":"aaˇ aa aa aa aa"}}
{"Key":"/"}
{"Key":"a"}
{"Key":"a"}
{"Key":"enter"}
{"Get":{"state":"aa ˇaa aa aa aa","mode":"Normal"}}
{"Key":"g"}
{"Key":"shift-n"}
{"Get":{"state":"aa «ˇaa» aa aa aa","mode":"Visual"}}
{"Key":"g"}
{"Key":"shift-n"}
{"Get":{"state":"«ˇaa aa» aa aa aa","mode":"Visual"}}