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