Commit Graph
3306 Commits
Author SHA1 Message Date
3beb95c18b WIP: Start sketching in ProjectFindView
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-24 19:07:00 +01:00
Antonio Scandurra 6a245eefca Start on a regex implementation of SearchQuery 2022-02-24 16:33:31 +01:00
Antonio Scandurra 6d3faa82a7 Extract a search module 2022-02-24 15:55:13 +01:00
Antonio Scandurra ed43e81f58 Implement a basic project-wide search using Aho-Corasick 2022-02-24 15:33:56 +01:00
Antonio Scandurra 22c9529d2f WIP: Remove ripgrep and start matching query for paths ourselves 2022-02-24 12:33:28 +01:00
Antonio Scandurra ee2ccf65b7 WIP 2022-02-24 11:57:53 +01:00
Antonio Scandurra b4ae8f5e3c Start on project-wide find 2022-02-24 11:57:53 +01:00
Antonio Scandurra 9782b6cd31 Store ops if buffer handle can't be upgraded and buffer requests are in-flight 2022-02-24 09:32:31 +01:00
Max Brunsfeld 19f37c00b1 Store operations for unknown buffers when there are outstanding buffer RPC requests 2022-02-23 20:35:05 -08:00
Max Brunsfeld 5a544fa808 Remove unused pending_updates field from RemoteWorktree 2022-02-23 16:59:39 -08:00
Max BrunsfeldandNathan Sobo d9d10dffe3 Fix race conditions with LSP requests that return buffers
* Avoid panic when registering a buffer that was previously open,
  and whose weak handle was still present in the open_buffers map.
* Avoid releasing any buffers while a request is outstanding which
  could return a reference to a buffer.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-23 15:26:01 -08:00
ab28a5bb54 Remove ShareWorktree message
Instead, create an empty worktree on guests when a worktree is first *registered*, then update it via an initial UpdateWorktree message.

This prevents the host from referencing a worktree in definition RPC responses that hasn't yet been observed by the guest. We could have waited until the entire worktree was shared, but this could take a long time, so instead we create an empty one on guests and proceed from there.

We still have randomized test failures as of this commit:

SEED=9519 MAX_PEERS=2 ITERATIONS=10000 OPERATIONS=7 ct -p zed-server test_random_collaboration

Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-23 11:56:09 -07:00
Antonio Scandurra 7a0e8560a3 WIP 2022-02-23 19:04:22 +01:00
58206d413c Remove update_id from worktree update messages
We don't need this anymore because worktree updates are foreground
messages.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-23 18:35:25 +01:00
Antonio Scandurra 02f215d953 Move document highlights RPC message to the background 2022-02-23 16:16:02 +01:00
Antonio Scandurra 919a280fab Pass an AsyncAppContext to fake language server request handlers 2022-02-23 16:14:36 +01:00
Max Brunsfeld ba2aa6798f Show document highlights from the language server when moving the cursor 2022-02-22 17:16:31 -08:00
Max BrunsfeldandNathan Sobo c5888616cc Implement find-all-references
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 14:27:16 -08:00
Max BrunsfeldandNathan Sobo 7a7f928d7b Add integration test for project symbols
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 12:44:17 -08:00
Max BrunsfeldandNathan Sobo c469ffc798 Normalize paths passed to the FakeFs
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 12:43:56 -08:00
b43945d6c6 Allow languages to be registered at any time
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-22 10:35:20 -08:00
03402adaeb Show worktree root name for symbol when there are multiple worktrees
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-22 18:57:41 +01:00
23aa8da7a9 Sign symbols so that we can trust opening buffers for them from guests
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-22 18:43:16 +01:00
Antonio ScandurraandNathan Sobo 447cc969f1 Don't serialize the full LSP symbol when collaborating
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 18:08:43 +01:00
Antonio ScandurraandNathan Sobo 19103bad64 Render paths in ProjectSymbolsView
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 17:48:14 +01:00
Antonio Scandurra f8762ff1ce Allow opening of buffers associated with a project symbol 2022-02-22 16:26:01 +01:00
Antonio Scandurra 416898db0e Retrieve project symbols over RPC 2022-02-22 14:50:06 +01:00
Antonio Scandurra 3948b5da7f WIP: Start on getting project symbols over RPC 2022-02-22 12:15:38 +01:00
Antonio Scandurra f8a219cca6 Syntax-highlight symbols based on their kind 2022-02-22 12:00:16 +01:00
Antonio Scandurra 0fc1d67784 Rename CompletionLabel to CodeLabel and add Project::symbols
This only works locally for now and we haven't implemented the
`RustLsp::label_for_symbol` method yet.
2022-02-22 10:01:08 +01:00
Antonio Scandurra 938214a99b Start on a new project_symbols crate 2022-02-22 08:42:12 +01:00
Max BrunsfeldandNathan Sobo c9a4d76f2d Download language servers on-demand
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-21 13:54:52 -08:00
Antonio ScandurraandNathan Sobo ec875ff474 Show message indicating when we're downloading language servers
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-21 17:25:52 +01:00
Antonio ScandurraandNathan Sobo d7d78b8917 Use a Shared future to represent started language servers
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-21 17:04:47 +01:00
Antonio Scandurra ede6adbe76 Make language server initialization asynchronous 2022-02-21 09:39:28 +01:00
Max Brunsfeld 7820c54d68 Handle GetDefinition via LspCommand trait 2022-02-18 16:45:52 -08:00
Max Brunsfeld 5a7f2f107c Use async_trait for LspCommand 2022-02-18 16:07:30 -08:00
Max Brunsfeld 145d74c4ef Refactor handling of remote renames 2022-02-18 10:45:06 -08:00
Antonio Scandurra ec0f30aa28 Fix warning 2022-02-18 12:21:24 +01:00
Antonio Scandurra e60b62f45f Add test for preparing and performing a rename 2022-02-18 12:18:01 +01:00
Antonio Scandurra 7a72d7aed7 Undo temporary edits before performing rename or canceling it
Also, wire up remote renames.
2022-02-18 11:41:47 +01:00
Max Brunsfeld a40938e1ca Start work on renames 2022-02-17 18:01:07 -08:00
Max Brunsfeld 9479826046 Convert some project tests to use FakeFs
Also, tweak some FakeFs methods to make them slightly more convenient.
2022-02-17 11:09:27 -08:00
Antonio Scandurra 0b5c6ea0fd Wait for version before returning code actions 2022-02-17 14:46:26 +01:00
Antonio Scandurra fac5959ac2 Wait for version before returning completions 2022-02-17 11:41:19 +01:00
Antonio Scandurra f2881b5030 Avoid stalling server when test notifications aren't being processed 2022-02-17 10:38:56 +01:00
Antonio Scandurra 6016d827f2 Randomly detach requests on guest to let them race with other local ops 2022-02-17 09:05:06 +01:00
Max BrunsfeldandNathan Sobo 258542b74a Remove unnecessary waiting when handling save RPC requests
Add saving to the randomized integration test

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 17:47:21 -08:00
Max BrunsfeldandNathan Sobo e26a1e433c Remove waiting for edits when handling code action RPC requests
Add code actions to the randomized integration test

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 17:34:23 -08:00
Max BrunsfeldandNathan Sobo 529e18978e Remove unnecessary waiting during completion RPC requests
Also, add completion requests to the randomized collaboration integration test,
to demonstrate that this is valid.

Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 17:23:16 -08:00