Nathan Sobo
7e90519ffc
Merge pull request #205 from zed-industries/autoindent
...
Autoindent
2021-10-19 14:23:04 +02:00
230307ce59
Insert an extra newline between brackets
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-10-19 13:17:16 +02:00
Nate Butler
0192dea583
Make light collab cursor not yellow for Nathan ;)
2021-10-17 18:28:05 +02:00
Nathan Sobo
1a48b3e5e6
Restore all active selections when undoing/redoing autoindent
...
In the unlikely event that we're handling autoindent requests from multiple editors, we undo/redo selections from both editors. This is somewhat imperfect but probably good enough and easier than performing auto-indents on a per-editor basis.
2021-10-11 17:22:18 -06:00
Max Brunsfeld
1d24ca172f
Move selections explicitly when applying autoindents
2021-10-11 15:27:38 -07:00
Max Brunsfeld
83db3ac840
Add unit tests for selective indentation adjustment
2021-10-11 13:02:01 -07:00
Max Brunsfeld
991d42724a
Move buffer tests into their own file
2021-10-11 12:18:31 -07:00
Max Brunsfeld and Nathan Sobo
71ed81bc93
Ensure that autoindent task yields frequently to respect cancellation
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-10-11 11:25:15 -07:00
Antonio Scandurra and Nathan Sobo
f8188c8519
WIP: Determine autoindents asynchronously
...
We still need to insert yield points in `compute_autoindents`.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-10-11 18:00:48 +02:00
Antonio Scandurra
864ebc7c31
Fix creation of anchors for the inserted portion of an edit
2021-10-11 13:08:50 +02:00
Antonio Scandurra
6471d88238
Always use seek_forward when resolving anchors
2021-10-11 09:37:21 +02:00
Nathan Sobo
a4223aab87
Improve auto-indenting of inserted lines
...
Still not working totally correctly with our new approach, but getting closer.
2021-10-08 22:07:01 -06:00
Max Brunsfeld and Nathan Sobo
149fc28019
Start on new way of comparing old and new indent suggestions
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-10-08 16:54:27 -07:00
Nathan Sobo and Antonio Scandurra
b72f13af66
Extend Rust where clauses past their final newline for indentation
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2021-10-08 10:32:15 -06:00
Nathan Sobo and Antonio Scandurra
5b09707cb0
Don't request auto-indent if there is no language assigned on the buffer
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2021-10-08 10:25:16 -06:00
Nathan Sobo and Antonio Scandurra
e9bcc7779d
Unconditionally preserve indentation when inserting newlines
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2021-10-08 10:25:00 -06:00
Antonio Scandurra and Nathan Sobo
4c6c4d5750
💄
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-10-08 17:43:19 +02:00
Antonio Scandurra
db8cac6536
Cancel out outdents and indents referring to the previous row
2021-10-08 12:52:48 +02:00
Antonio Scandurra
66a833c337
Bias the start of an autoindent request towards the right for new text
...
When a newline is inserted, this prevents the request from including
the line on which the newline got inserted.
2021-10-08 12:15:21 +02:00
Max Brunsfeld
470fa86a60
Replace Buffer::request_autoindent API with ::edit_with_autoindent
...
When computing the "previous autoindent suggestion", we can't just
use the old tree and the current text. We need to find out what the
suggestion would have been before we made any changes.
2021-10-07 17:55:23 -07:00
Max Brunsfeld and Nathan Sobo
0053182229
Preserve indentation for lines that are both indented and outdented
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-10-07 13:55:59 -07:00
Max Brunsfeld
bc1a6ff075
Remove no-longer-used dirty field on buffer::SyntaxTree
...
This became unnecessary when we reworked our reparsing logic
to block from 1ms on each parse.
2021-10-07 12:46:08 -07:00
Max Brunsfeld
8bb2a5f35a
Fix collection of row ranges in Buffer::perform_autoindent
2021-10-07 12:43:26 -07:00
Max Brunsfeld and Antonio Scandurra
3202d11680
Implement selective auto-indent by comparing old and new suggestions
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2021-10-07 10:46:40 -07:00
Antonio Scandurra and Max Brunsfeld
f1aa471d38
WIP
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2021-10-07 19:09:14 +02:00
Antonio Scandurra and Nathan Sobo
0d6f728b81
Introduce a Tab action to indent line or insert soft tabs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-10-07 17:31:58 +02:00
Antonio Scandurra and Nathan Sobo
b4337b0c2f
Don't push empty transactions onto the undo stack
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-10-07 16:06:55 +02:00
Max Brunsfeld
a21a1b483b
Add more rust indent nodes
2021-10-06 22:16:30 -07:00
Max Brunsfeld
9a954bc1d6
Generalize strategy for processing indentation ranges
...
* Take into account the ranges' start and end columns, not just the rows
* Generalize the approach to dedenting
2021-10-06 22:16:18 -07:00
Max Brunsfeld and Nathan Sobo
4525cbc448
Start work on a Buffer API for requesting autoindent on the next parse
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-10-06 16:09:30 -07:00
10f07a81a7
Skip autoclosed pairs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2021-10-06 19:04:55 +02:00
Antonio Scandurra and Nathan Sobo
0acdd804f8
Start on autoclosing pairs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-10-06 16:34:57 +02:00
Max Brunsfeld
22eeeb4690
Make the fields of buffer::Language private
2021-10-05 14:19:33 -07:00
Max Brunsfeld
5c8d1d1fb6
Add Cargo.toml features to fix compilation of individual crates
2021-10-05 14:18:04 -07:00
14e9b03c52
Flip the dependency between editor and theme
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2021-10-05 19:21:13 +02:00
Antonio Scandurra
f3583120de
Use the same test::run_test function for async gpui::tests
2021-10-05 18:04:22 +02:00
Antonio Scandurra and Nathan Sobo
5aeb48a234
Minimize code generation for synchronous gpui::test macro
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-10-05 17:47:46 +02:00
Antonio Scandurra
00683212b1
Avoid loading Rust grammar in zed tests
2021-10-05 15:43:57 +02:00
Antonio Scandurra
43bb8d28aa
Extract theme_selector into its own crate
2021-10-05 15:38:25 +02:00
Antonio Scandurra
ce077ebc8e
Extract people_panel into its own crate
2021-10-05 14:36:38 +02:00
Antonio Scandurra
ac46768302
Extract file_finder into its own crate
2021-10-05 14:30:56 +02:00
Antonio Scandurra
436c408433
Extract chat_panel into its own crate
2021-10-05 14:23:45 +02:00
Antonio Scandurra
2db30f40ba
Extract project_panel into its own crate
2021-10-05 14:19:57 +02:00
Antonio Scandurra
3dc173cf40
Move workspace module into its own crate
2021-10-05 13:49:10 +02:00
Antonio Scandurra
a70a4edcaa
Extract theme into its own crate
2021-10-05 11:14:30 +02:00
Antonio Scandurra
cd9d8a3ff8
Move settings::test helper into zed::test
2021-10-05 11:00:46 +02:00
Antonio Scandurra
6cdcb4fa79
Move sidebar-specific code out of Workspace
2021-10-05 10:59:20 +02:00
Antonio Scandurra
1af342e569
Use edition = 2018 instead of 2021 for the editor crate
2021-10-05 10:16:13 +02:00
Max Brunsfeld and Nathan Sobo
06a44e9171
Move ChannelList, UserStore into client crate
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-10-04 17:30:11 -07:00
Max Brunsfeld and Nathan Sobo
95c15b11b1
Rename rpc_client -> client
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-10-04 17:14:21 -07:00