Antonio Scandurra
07aeb32ef4
Punt on auto-indentation for now
2021-05-28 10:17:10 +02:00
Max Brunsfeld
79878f20cc
WIP - new approach to autoindent
...
- Indent one row at a time.
- Consider only the innermost match.
2021-05-27 15:05:19 -07:00
Max Brunsfeld and Antonio Scandurra
fc8758c619
Reset QueryCursors before putting them back in the pool
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2021-05-27 09:37:17 -07:00
Antonio Scandurra
c423033042
Fix panic in autoindent_for_rows caused by overshooting row range
2021-05-27 18:23:32 +02:00
Max Brunsfeld and Nathan Sobo
7bea3fd2fe
Start on a query-based autoindent system
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-26 17:23:53 -07:00
Max Brunsfeld
3c0673852b
💄 Add Buffer::row_count
2021-05-26 12:01:09 -07:00
Antonio Scandurra and Nathan Sobo
7c084846af
Batch indent_for_rows
...
There's still a `todo!` in the test to write more assertions and verify
this more complex, batched logic.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-26 17:37:50 +02:00
Antonio Scandurra
acf84f939d
Add Buffer::autoindent_for_row
2021-05-26 16:00:01 +02:00
Max Brunsfeld and Nathan Sobo
5d2ac3f4e4
Use new Tree-sitter captures API
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-25 16:02:43 -07:00
Antonio Scandurra
43ddb6f640
WIP: Push failing test for DisplayMap::highlighted_chunks_at
2021-05-25 17:20:46 +02:00
Antonio Scandurra
bafac35d6a
Reparse if syntax tree is up-to-date but in an interpolated state
2021-05-25 12:10:36 +02:00
Antonio Scandurra
aeb68867da
Move highlighted_text_in_range from Buffer to buffer::Snapshot
2021-05-25 11:51:29 +02:00
Max Brunsfeld
8340958b33
Convert query capture indices to style ids
...
* Introduce a Theme struct as a new part of the app's settings
* Store on each Language a ThemeMap, which converts the capture ids
from that language's highlight query into StyleIds, which identify
styles in the current Theme.
* Update `highlighted_chunks` methods to provide StyleIds instead of
capture ids.
2021-05-24 16:44:14 -07:00
Antonio Scandurra
d1788c69ab
Support highlighted_text_for_range for buffers without a language
2021-05-24 16:47:13 +02:00
Antonio Scandurra
4ddf10967e
Introduce fold_map::HighlightedChunks
2021-05-24 15:39:22 +02:00
Antonio Scandurra
491932b691
Rename HighlightedChunksIter to HighlightedChunks
2021-05-24 15:07:02 +02:00
Antonio Scandurra
4ada5e0666
Rename rope::ChunksIter to rope::Chunks
...
This is consistent with how we name the other chunk iterators.
2021-05-24 15:05:11 +02:00
Antonio Scandurra
6e791edb18
Don't acquire the buffer mutably in highlighted_text_for_range
2021-05-24 12:43:29 +02:00
Antonio Scandurra
23b25307d9
Start on a basic implementation of HighlightedChunksIter
2021-05-24 11:23:42 +02:00
Max Brunsfeld
b51ae1f668
WIP
2021-05-23 21:42:45 -07:00
Antonio Scandurra and Nathan Sobo
b0859d4265
Extract a Buffer::syntax_tree to sync the syntax tree with the buffer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-22 12:34:35 +02:00
Antonio Scandurra
c1b4cca48b
Delete commented-out diff code
2021-05-22 12:34:35 +02:00
Antonio Scandurra
3a576f0b65
Don't clone visible_text for splicing edits into the parse tree
2021-05-22 12:34:35 +02:00
Antonio Scandurra
64b1113455
Restructure parsing to use edits_since
2021-05-22 12:34:35 +02:00
Antonio Scandurra
9836f1f638
Reparse buffer on undo, redo and after applying a remote operation
2021-05-22 12:34:35 +02:00
Max Brunsfeld
fe8dc9fba0
Add a unit test for reparsing a buffer
2021-05-22 12:34:35 +02:00
Max Brunsfeld
46e6b2cff4
Start maintaining a syntax tree on buffers
2021-05-22 12:34:35 +02:00
2f378be1a8
Introduce LanguageRegistry object
...
* Include it, along with settings in `OpenParams` grouped under a new struct called `AppState`
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-22 12:34:35 +02:00
Antonio Scandurra and Nathan Sobo
b42f5142f7
Rename rightmost_{row,chars} to longest_{row,chars}
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-20 16:32:09 +02:00
Antonio Scandurra
6a0757ebf9
Don't store rightmost row/char-column as a Point
2021-05-20 12:52:58 +02:00
Antonio Scandurra
96538354b3
Express rightmost_point in terms of chars as opposed to bytes
2021-05-20 12:47:08 +02:00
Max Brunsfeld and Antonio Scandurra
510f20411a
Get cursor movement working with byte columns
...
Introduce `clip_point` and `clip_offset` methods on `Rope`, `Buffer`, and `FoldMap`.
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2021-05-20 12:47:08 +02:00
Max Brunsfeld
f3db0dcff6
Start work on making row/columnwise movement work w/ byte columns
2021-05-20 12:47:08 +02:00
Max Brunsfeld and Nathan Sobo
6621b9b552
Expand tabs correctly with multibyte characters
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-20 12:47:08 +02:00
Max Brunsfeld
a9583d0074
Introduce FoldMapSnapshot::chunks_at, use it in FoldMap::text
...
Get the FoldMap randomized tests passing. This also required adding
a test-only FoldMap::prev_char_boundary method.
2021-05-20 12:47:08 +02:00
Max Brunsfeld
b3d2a70834
Don't return Results from position methods in FoldMap and DisplayMap
2021-05-20 12:47:08 +02:00
Max Brunsfeld
72b98ad688
Get buffer tests passing after switching to byte coordinates
2021-05-20 12:47:08 +02:00
Antonio Scandurra and Nathan Sobo
f7691fc00c
WIP: Switch to byte-oriented indexing
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-20 12:47:08 +02:00
Antonio Scandurra
529a42e78f
Introduce Rope::chunks_in_range
2021-05-20 12:47:08 +02:00
Antonio Scandurra
65cf9b7c1d
Remove condition_with_duration for ModelHandle
...
Also, use a 2s timeout on CI for both `ModelHandle::condition` and
`ViewHandle::condition`.
2021-05-19 14:50:28 +02:00
Antonio Scandurra
781aa92f26
Don't summarize unnecessary information when resolving anchor
2021-05-18 17:34:28 +02:00
Antonio Scandurra
81e162318f
💄
2021-05-15 11:52:49 +02:00
Antonio Scandurra
5f93d7f755
Return error in Rope::to_offset(point) when the point doesn't exist
2021-05-15 11:43:29 +02:00
Antonio Scandurra
c9987f9488
Optimize Rope::append by merging chunks only when they're underflowing
2021-05-15 11:32:34 +02:00
Antonio Scandurra
76a74e431e
Introduce rope::Cursor::summary to avoid slicing only to get a summary
...
This also deletes `Rope::slice`, as it's just a convenience method that
can be easily re-implemented by using the cursor.
2021-05-15 11:29:48 +02:00
Antonio Scandurra
def0aa98b2
Maximize chunks occupation by splitting chunks appropriately
2021-05-15 10:18:59 +02:00
Antonio Scandurra
1190a87a05
Avoid heap allocation when splitting an existing chunk
2021-05-15 10:08:01 +02:00
Max Brunsfeld
243b66a91d
Add unit test for rope with all 4-byte chars
2021-05-14 17:53:58 -07:00
Max Brunsfeld
e860cacb9f
Get randomized tests passing in the presence of multibyte chars
2021-05-14 17:45:16 -07:00
Max Brunsfeld
614e96b957
Clarify how the ropes are kept consistent with the fragments
2021-05-14 14:48:19 -07:00