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
Keith Simmons
0aaf270650
Add clip_to_line_end to display_map/snapshot and set it to ensure vim positioning in normal mode
...
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-03-25 20:10:52 -07:00
Keith Simmons
bb9b36dccd
Add initial vim mode mode switching
...
Co-authored-by: Nathan Sobo <nathan@zed.dev>
2022-03-25 20:10:37 -07:00