Commit graph

2690 commits

Author SHA1 Message Date
UnsaltedScholar
255f2fcaea Add backtick textobject actions 2026-04-15 12:51:03 +02:00
8adab79d53
feat: auto detect indent size when loading buffers
closes #536
2026-04-14 23:55:44 +02:00
0dc1774336
feat: add toggle_gutter_diffs command and gutter_diffs config option
closes #533
2026-04-14 23:28:04 +02:00
a35fc00f31
feat: improve rendering of tabs in filelist_view
closes #530
2026-04-14 23:18:17 +02:00
66ed4a5af4
fix: pull the last line of a file up or down
closes #527
2026-04-14 22:56:52 +02:00
UnsaltedScholar
1e7d595309 Add angle bracket textobject actions 2026-04-14 17:10:17 +02:00
1769342e23
feat: preserve file mode and owner on write (if possible)
closes #18
2026-04-14 16:40:37 +02:00
2ae8d3048d
refactor: reduce code duplication in case transform functions 2026-04-13 22:40:08 +02:00
c7e6906efd
feat: add toggle_case keybind to flow mode 2026-04-13 22:21:34 +02:00
ce61c1765a
refactor: use changes_when_lowercased consistently in toggle_case
switch_case already uses changes_when_lowercased to detect uppercase
characters. toggle_case was using is_lowercase with inverted branch
order, which is functionally equivalent but inconsistent.
2026-04-13 22:21:34 +02:00
Danylo Kondratiev
b2cb003d82
feat: add toggle_case 2026-04-13 22:21:34 +02:00
Danylo Kondratiev
d7c02f0700
refactor: add helper function get_selection_or_select_word 2026-04-13 21:24:06 +02:00
Ingo Lohmar
5d7323bfe7 args for scroll_{up,down,left,right}; scroll_step_vertical only for mouse 2026-04-13 20:02:51 +02:00
Ingo Lohmar
00abd90cd5 add scroll_{up,down} commands 2026-04-13 20:02:51 +02:00
Ingo Lohmar
5871583cba [BREAKING] drop misleading move_ from scroll_{left,right}
This might break existing custom keybindings, so we mark it BREAKING for
the release notes.
2026-04-13 20:02:51 +02:00
16377e3700
fix: surround add overshoots end cursor on multi-row selections 2026-04-13 19:32:01 +02:00
34d99a17d5
fix: use buf_for_update consistently in helix mode 2026-04-13 19:28:43 +02:00
Igor Támara
157e1ba7d3
feat: [hx] surround add 2026-04-13 19:09:46 +02:00
afeca37f10 fix: quote textobject selects wrong pair when cursor is on closing quote 2026-04-13 19:05:04 +02:00
UnsaltedScholar
76cc8260bb Add quote textobject actions 2026-04-13 19:05:04 +02:00
Ryan Mehri
763935912f fix: incorrect clamping on highlight ranges 2026-04-13 16:53:39 +02:00
37bbb17da6
feat: add palette_placement config option 2026-04-12 22:22:53 +02:00
cfe6ba8c6b
fix: correctly handle vaxis.Key.multicodepoint in bracketed paste
closes #552
2026-04-12 18:06:27 +02:00
9a940eb7a4
feat: add support for fuzzy finding into git submodules 2026-04-11 15:57:27 +02:00
51753cc87a
feat: add restore_last_cursor_position_exclusions config option
Defaults to just COMMIT_EDITMSG
2026-04-03 18:06:03 +02:00
cf7fc6af54
fix: allow loading custom theme files up to 512Kb in size
closes #544
2026-03-31 20:58:54 +02:00
310221bb26
feat: support adding entirely new themes via the config 2026-03-31 20:58:00 +02:00
d53d155c6d
feat: add V language support
closes #509
2026-03-31 14:03:18 +02:00
Paul Graydon
ce7cc48a72 feat: [vim] Add bracket textobject actions 2026-03-31 10:07:55 +02:00
Paul Graydon
ba840b72e0 feat: [vim] Add word textobject actions 2026-03-31 10:07:55 +02:00
a782bfb690
fix: don't filter super, hyper and meta modifiers for no reason
This filter was introduced to ignore caps lock, scroll lock and num lock
modifier bits. super, hyper and meta might actually be useful though.
2026-03-28 14:48:07 +01:00
f61c716c27
feat: configure default markdown formatter to reflow at reflow_width 2026-03-26 09:39:06 +01:00
e930effa0c
feat: add {{reflow_width}} expansion 2026-03-26 09:38:28 +01:00
Volodia Kraplich
7f07f544c9 feat(lsp): support toml 2026-03-25 12:34:52 +01:00
84a45810a6
fix(lsp): fallback to sorting completions by label for LSPs that don't return unique sortText 2026-03-25 12:30:44 +01:00
JailBird
561124e667 Add formatter for YAML and LSP for YAML and RPM .spec 2026-03-25 09:10:48 +01:00
Ingo Lohmar
9df7a13934 feat: 0-based status line column
Optional fifth entry in bottom_bar "linenumber" widget: If literally "true",
display column 0-based (instead of 1-based) a la Emacs.
2026-03-24 15:30:32 +01:00
Miguel Granero
742e70a670 feat: change base path of git blame for subrepo support 2026-03-24 14:02:54 +01:00
edwloef
c0e315495c invert priorities in file type guess 2026-03-24 13:56:25 +01:00
11d0e9e7e3
fix: avoid dangling Project pointer crash in LSP and git handlers 2026-03-23 13:09:19 +01:00
a5df57f824
fix: sort filelist items 2026-03-17 22:27:35 +01:00
c93f829cd5
fix: sort files in each directory of the file tree 2026-03-17 22:21:42 +01:00
22ed9a32d7
fix(symbol_palette): add indent to match highlights 2026-03-17 22:11:45 +01:00
Igor Támara
3a16d7fe50 Add indentation according to depth in symbol palette 2026-03-13 13:32:25 -05:00
1cf22db498
fix: reset hover on focus_out events 2026-02-23 21:51:05 +01:00
4cbd8fbde3
fix: prevent endless looping on tab bar widget updates
Now that Widget addresses do not have to be stable we can greatly simplfy
and in the process eliminate the potential for update looping.

The closes #520
2026-02-23 21:48:41 +01:00
cdd6fee9d6
refactor: compare widgets via the .ptr memeber instead of via their addresses
Widget is a handle type. Sort of a smart pointer. Comparing their addresses
is brittle because it requires keeping Widget pointers stable. This is
nonsense because Widget identity is actually determined by the actual
widget object it points to.

This big refactor elimits the requirement that Widget addresses remain
stable to work properly with Widget.walk and Widget.get.
2026-02-23 21:44:24 +01:00
xoxorwr
2266c92eab word left stops before newline when moved from other line 2026-02-22 08:42:21 +01:00
xoxorwr
523f08c281 Move right stops at last character 2026-02-21 23:28:24 +01:00
xoxorwr
2d55a3a843 ctrl+del stops before end of line 2026-02-21 21:50:19 +01:00