Max Brunsfeld and Nathan Sobo
75ac4f8925
Fix panic when resolving anchors after an excerpt id has been recycled
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-05 11:28:49 -08:00
Antonio Scandurra
386b1d4719
Remove invalid excerpts as opposed to styling them differently
2022-01-05 18:21:17 +01:00
Antonio Scandurra and Max Brunsfeld
7525741533
Merge branch 'main' into polish-project-diagnostics
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2022-01-04 18:35:28 +01:00
Antonio Scandurra
dd5ba61ab6
Rip out "diagnostic providers"
2022-01-04 16:32:17 +01:00
Antonio Scandurra
c7cdff2c38
Clip right when moving to next word in case we land on a block line
2022-01-04 15:17:37 +01:00
Antonio Scandurra
665f681f3b
Position selections correctly when duplicating lines in a multi-buffer
2022-01-04 15:17:37 +01:00
Antonio Scandurra
5ebd9e625a
Position cursors correctly in Editor::delete_line in a multi-buffer
2022-01-04 15:17:37 +01:00
Antonio Scandurra
9e9eb32e5d
Capture a new buffer snapshot for excerpts whose selections got updated
2022-01-04 12:22:51 +01:00
Max Brunsfeld
4dc7129144
Remove worktree-specific methods from language::File trait
...
Use downcasting instead for accessing worktree-specific state of the Files.
This will allow us to introduce a WorktreeId type and use that everywhere
for identifying worktrees. It also just removes some unnecessary coupling
between the language crate and the worktree.
2022-01-04 11:28:44 +01:00
Nathan Sobo
2819bb6ca5
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
Nathan Sobo
5694296526
Use anchors for line movement edits to support multi-buffers
...
Because multi-buffers can contain the same content multiple times, we need to use anchors to track our desired insertion and removal locations when moving lines. This is because deleting a line in order to move it might end up deleting *multiple* lines.
2021-12-29 23:47:03 -08:00
Max Brunsfeld
624739b228
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
c6f22af22c
WIP: Start moving toward a simpler interface for detecting prev/next line boundaries
2021-12-27 22:11:05 -08:00
Nathan Sobo
45e29917c3
wip
2021-12-27 21:14:23 -08:00
Max Brunsfeld
24f71e4b94
Add a unit test showing panic in move_line_down
2021-12-27 20:58:01 -08:00
Max Brunsfeld and Nathan Sobo
9838df770f
Add MultiBufferSnapshot::range_contains_excerpt_boundary
...
Use this method to disable move_line_down across excerpt boundaries.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-27 17:08:31 -08:00
Nathan Sobo
8c538e6617
WIP: Allow lines to be moved down across excerpts
...
This is still a bit weird because we can't remove the last line of an excerpt but we still move it into another buffer. There also seem to be issues with undo.
2021-12-27 15:46:19 -08:00
Nathan Sobo
b6c652510b
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 and Nathan Sobo
58d16afd9d
Fix Editor::newest_selection
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-27 15:42:37 -08:00
Max Brunsfeld and Nathan Sobo
8712146959
Store selections with a right start bias so that autoindent moves them
...
Previously, cursors at column 0 had to be explicitly moved when those lines
were autoindented. This behavior was lost when we moved selections from
the buffer to the editor. Now, with the right bias, we get this behavior automatically.
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-27 15:33:57 -08:00
Nathan Sobo and Aaron Hillegass
4783797471
Don't merge keymap contexts from containing elements
...
Co-Authored-By: Aaron Hillegass <charmedliferaft@gmail.com >
2021-12-24 16:44:35 -07:00
Antonio Scandurra
ae276700d6
Implement Buffer::diagnostic_group
2021-12-24 12:08:55 +01:00
fdf93932dc
WIP: Use cargo check for on-disk diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2021-12-23 18:35:50 +01:00
Antonio Scandurra and Nathan Sobo
6bb9757b1f
Only preserve excerpts for invalid diagnostics if they contain cursors
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-23 16:33:50 +01:00
Antonio Scandurra
db9f25d6ad
Use a different invalidation strategy for project-wide diagnostics
2021-12-23 15:41:43 +01:00
Antonio Scandurra
85d495aa33
Remove BufferState when the last buffer's excerpt is removed
2021-12-23 09:59:39 +01:00
Max Brunsfeld
401791cc75
Fix remove_excerpts when removing the last N excerpts, N > 1
...
Also, generalize the randomized test to remove multiple excerpts at a time
2021-12-22 21:02:20 -08:00
Max Brunsfeld
8c37f7c519
Implement MultiBuffer::insert_excerpt_after
2021-12-22 17:59:44 -08:00
Max Brunsfeld
a5b4c339cf
Add Editor::remove_blocks
2021-12-22 17:30:14 -08:00
Max Brunsfeld
4be5dcff9e
Remove unused multi_buffer::FromAnchor trait
2021-12-22 13:27:43 -08:00
Max Brunsfeld
1491cc23d3
Revert "Implement MultiBuffer::remove_excerpts by inserting tombstones"
...
This reverts commit d1b15cd060 .
2021-12-22 10:18:33 -08:00
Antonio Scandurra
d1b15cd060
Implement MultiBuffer::remove_excerpts by inserting tombstones
...
This will make it easier to use anchors in the presence of deletes.
2021-12-22 17:57:36 +01:00
Max Brunsfeld
7790112f4b
Implement MultiBuffer::remove_excerpts
...
We'll need this for updating project diagnostics
2021-12-21 15:25:57 -08:00
Max Brunsfeld
11a46e978b
Avoid repeated subscriptions + clones when adding another excerpt for same buffer
2021-12-21 14:28:23 -08:00
Max Brunsfeld
a61bb80ccd
Fix maintenance of MultiBuffer's buffer states
2021-12-21 13:07:43 -08:00
Max Brunsfeld
5884a78267
Index max buffer row on MultiBuffer
2021-12-21 12:36:46 -08:00
Max Brunsfeld
3bf003a6cc
Remove header heights from multibuffer randomized test
2021-12-21 10:24:01 -08:00
Antonio Scandurra and Max Brunsfeld
c122723122
Render excerpt headers using DisplayMap::insert_blocks
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2021-12-21 18:32:27 +01:00
Antonio Scandurra
b4a4c15e86
WIP: Insert blocks in BlockMap for MultiBuffer headers
2021-12-21 17:38:03 +01:00
Antonio Scandurra
4521b576c8
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 Nathan Sobo
a8488fee91
Merge branch 'main' into share-project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-20 11:42:59 -08:00
Nathan Sobo
0fdc955732
Insert a time heading when creating a journal entry
2021-12-18 10:38:54 -07:00
Antonio Scandurra and Nathan Sobo
746d9b93e0
Allow saving of all buffers contained in project diagnostics editor
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-17 16:48:16 +01:00
Antonio Scandurra and Nathan Sobo
9a59caff50
Gracefully degrade diagnostics_in_range, diagnostic_group and file
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2021-12-17 16:37:12 +01:00
Antonio Scandurra
34c3c8f595
Implement MultiBuffer::save
...
This is still not integrated with `workspace::ItemView`.
2021-12-17 16:11:18 +01:00
Antonio Scandurra
3dc1435ddc
Implement MultiBuffer::{is_dirty,has_conflict}
2021-12-17 15:33:09 +01:00
Antonio Scandurra
a35d60ee91
Implement MultiBuffer::enclosing_bracket_ranges
2021-12-17 15:05:05 +01:00
Antonio Scandurra
f280e8c6f1
Implement MultiBuffer::range_for_syntax_ancestor
2021-12-17 14:57:42 +01:00
Antonio Scandurra
647a5cb5d3
Make MultiBuffer::is_parsing a test-only method
2021-12-17 14:57:24 +01:00
Antonio Scandurra
21a4e89e98
Display filename on the first excerpt's header for a group
2021-12-17 13:49:21 +01:00