Conrad Irwin
39b149d1f9
Preserve line mode selection on undo
...
This diverges from vim's behaviour (which collapses the
cursor to a single point on undo).
2023-08-17 15:40:27 -06:00
Conrad Irwin
82b40f4136
Fix edge-cases in visual block insert
2023-08-17 15:16:26 -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
17f8742a27
Disable autoindent in visual block insert mode
2023-08-16 10:44:59 -06:00
Conrad Irwin
d37246dee7
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
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 Irwin and Max 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
Julia and Mikayla Maki
9f5ffa2b6e
Avoid panic by accessing view handle by global in wrong window
...
View handles are window specific but this global will be doing things
in all windows, that would cause a panic when it attempted to update
a status bar mode indicator in a background window
Co-Authored-By: Mikayla Maki <mikayla@zed.dev >
2023-07-27 18:53:05 -04:00
Conrad Irwin
44f4f14010
Add a mode indicator for vim ( #2763 )
...
Release Notes:
- vim: add a mode indicator
([#409 ](https://github.com/zed-industries/community/issues/409 ))
Now updated screenshots with @iamnbutler
<img width="1043" alt="Screenshot 2023-07-25 at 11 11 57"
src="https://github.com/zed-industries/zed/assets/94272/8301479a-8b58-42d8-81a1-bc40e1e0a4df ">
<img width="1043" alt="Screenshot 2023-07-25 at 11 12 00"
src="https://github.com/zed-industries/zed/assets/94272/89c3b8bd-9cbc-4fd7-ad10-dac5538ed3a3 ">
<img width="1043" alt="Screenshot 2023-07-25 at 11 12 12"
src="https://github.com/zed-industries/zed/assets/94272/adc87fe3-a720-4779-853b-df9443407046 ">
2023-07-25 20:18:23 -06:00
Conrad Irwin and Mikayla Maki
e81bab4e2e
A little refactor
...
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com >
2023-07-25 12:55:01 -06:00
Conrad Irwin and Nate Butler
8fd9cba675
Update status bar theming
...
Co-Authored-By: Nate Butler <iamnbutler@gmail.com >
2023-07-25 11:06:41 -06:00
Conrad Irwin
1fccc35107
Refactor mode indicator to remove itself
...
One of the problems we had is that the status_bar shows a gap between
items, and we want to not add an additional gap for an invisible status
indicator.
2023-07-24 09:51:54 -06:00
Conrad Irwin
6ef1e48a77
Add a mode indicator for vim
...
This is the second most common remaining complaint (after :w not
working).
Fixes : zed-industries/community#409
2023-07-21 16:06:14 -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
94bdefefbe
Fix enter in search
2023-07-20 20:48:36 -06:00
Conrad Irwin
6e6b7b87ca
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
97d1701e1c
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
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
Max Brunsfeld
e7f85efbb8
Rename settings::register_setting -> settings::register
2023-05-17 15:06:11 -07:00
Max Brunsfeld
30e678a450
Remove optional path argument when getting settings
2023-05-17 15:05:20 -07:00
Max Brunsfeld
56f2ff64ed
Define language settings in the language crate
2023-05-16 17:29:53 -07:00
Max Brunsfeld
47c3504d22
Define vim_mode setting in vim crate
2023-05-10 12:59:24 -07:00
Antonio Scandurra
51542daadd
Filter out vim commands when vim mode is disabled
2023-05-04 14:52:34 +02:00
Antonio Scandurra
1b1f2a3e5e
Avoid re-allocating KeymapContext after every view notification
2023-05-04 12:04:30 +02: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
Antonio Scandurra
41134f0ebb
Make production code compile again
2023-04-17 12:33:33 +02:00
Antonio Scandurra
92cbf44056
Make full-screen and window bounds callbacks take a WindowContext
2023-04-14 11:56:31 +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
Mikayla Maki
74318eecb3
Move command palette filter into collections crate
...
Filter out copilot commands from command palette when not active
2023-03-28 20:13:17 -07:00
Kay Simmons
033606fa2e
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
ab5653a76f
More vim fixes and move some more things out of app.rs
2023-02-13 13:50:37 -08:00
Kay Simmons
0cd5e26029
fix issue with single line editors in vim not properly unhooking vim mode bindings
2023-02-13 13:50:37 -08:00
Kay Simmons
0f8319e799
disable vim mode in non full editors
2023-01-17 17:32:10 -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
2a890bfbfb
remove printline
2022-12-08 14:45:22 -08:00
Kay Simmons
242f038bbd
fix final failing tests
2022-12-08 14:39:48 -08:00
Kay Simmons
acac7d292d
Refactor editor scrolling and implement scroll commands from vim mode
2022-12-07 16:39:32 -08:00
K Simmons
55b9eff3df
Add cursor blink setting and replicate cursor shape to remote collaborators
2022-10-17 16:20:47 -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
Max Brunsfeld
a27d243309
Update vim mode tests to use new marked text format
2022-08-03 17:52:34 -07:00
Antonio Scandurra
bfa490c35d
Merge branch 'main' into ime-support-2
2022-07-22 16:03:38 +02:00
Max Brunsfeld
a4d997214e
Remove Input action, detect ignored input in vim via an event
2022-07-21 13:40:48 -07:00
K Simmons
383c91c26c
Fix failing test re mode switch in buffer search
2022-07-19 17:18:17 -07:00