Antonio Scandurra
603ddcb7f1
Filter out supporting diagnostics that contain no messages
2022-01-27 09:51:15 +01:00
Nathan Sobo and Antonio Scandurra
42adc2cd15
Add retries to rescan test that uses the real file system
...
We could potentially use a fake file system, but this should avoid flaky tests in the short run.
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2022-01-26 09:25:06 -07:00
Antonio Scandurra and Nathan Sobo
74c35a4a14
Sanitize language server diagnostics coming from Rust
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-25 17:49:50 +01:00
Max Brunsfeld and Nathan Sobo
82bcd0528e
Add random delays in FakeFs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-24 16:50:38 -08:00
Nathan Sobo and Max Brunsfeld
7a82ee7956
Don't store operations for remote buffers we haven't yet opened
...
This used to be needed, but we think with our improvements to message ordering that we'll never miss operations that were applied after opening a remote buffer.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2022-01-24 17:33:46 -07:00
Nathan Sobo and Max Brunsfeld
1649ac364b
Clear shared buffers when unsharing projects
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2022-01-24 17:24:07 -07:00
Antonio Scandurra
48d0a0df2f
Fix race condition when opening a buffer and getting a definition to it
2022-01-24 18:47:55 +01:00
Antonio Scandurra
09bf007a4f
Add remote worktree to project before it is fully deserialized
...
This prevents a race condition where the host will send us messages and
responses about a worktree that we have seen but haven't yet finished loading.
2022-01-24 14:00:38 +01:00
Antonio Scandurra
be4c6bfaf4
Implement Project::definition when the buffer is remote
2022-01-24 13:10:13 +01:00
Antonio Scandurra
1e5fc5aa27
Fix regression causing guests to miss operations while opening a buffer
2022-01-24 11:28:46 +01:00
Antonio Scandurra
4fd9866e83
Don't show conflict indicator on remote buffer after a reload
2022-01-24 10:17:36 +01:00
Antonio Scandurra
3f3f6ed9f1
Maintain remote buffers via UpdateBufferFile messages sent by host
2022-01-24 09:32:40 +01:00
Nathan Sobo
7b97dde632
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
9155b4a588
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
fdf5ae0a04
💄
2022-01-22 15:30:38 -07:00
Nathan Sobo
bede74dfac
Introduce LocalSnapshot
...
This allows us to remove the absolute path and scan-related state from the Snapshot. None of this data is relevant or valid on guests.
2022-01-22 15:19:14 -07:00
Nathan Sobo
0fb72d41e0
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
84ae1c30d2
Remove worktree_path from File struct
2022-01-22 14:29:36 -07:00
Nathan Sobo
75cbf5a4c3
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
Nathan Sobo
4f5c74ae73
Update new buffers with existing diagnostics in Project – after assigning language
2022-01-22 08:46:37 -07:00
Antonio Scandurra
59162ef9fb
Simplify opening buffers in the Project and assign language synchronously
2022-01-22 11:34:44 +01:00
Antonio Scandurra
41100c4439
Make add_local_worktree private and use find_or_create_local_worktree
...
The former always adds a worktree, even if we have one already in the
project and that could be misused. The public API should always search
for a local worktree containing the requested path first so that the
project can uphold invariants about which worktrees it has.
2022-01-22 11:23:00 +01:00
Max Brunsfeld and Nathan Sobo
9d088c0b76
Get diagnostics crate's tests passing
...
Update diagnostics on project instead of on worktree
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-21 18:02:10 -08:00
Max Brunsfeld and Nathan Sobo
5528a3043f
Get integration tests passing
...
* Fix misuse of guest buffer's id as its remote id
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-21 17:44:24 -08:00
Max Brunsfeld
f0e920274e
Remove worktree_id from buffer-related RPC messages
2022-01-21 16:23:39 -08:00
Max Brunsfeld
a40c2d866c
Move main worktree structs adjacent to each other
2022-01-21 16:10:26 -08:00
Max Brunsfeld and Nathan Sobo
8d9db1f304
Move buffers from worktree to project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-21 15:46:27 -08:00
Max Brunsfeld
c34e77f670
Remove UserStore from Worktree
2022-01-21 12:37:44 -08:00
Max Brunsfeld
d019b10349
Change integration tests to open buffers via the project
2022-01-21 12:23:17 -08:00
Nathan Sobo and Max Brunsfeld
be95502ba3
Remove panic when guest attempts to go to definition
...
We'll implement this soon but want to merge something stable to main.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2022-01-21 11:24:05 -07:00
Nathan Sobo
5e45a8f1aa
Revert "Replace project_path with project_entry in workspace::{Item, ItemView}"
...
This reverts commit c5fe187527 .
2022-01-21 11:07:10 -07:00
Nathan Sobo and Antonio Scandurra
b053a7103b
Remove source_range from definition
...
We don't use it now, and plan on dealing with it in a dedicated way when we need mouse hover interactions.
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2022-01-21 07:31:02 -07:00
Antonio Scandurra and Nathan Sobo
4b656d7d91
Add unit test for Project::definition
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-21 15:05:25 +01:00
Antonio Scandurra and Nathan Sobo
1548886a29
Hide weak worktrees in the file finder
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-21 14:39:35 +01:00
Antonio Scandurra and Nathan Sobo
e2badda58f
Remove weak handles when worktree gets dropped
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-21 14:34:14 +01:00
Antonio Scandurra
ba96ca0b1b
Remove weak worktrees from project when nobody references them
...
Also, avoid showing them in the project panel as well as in the
contacts panel.
2022-01-21 14:34:14 +01:00
Antonio Scandurra
6042bf0744
Unregister worktree when its last handle to it gets released
2022-01-21 14:34:14 +01:00
Antonio Scandurra
390bf8adb7
🎨
2022-01-20 15:26:10 +01:00
Antonio Scandurra
911d6f708c
Start on Project::definition that only works locally (for now)
2022-01-20 12:11:41 +01:00
Antonio Scandurra
95f2e7b36c
Omit worktree id when emitting Event::DiskBasedDiagnosticsUpdated
...
Sometimes we will have more than one worktree associated with the same
language server and in that case it's unclear which worktree id we should
report an event for.
2022-01-20 10:13:27 +01:00
Antonio Scandurra
ef78225a5d
Return a Task<Result<()>> in {ItemView,Buffer,MultiBuffer}::save
2022-01-20 09:58:24 +01:00
Max Brunsfeld
7d9d20a661
Get tests passing, centralize more diagnostic logic in Project
2022-01-19 16:32:55 -08:00
Max Brunsfeld
09719a0bfc
Always open buffers via the project
2022-01-19 14:48:54 -08:00
Max Brunsfeld
575def57db
Move logic for starting language servers to the project
2022-01-19 14:05:06 -08:00
Antonio Scandurra
7ad9b2b0d7
WIP
2022-01-19 19:28:41 +01:00
Antonio Scandurra
87e844a6f0
Remove unused languages field from LocalWorktree
2022-01-19 18:46:17 +01:00
Antonio Scandurra and Max Brunsfeld
841827f873
Route save_as via the Project
...
Co-Authored-By: Max Brunsfeld <max@zed.dev >
2022-01-19 18:44:48 +01:00
Antonio Scandurra
a2822f54bb
Remove unused languages field on LocalWorktree
2022-01-19 17:27:00 +01:00
Antonio Scandurra
c5fe187527
Replace project_path with project_entry in workspace::{Item, ItemView}
2022-01-19 15:56:04 +01:00
Antonio Scandurra
732e413832
Cleanup worktrees' shared state when unsharing
2022-01-17 10:58:49 +01:00