Antonio Scandurra
ab26a175a4
Opt into language-aware features when getting buffer chunks
...
We use chunks a lot to transform points and sync the various display maps,
and always querying tree-sitter or the LSP diagnostics in those cases is
unnecessarily expensive.
2022-02-03 11:21:30 +01:00
Max Brunsfeld
88adddb324
Remove theme parameters from buffer/display map's chunks methods
...
Change Chunks to contain highlight ids instead of actual highlight
styles. Retrieve the actual highlight style from the theme in the
editor element layer.
This is to set us up to perform syntax highlighting in other code
paths where the theme is not available.
2022-02-02 16:33:04 -08:00
Max Brunsfeld
f43dcd6763
Move logic for starting language servers to the project
2022-01-19 14:05:06 -08:00
Antonio Scandurra
0742640b39
Correctly report line boundaries when a map contains both folds and wraps
...
This fixes the randomized test failures that were occurring on main.
2022-01-10 11:26:48 +01:00
Nathan Sobo and Antonio Scandurra
d7a78e14ac
Allow disk-based diagnostic progress begin/end events to interleave
...
When multiple saves occur, we can have multiple start events followed by multiple end events. We don't want to update our project diagnostics view until all pending progress is finished.
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2022-01-06 09:32:08 -07:00
Nathan Sobo
6d6a82655a
Create blocks with anchors to allow a bias to be specified
...
This allows us to respect the bias on anchors we use to create excerpt headers so that they always remain above any content inserted at the start of an excerpt.
2021-12-30 01:03:19 -08:00
Max Brunsfeld
137fbd0088
Update editor element to use new {next,prev}_line_boundary methods
...
Since these methods take buffer points instead of display points, this adjusts
the logic for retrieving the visible selections, so that they are initially returned
in terms of buffer points.
2021-12-28 13:47:09 -08:00
Nathan Sobo
7f786ca8a6
WIP: Start moving toward a simpler interface for detecting prev/next line boundaries
2021-12-27 22:11:05 -08:00
Nathan Sobo
89bbfb8154
wip
2021-12-27 21:14:23 -08:00
Nathan Sobo
835af35839
Simplify prev/next_row_boundary methods
...
We added clipping of points against the buffer when excerpt headers were in the buffer, but now that they're just blocks, I think we can avoid the potential to panic in these methods by going back to not clipping.
2021-12-27 15:46:19 -08:00
Max Brunsfeld
a86ba57983
Add Editor::remove_blocks
2021-12-22 17:30:14 -08:00
Max Brunsfeld
13ecd16685
Index max buffer row on MultiBuffer
2021-12-21 12:36:46 -08:00
Antonio Scandurra
91c786a8db
WIP: Insert blocks in BlockMap for MultiBuffer headers
2021-12-21 17:38:03 +01:00
Antonio Scandurra
8534a9cc41
Don't insert headers in MultiBuffer
...
This lays the groundwork to insert headers in the block map instead.
2021-12-21 16:38:18 +01:00
Max Brunsfeld and Antonio Scandurra
80f3173fbd
Always panic if invalid point is passed to {prev,next}_row_boundary
...
Co-Authored-By: Antonio Scandurra <antonio@zed.dev >
2021-12-16 10:23:45 -08:00
Antonio Scandurra
7660159164
Test blocks in display map randomized tests
...
This highlighted some errors in the implementation.
2021-12-16 16:15:14 +01:00
Antonio Scandurra
abf96e6ad6
Fix movement tests in DisplayMap
2021-12-16 12:36:27 +01:00
Antonio Scandurra
ec39c9d335
Allow specifying MAX_EXCERPTS via an env variable in random tests
2021-12-16 12:28:54 +01:00
Max Brunsfeld and Nathan Sobo
3e2f684545
Fix prev_row_boundary when a wrap follows a fold
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-15 18:30:09 -08:00
Max Brunsfeld
f4115ddc3c
🎨 point_to_display_point & display_point_to_point
2021-12-15 15:45:02 -08:00
Max Brunsfeld
368b4447ff
Clip buffer points in DisplayMap::{prev,next}_row_boundary
2021-12-15 15:41:38 -08:00
80abd84050
Create MultiBuffers with more than one fragment in more randomized tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2021-12-15 18:38:37 +01:00
Nathan Sobo and Max Brunsfeld
6c5b27af1d
Group diagnostics by primary
...
Render primary message above the excerpt and supporting messages as block decorations with a `Below` disposition. This is still super rough.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-12-14 18:26:42 -07:00
Nathan Sobo and Max Brunsfeld
e1a2897d53
Render basic diagnostic messages in project diagnostics view
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-12-14 17:00:57 -07:00
Nathan Sobo
c8b43e3078
Move multi_buffer to editor crate
2021-12-10 17:37:53 -07:00
Max Brunsfeld
a758bd4f8d
Fill in some missing methods on MultiBuffer, MultiBufferSnapshot
2021-12-10 14:27:04 -08:00
Antonio Scandurra and Nathan Sobo
7524974f19
Get everything compiling again
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-10 17:15:16 +01:00
Nathan Sobo and Max Brunsfeld
87d16c271e
Get Editor compiling with MultiBuffer as its buffer
...
There's a bunch of unimplemented methods in MultiBuffer, but everything compiles.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-12-08 19:23:04 -07:00
Max Brunsfeld
fa379885f1
Give more specific names to all snapshot and text iterator types
2021-12-08 09:24:00 -08:00
Nathan Sobo
811696670a
Start on a new FragmentList
...
Here I'm exploring a new approach to the project-wide diagnostics view that can exactly mirror the contents of cargo check. The `FragmentList` composes an arbitrary list of fragments from other buffers and presents them as if they were a single buffer.
2021-12-04 06:57:56 -07:00
Max Brunsfeld and Nathan Sobo
0c714210ff
Start work on generalizing the BlockMap to allow arbitrary elements
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-01 15:25:55 -08:00
Antonio Scandurra and Nathan Sobo
733e0cb21b
Use the new buffer subscription API to keep DisplayMap in sync
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-01 16:08:53 +01:00
Antonio Scandurra
47c467dafc
Bump FoldMap's version in FoldMap::sync (and not in DisplayMap)
2021-12-01 12:05:02 +01:00
Max Brunsfeld and Nathan Sobo
faba276fdc
WIP - maintain foldmap with Buffer::edits_since
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-11-30 17:23:02 -08:00
Nathan Sobo and Max Brunsfeld
d3f28166cb
Rename buffer crate to text and name its entrypoint after the crate
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2021-11-30 12:26:12 -07:00
Antonio Scandurra and Nathan Sobo
2c17ae9aa6
Introduce a new Grammar struct and allow it to be optional
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-11-29 17:38:59 +01:00
Antonio Scandurra and Nathan Sobo
10b3fae2c3
Implement SelectNext
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-11-25 15:44:06 +01:00
Antonio Scandurra
a0ea5b38a0
Add a new movement::surrounding_word function
2021-11-23 17:04:37 +01:00
Antonio Scandurra
6b7ee10287
Retry flaky test_soft_wraps 5 times before giving up
...
We have other tests that rely on loading fonts that intermittently
fail on CI and for which we used the same mitigation.
2021-11-23 11:25:04 +01:00
Antonio Scandurra and Nathan Sobo
8e74cc178e
Invalidate active diagnostics when they are removed
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-11-19 16:15:22 +01:00
Antonio Scandurra and Nathan Sobo
61d8848b31
Make BlockMap::sync private
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-11-19 15:44:19 +01:00
Antonio Scandurra
dfbfa86548
WIP
2021-11-19 15:31:33 +01:00
Max Brunsfeld
8d1a4a6a24
Start work on allowing blocks to be styled
2021-11-18 18:16:35 -08:00
Antonio Scandurra and Nathan Sobo
1a8b23e118
Color diagnostic messages based on their severity
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-11-18 17:47:10 +01:00
Antonio Scandurra and Nathan Sobo
5094380c83
Enhance keyboard navigation when showing next diagnostic
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-11-18 16:55:18 +01:00
Antonio Scandurra and Nathan Sobo
0a6293bcda
Support highlighting in blocks
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-11-18 14:08:21 +01:00
Antonio Scandurra and Nathan Sobo
0f1eb3dd2e
Skip block lines when moving up and down
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-11-18 13:45:06 +01:00
Antonio Scandurra
856768a43c
Remove aggressive logging from WrapMap update code paths
2021-11-18 11:13:40 +01:00
Max Brunsfeld and Nathan Sobo
707ffe8ff3
Implement BlockSnapshot::line_len, use it in DisplayMap
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-11-17 14:56:05 -08:00
Max Brunsfeld and Nathan Sobo
1c3bf90a8a
Reimplement BlockSnapshot::{clip_point,to_block_point,max_point}
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-11-17 12:54:14 -08:00