Max Brunsfeld and Nathan Sobo
c80812c809
Add a few more rust highlighting patterns
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-05-25 17:42:46 -07: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
2e7593dd79
💄
2021-05-25 14:20:53 +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
bc8d2b2f1d
💄
2021-05-24 17:14:17 +02:00
Antonio Scandurra
d063ebdf9b
Correctly store current chunk offset in fold_map::HighlightedChunks
2021-05-24 16:52:01 +02:00
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
Max Brunsfeld
4e74a8726c
Bump context-predicate grammar to the latest Tree-sitter
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
995b80ff26
Index into prefix or path depending on where the match was found
...
This fixes a couple of tests that were panicking due to an out-of-bound
access.
2021-05-20 12:47:08 +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
4bc1b0fa6f
Convert fuzzy match positions to byte offsets
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
64d361fdb2
Don't use condition to wait for spawn_search to complete
...
Instead, return a `Task` from `spawn_search` that can either be
awaited or detached.
2021-05-19 15:36:24 +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
830fc38503
Increase condition timeout on CI and remove condition_with_duration
...
`condition_with_duration` wasn't really being used, as the default
timeout was `500ms` and the only places that did use it specified
`500ms` as well.
2021-05-19 14:42:10 +02:00
Antonio Scandurra
a8ece757e4
Implement time::Global using a SmallVec
...
Version vectors are going to be small most of the time, especially
as soon as we introduce an optimization that will let us only
track concurrent versions, thus preventing the version vector from
growing indefinitely over time in the tree.
2021-05-18 17:34:48 +02:00
Antonio Scandurra
84e0efe5df
Save a few allocations when pushing to a SumTree
2021-05-18 17:34:36 +02:00