Antonio Scandurra
c50f978eff
Change BufferView::layout_lines to use highlighted_chunks_at
2021-05-24 16:51:32 +02:00
Antonio Scandurra
d1788c69ab
Support highlighted_text_for_range for buffers without a language
2021-05-24 16:47:13 +02:00
Antonio Scandurra
4b8805bad2
Add DisplayMap::highlighted_chunks_at(row)
...
Note that this API doesn't take a DisplayPoint: it could but it
makes things a bit harder on the implementation side and we don't
really need it anyway, as text is laid out on a line-by-line basis
anyway.
2021-05-24 16:46:11 +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
Nathan Sobo
92ff7f4e5e
Accept colors in styling runs passed to layout_str
...
Also move from the runs being expressed as ranges to the runs being expressed as a sequence of contiguous scalar lengths.
2021-05-21 14:10:38 -06: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
ed57ffe5fa
Replace rightmost_point with righmost_row
2021-05-20 12:47:08 +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
92b938f4a8
Adjust layout_str to use byte coordinates
...
* Interpret ranges as byte ranges for incoming runs
* Return glyphs whose indices are byte offsets
2021-05-20 12:47:08 +02:00
Max Brunsfeld
a2c36fcdb7
Fix bugs and add tests for move_{up,down}
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
c62a679e12
Use chunk-wise DisplayMap iteration when laying out lines
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
Max Brunsfeld
fc2533555c
Remove inline assertions about RopeBuilder invariants
2021-05-14 14:07:25 -07:00
Max Brunsfeld and Nathan Sobo
79c91de2f4
Get tests passing with RopeBuilder
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-14 12:47:19 -07:00
Nathan Sobo
cba8603335
WIP
2021-05-14 10:58:02 -06:00
Antonio Scandurra and Nathan Sobo
2cdf315d95
WIP: Replace ropey with our own Rope
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-14 18:30:47 +02:00
Antonio Scandurra and Nathan Sobo
2f5754db63
Implement a Cursor for Rope
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-14 17:14:57 +02:00
Antonio Scandurra and Nathan Sobo
580fc4fed7
Clarify variable and method names
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-14 16:42:46 +02:00