Conrad Irwin
6fd4a8fcba
vim: Fix ctrl-u/ctrl-d
...
They should work by exactly half a screen, and also move the cursor.
2023-09-26 22:28:04 -06:00
Conrad Irwin
89c569e0b1
Fix backward search from command
2023-09-20 20:44:42 -06:00
Conrad Irwin
e85104ab0b
Iron out some edge-cases
2023-09-20 20:44:42 -06:00
Conrad Irwin
12cbf801f3
Flesh out v1.0 of vim :
2023-09-20 20:44:41 -06:00
Conrad Irwin
20ad2c41c8
Fix vim test recording
2023-09-20 12:01:04 -06:00
Conrad Irwin
4a5e44a9ef
Fix vim panic when over-shooting with j
2023-09-20 11:20:35 -06:00
Conrad Irwin
a22d09c9d7
Fix Y on last line with no trailing new line
...
For zed-industries/community#2044
2023-09-15 11:14:04 -06:00
Conrad Irwin
488b325f60
Fix 0 used in a count
2023-09-12 09:56:23 -06:00
Conrad Irwin
d0497dfdb7
Clear counts when switching modes
2023-09-11 18:30:31 -06:00
Conrad Irwin
b850e0b8a6
vim: ALlow counts on insert actions
...
This re-uses the existing repeat infrastructure.
2023-09-11 18:09:47 -06:00
Conrad Irwin
4aa2148f76
vim: Fix count handling to allow pre/post counts
...
Fixes 2yy, d3d, etc.
For zed-industries/community#970
For zed-industries/community#1496
2023-09-11 14:35:47 -06:00
Conrad Irwin
cec47cb01a
vim . to replay ( #2936 )
...
Release Notes:
- vim: Add `.` to replay
([#946 ](https://github.com/zed-industries/community/issues/946 ))
- vim: Fix `J` in visual mode, and with counts.
2023-09-08 11:52:35 -06:00
Conrad Irwin
298d072b93
Fix f,t on soft-wrapped lines
...
Also remove the (dangerously confusing) display_map.find_while
2023-09-08 10:16:46 -06:00
Conrad Irwin
1fb1c40f22
add vim-specific J (with repeatability)
2023-09-07 11:08:07 -06:00
Conrad Irwin
17c2ee6ed1
Add visual area repeating
2023-09-07 10:45:38 -06:00
Conrad Irwin and
204e716a5d
vim . to replay
...
Co-Authored-By: maxbrunsfeld@gmail.com
2023-09-06 13:49:55 -06:00
Conrad Irwin
475925ea6c
vim S ( #2929 )
...
Release Notes:
- vim: Add `S` to substitute line ([#1897 ](https://github.com/zed-industries/community/issues/1897 )).
2023-09-05 09:39:08 -06:00
Conrad Irwin
48a79db963
vim: Add S to substitute line
...
For zed-industries/community#1897
2023-09-01 13:13:59 -06:00
Conrad Irwin
d614796305
Fix find_{,preceding}boundary to work on buffer text
...
Before this change the bounday could mistakenly have happened on a soft
line wrap.
Also fixes interaction with inlays better.
2023-08-29 18:03:29 -07:00
Conrad Irwin
b7fde801d7
A few more fixes for wrapped line motions
2023-08-25 14:40:04 -06:00
Conrad Irwin
389a5ebabc
vim: Fix relative line motion
...
Before this change up and down were in display co-ordinates, after this
change they are in fold coordinates (which matches the vim behaviour).
To make this work without causing usabliity problems, a bunch of extra
keyboard shortcuts now work:
- vim: `z {o,c}` to open,close a fold
- vim: `z f` to fold current visual selection
- vim: `g {j,k,up,down}` to move up/down a display line
- vim: `g {0,^,$,home,end}` to get to start/end of a display line
Fixes : zed-industries/community#1562
2023-08-25 14:40:04 -06:00
Conrad Irwin
c591a6b231
Fix zed-industries/community#1950
2023-08-25 11:34:07 -06:00
Conrad Irwin
4a80e136c9
vim: Fix linewise copy of last line with no trailing newline
...
Along the way, delete the VimBindingTestContext by updating the
visual tests to no-longer need it.
2023-08-24 00:00:12 -06:00
Conrad Irwin
21b6d69d61
Rewrite paste
...
- vim: support P for paste before
- vim: support P in visual mode for paste without overriding clipboard
- vim: fix position when using `p` on text copied outside zed
- vim: fix indentation when using `p` on text copied from zed
2023-08-22 13:27:57 -06:00
Conrad Irwin
08aa9b95b9
Fix <Enter> to go to non-whitespace character
...
Fixes : zed-industries/community#831
2023-08-18 12:24:39 -06:00
Conrad Irwin
9f6567f2a9
Fix visual objects
...
Adds 'a'/'i' in visual mode
2023-08-17 17:13:23 -06:00
Conrad Irwin
82b40f4136
Fix edge-cases in visual block insert
2023-08-17 15:16:26 -06:00
Conrad Irwin
03e0c6d2d6
Tidy-up
2023-08-16 22:29:28 -06:00
Conrad Irwin
d37246dee7
Vim visual block mode
...
This isn't quite an exact emulation, as instead of using one selection
that is magically in "column mode", we emulate it with a bunch of zed
multi-selections (one per line).
I think this is better, as it requires fewer changes to the codebase,
and lets you see the impact of any changes immediately on all lines.
Fixes : zed-industries/community#984
2023-08-15 16:00:50 -06:00
Conrad Irwin
99321c01b7
Add a VisualBlock mode
...
Instead of trying to extend the Mode::Visual special case, just split
out into three different modes.
2023-08-15 10:00:45 -06:00
Conrad Irwin
2921cd77ca
Fix visual selection of trailing newline
2023-07-28 22:38:39 -06:00
Conrad Irwin
e6f1a6f9a9
Merge VisualChange -> Substitute
...
They both are supposed to work the same.
2023-07-28 15:32:02 -06:00
Conrad Irwin
35e3b03af6
Fix crash when deleting a long line in visual line mode
2023-07-28 15:26:40 -06:00
Conrad Irwin
adc89d3418
Add support for visual ranges ending with a newline
...
These primarily happen when first entering visual mode, but can also
be created with objects like `vi{`.
Along the way fix the way ranges like `vi{` are selected to be more
similar to nvim.
2023-07-28 15:26:40 -06:00
Conrad Irwin and Max Brunsfeld
737efc0c9d
Fix vim selection to include entire range
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2023-07-28 15:26:40 -06:00
Conrad Irwin
5ddb6c1db0
vim: add , and ;
2023-07-21 09:50:22 -06:00
Conrad Irwin
373c6bd9be
vim: Further improve ~ handling
...
Now works with Visual{line} mode, collapses selections like nvim,
and doesn't fall off the end of the line.
2023-07-03 23:58:09 -06:00
Conrad Irwin
f11eaf983c
Fix % when on the last character of the line
...
Contributes: zed-industries/community#682
2023-07-01 13:51:11 -06:00
Conrad Irwin
e5b58d8682
vim: Fix edge-case in } when trailing newline is absent
...
Added .assert_shared_state() to NeovimBackedTestContext – although it's
not strictly necessary to show the expected behaviour in the test file
(as we can just compare to neovim's JSON recording), it makes it much
easier to understand what we're testing.
2023-06-29 23:31:22 -06:00
Nathan Sobo
8c4db131da
Fix remaining vim failures
2023-04-20 15:25:11 -06:00
Max Brunsfeld
82724cac3f
Use a more stable, readable serialization format for neovim-backed vim tests
2023-03-22 14:31:11 -07:00
Kay Simmons
24a448f00c
Fix enter in normal mode acting incorrectly
2023-02-23 13:40:31 -08:00
Kay Simmons
327c58fdc3
fix vim percent motion to better match the docs and observed behavior
2023-02-17 14:55:19 -08:00
Kay Simmons
4da1890a54
working f and t bindings
2023-01-06 14:24:20 -08:00
Kay Simmons
04de300994
Addresses issue where left motion in vim mode would clip in the wrong direction
2022-11-04 15:21:29 -07:00
Kay Simmons
404f51643c
fix some vim mode bugs around deletions and failed motions
2022-11-02 01:20:11 -07:00
Kay Simmons
466f2746f6
added new supported feature
2022-11-01 13:15:14 -07:00
K Simmons
8104b7aa77
fix jump to line number in vim mode
2022-10-25 00:39:40 -07:00
K Simmons
b488a375c6
Fix panic in vim motion when not listed as exclusive and add features enum to capture why tests are ignored
2022-10-24 18:27:56 -07:00
K Simmons
4d285aee6f
Add count argument to motion functions and add ability to jump to a given line
2022-10-11 16:27:54 -07:00