Commit Graph
427 Commits
Author SHA1 Message Date
Max BrunsfeldandNathan 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 BrunsfeldandNathan 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 ScandurraandNathan 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 ScandurraandNathan 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 BrunsfeldandAntonio 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 BrunsfeldandNathan 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 ScandurraandNathan 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