Commit graph

437 commits

Author SHA1 Message Date
090d27d890
refactor: use {t} format specifiers 2025-12-04 14:44:53 +01:00
76f23b0824
fix: indent line rendering when scrolled right 2025-12-04 09:29:42 +01:00
f99e10652c
refactor: add Editor.with_cursels_const_repeat 2025-11-27 12:34:19 +01:00
c7c271e903
refactor: CurSel.to_selection is internal 2025-11-27 12:34:14 +01:00
8ba6e1843a
refactor: don't special case cursor rendering in inclusive mode
This is too confusing. Rendering cursors differently, only in inclusive
mode and only if there is an active selection is too confusing and pushes
a lot of edge cases into otherwise simple commands.

This will likely break a lot of the existing helix commands, but is better
in the long run to fix them anyway.
2025-11-27 12:34:10 +01:00
e134cfc949
refactor: use exaustive enum for whitespace 2025-11-26 16:40:08 +01:00
2ca1a742a1
feat: add whitespace_mode external 2025-11-26 16:39:48 +01:00
50a4336b8c
fix: incorrect line offset in goto_line_and_column 2025-11-26 12:06:56 +01:00
047409cd29
feat: add find_mode parameter to Editor.find_query 2025-11-25 21:51:23 +01:00
2ff0521040
refactor: move all zg LetterCasing usage to Buffer.unicode 2025-11-25 17:16:53 +01:00
86ec27893d
feat: implement case insensitive search (part 1) 2025-11-25 15:53:12 +01:00
bd976e0894
refactor: use Cursor.from_pos in PosToWidthCache.from_pos 2025-11-25 14:45:36 +01:00
4a0150d68f
refactor: add Cursor.from_pos and Seleciton.from_range
And use them to clean-up all root.pos_to_width call sites.
2025-11-25 14:37:05 +01:00
be41027d75
refactor: make Selection.from_pos infallible 2025-11-25 13:32:31 +01:00
34af852634
refactor: remove obsolete Editor.selection_pos_to_width function 2025-11-25 13:30:28 +01:00
f71f984dcd
refactor: make get_rendered_cursor infallible 2025-11-25 13:29:37 +01:00
5d8c44ba76
refactor: make more selection function infallible 2025-11-25 13:28:26 +01:00
5ffd34680e
refactor: make Editor.enable_selection infallible again
As a concept, it should not be possible for enable_selection to fail.
Even for inclusive selections. Having enable_selection possibly return
an error introduces lots of complexity that is not useful.
2025-11-25 12:56:45 +01:00
d08c65818f
fix: bug in scan_next_match causing add_cursor_next_match to fail 2025-11-19 19:14:02 +01:00
85c3e7ae7c
fix: unbreak selections_reverse command signature 2025-11-19 13:56:03 +01:00
fc6f2e2cde
fix: center in the middle not top quarter 2025-11-18 23:36:35 +01:00
f49d6a7423
refactor: use a match instead of the primary cursor in focus_on_range 2025-11-18 23:26:24 +01:00
f3440d4f83
refactor: make editor.update_scroll_dest_abs public 2025-11-18 23:25:57 +01:00
70c2673cfe
refactor: add editor focus_on_range command 2025-11-18 19:55:52 +01:00
3dc731d086
refactor: convert whitespace_mode config options to an enum 2025-11-18 12:53:45 +01:00
Igor Támara
124cbcbe5f fix: Add @ to non_word characters 2025-11-18 10:48:07 +01:00
Igor Támara
878aef9926 feat: [hx] miw and miW support 2025-11-18 10:48:07 +01:00
54c68df967
fix: auto_find should always clear last_match_text 2025-11-17 19:52:26 +01:00
Igor Támara
f6d1f27337 feat: [hx] mm match brackets support 2025-11-17 18:43:42 +01:00
Igor Támara
56ea0138a5 feat: goto_bracket goes to the pair bracket under cursor
Uses simple matching nesting, as a complement to tree-sitter approach.

Flow mode shorcut ctrl+shit+\ ala Code
2025-11-17 18:43:42 +01:00
Igor Támara
57547b80ff refactor: add metrics parameter to with_cursel_const 2025-11-17 18:43:42 +01:00
Igor Támara
368b139688 feat: fetch lsp symbols on user demand 2025-11-16 22:56:36 +01:00
e2955f029d
feat: support horizontal mouse scrolling
closes #382
2025-11-16 18:19:36 +01:00
44a9876e5f
feat: propagate indent guides across blank lines 2025-11-11 15:36:42 +01:00
3ff32507f7
fix: scan_next_match in .inclusive selection mode 2025-11-11 14:22:42 +01:00
7d740bfa2a
fix: reset input idle timer when placing the cursor in an editor with the mouse
This is so that mouse clicks inside an editor widget may also trigger configured
idle_actions.
2025-11-10 14:12:53 +01:00
36c975dc20
fix: prevent different match types from cancelling each other out 2025-11-10 14:12:53 +01:00
7b9a4071c8
fix: scan_prev_match should find the match at the cursor if it is not selected 2025-11-10 14:12:53 +01:00
834b61b16f
fix: scan_next_match should find the match at the cursor if it is not selected 2025-11-10 14:12:53 +01:00
ee24810946
fix: add_cursor_all_matches should move current cursor if there is no selection 2025-11-10 14:12:53 +01:00
cbab1f2fd9
fix: add_cursor_next_match should move current cursor if there is no selection 2025-11-10 14:12:53 +01:00
185e081c7c
fix: move_cursor_next_match should mark match as selected 2025-11-10 14:12:53 +01:00
c796def967
refactor: add editor.sort_matches function 2025-11-10 14:12:53 +01:00
7ad00a6f76
refactor: add editor.have_matches function 2025-11-10 14:12:53 +01:00
Igor Támara
b7d1f15eb5 feat: [hx] Alt+s Add cursors with selections for selected lines 2025-11-07 13:51:59 +01:00
6e78564599
feat: add configurable editor idle actions hover and highlight_references
closes #370
2025-11-07 13:37:07 +01:00
ca47d27b76
feat: add highlight_references command 2025-11-07 13:35:00 +01:00
5aa385679e
refactor: resend all editor events on focus change 2025-11-06 19:23:15 +01:00
019aa94196
refactor: render cursors only in focused editors 2025-11-06 19:23:14 +01:00
ce2a40031a
feat: focus editor on click 2025-11-06 19:23:14 +01:00