Commit graph

168 commits

Author SHA1 Message Date
74d033cb72
refactor: remove some spammy debug logs in Buffer cache 2026-02-03 11:32:34 +01:00
ed69048e91
refactor: add document plain text caching to Buffer 2026-02-02 21:33:52 +01:00
111e9dbe1f
refactor: add Buffer.Node.Ref type 2026-02-02 21:31:33 +01:00
cdfa463ce7
fix: reflow should add whitespace to line length calculation 2026-02-02 12:11:31 +01:00
7b6e75cc9d
feat: log effective reflow width 2026-02-02 12:11:00 +01:00
919c87e988
fix: ignore blank lines in reflow prefix detection 2026-02-02 11:45:06 +01:00
f55885c48e
fix: ignore/preserve trailing new line in reflow input 2026-02-02 11:44:39 +01:00
0251d783bf
fix: always place at least one word on each line in reflow 2026-02-01 20:48:42 +01:00
d07389b8ee
fix: wrong prefix for single line reflows 2026-02-01 20:00:01 +01:00
9c4f30c4ee
fix: reflow width is off by one 2026-02-01 19:52:01 +01:00
4803daec3e
fix: make reflow wrap *before* width limit, not after it 2026-02-01 19:48:03 +01:00
281b9e47a1
refactor: add reflow support for markdown list entries 2026-01-31 22:31:16 +01:00
6adc0b5887
feat: add basic reflow command and keybind (alt+q) 2026-01-31 22:11:53 +01:00
7d1809ba57 refactor: switch git blame to incremental output mode
Also, move blame parser and related structures to a new module VcsBlame.

This includes a full parser re-write to take advantage of the slightly
more efficient incremental output format.
2026-01-26 22:31:18 +01:00
Miguel Granero
90a817066a feat: add git blame with inline display (wip) 2026-01-26 22:31:18 +01:00
2ee92d2548
refactor: move TypedInt to a module 2026-01-22 15:34:19 +01:00
6d86807e21
refactor: improve type safety of Buffer.Ref values in messages 2026-01-22 15:12:57 +01:00
9b02a8f6e9
refactor: use enum type for buffer references 2026-01-22 14:32:44 +01:00
94e6965ad0
refactor: add Buffer.last_view field 2026-01-14 20:15:59 +01:00
a53ef127ec
feat: add fast_scroll mode support to horizontal scrolling
Also, bump the basic scroll step to 5 columns like other editors.
2026-01-14 11:09:42 +01:00
25d5f80a4c
refactor: drop all c_(u)int usage in Plane
The use of c_int and c_uint comes from the days when flow supported
building agains notcurses has a c API.
2026-01-13 12:44:40 +01:00
6b4549f400
refactor: add View.clam_offset 2025-12-26 22:47:51 +01:00
12159edfcf
refactor: add Buffer.delete_range_char function 2025-12-21 20:57:46 +01:00
d08749123f
refactor: make Buffer.get_vcs_id and Buffer.get_vcs_content const 2025-12-17 22:00:01 +01:00
2a3210a183
refactor: store received vcs_id and vcs_content in buffer 2025-12-17 21:12:02 +01:00
0143a7148a
refactor: add vcs_id and vcs_content fields to Buffer 2025-12-15 20:41:36 +01:00
891b80e5bb
fix: case fold find pattern in find_all_ranges mode .case_folded 2025-11-26 12:48:29 +01:00
74e7406034
fix: guarantee progress in find_all_ranges when pattern is shorter than a utf8 sequence 2025-11-26 10:22:04 +01:00
99f9f95dbc
fix: use a partial write capable case folding writer in Buffer.find_all_ranges
This fixes case insensitive search. Previously the case folding would fail on
input slices that contain partial utf8 sequences, which is normal in the
buffer write process design. Now these partial utf8 sequences are not consumed
and instead pushed to the next write call where they will be completed from the
main buffer contents.
2025-11-26 09:56:39 +01:00
68b17301cd
refactor: use unchecked Utf8View in utf8 transformation
Internally we use only validated utf8 and unchecked performs much better
and reduces unused error values.
2025-11-26 09:33:04 +01:00
abee93d366
refactor: add unicode.is_lowercase 2025-11-25 22:35:14 +01:00
64d95ee009
refactor: move FindMode to Buffer 2025-11-25 21:50:36 +01:00
3ebe68a384
refactor: implement find_all_ranges mode .case_folded 2025-11-25 21:43:12 +01:00
37428bd698
refactor: add unicode.case_folded_write 2025-11-25 21:42:51 +01:00
e35a0555f1
feat: port to_upper and to_lower to uucode 2025-11-25 21:14:59 +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
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
8b9cc87cab
fix: add back german quotes to char_pairs 2025-11-18 10:55:36 +01:00
Igor Támara
b4b44ec906 refactor: additional characters for smart_insert 2025-11-18 10:50:47 +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
5e292e75b5
fix: store redo metadata along with undo metadata and restore it on redo
This commit refactors undo storage and handling significantly.

The undo/redo chaining in Buffer is much simpler and clearer.

The metadata generated by Editor now contains the pre and post change
states. The pre-state is restored on undo and the post-state is restored
on redo.

closes #348
2025-11-04 15:32:43 +01:00
8d0f333ad8
refactor: simplify Buffer.write_state 2025-11-03 22:14:15 +01:00
30b1329d10
refactor: move auto_save flag from Editor to Buffer 2025-11-03 22:13:54 +01:00
1f3419ec94
feat: add Selection.merge and Selection.expand functions 2025-11-03 18:29:51 +01:00
5fccffc4b6
feat: add Cursor.within predicate function 2025-11-03 18:29:32 +01:00
1d1d828097
fix: move cursor to the beginning of an egc in Cursor.clamp_to_buffer
closes #317
2025-11-03 16:25:22 +01:00
a0fa079a13
fix: remove workaround for Buffer.store_to_file_const bug on non-linux platforms
This bug was fixed in the previous commit.
2025-10-30 18:06:43 +01:00
ab4d1cdfa5
fix: always use std.Io.Writer.writeAll to avoid write underflow 2025-10-30 18:04:37 +01:00