Max Brunsfeld
b7e115a6a1
Add a test for multi-language auto-indent
2022-10-05 17:59:31 -07:00
Max Brunsfeld
7fb5fe036a
Derive indent size from the language at the cursor when auto-indenting
2022-10-05 17:07:35 -07:00
Max Brunsfeld
aa86806408
Finish generalizing ToggleComments to support block comments
2022-10-05 12:25:32 -07:00
Max Brunsfeld
d9fb8c90d8
Start work on toggling block comments for HTML
2022-10-04 17:27:03 -07:00
Max Brunsfeld
c354b9b959
Add assertions to test for autoclose with embedded languages
2022-10-03 13:24:37 -07:00
Max Brunsfeld
4f44375abd
Make Buffer::language_at fall back to Buffer::language
...
For languages with no grammar (plain text), there
will be no layers.
2022-09-28 13:38:54 -07:00
Max Brunsfeld
67e188a015
Add Buffer::language_at, update MultiBuffer to use it
...
Co-authored-by: Julia Risley <floc@unpromptedtirade.com>
2022-09-28 12:32:04 -07:00
Max Brunsfeld
21fb2b9bf1
Tweak HTML indents and highlights
2022-09-28 12:32:04 -07:00
Max Brunsfeld
0777af1dd3
Fix crash when querying for enclosing brackets at EOF
2022-09-02 10:23:46 -07:00
Mikayla Maki
ebae991cb2
Finished terminal search
2022-09-01 13:45:46 -07:00
Max Brunsfeld
d4bbf21650
Merge pull request #1559 from zed-industries/language-injection
...
Add language injection support
2022-08-30 11:54:00 -07:00
Max Brunsfeld
a38c6015db
Fix bugs in SyntaxMap::interpolate found by the randomized test
2022-08-29 16:52:58 -07:00
Max Brunsfeld
1746ec573a
Check invariants after interpolating tree in random syntax map test
2022-08-29 16:16:11 -07:00
Max Brunsfeld
74a2b093ab
Start work on randomized test for SyntaxMap, fix discovered bugs
2022-08-25 17:49:39 -07:00
Max Brunsfeld
1f12186e3c
Update to latest tree-sitter commit
...
This is needed for https://github.com/tree-sitter/tree-sitter/pull/1845
2022-08-25 10:58:46 -07:00
Max Brunsfeld
61b70b7e2d
Fix re-parsing when buffer's language has changed
2022-08-24 15:32:42 -07:00
Max Brunsfeld
015b6c4a31
Fix test about auto-indent with no indent query
2022-08-24 15:29:07 -07:00
Max Brunsfeld
b3f4c73264
Clean up some of buffer's syntax-related methods
2022-08-24 15:11:26 -07:00
Max Brunsfeld
3245e4f8d7
Fix out-of-range panic when requesting outline items at EOF
2022-08-24 15:10:53 -07:00
Max Brunsfeld
587175d0ea
Update syntax map's interpolated version when a parse completes
2022-08-24 15:09:10 -07:00
Max Brunsfeld
ced45cbb0a
Use SyntaxMap in Buffer
2022-08-24 13:00:27 -07:00
Max Brunsfeld
9113c94371
Add SyntaxMap methods for running queries and combining their results
2022-08-23 14:26:09 -07:00
Max Brunsfeld
71e17a54ae
Fix case where layers were processed linearly when reparsing
2022-08-23 09:38:03 -07:00
Antonio Scandurra
f0d35ccc50
Move operation serialization off the main thread
2022-08-23 16:34:25 +02:00
Antonio Scandurra
954695f5fe
Stream buffer ops in the background when creating buffer for peers
2022-08-23 16:05:56 +02:00
Antonio Scandurra
ec48ffc9da
Simplify proto::Buffer
to express its fields in terms of operations
2022-08-23 12:40:20 +02:00
Max Brunsfeld
ae9e1338f6
Fix more bugs in syntax map interpolation
2022-08-22 17:52:14 -07:00
Max Brunsfeld
58fda5ac1c
Test more editing patterns of SyntaxMap, fix bugs
2022-08-22 15:36:58 -07:00
Max Brunsfeld
e8548e7732
Restructure handling of changed regions when reparsing
2022-08-21 11:39:02 -07:00
Max Brunsfeld
5209e2d68c
Fix off-by-one in handling edits, start on more edit unit tests
2022-08-21 11:37:17 -07:00
Max Brunsfeld
02f8705f2e
Start work on handling edits in the SyntaxMap
2022-08-21 11:37:10 -07:00
Max Brunsfeld
f6a817a0f3
Start work on a SyntaxMap data structure
2022-08-21 11:37:10 -07:00
Antonio Scandurra
9c9bf07e40
Create buffers for remote collaborators out of band
...
Previously, we would use `Project::serialize_buffer_for_peer` and
`Project::deserialize_buffer` respectively in the host and in the
guest to create a new buffer or just send its ID if the host thought
the buffer had already been sent.
These methods would be called as part of other methods, such as
`Project::open_buffer_by_id` or `Project::open_buffer_for_symbol`.
However, if any of the tasks driving the futures that eventually
called `Project::deserialize_buffer` were dropped after the host
responded with the buffer state but (crucially) before the guest
deserialized it and registered it, there could be a situation where
the host thought the guest had the buffer (thus sending them just the
buffer id) and the guest would wait indefinitely.
Given how crucial this interaction is, this commit switches to creating
remote buffers for peers out of band. The host will push buffers to guests,
who will always refer to buffers via IDs and wait for the host to send them,
as opposed to including the buffer's payload as part of some other operation.
2022-08-17 11:55:36 +02:00
Antonio Scandurra
ab236a6008
Fix divergence bug in undo/redo
...
As part of #1405 , we changed the way we performed undo and redo to
support combining transactions that were not temporally adjacent for
IME purposes.
We introduced a bug with that release that caused divergence
when performing undo: the bug was caused by only changing the visibility
of fragments whose insertion id was contained in the undo operation. However,
an undo operation also affects deletions which we were mistakenly not
considering. Randomized tests caught this but I guess we didn't run enough
of them.
2022-08-17 11:30:04 +02:00
K Simmons
9aa3f2d777
clippy fixes for focus change
2022-08-10 16:51:01 -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
Julia
8115c1ab24
Merge pull request #1451 from zed-industries/tab-auto-indent
...
Auto-indent on tab for cursors left of the suggested indent level
2022-08-02 15:52:12 -04:00
Antonio Scandurra
71128d2ee6
Compute diffs based on characters rather than lines
...
Previously, a change on a given line would cause that whole line to be
replaced. In turn, this caused anchors on that line to go to the start
of that line because they would lie inside of a deleted region after applying
the diff.
By switching to a character-wise diff, we perform smaller edits to the buffer
which stabilizes anchor positions.
2022-08-02 16:52:37 +02:00
Max Brunsfeld
115677ec5d
Start work on auto-indenting lines on tab
...
Co-authored-by: Julia Risley <floc@unpromptedtirade.com>
2022-08-01 16:47:59 -07:00
Max Brunsfeld
04e40608a0
Fix mistakes in editor auto-indent test
2022-08-01 11:02:29 -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
2d05f906f1
Start work on adjusting pasted text based on old start column
2022-07-28 17:29:42 -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
Max Brunsfeld
cdf6ae25bb
Remove indent_size
parameter from Buffer::edit_with_autoindent
...
Instead, compute the indent size by reading the settings inside that method.
Co-authored-by: Mikayla Maki <mikayla.c.maki@gmail.com>
2022-07-28 13:00:05 -07:00
Max Brunsfeld
b1b252ee45
Fix error in autoindent range calculation
2022-07-28 11:51:03 -07:00
Max Brunsfeld
f547c268ce
Restructure autoindent to preserve relative indentation of inserted text
2022-07-26 17:43:43 -07:00
Max Brunsfeld
537530bf76
🎨 compute_autoindents
2022-07-26 17:09:30 -07:00
Max Brunsfeld
09ed149184
Improve calculation of which lines are new when auto-indenting
2022-07-26 17:09:30 -07:00
Antonio Scandurra
ca3e73106c
Merge branch 'main' into ime-support-2
2022-07-25 10:47:49 +02:00