Antonio Scandurra
245490f934
Implement Project::definition
when the buffer is remote
2022-01-24 13:10:13 +01:00
Antonio Scandurra
f859d444ff
Don't show conflict indicator on remote buffer after a reload
2022-01-24 10:17:36 +01:00
Antonio Scandurra
4372fe1ed0
Maintain remote buffers via UpdateBufferFile
messages sent by host
2022-01-24 09:32:40 +01:00
Nathan Sobo
da13d028a3
Send File protos as part of Buffer protos
...
Use the File proto to build the File associated with the buffer rather than relying on the local entry.
2022-01-22 22:19:04 -07:00
Nathan Sobo
66fce5ec8e
Introduce LocalFile trait
...
If you want to call `abs_path` or `load`, the file needs to be local. You call `as_local` which returns `Option<dyn LocalFile>` with those local-only methods. I think this makes it more explicit what works only locally vs everywhere.
2022-01-22 15:52:14 -07:00
Nathan Sobo
d192b6ebc7
Remove Worktree::abs_path
...
I'd like to only have methods related to absolute paths on local worktrees, because it's not really possible to implement them on remote worktrees since we don't know the full path being shared and wouldn't have anything to do with it anyway if we did.
2022-01-22 14:44:58 -07:00
Nathan Sobo
e2a2073bdb
Remove worktree_path from File struct
2022-01-22 14:29:36 -07:00
Nathan Sobo
83418204b6
Assign diagnostics on buffer even if it doesn't have a language
...
This shouldn't be necessary in practice but makes testing easier.
2022-01-22 09:54:25 -07:00
Max Brunsfeld
bd49a02c92
Move buffers from worktree to project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 15:46:27 -08:00
Antonio Scandurra
71082d4cdc
Return a Task<Result<()>>
in {ItemView,Buffer,MultiBuffer}::save
2022-01-20 09:58:24 +01:00
Max Brunsfeld
f43dcd6763
Move logic for starting language servers to the project
2022-01-19 14:05:06 -08:00
Max Brunsfeld
ea69dcd42a
Match on names only when outline query has no spaces
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 09:16:29 -08:00
Nathan Sobo
b52db22544
Only enable smart case if the query contains an uppercase character
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-14 09:16:09 -07:00
Nathan Sobo
f934370e7f
Match full path when query contains spaces
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-14 09:02:04 -07:00
Antonio Scandurra
be24e58926
Associate StringMatchCandidate
with an id
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 14:55:03 +01:00
Antonio Scandurra
a64ba8b687
Allow matching of context items in outline view
2022-01-14 11:09:02 +01:00
Antonio Scandurra
9c1f58ee89
Maintain order of outline items when filling out tree's missing parts
2022-01-14 09:12:30 +01:00
Max Brunsfeld
adeb7e6864
Incorporate syntax highlighting into symbol outline view
...
Still need to figure out how to style the fuzzy match characters
now that there's syntax highlighting. Right now, they are
underlined in red.
2022-01-13 18:10:02 -08:00
Max Brunsfeld
7913a1ea22
Include highlighting runs in Outline
2022-01-13 14:46:15 -08:00
Max Brunsfeld
3e1c559b2d
Allow multiple disjoint nodes to be captured as matcheable in the outline query
2022-01-13 14:04:25 -08:00
Antonio Scandurra
055d48cfb2
Select the closest outline item when the outline view's query is empty
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-13 18:43:49 +01:00
Antonio Scandurra
2660d37ad8
Return Outline<Anchor>
from MultiBuffer::outline
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-13 18:24:00 +01:00
Antonio Scandurra
e165f1e16c
Use OutlineItem::depth
to include ancestors of matching candidates
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-13 16:59:52 +01:00
Antonio Scandurra
06ba1c64cf
Implement Outline::search
2022-01-13 15:10:29 +01:00
Antonio Scandurra
d6ed2ba642
Start on rendering the outline view
2022-01-13 12:01:11 +01:00
Antonio Scandurra
ef596c64f8
Add OutlineItem::depth so that we can render a tree in the outline view
2022-01-13 11:35:43 +01:00
Max Brunsfeld
63a401ac5d
Add Buffer::outline method
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 18:17:49 -08:00
Antonio Scandurra
66694b4c9a
Fix failing tests
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-12 18:43:23 +01:00
Antonio Scandurra
310def2923
Implement Buffer::format
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 18:01:20 +01:00
Nathan Sobo
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
Max Brunsfeld
fee7657fd7
Merge branch 'main' into polish-project-diagnostics
2022-01-05 20:38:20 -08:00
Max Brunsfeld
f9f75e98f8
Fix Locator::from_index
...
Enhance language::tests::test_random_collaborators so that it checks buffer invariants.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-05 17:58:24 -08:00
Max Brunsfeld
e5faaeb2f2
Fix Global::gt
and rename it to changed_since
...
A false negative return value of `gt` was preventing guests' multibuffers from
syncing correctly.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-05 17:36:12 -08:00
Max Brunsfeld
8728d3292d
Merge branch 'main' into polish-project-diagnostics
...
Also fix false failure in ModelHandle::condition when parking is not forbidden.
2022-01-05 10:53:18 -08:00
Antonio Scandurra
e56609cf0c
Ensure prior, deferred selections don't override newer selections
2022-01-05 15:43:26 +01:00
Antonio Scandurra
f8c2620166
Fix Buffer::remote_selections_in_range
at query range boundaries
2022-01-05 15:04:50 +01:00
Antonio Scandurra
587a908225
Populate deferred operations when an operation can't be applied
2022-01-05 15:04:19 +01:00
Antonio Scandurra
bf044506ed
Verify that selections are replicated correctly in randomized test
2022-01-05 15:04:08 +01:00
Antonio Scandurra
870fa5f278
Serialize deferred operations
2022-01-05 11:52:41 +01:00
Antonio Scandurra
d383ff30ce
Introduce randomized test for collaboration on buffers
...
This test will exercise serialization of operations as well as peers
replicating from an existing buffer.
2022-01-05 11:51:41 +01:00
Antonio Scandurra
7bc8eb4f3d
Fix compile errors and get serialization unit test passing
2022-01-05 10:29:29 +01:00
Max Brunsfeld
984e366c32
WIP - Serialize buffer in terms of its state, not its base text + ops
...
The main reason for this is that we need to include information about
a buffer's UndoMap into its protobuf representation. But it's a bit
complex to correctly incorporate this information into the current
protobuf representation.
If we want to continue reusing `Buffer::apply_remote_edit` for
incorporating the historical operations, we need to either make
that method capable of incorporating already-undone edits, or
serialize the UndoMap into undo *operations*, so that we can apply
these undo operations after the fact when deserializing. But this is
not trivial, because an UndoOperation requires information about
the full offset ranges that were undone.
2022-01-04 18:06:16 -08:00
Max Brunsfeld
d7ecbdcc1d
Add unit test showing problem with serialization of undo ops
2022-01-04 16:01:12 -08:00
Antonio Scandurra
b2f0c78924
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
ad1db117e6
Re-enable cargo check for rust-analyzer
2022-01-04 18:26:16 +01:00
Antonio Scandurra
508b9dc024
Rip out "diagnostic providers"
2022-01-04 16:32:17 +01:00
Antonio Scandurra
05a6137549
Capture a new buffer snapshot for excerpts whose selections got updated
2022-01-04 12:22:51 +01:00
Max Brunsfeld
7f8e76e0f1
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
Max Brunsfeld
cbd9e186b5
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
Max Brunsfeld
43db9e826b
Clear autoindent requests when applying autoindent
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-27 13:33:48 -08:00
Nathan Sobo
cf81f5a555
Update tests to reflect that we no longer attempt to recycle group ids
2021-12-24 16:36:21 -07:00
Antonio Scandurra
a85e400b35
Start on a DiagnosticProvider
implementation for Rust
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-24 16:22:22 +01:00
Antonio Scandurra
393009a05c
Implement Buffer::diagnostic_group
2021-12-24 12:08:55 +01:00
Antonio Scandurra
11e3874b4a
Remove duplication when assigning diagnostics and hardcode provider names
2021-12-24 12:07:26 +01:00
Max Brunsfeld
4f774e2bde
wip
2021-12-23 23:10:28 -08:00
Max Brunsfeld
d5a17053df
Get code compiling with some todos
2021-12-23 14:21:10 -08:00
Nathan Sobo
e3ecd87081
WIP
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2021-12-23 11:24:35 -07:00
Antonio Scandurra
7b453beebc
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
b9d1ca4341
Show only disk-based diagnostics in ProjectDiagnosticsEditor
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-23 16:47:54 +01:00
Antonio Scandurra
dcf26acaac
Use a different invalidation strategy for project-wide diagnostics
2021-12-23 15:41:43 +01:00
Antonio Scandurra
9164c5f239
Emit an UpdateDiagnostics
from Worktree when buffer diagnostics change
2021-12-23 09:57:50 +01:00
Max Brunsfeld
5d8ed535be
Clear out old disk-based diagnostics after 2 seconds
2021-12-22 15:51:51 -08:00
Max Brunsfeld
b9551ae8b1
Preserve group ids when updating diagnostics
2021-12-22 14:50:51 -08:00
Max Brunsfeld
0faf5308ac
Add a unit test for preserving disk-based diagnostics
2021-12-22 13:27:43 -08:00
Max Brunsfeld
1544da887e
Start work on preserving continuity of disk-based diagnostics
2021-12-22 12:52:50 -08:00
Max Brunsfeld
3c26f67ea3
Minor cleanup in Buffer::update_diagnostics
2021-12-21 14:07:50 -08:00
Max Brunsfeld
04d577e326
Fix context line handline in project diagnostic view
2021-12-21 11:46:47 -08:00
Max Brunsfeld
528d64d3cc
WIP - Improve project diagnostic context rendering
2021-12-16 18:34:29 -08:00
Antonio Scandurra
1bdaeda43e
Remove disk diagnostics that were invalidated by a buffer edit
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2021-12-15 18:29:01 +01:00
Nathan Sobo
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
Antonio Scandurra
08e9f3e1e3
Maintain a different undo/redo stack in MultiBuffer
...
This only applies to singleton mode.
2021-12-14 17:43:41 +01:00
Max Brunsfeld
4efdc53d9f
WIP
2021-12-13 17:44:20 -08:00
Max Brunsfeld
52b8e3d1a2
Get tests passing after diagnostic + selection changes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-13 11:34:56 -08:00
Max Brunsfeld
418a9a3d66
Get things compiling with diagnostics on worktree
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-13 11:15:03 -08:00
Antonio Scandurra
85674ba506
WIP
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-13 16:46:35 +01:00
Antonio Scandurra
c984b39aaa
Show remote collaborators' active selections
2021-12-13 11:38:38 +01:00
Nathan Sobo
cdbcbdfe6d
Test undo/redo at editor layer, including selection restoration
2021-12-12 15:04:19 -07:00
Nathan Sobo
1e7184ea07
Get selections rendering again when local selections are owned by Editor
2021-12-11 13:42:46 -07:00
Nathan Sobo
4dd0752e80
More messy progress towards selections in editors
2021-12-11 00:29:34 -07:00
Nathan Sobo
8432daef6a
WIP: Start on removing selections from buffer in favor of editor
2021-12-10 19:23:34 -07:00
Nathan Sobo
f35c419f43
Return optional transaction ids from undo/redo
...
This will allow the editor to restore selections that it associated with the start or end of a transaction.
2021-12-10 18:08:26 -07:00
Nathan Sobo
77defe6e28
Return optional transaction ids when starting/ending a transaction
...
If the transaction was nested, we return None. Otherwise we return the transaction id in preparation for editors to maintain their own selection state.
2021-12-10 18:00:09 -07:00
Nathan Sobo
c8b43e3078
Move multi_buffer to editor crate
2021-12-10 17:37:53 -07:00
Max Brunsfeld
6caf016df9
Get tests passing w/ multibuffer in editor
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-10 15:54:25 -08:00
Max Brunsfeld
75dd37d873
Update multibuffer when buffers' syntax trees or diagnostics change
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-10 15:54:06 -08:00
Max Brunsfeld
ceff57d02f
Don't append a trailing newline in singleton MultiBuffer
2021-12-10 14:27:58 -08:00
Max Brunsfeld
a758bd4f8d
Fill in some missing methods on MultiBuffer, MultiBufferSnapshot
2021-12-10 14:27:04 -08:00
Antonio Scandurra
5b31c1ba4e
Start making MultiBuffer
work with a singleton buffer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-10 18:04:11 +01:00
Antonio Scandurra
7524974f19
Get everything compiling again
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-10 17:15:16 +01:00
Antonio Scandurra
da09247e5e
WIP
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-10 16:14:12 +01:00
Antonio Scandurra
9c74deb9ec
Finish removing anchor collections from MultiBuffer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-10 15:58:37 +01:00
Antonio Scandurra
c8d5e19492
Merge branch 'fragment-locators' into project-diagnostics
2021-12-10 14:01:17 +01:00
Antonio Scandurra
cb97b7cd1d
Fix diagnostic unit test
2021-12-10 09:43:21 +01:00
Max Brunsfeld
5e516f59c0
Merge branch 'fragment-locators' into HEAD
2021-12-09 14:49:04 -08:00
Antonio Scandurra
91a7bbbba2
Fix some of the diagnostic tests and make DiagnosticEntry generic
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-09 17:53:08 +01:00
Antonio Scandurra
65711b2256
Remove anchor collections
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-09 17:28:27 +01:00
Nathan Sobo
98f726974e
WIP
2021-12-08 20:04:30 -07:00
Nathan Sobo
4ee404a0af
Take a cx in MultiBuffer::start_transaction
2021-12-08 19:30:52 -07:00
Nathan Sobo
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
daedf179b2
Implement Anchor, AnchorRangeMap, SelectionSet in multi_buffer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2021-12-08 12:56:09 -08:00