Commit graph

2801 commits

Author SHA1 Message Date
9fb9b45c4d
fix: error.InvalidSwapTabsArgument when using save as on an ephemeral buffer 2026-01-31 20:49:53 +01:00
4858821ebb
feat: add configuration options for editor scrolling parameters 2026-01-31 20:21:30 +01:00
Miguel Granero
05959d99be fix: start diffz parsing with new line 2026-01-30 22:15:40 +01:00
Miguel Granero
705c9b2727 feat: do not show git blame on modified lines 2026-01-30 22:15:40 +01:00
Miguel Granero
674c1b0a83 fix: correct diff parsing for better gutter representation of changes 2026-01-30 22:15:40 +01:00
f65082bea9
fix: make sure completion replacment always reaches at least to the cursor
Seems like sometimes LSPs may lag and not include the last entered char in
the selection.
2026-01-30 14:48:02 +01:00
7a3b8e3fce
fix: remove completion de-duplication
Now that requests cannot overlap any duplicates are actually from the LSP.
Deduplication was not working correctly for some LSPs so we just remove it
now.
2026-01-30 14:37:13 +01:00
8c8388c0c2
refactor: simplify completion selection functions 2026-01-30 14:20:06 +01:00
afe39f118b
refactor: execute update_completion async 2026-01-30 13:59:58 +01:00
96137de780
refactor: update completions only if query has changed 2026-01-30 13:59:34 +01:00
a21db7b220
refactor: cancel completion if lsp returns no suggestions 2026-01-30 13:58:00 +01:00
29ac7849c7
refactor: move get_replacement_selection to completion_dropdown 2026-01-30 13:55:23 +01:00
d4eb0d046c
refactor: fix completion updates 2026-01-30 13:22:47 +01:00
b314a4c8c0
refactor: just sort completion list instead of filtering it
Also, fix sorting order of equally ranked entries.
2026-01-30 11:22:49 +01:00
518af3ab45
refactor: major re-work of completion to edit via buffer instead of query
This means completion no longer changes the buffer in anyway until a
completion menu entry is actually selected. This simplifies (or eliminates)
many edge cases and greatly improves multi-cursor support.
2026-01-30 11:20:48 +01:00
211648b2c9
refactor: add some more explicit error handling to Editor.copy_selection
This removes NoSpaceLeft as a possible error case, which should be impossible.
2026-01-30 09:14:28 +01:00
94aa462a8d
refactor: allow updating of completions 2026-01-29 20:59:49 +01:00
725862a394
feat: add toggle_inline_vcs_blame keybind 2026-01-29 16:01:46 +01:00
38e681f7bf
fix: apply completion de-duplication fix to completion_palette too 2026-01-29 16:01:20 +01:00
4847a1f584
feat: add support for absolute paths to LSP and formatter binaries
Also, refactor binary resolving functions into the bin_path module.

closes #474
2026-01-29 15:28:52 +01:00
d24f335465
fix: reset cursor color and state before every frame
closes #20
2026-01-29 14:43:59 +01:00
f094c7ec27
refactor: simplify Editor cursor handling 2026-01-29 14:43:26 +01:00
8421f56828
fix: ignore spurious click events in Editor
closes #471
2026-01-29 12:39:04 +01:00
721370d1ba
fix: completion de-duplication should not require LSP to send sort text
fixes #472
2026-01-28 21:38:59 +01:00
6603e60951
refactor: minor simplification 2026-01-28 18:13:55 +01:00
Miguel Granero
9ab1b78a53
feat: fix blame by offsetting current line with changes
Reappied.
see #468
2026-01-28 18:07:03 +01:00
640904addd
fix: handle replacement completion ranges in Editor.replicate_selection 2026-01-28 17:49:22 +01:00
d123e87b52
docs: output a message on how to manually restart if restart fails
closes #19
2026-01-28 10:42:30 +01:00
42eb56493c
fix: better support multicursor completion
closes #467
2026-01-27 22:21:49 +01:00
1b9c718ba7
refactor: add Editor.has_secondary_cursors() 2026-01-27 20:28:59 +01:00
52ec22a18c
docs: improve config file documentation
Add a header and show default values.
2026-01-27 17:40:46 +01:00
2609ce4fbc
refactor: remove obsolete json config file writing support
json config files can still be read, but no longer written.
2026-01-27 17:39:24 +01:00
32f4bcec3a
fix: do not render vcs blame and diagnostics on the same line
Prefer diagnostics
2026-01-27 15:50:46 +01:00
032b1ae14a
feat: add separate config option for vcs blame alignment 2026-01-27 15:45:56 +01:00
049cecdae6 feat: add commit summary to blame message 2026-01-26 22:31:18 +01:00
ab8d317bbc feat: add toggle_inline_vcs_blame command 2026-01-26 22:31:18 +01:00
0714957357 feat: add config option to toggle inline vcs blame 2026-01-26 22:31:18 +01:00
87b5c7e2a5 fix: git blame causes underline at cursor 2026-01-26 22:31:18 +01:00
ed45b68de8 fix: blame background style with highlight_current_line enabled 2026-01-26 22:31:18 +01:00
c7df7e43d7 refactor: simplify editor.render_blame 2026-01-26 22:31:18 +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
cb73153fd0 feat: fix blame by offsetting current line with changes 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
3402a54a2e
fix: don't remove secondary cursors when cancelling dropdown completion 2026-01-26 21:41:29 +01:00
079e9bee22
docs: fix config file path in online help
see neurocyte/flow-website#22
2026-01-26 16:17:31 +01:00
fa68164b5e
feat: add more modes to linenumstate status bar widget
There are now four modes.

- default (Ln ln, Col col)
- compact (ln:col)
- total (ln:col/total)
- percent (pct% ln:col)

The mode can be configured in the 'bottom_bar' (or 'top_bar') configuration
option by appending values to the 'linenumber' widget. The format is now as
follows:

'linenumber:{width},{Leader},{DigitStyle},{Mode}'

All values are optional and can be left empty for defaults.

width - minimum width of numeric fields
Leader - 'space' or 'zero'
DigitStyle - 'ascii', 'digital', 'subscript' or 'superscript'
Mode - 'default', 'compact', 'total' or 'percent'

e.g: linenumber:2,zero,,percent

see #470
2026-01-26 15:59:22 +01:00
68b3fe1624
fix: deduplicate completion results
Some LSPs may return duplicate results for some queries, so we no
force de-duplication when loading the completion palettes.

closes #469
2026-01-26 12:36:11 +01:00
8cf18d7481
fix: use scroll_dest instead of the current view position for scroll step calcuation
If we use the current view position to calculate the destination for a scroll
event, then we may effectively lose the difference between view.pos and
scroll_dest if we are still animating a scroll when the new event arrives.
This can happen when scroll events are received really quickly which can
happen with some devices like touchpads or fast scroll wheels.

Now we use the scroll_dest which means that we extend the destination for
animated scrolling instead of overwriting it.
2026-01-25 16:47:24 +01:00
8a1c5f5fba
feat: add uuidgen keybind 2026-01-23 16:01:19 +01:00
16e26e7e7e
feat: add experimental every_keystroke completion trigger mode 2026-01-23 16:00:53 +01:00