Conrad Irwin
7daed1b2c3
Fix 0 used in a count
2023-09-12 09:56:23 -06:00
Conrad Irwin
76d55244a1
Clear counts when switching modes
2023-09-11 18:30:31 -06:00
Conrad Irwin
d868d00985
vim: ALlow counts on insert actions
...
This re-uses the existing repeat infrastructure.
2023-09-11 18:09:47 -06:00
Conrad Irwin
cee549e1ef
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
5d782b6cf0
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
5f897f45a8
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
8e2e00e003
add vim-specific J (with repeatability)
2023-09-07 11:08:07 -06:00
Conrad Irwin
1b1d7f22cc
Add visual area repeating
2023-09-07 10:45:38 -06:00
Conrad Irwin
20f98e4d17
vim . to replay
...
Co-Authored-By: maxbrunsfeld@gmail.com
2023-09-06 13:49:55 -06:00
Conrad Irwin
c2c04616b4
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
af12977d17
vim: Add S
to substitute line
...
For zed-industries/community#1897
2023-09-01 13:13:59 -06:00
Conrad Irwin
d3650594c3
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
dee1a433dd
A few more fixes for wrapped line motions
2023-08-25 14:40:04 -06:00
Conrad Irwin
20aa2a4c54
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
1f3e009b32
Fix zed-industries/community#1950
2023-08-25 11:34:07 -06:00
Conrad Irwin
e4794e3134
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
33d7fe02ee
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
93461d366c
Fix <Enter> to go to non-whitespace character
...
Fixes : zed-industries/community#831
2023-08-18 12:24:39 -06:00
Conrad Irwin
b0ba0f8851
Fix visual objects
...
Adds 'a'/'i' in visual mode
2023-08-17 17:13:23 -06:00
Conrad Irwin
59d1a5632f
Fix edge-cases in visual block insert
2023-08-17 15:16:26 -06:00
Conrad Irwin
7598030102
Tidy-up
2023-08-16 22:29:28 -06:00
Conrad Irwin
1b4dd49b1d
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
1cc0798aea
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
645c149344
Fix visual selection of trailing newline
2023-07-28 22:38:39 -06:00
Conrad Irwin
0c15ef7305
Merge VisualChange -> Substitute
...
They both are supposed to work the same.
2023-07-28 15:32:02 -06:00
Conrad Irwin
3f2f3bb78d
Fix crash when deleting a long line in visual line mode
2023-07-28 15:26:40 -06:00
Conrad Irwin
5edcb74760
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
b53fb8633e
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
4772e4ccee
vim: add , and ;
2023-07-21 09:50:22 -06:00
Conrad Irwin
0d18b72cf8
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
e36d5f41c8
Fix % when on the last character of the line
...
Contributes: zed-industries/community#682
2023-07-01 13:51:11 -06:00
Conrad Irwin
abb58c41db
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
0bce80b6f8
Fix remaining vim failures
2023-04-20 15:25:11 -06:00
Max Brunsfeld
eaee5571a0
Use a more stable, readable serialization format for neovim-backed vim tests
2023-03-22 14:31:11 -07:00
Kay Simmons
2276d25bdf
Fix enter in normal mode acting incorrectly
2023-02-23 13:40:31 -08:00
Kay Simmons
57a7ff9a6f
fix vim percent motion to better match the docs and observed behavior
2023-02-17 14:55:19 -08:00
Kay Simmons
73e7967a12
working f and t bindings
2023-01-06 14:24:20 -08:00
Kay Simmons
b6c5c7871e
Addresses issue where left motion in vim mode would clip in the wrong direction
2022-11-04 15:21:29 -07:00
Kay Simmons
4977acf6a5
fix some vim mode bugs around deletions and failed motions
2022-11-02 01:20:11 -07:00
Kay Simmons
0cd2d9a9c8
added new supported feature
2022-11-01 13:15:14 -07:00
K Simmons
782676dc67
fix jump to line number in vim mode
2022-10-25 00:39:40 -07:00
K Simmons
21ad375b42
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
d1f1eb9a29
Add count argument to motion functions and add ability to jump to a given line
2022-10-11 16:27:54 -07:00
K Simmons
673041d1f5
working quote and bracket text objects
2022-10-11 15:17:29 -07:00
K Simmons
6a237deb21
Add some tests for portions of visual text objects. Note: they are slightly broken currently as described in the tests
2022-10-10 15:32:12 -07:00
K Simmons
d2494822b0
Add assertion context manager to TestAppContext and convert existing vim tests to use neovim backed test context
2022-10-10 14:46:07 -07:00
K Simmons
5fec8c8bfd
Enable verifying of visual mode selections in neovim backed tests
2022-10-09 01:19:22 -07:00
K Simmons
515c1ea123
Fixed some neovim test context issues, added repeated commands in vim mode, and ported some tests to use the neovim testing strategy
2022-10-08 21:52:07 -07:00
K Simmons
b82db3a254
Adds word and sentence text objects along with a new vim testing system which uses cached neovim data to verify our test accuracy
2022-10-08 21:51:49 -07:00