Conrad Irwin
dd8863d0de
Make tab non-functional in vim mode
...
Fixes : zed-industries/community#988
Fixes : zed-industries/community#897
2023-07-19 10:25:17 -06:00
Conrad Irwin
98b8008bcc
Merge branch 'main' into vim-search
2023-07-19 09:48:25 -06:00
Conrad Irwin
9e44de90af
Allow ctrl+[ as an alias for escape
...
Also remove unneeded mappings in `g` and `z` modes
Fixes : zed-industries/community#358
2023-07-17 14:59:08 -06:00
Conrad Irwin
b4b0f622de
Rebuild vim search experience on refactored code
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
d70f415e8e
vim: add gD to go to type definition
2023-07-07 15:57:37 -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
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
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
fe57e04016
vim: Allow ^ as a motion
...
Fixes : zed-industries/community#856
2023-07-03 12:55:41 -06:00
Conrad Irwin
b055f594b0
vim: ctrl-c to exit visual mode
...
Fixes : zed-industries/community#1447
Contributes: zed-industries/community#1089
2023-07-03 12:52:33 -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
Nathan Sobo
16c23557b8
vim: Fix scrolling ( #2647 )
...
After #2641 we noticed that scrolling didn't take a count parameter, and
a few other issues with the way that we calculated the distance to
scroll.
Release Notes:
- Improved distance calculations for page-up/page-down
- vim: Allow counts to work with scrolling shortcuts.
2023-06-27 04:01:14 -06:00
Nathan Sobo
7294314ce7
vim: shortcuts for tab navigation ( #2649 )
...
Release Notes:
- vim: added gt/ctrl-pagedown and gT/ctrl-pageup for tab navigation
2023-06-27 03:57:01 -06:00
Conrad Irwin
a1343f0d2c
vim: Fix code actions menu
...
Fixes : zed-industries/community#1690
2023-06-26 21:46:06 -06:00
Conrad Irwin
a9aa5e5196
vim: Add ~ to change case
...
Fixes : zed-industries/community#1410
2023-06-26 20:22:24 -06:00
Conrad Irwin
73920807a9
vim: shortcuts for tab navigation
2023-06-26 15:07:19 -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
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
16022e9c1a
Add counts to subsitute (and all)
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-06-22 11:50:56 -06:00
Nathan Sobo
ea5398a702
vim: binding fixes ( #2637 )
...
Release Notes:
- In vim mode you can now use count modifiers with arrow keys (`5<down>`
will go down 5 lines).
- In vim mode `ctrl+]` and `ctrl+o` now work to go to definition and
back
2023-06-22 06:44:12 -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
0c40ed5d85
vim: ctrl+] and ctrl+o to jump to definition and back
...
Equivalent to f12 and ctrl-- in non-vim mode.
2023-06-21 14:34:35 -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
Nathan Sobo
a365b2f177
Add shift-J binding to Vim normal mode
...
Co-Authored-By: Conrad Irwin <conrad.irwin@gmail.com>
2023-06-21 11:58:31 -06:00
Petros Amoiridis
eca93c124a
Apply the tab_size change to keymaps and settings
2023-04-20 14:08:30 +03:00
Kay Simmons
184f37015a
add go to definition binding to vim normal mode
2023-02-27 10:23:30 -08:00
Kay Simmons
2276d25bdf
Fix enter in normal mode acting incorrectly
2023-02-23 13:40:31 -08:00
Kay Simmons
459060764a
fix sqlez warning, introduce tab and enter bindings to vim for inputing tab and enter text when waiting for text
2023-02-13 13:50:37 -08:00
Kay Simmons
3d53336916
More vim fixes and move some more things out of app.rs
2023-02-13 13:50:37 -08:00
Kay Simmons
c1812ddc27
fix issue with single line editors in vim not properly unhooking vim mode bindings
2023-02-13 13:50:37 -08:00
Kay Simmons
14eec66e38
in progress
2023-01-11 12:10:55 -08:00
Kay Simmons
73e7967a12
working f and t bindings
2023-01-06 14:24:20 -08:00
Kay Simmons
2cf48c03f9
fix final failing tests
2022-12-08 14:39:48 -08:00
Kay Simmons
cffb064c16
Refactor editor scrolling and implement scroll commands from vim mode
2022-12-07 16:39:32 -08:00
K Simmons
673041d1f5
working quote and bracket text objects
2022-10-11 15:17:29 -07:00
K Simmons
0d31ea7cf2
fix minor issue where undo is not available in visual mode
2022-10-10 15:34:40 -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
Antonio Scandurra
5c5e7db587
Fix vim keybindings containing the shift
modifier
...
They regressed as part of https://github.com/zed-industries/zed/pull/1405 .
2022-07-27 09:31:47 +02:00
Keith Simmons
ee007f901a
fix pasting at the end of the line in normal mode
2022-07-08 10:57:02 -07:00
Keith Simmons
ed52f8a8a3
WIP making paste better
2022-07-05 16:52:56 -07:00
Keith Simmons
9b36e3d009
Highlight matching bracket when newest selection head is on a bracket
2022-07-01 15:06:16 -07:00
Keith Simmons
66486870aa
Fix vim editor focus selection issues, cancel vim operators on escape and unbound keys
2022-06-30 12:36:02 -07:00
Keith Simmons
a6c0ee472c
Add vim bindings for hover
...
Allow scrolling in hover popover
2022-06-07 13:07:53 -07:00
Keith Simmons
e93c49f4f0
Unify visual line_mode and non line_mode operators
2022-05-26 17:02:05 -07:00
Keith Simmons
61f0daa5c5
Visual line mode handles soft wraps
2022-05-26 17:02:05 -07:00
Keith Simmons
082036161f
Enable copy and paste in vim mode
2022-05-26 17:02:05 -07:00
Keith Simmons
f8f316cc64
Working change and delete in line mode
2022-05-26 17:02:05 -07:00
Keith Simmons
d7d17b2148
WIP line mode operations
2022-05-26 17:02:05 -07:00
Keith Simmons
37c921f972
Initial visual mode
2022-05-10 11:12:28 -07:00
Keith Simmons
b2138f5935
Add insert line above and below
2022-05-02 11:49:10 -07:00
Keith Simmons
833a7b6e76
WIP just missing insert line above and below
2022-05-02 11:49:10 -07:00
Keith Simmons
5ea782de21
Add inclusive vs exclusive motions to vim mode
2022-04-21 16:50:23 -07:00
Max Brunsfeld
066b4faf61
Restructure KeyMap file, make it easy to edit in Zed
...
Add a JSON schema for this file so that autocomplete can be used for the actions.
2022-04-21 13:35:10 -07:00
Keith Simmons
63278041e1
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
Max Brunsfeld
c065f283aa
Move assets to their own crate, load keymaps in vim tests
...
Also, move assets folder to the top-level.
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-11 15:54:52 -07:00