Commit Graph
79 Commits
Author SHA1 Message Date
Conrad Irwin e6f1a6f9a9 Merge VisualChange -> Substitute
They both are supposed to work the same.
2023-07-28 15:32:02 -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 IrwinandMax 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 0f8a1759ae Quality of life shortcuts for code actions 2023-07-21 09:47:15 -06:00
Conrad Irwin a29e2eb5d4 refactor: Remove G/Z Namespace support
This previously enabled things like `d g g` to work, but we can
fix that instead by not clearing out pending vim state on change.

Either way, it is unnecessary and causes some user-confusion
(zed-industries/community#176), so remove this code for now; and use
comments to organize the file a bit instead.
2023-07-21 09:47:14 -06:00
Conrad Irwin 1b1c0d472f vim: ? to search backwards, and /<enter> to repeat search 2023-07-07 15:57:52 -06:00
Conrad Irwin b4a01fb7dd vim: add */#/g*/g# for jumping to next word
As in vim, this toggles the normal search experience.
2023-07-07 15:57:35 -06:00
Nathan Sobo 1a5f35c7a2 Vim toggle case (#2648)
Release Notes:

- vim: Add ~ to toggle case
([#1410](https://github.com/zed-industries/community/issues/1410))
2023-06-27 04:13:24 -06:00
Conrad Irwin 72df76d5f0 vim: Add ~ to change case
Fixes: zed-industries/community#1410
2023-06-26 20:22:24 -06:00
Conrad Irwin 04a35ae515 vim: Fix scrolling
After #2641 we noticed that scrolling didn't take a count parameter.

The PageDown/PageUp logic was also broken by an additional -1 (for both
vim mode and not).
2023-06-26 13:29:14 -06:00
Max Brunsfeld 7739da3e85 Vim: substitute support (#2641)
Release Notes:

- vim mode now supports `s` for substitute
2023-06-23 12:58:14 -07:00
Conrad Irwin 99ccf2e91f vim: substitute handles multibyte characters
And is now in its own file
2023-06-22 13:22:19 -06:00
Conrad Irwin 81edc7afc5 vim: Fix 1G
Before this change code could not distinguish between a user providing a
count of 1 and no count at all.

Fixes: zed-industries/community#710
2023-06-22 12:11:14 -06:00
Conrad IrwinandNathan Sobo 59e3cb55a8 Add counts to subsitute (and all)
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-06-22 11:50:56 -06:00
Conrad Irwin 6e93f7407e vim: Support s on selections and with multiple cursors 2023-06-21 15:44:19 -06:00
Conrad Irwin 0d7c2a88ce vim: Add basic 's' support 2023-06-21 15:06:34 -06:00
Antonio Scandurra b9bd4b8efb Maintain scroll bottom when streaming assistant responses 2023-06-07 15:01:50 +02:00
Joseph Lyons 4b5a7ec94a Fix typos 2023-06-02 22:02:19 -04:00
Nathan Sobo 49dd95e72e Remove unnecessary replace 2023-04-20 15:26:48 -06:00
Nathan Sobo 8c4db131da Fix remaining vim failures 2023-04-20 15:25:11 -06:00
Antonio Scandurra 8b5cdda569 Initialize the active editor when vim mode is enabled
Instead of waiting for a focus event. This makes more tests pass.
2023-04-20 14:02:40 -06:00
Nathan Sobo d8eb1ac343 WIP 2023-04-12 10:07:17 -06:00
Antonio Scandurra 5f04261450 WIP 2023-04-12 15:55:43 +02:00
Nathan Sobo d937660683 Merge MutableAppContext into AppContext
There may have been a good reason for the difference at some point, or I was
still learning Rust. But now it's just &mut AppContext vs &AppContext.
2023-04-06 15:49:03 -06: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 3e152b5d33 wip 2023-02-16 12:23:45 -08:00
Kay Simmons 5eb4463429 wip 2023-02-15 14:40:14 -08:00
Kay Simmons ab5653a76f More vim fixes and move some more things out of app.rs 2023-02-13 13:50:37 -08:00
Kay Simmons aef8027049 fix replace in normal and visual modes 2023-01-11 14:57:40 -08:00
Kay Simmons 974b07e043 in progress 2023-01-11 12:10:55 -08:00
Kay Simmons 4da1890a54 working f and t bindings 2023-01-06 14:24:20 -08:00
Kay Simmons acac7d292d Refactor editor scrolling and implement scroll commands from vim mode 2022-12-07 16:39:32 -08:00
Mikayla Maki df62cba2ef Tried alternate stratergy 2022-11-08 11:54:26 -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
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
Max Brunsfeld a2c9a67558 Re-export basic text types from text and language crates
Also avoid production dependencies on fs and rope in collab
2022-10-12 15:48:19 -07:00
Mikayla Maki fa862550fd Merge branch 'main' into test-branch 2022-10-11 19:55:32 -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
Mikayla Maki a9ce687031 Finished refactoring out fs and rope 2022-10-11 15:25:54 -07:00
K Simmons 47def2b57d 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 055a8fe14a 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 bda6e5fdb7 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
ForLoveOfCatsandMikayla fbea44bc5c One big cleanup pass of clippy lints
Co-authored-by: Mikayla <mikayla@zed.dev>
2022-08-10 16:51:01 -07:00
Max Brunsfeld 8aef95d0c8 Use new marked ranges format whenever we don't need overlapping ranges 2022-08-04 10:23:03 -07:00
Max Brunsfeld a27d243309 Update vim mode tests to use new marked text format 2022-08-03 17:52:34 -07:00
Max Brunsfeld 75c349243c 🎨 Rename and simplify some autoindent stuff 2022-07-28 22:40:30 -07:00
Max Brunsfeld 7f991029b9 Merge branch 'main' into autoindent-on-paste 2022-07-28 15:09:18 -07:00