focus-editor / focus

A simple and fast text editor
GNU General Public License v3.0
1.82k stars 99 forks source link

Experimental quick cursor navigation #440

Open onelivesleft opened 1 month ago

onelivesleft commented 1 month ago

Adds the ability to jump the cursor by narrowing in on screen region. By default this is bound to ctrl+numpad; the screen is divided into a 3x3 grid, the number you hit selects a cell. Hitting again will divide that cell into a 3x3 grid, and so on.

Added config setting: grid_navigation_display_duration

Added keybinds:

grid_navigation_reset
grid_navigation_southwest
grid_navigation_south
grid_navigation_southeast
grid_navigation_west
grid_navigation_center
grid_navigation_east
grid_navigation_northwest
grid_navigation_north
grid_navigation_northeast

The code should allow for holding shift to extend the selection while you do this. However, dumb windows behavior screws this up; that is, holding shift on windows disables numlock, so the keys register differently (i.e you get Home instead of Numpad7). If the user were to remap, for instance to ctrl+tyughjbn, then the shift selection extension should work. I think we might be able to add the ability to bind explicit scancodes rather than virtual ones, to get round this problem: https://learn.microsoft.com/en-us/windows/win32/inputdev/about-keyboard-input#scan-codes