Commit Graph
40 Commits
Author SHA1 Message Date
Piotr OsiewiczandJulia Risley 9a197a63f8 Z 2819 (#2872)
This PR adds new config option to language config called
`word_boundaries` that controls which characters should be recognised as
word boundary for a given language. This will improve our UX for
languages such as PHP and Tailwind.

Release Notes:

- Improved completions for PHP
[#1820](https://github.com/zed-industries/community/issues/1820)

---------

Co-authored-by: Julia Risley <julia@zed.dev>
2023-08-22 10:35:20 +02: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 03c12decbc Store some vim state per-editor
This fixes a bug where opening and closing command would reset your
selection incorrectly.
2023-08-17 14:09:47 -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 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 5ddb6c1db0 vim: add , and ; 2023-07-21 09:50:22 -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 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
Conrad Irwin dd53b256cb vim: Add }/{ for start/end of paragraph
Fixes: zed-industries/community#470
2023-06-29 23:31:22 -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
Antonio Scandurra b8e92e6d6a Remove stray dbg! statements 2023-04-21 10:49:47 +02: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 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 6f1c04827f use more predictable rules for selecting which bracket to jump to and where 2023-02-15 14:04:16 -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 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 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
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
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
Keith Simmons 570d69ee5a Highlight matching bracket when newest selection head is on a bracket 2022-07-01 15:06:16 -07:00
Antonio Scandurra 77224e023a Require that PartialEq is implemented for Action 2022-06-06 09:18:44 +02:00
Keith Simmons b0c5ac1f54 Unify visual line_mode and non line_mode operators 2022-05-26 17:02:05 -07:00
Keith Simmons f053c479e9 Visual line mode handles soft wraps 2022-05-26 17:02:05 -07:00
Keith Simmons be8bfa9592 WIP line mode operations 2022-05-26 17:02:05 -07:00
Keith Simmons cdbad9aee4 Initial visual mode 2022-05-10 11:12:28 -07:00
Keith Simmons b011dbee8c WIP just missing insert line above and below 2022-05-02 11:49:10 -07:00
Keith Simmons 8e7fcb3b05 Add inclusive vs exclusive motions to vim mode 2022-04-21 16:50:23 -07:00
Keith Simmons 6196733e01 Handle linewise motions correctly and fix panic when executing invalid actions 2022-04-19 11:36:44 -07:00
Keith Simmons 35557b222c Add c and d operators to vim normal mode
Extracted motions from normal mode
Changed vim_submode to be vim_operator to enable better composition of operators
2022-04-15 16:05:50 -07:00