Julia
fc9687d163
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
39f02c2b72
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
64b252e81a
A little refactor
...
Co-Authored-By: Mikayla Maki <mikayla.c.maki@gmail.com>
2023-07-25 12:55:01 -06:00
Conrad Irwin
1f65effe57
Update status bar theming
...
Co-Authored-By: Nate Butler <iamnbutler@gmail.com>
2023-07-25 11:06:41 -06:00
Conrad Irwin
43d94e37ec
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
458916409c
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
Julia
e002d9efb0
Avoid panic from assuming a vim operator exists on the operator stack ( #2773 )
...
Fixes
https://linear.app/zed-industries/issue/Z-338/operator-popped-when-no-operator-was-on-the-stack-this-likely-means
Release Notes:
- Fixed a panic that could occur when invoking a Vim object without an
operator.
2023-07-21 14:47:38 -04:00
Julia
243a1a854e
Avoid panic from assuming a vim operator exists on the operator stack
2023-07-21 14:25:30 -04:00
Conrad Irwin
56c657fe79
Vim shortcuts ( #2760 )
...
Refactors some of the vim bindings to make the vim.json file less
obtuse.
Release Notes:
- vim: add `;` and `,` to repeat last `{f,F,t,T}`
- vim: add zed-specific shortcuts for common IDE actions:
- - `g A` to find all references
- - `g .` to open the code actions menu.
- - `c d` for rename
2023-07-21 10:31:18 -06:00
Conrad Irwin
4772e4ccee
vim: add , and ;
2023-07-21 09:50:22 -06:00
Conrad Irwin
a50d30bf8e
Quality of life shortcuts for code actions
2023-07-21 09:47:15 -06:00
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
807279208d
Fix shift-enter in search
...
If you want to type a newline in an auto_height editor, ctrl and
ctrl-shift are your friends.
2023-07-21 09:10:12 -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
Max Brunsfeld
ebbe52e6b0
🎨 Specify more dependencies at the workspace level
2023-04-24 17:41:55 -07:00
Antonio Scandurra
c165fb9be5
Remove ReadView
and UpdateView
traits
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2023-04-24 17:36:14 +02:00
Antonio Scandurra
d32a7218cd
Remove stray dbg!
statements
2023-04-21 10:49:47 +02:00
Nathan Sobo
1b2e480e1e
Remove unnecessary replace
2023-04-20 15:26:48 -06:00
Nathan Sobo
0bce80b6f8
Fix remaining vim failures
2023-04-20 15:25:11 -06:00
Antonio Scandurra
137d9384b5
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
38ab6b123f
Make production code compile again
2023-04-17 12:33:33 +02:00
Antonio Scandurra
183b9ef809
Make full-screen and window bounds callbacks take a WindowContext
2023-04-14 11:56:31 +02:00
Nathan Sobo
868301bedb
WIP
2023-04-12 10:07:17 -06:00
Antonio Scandurra
83070a19c4
WIP
2023-04-12 15:55:43 +02:00
Nathan Sobo
95eb918b4c
Fix broken test due to trimmed trailing whitespace during formatting
2023-04-06 16:10:39 -06:00
Nathan Sobo
de9bf6dfbd
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
0b0c7e4ce9
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
Antonio Scandurra
5471217089
Use the same serde version across the entire workspace
2023-03-28 09:42:00 -07:00
Joseph T. Lyons
e10338ed17
Merge pull request #2313 from zed-industries/unify-spelling-of-key-binding
-to-be-two-words
...
Unify spelling of `key binding` to be two words
2023-03-27 15:58:12 -04:00
Max Brunsfeld
eaee5571a0
Use a more stable, readable serialization format for neovim-backed vim tests
2023-03-22 14:31:11 -07:00
Joseph Lyons
9d88cd8842
Unify spelling of key binding
to be two words
2023-03-22 13:34:12 -04:00
Antonio Scandurra
1af8f4be19
Deserialize Theme
directly into the heap to avoid stack overflow
...
Co-Authored-By: Julia Risley <julia@zed.dev>
2023-03-17 15:58:52 +01:00
Mikayla Maki
350b7b82f7
Merge pull request #2207 from zed-industries/project-panel-actions
...
Fix project panel actions
2023-02-23 14:31:29 -08:00
Mikayla Maki
9004640586
Convert keymap context to use generics and Cow<'static> so we don't have to add .to_string() and .into() for each usage
2023-02-23 14:10:55 -08:00
Kay Simmons
2276d25bdf
Fix enter in normal mode acting incorrectly
2023-02-23 13:40:31 -08:00
Kay Simmons
57a7ff9a6f
fix vim percent motion to better match the docs and observed behavior
2023-02-17 14:55:19 -08:00
Kay Simmons
eac33d732e
wip
2023-02-16 12:23:45 -08:00
Kay Simmons
bef2013c7f
wip
2023-02-15 14:40:14 -08:00
Kay Simmons
0ba051a754
use more predictable rules for selecting which bracket to jump to and where
2023-02-15 14:04:16 -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
Mikayla Maki
d060114f00
Added complete scripts for generating third party license files
2023-01-23 12:47:12 -08:00
Kay Simmons
cf193154e1
fix broken test
2023-01-17 17:35:39 -08:00
Kay Simmons
c3518cefe8
disable vim mode in non full editors
2023-01-17 17:32:10 -08:00
Kay Simmons
216b1aec08
fix replace in normal and visual modes
2023-01-11 14:57:40 -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
e61a38b3a9
remove printline
2022-12-08 14:45:22 -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
Kay Simmons
1cc3e4820a
working serialized writes with panics on failure. Everything seems to be working
2022-12-03 16:06:01 -08:00
Mikayla Maki
3451a3c7fe
Rebase - Got Zed compiling and fixed a build error due to conflicting dependencies that cargo didn't catch :(
...
Co-Authored-By: kay@zed.dev
2022-12-03 16:04:10 -08:00
Max Brunsfeld
718f802157
Implement Copy for multibuffer anchors
2022-11-28 14:18:49 -08:00
Nathan Sobo
275f0ae492
collab 0.2.3
2022-11-15 15:45:04 -07:00
Kay Simmons
3d5a3634cf
Merge pull request #1867 from zed-industries/drag-project-entry-to-pane
...
Drag project entry to pane
2022-11-10 17:25:22 -08:00
Kay Simmons
738893c527
Split and move to pane working
2022-11-08 14:19:31 -08:00
Mikayla Maki
53f8744794
Tried alternate stratergy
2022-11-08 11:54:26 -08:00
Kay Simmons
b6c5c7871e
Addresses issue where left motion in vim mode would clip in the wrong direction
2022-11-04 15:21:29 -07:00
Kay Simmons
4977acf6a5
fix some vim mode bugs around deletions and failed motions
2022-11-02 01:20:11 -07:00
Kay Simmons
0cd2d9a9c8
added new supported feature
2022-11-01 13:15:14 -07:00
K Simmons
782676dc67
fix jump to line number in vim mode
2022-10-25 00:39:40 -07:00
K Simmons
64e9b9f893
remove mode after which is unused
2022-10-24 18:31:26 -07:00
K Simmons
21ad375b42
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
40c3e925ad
Add cursor blink setting and replicate cursor shape to remote collaborators
2022-10-17 16:20:47 -07:00
Max Brunsfeld
6cdf4e98fc
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
b1f64d9550
Updated new vim tests with new rope crate
2022-10-11 20:25:39 -07:00
Mikayla Maki
41590ef64b
Merge branch 'main' into test-branch
2022-10-11 19:55:32 -07:00
K Simmons
d1f1eb9a29
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
0beb97547e
Finished refactoring out fs and rope
2022-10-11 15:25:54 -07:00
K Simmons
673041d1f5
working quote and bracket text objects
2022-10-11 15:17:29 -07:00
K Simmons
6a237deb21
Add some tests for portions of visual text objects. Note: they are slightly broken currently as described in the tests
2022-10-10 15:32:12 -07:00
K Simmons
d2494822b0
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
5fec8c8bfd
Enable verifying of visual mode selections in neovim backed tests
2022-10-09 01:19:22 -07:00
K Simmons
f90b693ed5
fix some warnings and merge errors
2022-10-08 23:49:04 -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
K Simmons
b88abcacac
WIP dock split button and default item
2022-09-11 15:31:44 -07:00
ForLoveOfCats
8ba2f77148
One big cleanup pass of clippy lints
...
Co-authored-by: Mikayla <mikayla@zed.dev>
2022-08-10 16:51:01 -07:00
Max Brunsfeld
26fdaeb92b
Use new marked ranges format whenever we don't need overlapping ranges
2022-08-04 10:23:03 -07:00
Max Brunsfeld
afcf5fc95b
Update vim mode tests to use new marked text format
2022-08-03 17:52:34 -07:00
Max Brunsfeld
868c460620
🎨 Rename and simplify some autoindent stuff
2022-07-28 22:40:30 -07:00
Max Brunsfeld
7a26fa18c7
Record start columns when writing to the clipboard from Zed
2022-07-28 22:13:32 -07:00
Max Brunsfeld
3a74290359
Merge branch 'main' into autoindent-on-paste
2022-07-28 15:09:18 -07:00
Max Brunsfeld
fa5af4383d
Introduce AutoindentMode parameter to Buffer::edit
...
This controls whether or not we preserve the relative indentation
of inserted text blocks.
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2022-07-28 14:03:31 -07:00
Antonio Scandurra
f0814c7784
Fix vim tests using old key bindings
2022-07-27 12:19:01 +02:00
Antonio Scandurra
7b009c8bbe
Merge branch 'main' into ime-support-2
2022-07-22 16:03:38 +02:00
Max Brunsfeld
2142fca673
Remove Input action, detect ignored input in vim via an event
2022-07-21 13:40:48 -07:00
K Simmons
a77cf914ec
Fix failing test re mode switch in buffer search
2022-07-19 17:18:17 -07:00
K Simmons
1cfaac1bc5
Fix clipping when dragging the mouse with vim-mode enabled and adjust single line editor selections
2022-07-19 17:18:17 -07:00
Keith Simmons
667d031ec8
Merge pull request #1311 from zed-industries/fix-visual-paste
...
Fix visual paste
2022-07-08 16:54:10 -07:00
Keith Simmons
ee007f901a
fix pasting at the end of the line in normal mode
2022-07-08 10:57:02 -07:00
Mikayla Maki
2a6e23ff28
Hoisted assert clipboard into TestAppContext
2022-07-07 14:55:25 -07:00
Keith Simmons
ed52f8a8a3
WIP making paste better
2022-07-05 16:52:56 -07:00
Keith Simmons
229bc94ac3
remove partial edit from normal.rs
2022-07-05 16:48:12 -07:00
Keith Simmons
956dd0c2bc
fix error with reverse range marked text ranges
2022-07-05 16:44:45 -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
c9d23dba6c
Update command palette filter from vim mode more proactively
2022-06-29 11:58:12 -07:00
Keith Simmons
f6292437fa
Add command palette filter global and update it when vim mode is enabled/disabled
2022-06-28 13:35:43 -07:00
Max Brunsfeld
7bb7187619
Add tests and fix bugs for editor indent/outdent commands w/ hard tabs
2022-06-09 10:26:09 -07:00
Max Brunsfeld
436c989e4b
Merge pull request #1109 from zed-industries/fix-vim-clearing-selections
...
Avoid collapsing selections on editor creation when vim_mode is disabled
2022-06-06 10:32:12 -07:00
Antonio Scandurra
3a69943df3
Require that PartialEq
is implemented for Action
2022-06-06 09:18:44 +02:00
Antonio Scandurra
492cc716d3
Don't manipulate selections when syncing options if vim-mode is disabled
...
Previously, we were always mutating selections when `sync_editor_options`
was called. This seems to happen every time vim is enabled/disabled, but also
when vim is disabled and editors are simply focused/blurred.
This commit changes it so that we only manipulate selections when vim-mode is active.
2022-06-06 08:14:49 +02:00
Max Brunsfeld
905fbacbc7
vim: Avoid collapsing selections on editor creation when vim_mode is disabled
2022-06-04 15:01:43 -07:00
Antonio Scandurra
339069b1d3
Cap MessageStream
buffer size to 1MB
...
We temporarily let it grow when the message size exceed the limit,
but restore the buffer's capacity shortly after. This ensures that,
for each connection in its entire lifetime, we only ever use 1MB.
2022-05-31 11:16:32 +02:00
Max Brunsfeld
42cd2ae142
Avoid switching to visual mode when following in vim mode
...
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-05-26 17:02:05 -07:00
Keith Simmons
d11bc2a4b7
Fixup paste locations
2022-05-26 17:02:05 -07:00
Keith Simmons
98f9575653
WIP
2022-05-26 17:02:05 -07:00
Keith Simmons
e93c49f4f0
Unify visual line_mode and non line_mode operators
2022-05-26 17:02:05 -07:00
Keith Simmons
11569a869a
in progress working on aborting operators on unhandled editor input
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
33940b5dd9
Add visual line mode operator tests
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
d094d1d891
WIP copy on delete
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
Max Brunsfeld
ef0b584532
Remove AppState from workspace actions
...
This allows those actions to be bound to keystrokes in the keymap.
Also, remove the WorkspaceParams struct, simplify how Workspaces are
constructed.
2022-05-19 14:37:26 -07:00
Keith Simmons
45ea3d4c38
Review fixes
2022-05-13 15:55:27 -07:00
Keith Simmons
20c97637a4
minor tweaks to selections collection api
2022-05-13 15:55:27 -07:00
Keith Simmons
de9dc27980
store buffer and display_map model handles on selections collection
2022-05-13 15:55:27 -07:00
Keith Simmons
db0a9114c2
Passing tests and removed local argument. Also pulled autoscroll argument out to change_selections
2022-05-13 15:55:27 -07:00
Keith Simmons
c9dcfff607
Move selection helpers to SelectionCollection, add update_anchor_selections, add a number of invariant preserving mutation functions to the MutableSelectionCollection
2022-05-13 15:55:17 -07:00
Keith Simmons
6c57fcf9be
Merge pull request #968 from zed-industries/vim-visual-mode
...
Vim visual mode
2022-05-10 12:51:58 -07:00
Keith Simmons
3f1640a9a0
Fix up assertion errors in set_eq and visual tests
2022-05-10 11:12:34 -07:00
Keith Simmons
37c921f972
Initial visual mode
2022-05-10 11:12:28 -07:00
Antonio Scandurra
2e6cf2011d
When opening items via project panel, only focus them on double-click
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-05-05 15:27:27 +02:00
Keith Simmons
797aecf7c1
Don't reset vim mode on editor focus
2022-05-02 11:49:10 -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
74b467aaa8
tweak editor selection mutating functions
2022-04-28 13:46:06 -07:00
Keith Simmons
5ea782de21
Add inclusive vs exclusive motions to vim mode
2022-04-21 16:50:23 -07:00
Max Brunsfeld
3a28f09979
Allow comments in setting and keymap JSON files
2022-04-21 11:58:18 -07:00
Keith Simmons
8ff0277103
Handle linewise motions correctly and fix panic when executing invalid actions
2022-04-19 11:36:44 -07:00
Keith Simmons
dd25ab5798
Revert d/c j and k binding special casing
2022-04-18 14:44:11 -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
ee3eb9658f
Use the word 'keymap' more consistently
...
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-11 17:02:16 -07:00
Max Brunsfeld
be11f63f1e
Watch ~/.zed/bindings.json file for custom key bindings
...
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-11 16:50:44 -07:00
Max Brunsfeld
92a5c30389
Merge branch 'main' into load-keymaps
2022-04-11 15:55:10 -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
Max Brunsfeld
9a4b8e3d8c
Load all keybindings from JSON file
2022-04-10 14:29:45 -07:00
Nathan Sobo
17195e615e
Merge pull request #781 from zed-industries/structured-logging
...
Introduce structured logging
2022-04-09 07:40:24 -06:00
Max Brunsfeld
fd4b81c8fc
Allow actions to be deserialized from JSON
...
Introduce separate macro for implementing 'internal' actions which
are not intended to be loaded from keymaps.
2022-04-08 15:47:51 -07:00
Nathan Sobo
7e5a3f9f6b
Introduce structured logging
...
We're enabling the log crate feature everywhere, but only using it on the server for now.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-04-08 10:06:51 -06:00
Max Brunsfeld
5242a3a6dc
Restructure action macro to assign a namespace to every action
...
Also, allow arbitrary types to be used as Actions via the impl_actions macro
Co-authored-by: Nathan Sobo <nathan@zed.dev>
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-07 16:20:49 -07:00
Max Brunsfeld
866ffdd4ae
Move Settings to its own crate
...
Co-authored-by: Keith Simmons <keith@zed.dev>
2022-04-06 10:23:33 -07:00
Antonio Scandurra
328be473e5
Rename sub_mode
to submode
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-04-04 14:14:21 +02:00
Keith Simmons
a7a52ef3f7
Add word and line movement in vim normal mode
...
Add jump to start and end of the document
Move vim tests to relevant vim files
Rename VimTestAppContext to VimTestContext for brevity
Improve VimTestContext assertions to pretty print locations when selection position assertion panics
2022-03-27 17:58:28 -07:00
Nathan Sobo
c6ad667d49
Assign normal mode when re-enabling
2022-03-26 19:19:12 -06:00
Nathan Sobo
daf999c3be
Fully disable vim mode on start unless it's enabled
...
Also: Make some structural adjustments to remove the need for defer. Instead of accessing the global in associated VimState functions, have a single method that allows us to call update instance methods.
2022-03-26 19:19:12 -06:00
Nathan Sobo
30e31f6561
Test that vim mode can be disabled on startup
2022-03-26 19:19:12 -06:00
Keith Simmons
1a29180185
Fixed issue with enabling and disabling vim mode dynamically
...
Also added indoc and marked text utility to vim tests to improve readability
2022-03-25 20:10:52 -07:00