Conrad Irwin
8ba69c15d1
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
7337910034
Fix enter in search
2023-07-20 20:48:36 -06:00
Conrad Irwin
c9bf407431
Avoid optional on select_match
2023-07-17 12:49:59 -06:00
Conrad Irwin
b4b0f622de
Rebuild vim search experience on refactored code
2023-07-07 15:57:54 -06:00
Conrad Irwin
232d14a3ae
Make search less magic
...
Co-Authored-By: Antonio <antonio@zed.dev>
2023-07-07 15:57:54 -06:00
Conrad Irwin
dea728a7e5
Better waiting in tests
2023-07-07 15:57:54 -06:00
Conrad Irwin
6cf13c62d1
vim: ? to search backwards, and /<enter> to repeat search
2023-07-07 15:57:52 -06:00
Conrad Irwin
dbec2ed1f1
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
Conrad Irwin
96ce0bb783
vim: Enter/n/N to navigate search results
2023-07-07 15:57:14 -06:00
Conrad Irwin
2ffce24ef0
vim: Don't enter visual mode in search/go to definition
...
Fixes : zed-industries/community#1514
Contributes: zed-industries/community#1284
2023-07-07 15:56:37 -06:00
Conrad Irwin
20d8a2a1ec
vim: indent in visual mode uses only one <
...
Fixes : zed-industries/community#1562
2023-07-07 15:56:35 -06:00
Conrad Irwin
460bf93866
vim: { } to navigate by paragraph ( #2668 )
...
As part of this I added `assert_shared_state()` to the
NeovimBackedTestContext so that it is more like a drop-in replacement
for the VimTestContext.
The remaining part of zed-industries/community#682 is adding bracket
matching to plain text. It looks like the current logic requires there
to be a tree sitter language for the language in order to support
bracket matching. I didn't fix this in this PR because I was unsure
whether to try and work around that, or to try and add a plain text tree
sitter language.
Release Notes:
- vim: support `{` and `}` for paragraph motion
([#470 ](https://github.com/zed-industries/community/issues/470 )).
- vim: fix `%` at the end of the line
([#682 ](https://github.com/zed-industries/community/issues/682 )).
2023-07-07 14:59:06 -06:00
Conrad Irwin
362023ccf2
vim: keymap tweaks ( #2674 )
...
A few small tweaks to fix some of the community issues
Release Notes:
- vim: Fix `escape` in command palette
([#1347 ](https://github.com/zed-industries/community/issues/1347 )).
- vim: Allow `^` as a motion in actions
([#856 ](https://github.com/zed-industries/community/issues/856 )).
- vim: Allow `ctrl-c` to exit visual mode
([#1447 ](https://github.com/zed-industries/community/issues/1447 )).
2023-07-07 14:58:01 -06:00
Piotr Osiewicz
abf3b4a54e
chore: Replace lazy_static Mutex with const. ( #2693 )
...
Mutex::new() is const-stable as of Rust 1.63.
Release Notes:
- N/A
2023-07-07 15:07:12 +02: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
0733e8d50f
Remove editor::Cancel binding from vim
...
When you hit <escape> in the command palette, it first editor::Cancel
because the command palette is also a focused editor; this binding was
catching before the `menu::Cancel` that you probably want.
From looking at the uses of editor::Cancel it seems like the only way to
trigger this is with <escape> in an editor. Rather than trying to hook
into the existing editor cancel and add vim-specific behaviour, we'll
instead take responsibility for binding directly to <escape> when
necessary.
Fixes : zed-industries/community#1347
2023-07-03 15:26:39 -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
Conrad Irwin
9ee2707d43
vim: Add }/{ for start/end of paragraph
...
Fixes : zed-industries/community#470
2023-06-29 23:31:22 -06:00
Nathan Sobo
04d93dfbd9
vim: indent/outdent ( #2644 )
...
Release Notes:
- vim: support indent/outdent
([#832 ](https://github.com/zed-industries/community/issues/832 >)).
2023-06-27 04:15:55 -06:00
Nathan Sobo
fd3ee0ebd0
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
Nathan Sobo
29b2639b4c
Merge remote-tracking branch 'origin/main' into vim-indent
2023-06-27 12:09:47 +02:00
Conrad Irwin
a9aa5e5196
vim: Add ~ to change case
...
Fixes : zed-industries/community#1410
2023-06-26 20:22:24 -06:00
Conrad Irwin
77dc22bff6
vim: Fix cursor restoration when undoing substitute
2023-06-26 20:22:24 -06:00
Conrad Irwin
02fc5dd6c9
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
Conrad Irwin
c3e8cae20f
vim: indent/outdent
...
Fixes : zed-industries/community#832
2023-06-26 10:08:34 -06:00
Kirill Bulatov
82bd5fb564
Fix main compilation
2023-06-25 01:43:58 +03:00
Max Brunsfeld
030984dca4
Vim: substitute support ( #2641 )
...
Release Notes:
- vim mode now supports `s` for substitute
2023-06-23 12:58:14 -07:00
Conrad Irwin
926acd6033
vim: substitute handles multibyte characters
...
And is now in its own file
2023-06-22 13:22:19 -06:00
Conrad Irwin
0cacf01f90
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 Irwin
16022e9c1a
Add counts to subsitute (and all)
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-06-22 11:50:56 -06:00
Conrad Irwin
e1f975e52e
vim: Support s on selections and with multiple cursors
2023-06-21 15:44:19 -06:00
Conrad Irwin
dcca98b5cc
vim: Add basic 's' support
2023-06-21 15:06:34 -06:00
Conrad Irwin
d6b1af6244
vim: Allow up/down/left/right in vim mode
...
The user impact of this is to 5<down> to move 5 lines at a time.
2023-06-21 14:20:39 -06:00
Antonio Scandurra
d26cc2c897
Maintain scroll bottom when streaming assistant responses
2023-06-07 15:01:50 +02:00
Max Brunsfeld
dbbd0558c3
Eliminate assets crate
2023-06-06 11:46:46 -07:00
Joseph Lyons
7c60f636d5
Fix typos
2023-06-02 22:02:19 -04:00
Nathan Sobo
30de64845f
WIP
2023-05-22 23:11:27 -06:00
Max Brunsfeld
258723566f
Rename settings::register_setting -> settings::register
2023-05-17 15:06:11 -07:00
Max Brunsfeld
2d5f03e148
Remove optional path argument when getting settings
2023-05-17 15:05:20 -07:00
Max Brunsfeld
5c729c0e56
Define base keymap setting in welcome crate
2023-05-17 11:23:09 -07:00
Max Brunsfeld
39618ae32d
Define language settings in the language crate
2023-05-16 17:29:53 -07:00
Max Brunsfeld
9ae10a5dd9
Add a better API for updating settings in the SettingsStore in tests
2023-05-11 17:24:58 -07:00
Max Brunsfeld
cee7edabf9
Ensure the SettingsStore global is added in tests
2023-05-10 16:39:59 -07:00
Max Brunsfeld
9b06be2aa2
Define vim_mode setting in vim crate
2023-05-10 12:59:24 -07:00
Antonio Scandurra
912a4cf549
Avoid calling update_window
twice in blurred
event handler
...
This was preventing us from unhooking vim when performing a rename,
which prevented typing in the rename editor.
2023-05-04 16:18:01 +02:00
Antonio Scandurra
b3baebde22
Filter out vim commands when vim mode is disabled
2023-05-04 14:52:34 +02:00
Antonio Scandurra
3d679ddb26
Avoid re-allocating KeymapContext
after every view notification
2023-05-04 12:04:30 +02:00
Max Brunsfeld
30f20024c0
Fix vim mode crash when active editor changes in inactive window
...
Co-authored-by: Antonio Scandurra <antonio@zed.dev>
2023-04-27 10:43:35 -07:00
Antonio Scandurra
7ca412ade3
Merge remote-tracking branch 'origin/main' into fewer-context-traits
2023-04-26 09:54:58 +02:00