Antonio Scandurra
51345cf1e1
Advance clock when simulating random delay
2022-03-02 10:39:46 +01:00
Antonio Scandurra
be7a4770fb
Delete timer state when the future that's awaiting it gets dropped
2022-03-02 10:08:38 +01:00
Max Brunsfeld
8b7a9367fa
Avoid storing type name string on AnyViewHandle
...
It won't be needed for leak error messages, because the typed
view handle will typically be created first. And this avoids
increasing the size of the handle used in production.
2022-03-01 18:22:09 -08:00
Max Brunsfeld
ae93cfed50
Tear down client's connection states when dropping test clients
2022-03-01 18:17:41 -08:00
Max Brunsfeld
3cf5329450
Flush effects when dropping test clients in random collaboration test
2022-03-01 18:17:25 -08:00
Max Brunsfeld
acf7ef3d61
Avoid retaining executor when using Connection::in_memory
2022-03-01 18:02:12 -08:00
Max Brunsfeld
95b2f4fb16
Fix remaining language server hangs on shutdown
...
* Use fork of async-pipe library that handles closed pipes correctly.
* Clear response handlers map when terminating output task, so as
to wake any pending request futures.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 15:54:59 -08:00
Max Brunsfeld
917543cc32
Handle Peer responses using a futures::oneshot instead of postage::mpsc
2022-03-01 13:37:33 -08:00
Max Brunsfeld
f2f1a52c7e
Prevent hangs in lsp requests made while server is shutting down
...
* Avoid postage::oneshot, since receiver is not woken when sender is dropped.
* Clear the response channels when an IO task exits.
2022-03-01 13:36:49 -08:00
Max Brunsfeld
74469a46ba
Clean up tasks properly when dropping a FakeLanguageServer
...
* Make sure the fake's IO tasks are stopped
* Ensure that the fake's stdout is closed, so that the corresponding language
server's IO tasks are woken up and halted.
2022-03-01 13:26:59 -08:00
Max Brunsfeld
0e6686916c
Remove stray printing in db tests
2022-03-01 12:10:35 -08:00
Max Brunsfeld
43f856c568
Make integration tests depend only on a few core crates, not all of zed
2022-03-01 12:09:51 -08:00
Max Brunsfeld
2b64e8d4a2
Fix failure in test_unshare_project due to dropping handle outside of an update block
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 10:50:58 -08:00
Antonio Scandurra
efe7f61128
Use simulate_random_delay
when polling snapshot only in tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-03-01 19:17:38 +01:00
Antonio Scandurra
a25f21df39
Remove debug_elements_callbacks
from App
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-03-01 19:16:58 +01:00
Antonio Scandurra
bc9c034baa
Fix Presenter
leak when removing windows
2022-03-01 18:50:05 +01:00
Antonio Scandurra
c661ff251d
Revert "Use async_broadcast
to emit fake FS events"
...
This reverts commit 4cfd345f9d
, because
having a bounded broadcast introduces the possibility of waiting forever
when there isn't yet a receiver processing those events.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 17:14:40 +01:00
Antonio Scandurra
992328a6ee
Forbid parking in project_panel::tests::test_visible_list
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 17:14:18 +01:00
Antonio Scandurra
0bb7189842
Use a weak handle to poll local worktree snapshot
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 17:08:10 +01:00
Antonio Scandurra
83a3402235
Make TestAppContext
and its dependencies available only in tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 17:01:52 +01:00
Antonio Scandurra
0d6f6bf5bb
Detect when view handles are leaked
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 16:11:12 +01:00
Antonio Scandurra
aa03ebce0e
Enable leak backtraces by setting LEAK_BACKTRACE=1
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 16:00:40 +01:00
Antonio Scandurra
4cfd345f9d
Use async_broadcast
to emit fake FS events
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-03-01 15:48:15 +01:00
Antonio Scandurra
3e9dbe10d6
Capture a weak reference to the Project
in fake LSP
2022-03-01 13:34:03 +01:00
Antonio Scandurra
8d078ed4e2
Don't block when emitting fs events
...
Blocking could happen while processing events, which would cause the
background scanner to never make any further progress.
2022-03-01 13:08:50 +01:00
Antonio Scandurra
ce59e57e6d
Remove project from host connection when unregistering it
2022-03-01 12:18:55 +01:00
Antonio Scandurra
466db69780
Pass a reference to TestAppContext
in tests
...
This allows us to drop the context *after* we ran all futures to
completion and that's crucial otherwise we'll never drop entities
and/or flush effects.
2022-03-01 12:01:02 +01:00
Antonio Scandurra
8390f04e7d
Allow capturing references in the future passed to Deterministic::run
2022-03-01 11:59:58 +01:00
Antonio Scandurra
7ce6f23ed4
Remove all windows on dropping TestAppContext
...
This allows us to remove the dropped entities and flush effects as
necessary.
2022-03-01 10:55:12 +01:00
Antonio Scandurra
10a872a370
Avoid reference cycle between Client
and its models
2022-03-01 10:55:05 +01:00
Max Brunsfeld
471ecae82c
WIP - include dhat for memory profiling tests
2022-02-28 22:52:21 -08:00
Max Brunsfeld
3b7cfad718
Try clearing Client's state at the ends of integration tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-28 22:52:21 -08:00
Max Brunsfeld
02ae2d8a4f
Hold client weakly in UserStore
...
This avoids a reference cycle that is causing some tests
to fail due to leaked handles at the moment. There may be
a better way to fix this though.
2022-02-28 22:47:50 -08:00
Max Brunsfeld
1faaa91e52
Avoid retaining executor in the FakeFs
...
This probably isn't the *root* cause of why an executor is leaked,
but by cutting off this cyclic references, it may make it a bit easier
to track down leaks of an executor.
2022-02-28 22:40:04 -08:00
Max Brunsfeld
3788efeadf
Clean up guest connection states correctly when a collaborator disconnects
...
This bug was caught by running the executor until parked after tests.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-28 22:21:32 -08:00
Max Brunsfeld
c09921e790
Clear the executor at the end of a test by running until it is parked
2022-02-28 22:20:03 -08:00
Max Brunsfeld
426e0e3d4f
Flush effects when dropping a TestAppContext
...
This way, at the end of a test, dropped entities will be removed, and will drop
the handles that they hold.
2022-02-28 22:17:20 -08:00
Max Brunsfeld
7d53e37672
Start work on detecting leaked handles in tests
...
For now, just track models. Tests fail because we don't
yet clear the app contexts at the right time.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-28 22:02:43 -08:00
Max Brunsfeld
d1d324e42b
Never close buffers when sharing
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-28 11:36:43 -08:00
Antonio Scandurra
2111ec04c8
Make SearchProject
a Foreground
message
...
However, the randomized integration test is still failing:
```
ITERATIONS=100000 SEED=3027 OPERATIONS=200 cargo test --release test_random --package=zed-server -- --nocapture
```
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-28 16:19:34 +01:00
Antonio Scandurra
400a2fce58
Don't use a bounded channel for signaling that buffers have been opened
...
Blocking the sender could halt deserialization for no reason if nobody
is consuming the notifications.
2022-02-28 15:26:10 +01:00
Antonio Scandurra
1313ca8415
Don't delete buffer state when calling get_open_buffer
...
...as we might be in the process of completing a request that could
open a buffer. This was causing a failure in the randomized integration
test.
2022-02-28 14:27:31 +01:00
Antonio Scandurra
5f7a759870
Add project-wide search to randomized integration test
2022-02-28 14:22:31 +01:00
Antonio Scandurra
abdfdcdabf
Include buffer's deferred ops when computing has_buffered_operations
2022-02-28 14:22:24 +01:00
Antonio Scandurra
720056d0db
Add unit test for project search
2022-02-28 11:10:22 +01:00
Antonio Scandurra
ed89475cf6
Extract a common match_index_for_direction
and active_match_index
2022-02-28 10:34:11 +01:00
Nathan Sobo
8eba96424e
Fix warning
2022-02-27 18:17:15 -07:00
Nathan Sobo
cb230ad574
Re-activate the most recently-activated project search on cmd-shift-F
...
This commits adds the beginnings of an application state facility as a non-static place to store the most recently-activated search for each project.
I also store workspace items by descending order of their entity id so that we always fetch the newest item of a given type when calling `Workspace::item_of_type`.
2022-02-27 18:07:46 -07:00
Nathan Sobo
1ddae2adfd
Focus the project find results editor on a tab in the query editor
2022-02-27 16:15:06 -07:00
Nathan Sobo
71241b1fb8
Add capture phase for action dispatch
...
Just like the DOM, we now bubble events down the tree during a capture phase before bubbling them back up.
2022-02-27 16:14:40 -07:00
Nathan Sobo
7d119dcd54
Select first match when results are ready
2022-02-27 14:24:06 -07:00
Nathan Sobo
7831979be0
Fix warning
2022-02-27 14:21:28 -07:00
Nathan Sobo
64d22925c2
Implement navigation between project search matches
2022-02-27 14:18:04 -07:00
Nathan Sobo
7ef98fb935
Make versions oldest_selection and newest_selection that don't require snapshots
...
I thought I needed this but actually didn't, but I still kinda think it's a good change for the public interface of Editor.
2022-02-27 13:02:09 -07:00
Nathan Sobo
19b5de2181
Introduce ProjectSearchView constructor
...
We had some duplication when cloning on split, so this is to unify that before we add any more complexity to construction.
2022-02-27 09:49:16 -07:00
Nathan Sobo
dabb17a2ef
Clone editor's searchable state on split
2022-02-27 09:48:46 -07:00
Nathan Sobo
136699e7bd
Add log dependency in search crate
2022-02-27 09:25:40 -07:00
Nathan Sobo
c7338ebe88
💄
2022-02-27 09:25:27 -07:00
Nathan Sobo
039765b698
Limit project search tab label to 24 characters
...
I'd love to fade the text out, but for now I just append an ellipsis.
2022-02-27 08:27:02 -07:00
Nathan Sobo
ec317159d7
Rename "find" to "search"
...
Search is both a verb and a noun, which makes it more natural to use in situations where we need to name a thing rather than a process.
2022-02-27 08:15:38 -07:00
Nathan Sobo
dd6f8d20a3
Remove carriage returns
2022-02-27 07:47:46 -07:00
Nathan Sobo
28b71cbc03
Select query when focusing query editor
...
Also: Clear the selection when we focus the results editor because we continue to render the selection even when the editor isn't focused and it looks awkward. Another approach we could take is to not render selections for non-focused editors, either always or with an option. But considering that we select all anyways next time we return focus to the query editor, I think this is ok for now.
2022-02-26 14:12:31 -07:00
Nathan Sobo
e96d0a9355
Activate the *newest* existing project find view on cmd-shift-F
2022-02-26 14:03:14 -07:00
Nathan Sobo
2f427769df
Allow a new search to be created with cmd-enter
...
This replaces the `cmd-alt-shift-F` binding to open a new search. Instead, you can preserve the existing search results by entering a query and then hitting `cmd-enter` instead of `enter`. This opens a new project find view and restores the previous view to whatever query it was previously displaying. It's a bit strange, but I don't want to rely on splitting as the only way of creating multiple sets of search results.
2022-02-26 13:23:05 -07:00
Nathan Sobo
ae1a46a4e4
Render a magnifier icon and the query in project search tab
...
Also: Wire up events so the modified status updates correctly.
2022-02-26 08:21:38 -07:00
Antonio Scandurra
a78fe4ef6a
Don't focus results editor on cmd-shift-f
when there are no results
2022-02-26 14:43:02 +01:00
Antonio Scandurra
afea5a3d5e
🎨
2022-02-26 14:31:36 +01:00
Nathan Sobo
f6b7cbd5cf
Always open a new project find on alt-cmd-shift-F
2022-02-25 19:48:43 -07:00
Nathan Sobo
60710fa5d5
Only store one nav history entry when opening excerpts
...
Also: Introduce the ability to disable and enable the nav history directly. This allows us to explicitly push an entry when opening excerpts and then disable all pushes as we open individual buffers.
2022-02-25 19:26:15 -07:00
Nathan Sobo
721258911c
Open excerpts on alt-enter
...
Also: Remove special handling for alt-shift-D binding in diagnostics view that opens excerpts. Rely on alt-enter in all multi-buffers instead.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 16:49:28 -07:00
Nathan Sobo
dea40c5d1a
Don't show buffer search UI on ProjectSearchView
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 16:14:45 -07:00
Nathan Sobo
ed6c8b1836
Allow actions to be propagated from nested ViewContexts
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 16:14:16 -07:00
Nathan Sobo
d5cc3fea3d
Implement Debug for keymap::MatchResult
...
Helpful when debugging issues with keystroke dispatch.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 16:13:53 -07:00
Nathan Sobo
92f411f01e
Extract generic forward_project_request function on server
...
All these methods did the same thing with different message types.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 15:20:42 -07:00
Nathan Sobo
e822c6a64e
Handle project-wide search on guests
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-25 15:09:47 -07:00
Max Brunsfeld
1278f5484f
Add project search RPC messages
2022-02-25 12:38:31 -08:00
Max Brunsfeld
8dce91be23
Upgrade time crates to silence warning on Rust 1.59
2022-02-25 10:39:44 -08:00
Max Brunsfeld
9a97588f79
Eliminate RwLock around LanguageServer's outbound message channel
...
We observed a deadlock when quitting zed. The main thread was attempting
to acquire a write lock to this outbound message sender. We weren't able
to understand exactly how this occurred, but we removed the use of a
lock there, so this shouldn't happen anymore.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-25 10:04:57 -08:00
Antonio Scandurra
368301fcec
Reuse a previous project find whenever possible
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-25 18:30:28 +01:00
Antonio Scandurra
e278c423d3
Don't assume that cloning on split will reuse the same underlying model
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-25 18:30:04 +01:00
Antonio Scandurra
7123407f42
Don't share query editor state after project find has been split
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-25 18:10:48 +01:00
Antonio Scandurra
1e04411066
Don't focus query editor if there are matches on tab switch
2022-02-25 17:23:03 +01:00
Antonio Scandurra
b506db7c93
Use the new split pane's navigation history when cloning an item
2022-02-25 17:22:30 +01:00
Antonio Scandurra
88bfe5acb0
Allow splitting project find and maintain the searches in sync
2022-02-25 16:20:02 +01:00
Antonio Scandurra
29e035a70d
Don't report a buffer when it doesn't contain any matches
2022-02-25 15:40:19 +01:00
Antonio Scandurra
2611b5449f
Always sync
before clearing or removing excerpts from MultiBuffer
...
We don't have any test that proves this is needed but seems good nonetheless.
2022-02-25 15:36:43 +01:00
Antonio Scandurra
ff0fa0e0bd
Gracefully handle passing an empty set of ranges to push_excerpts
2022-02-25 15:36:16 +01:00
Antonio Scandurra
f649074d36
Refine project find's UX
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-25 15:27:34 +01:00
Nathan Sobo
51c645f6b4
Toggle focus between query editor and results on cmd-shift-F
2022-02-25 05:04:45 -07:00
Antonio Scandurra
2147db9b41
Open searched buffers in parallel
2022-02-25 12:29:50 +01:00
Antonio Scandurra
5be93044f6
Focus results editor when project find matches are updated
2022-02-25 12:17:25 +01:00
Antonio Scandurra
561123d6de
Avoid extra smol::channel
when iterating through snapshot paths
2022-02-25 11:49:33 +01:00
Antonio Scandurra
6a0cca7178
Add a fast path for when the search query is empty
2022-02-25 10:58:45 +01:00
Antonio Scandurra
a077210873
Focus query editor when deploying project-find
2022-02-25 10:58:32 +01:00
Antonio Scandurra
7aacb63762
Respect field editor background, color and selection styling
2022-02-25 10:48:22 +01:00
Antonio Scandurra
0bf944e038
Use Project::search
in ProjectFind
and show search results
2022-02-25 10:32:45 +01:00
Max Brunsfeld
5644336df3
Merge branch 'main' into project-find
2022-02-24 17:22:09 -08:00
Max Brunsfeld
fb1103e26d
Merge pull request #482 from zed-industries/c-support
...
Add C support with clangd
2022-02-24 17:16:55 -08:00
Max Brunsfeld
47b654063e
Provide editor styling information separately from editor settings
...
* Since regular editors' font sizes and families are controlled by
the settings and not the theme, don't store a dummy text style in
the theme. Instead, only store a font color, and synthesize
the text style for regular editors using both the theme and the
settings.
* Style single-line and auto-height editors (now called "field
editors") using a single function that takes the entire theme and
selects a relevant sub-object.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-24 16:42:00 -08:00
Antonio Scandurra
6d9b003634
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
e83d1fc9fc
Start on a regex implementation of SearchQuery
2022-02-24 16:33:31 +01:00
Antonio Scandurra
76cc9b347e
Extract a search
module
2022-02-24 15:55:13 +01:00
Antonio Scandurra
6a323ce2dd
Implement a basic project-wide search using Aho-Corasick
2022-02-24 15:33:56 +01:00
Antonio Scandurra
26f7f4f5b2
WIP: Remove ripgrep and start matching query for paths ourselves
2022-02-24 12:33:28 +01:00
Antonio Scandurra
119bfaa99f
WIP
2022-02-24 11:57:53 +01:00
Antonio Scandurra
fed6f708c0
Start on project-wide find
2022-02-24 11:57:53 +01:00
Antonio Scandurra
d929819c33
Fix warning
2022-02-24 09:52:25 +01:00
Antonio Scandurra
8fa23c702c
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
a6613d5345
Store operations for unknown buffers when there are outstanding buffer RPC requests
2022-02-23 20:35:05 -08:00
Max Brunsfeld
f1921c8df5
Open buffers from definitions request in random collab test
...
Don't try to open buffers from the weak worktrees directly, as this is
expected to fail if the host drops the buffer for that worktree.
2022-02-23 20:35:05 -08:00
Max Brunsfeld
51e2e9e68d
Make client log message format more consistent
2022-02-23 18:18:52 -08:00
Max Brunsfeld
6060077444
Remove unused pending_updates field from RemoteWorktree
2022-02-23 16:59:39 -08:00
Max Brunsfeld
e9009d4edf
Tweak logging in random collaboration test
2022-02-23 16:27:34 -08:00
Max Brunsfeld
e714b00c26
Improve logging around handling RPC requests on client
2022-02-23 15:37:51 -08:00
Max Brunsfeld
170487a528
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
Nathan Sobo
17c9aa1819
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
d1b4384f80
WIP
2022-02-23 19:04:22 +01:00
Antonio Scandurra
8440644dc9
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
f3c6320eeb
Move document highlights RPC message to the background
2022-02-23 16:16:02 +01:00
Antonio Scandurra
9e173564e9
Pass an AsyncAppContext
to fake language server request handlers
2022-02-23 16:14:36 +01:00
Nathan Sobo
73fcebb8b2
Bump protocol version
2022-02-23 06:33:31 -07:00
Nathan Sobo
9841abf402
v0.17.0
2022-02-23 06:26:45 -07:00
Max Brunsfeld
a14d0582ca
Add C support with clangd
2022-02-22 17:21:21 -08:00
Max Brunsfeld
e140f70e3c
Show document highlights from the language server when moving the cursor
2022-02-22 17:16:31 -08:00
Max Brunsfeld
25d45378e4
Implement find-all-references
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 14:27:16 -08:00
Max Brunsfeld
6be4b1ef6a
Don't select entire item when jumping to a project symbol
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 12:56:43 -08:00
Max Brunsfeld
5d2201c4ca
Add integration test for project symbols
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 12:44:17 -08:00
Max Brunsfeld
669fe775df
Normalize paths passed to the FakeFs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 12:43:56 -08:00
Max Brunsfeld
dbe9c54857
Request definitions as guests in random collaboration integration test
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 12:03:45 -08:00
Max Brunsfeld
64098247cb
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
Antonio Scandurra
d7db3791d5
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
Antonio Scandurra
0e4bd4b418
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 Scandurra
fad335b2ba
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 Scandurra
72ad3c2897
Render paths in ProjectSymbolsView
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-22 17:48:14 +01:00
Antonio Scandurra
f0195ac3a3
Allow opening of buffers associated with a project symbol
2022-02-22 16:26:01 +01:00
Antonio Scandurra
2a6d486d14
Retrieve project symbols over RPC
2022-02-22 14:50:06 +01:00
Antonio Scandurra
ab73343323
WIP: Start on getting project symbols over RPC
2022-02-22 12:15:38 +01:00
Antonio Scandurra
326f1f43fe
Syntax-highlight symbols based on their kind
2022-02-22 12:00:16 +01:00
Antonio Scandurra
d59ebb554b
Update symbol matches as the query changes
2022-02-22 10:54:25 +01:00
Antonio Scandurra
8a8ae0fbcd
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
8f375a5026
Start on a new project_symbols
crate
2022-02-22 08:42:12 +01:00
Nathan Sobo
618f0a127a
Don't insert input in editor when control keys are pressed
2022-02-21 18:21:27 -07:00
Nathan Sobo
7cd5dbd2a8
v0.16.0
2022-02-21 18:10:10 -07:00
Nathan Sobo
c752383042
Merge pull request #459 from zed-industries/spurious-macro-errors
...
Download language servers dynamically on startup
2022-02-21 17:08:50 -08:00
Nathan Sobo
99594333a5
Log an error instead of panicking when there's no LSP download dir
2022-02-21 17:44:00 -07:00
Max Brunsfeld
03ec6e11b7
Assign language server download directory on startup
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-21 16:23:38 -08:00
Max Brunsfeld
79910ba931
Show more information in lsp status bar item
...
* Distinguish between checking for updates and downloading
* Show dismissable error message when downloading failed and there
is no cached server.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-21 16:11:51 -08:00
Max Brunsfeld
ededfff3a8
Download language servers on-demand
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-21 13:54:52 -08:00
Nathan Sobo
66c69e538e
Don't offset text vertically with gutter margin
...
Fixes #467
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-21 11:41:46 -07:00
Nathan Sobo
4295df1603
Merge pull request #457 from zed-industries/find-improvements
...
Find improvements
2022-02-21 10:34:49 -08:00
Antonio Scandurra
277d86bd29
Remove unused method
2022-02-21 17:31:43 +01:00
Antonio Scandurra
af0ce62d3b
Remove rust-analyzer smoke test
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-21 17:28:55 +01:00
Antonio Scandurra
aee479d615
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 Scandurra
d2c83a7097
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
793d9e8bba
Download rust-analyzer from GitHub
2022-02-21 16:15:54 +01:00
Antonio Scandurra
fafe521e9f
Introduce LspPostProcessor::download_language_server
2022-02-21 09:46:18 +01:00
Antonio Scandurra
1ca50d0134
Make language server initialization asynchronous
2022-02-21 09:39:28 +01:00
Antonio Scandurra
b8523509da
Revert "WIP: avoid code-signing rust-analyzer to prevent proc macro errors"
...
This reverts commit fc3bccc1a1
.
2022-02-21 08:13:05 +01:00
Antonio Scandurra
fc3bccc1a1
WIP: avoid code-signing rust-analyzer to prevent proc macro errors
...
If this works, I think we should set the permissions asynchronously,
maybe as part of starting the language server, so that we avoid doing
synchronous I/O.
2022-02-20 12:14:43 +01:00
Antonio Scandurra
8913ec6cfd
Merge pull request #455 from zed-industries/rename
...
Introduce rename support via `F2`
2022-02-19 11:07:39 +01:00
Antonio Scandurra
cf7cc83f85
Simplify undo_to_transaction
and redo_to_transaction
...
We don't need to mutate the history anymore now that we render pending renames
with a block decoration.
2022-02-19 10:52:21 +01:00
Max Brunsfeld
b573a39cbc
Ensure we never leak block decorations when renaming
2022-02-18 17:00:57 -08:00
Max Brunsfeld
aece541255
Handle GetDefinition via LspCommand trait
2022-02-18 16:45:52 -08:00
Max Brunsfeld
de87fa58f6
Use async_trait for LspCommand
2022-02-18 16:07:30 -08:00
Max Brunsfeld
80bca57bfa
Tweak behavior of selections when renaming
2022-02-18 15:44:57 -08:00
Max Brunsfeld
f0a6e8cb9c
Use a block decoration for entering rename text
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-18 13:51:43 -08:00
Antonio Scandurra
d705244210
WIP
2022-02-18 10:47:22 -08:00
Max Brunsfeld
2841605328
Refactor handling of remote renames
2022-02-18 10:45:06 -08:00
Antonio Scandurra
04cbb7f20e
Allow matching on active editor's stale results if find is slow
2022-02-18 17:01:22 +01:00
Antonio Scandurra
ea39eb384d
Select closest match when find query changes
2022-02-18 16:45:59 +01:00
Antonio Scandurra
0eb0faa2a1
Allow going to next/prev match even if FindBar
has been dismissed
2022-02-18 16:33:26 +01:00
Antonio Scandurra
78ce479496
Notify toolbars if active item changes independently of visibility
2022-02-18 16:31:52 +01:00
Antonio Scandurra
62e5947b76
Cancel pending rename when hitting escape
2022-02-18 15:24:24 +01:00
Antonio Scandurra
b67a2012b2
Load only Zed Sans when building test AppState
2022-02-18 15:22:13 +01:00
Antonio Scandurra
38e4ec9157
Replace Inconsolata with Zed Mono and Zed Sans
2022-02-18 14:55:11 +01:00
Antonio Scandurra
3a6fb0a8fe
Fix warning
2022-02-18 12:21:24 +01:00
Antonio Scandurra
20c1a1e310
Use theme to highlight in-progress rename
2022-02-18 12:20:59 +01:00
Antonio Scandurra
a682ebb08d
Add test for preparing and performing a rename
2022-02-18 12:18:01 +01:00
Antonio Scandurra
f9723ae16b
Undo temporary edits before performing rename or canceling it
...
Also, wire up remote renames.
2022-02-18 11:41:47 +01:00
Antonio Scandurra
514d69e83d
Merge branch 'main' into rename
2022-02-18 09:11:05 +01:00
Max Brunsfeld
54d7642712
Start work on renames
2022-02-17 18:01:07 -08:00
Max Brunsfeld
10580f96a3
Automatically include current view id in element state ids
2022-02-17 13:44:46 -08:00
Max Brunsfeld
d2c1d0a670
0.15.2
2022-02-17 12:55:47 -08:00
Max Brunsfeld
521b7b6eb0
Fix another non-unique id passed to a MouseEventHandler
2022-02-17 12:48:53 -08:00
Max Brunsfeld
6d8db5f6bb
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
Max Brunsfeld
4b0b97f773
0.15.1
2022-02-17 10:00:24 -08:00
Max Brunsfeld
d173e4ef3c
Fix non-unique ids passed to MouseEventHandlers
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-17 09:44:02 -08:00
Antonio Scandurra
985d216e4b
Make completion unit test on editor more resilient
2022-02-17 17:30:10 +01:00
Antonio Scandurra
30e4ea1a4c
Fix warnings
2022-02-17 17:26:03 +01:00
Antonio Scandurra
19b4ecd33a
Use a fake database in tests
2022-02-17 17:04:04 +01:00
Antonio Scandurra
0b46e36189
Avoid parsing in randomized collaboration integration test
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-17 15:17:15 +01:00
Antonio Scandurra
ebecb6dad4
Use the lowest zstd compression level during tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-17 15:16:51 +01:00
Antonio Scandurra
303e8e1688
Wait for version before returning code actions
2022-02-17 14:46:26 +01:00
Antonio Scandurra
50a31721eb
Wait for version before returning completions
2022-02-17 11:41:19 +01:00
Antonio Scandurra
e824a6f220
Avoid stalling server when test notifications aren't being processed
2022-02-17 10:38:56 +01:00
Antonio Scandurra
1fbcea6c0d
Randomly detach requests on guest to let them race with other local ops
2022-02-17 09:05:06 +01:00
Max Brunsfeld
e3c4ce208a
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 Brunsfeld
3315750361
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 Brunsfeld
41ba980c9b
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
Max Brunsfeld
90f31bb123
Allow FakeLanguageServer handlers to handle multiple requests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 16:19:27 -08:00
Max Brunsfeld
c4dff12d69
Allow multiple fake language servers to be started for a given project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 16:10:36 -08:00
Max Brunsfeld
ab59f02316
Fix chat channel unit test
...
Also, improve error in tests when FakeServer never receives a request,
using the new `start_waiting` method on the DeterministicExecutor.
2022-02-16 13:54:00 -08:00
Max Brunsfeld
77afc33d9d
Fix duplicate element_state error in tests
2022-02-16 13:52:41 -08:00
Max Brunsfeld
bee7055634
Avoid storing operations when no buffers are being loaded
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 11:54:49 -08:00
Max Brunsfeld
93ed34f918
In random collaboration test, compare all guests' buffers to the host's buffers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 11:31:53 -08:00
Max Brunsfeld
06fb9ccca0
Restore synchronization between responses and incoming messages
...
This removes the need to buffer pending messages in Client.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-16 10:28:32 -08:00
Max Brunsfeld
cf4291a126
Distinguish between "foreground" and "background" RPC messages
...
Some types of messages, which entail state updates on the host, should be
processed in the order that they were sent. Other types of messages should
not block the processing of other messages.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-16 10:01:23 -08:00
Antonio Scandurra
20858699bc
Add a Test
message that we can use to assert on the behavior of Peer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-16 18:32:03 +01:00
Antonio Scandurra
0173025f4b
Close buffers in randomized integration test
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-16 17:56:27 +01:00
Antonio Scandurra
7c5a5c4ad4
Print the correct seed on randomized test failure
2022-02-16 16:29:45 +01:00
Antonio Scandurra
38f225b575
Clean db pool on drop only if assertions fail or it's the last iteration
2022-02-16 15:07:41 +01:00
Antonio Scandurra
c3ba8f59ed
Ensure worktree updates are observed in order on the server
2022-02-16 14:05:10 +01:00
Antonio Scandurra
3f6feb1c12
Compare only snapshot's essential state in random collaboration test
2022-02-16 13:39:55 +01:00
Antonio Scandurra
6a07d39d61
Don't send worktree updates until the initial share is done
2022-02-16 12:23:06 +01:00
Antonio Scandurra
978dae201c
Buffer messages in Client while no entity is listening to them
2022-02-16 11:49:37 +01:00
Max Brunsfeld
71abea728e
WIP - Register client RPC handlers on app startup
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-15 18:03:06 -08:00
Max Brunsfeld
1ca1595490
Add AnyWeakModelHandle
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-15 17:56:50 -08:00
Max Brunsfeld
34bba303dc
In random collaboration test, add failing assertion for worktree convergence
2022-02-15 14:55:38 -08:00
Antonio Scandurra
a11495af19
Start on a randomized integration test
2022-02-15 17:33:43 +01:00
Antonio Scandurra
c33d554675
Don't render sample item twice in UniformList
2022-02-15 12:02:58 +01:00
Antonio Scandurra
56e4591d6f
Fix panic caused by reusing the same handler for diagnostic status
2022-02-15 10:49:03 +01:00
Antonio Scandurra
17b13b9362
Wait for request and response version before resolving completions
2022-02-15 10:17:35 +01:00
Antonio Scandurra
809b843ceb
Render "Sign in" label only for current user
2022-02-15 09:17:32 +01:00
Max Brunsfeld
4e748b188e
WIP - Wait for code action anchors to be valid
2022-02-14 18:05:43 -08:00
Max Brunsfeld
d358072c74
Include the desired version in a SaveBuffer RPC request
...
When handling this messages on the host, wait until the desired
version has been observed before performing the save.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-14 17:51:26 -08:00
Max Brunsfeld
8d06049124
Ensure worktree updates are applied in order
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-14 16:19:29 -08:00
Nathan Sobo
28ba49b47b
Wait for buffer if it doesn't exist when deserializing a reference
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-14 15:55:37 -07:00
Max Brunsfeld
e9250e647b
Fix mouse event handler for code actions indicator
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-14 14:06:55 -08:00
Max Brunsfeld
ddc1f237a6
Panic if element state is used twice in the same frame
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-14 14:04:27 -08:00
Max Brunsfeld
7b666af0cf
Get chat integration tests passing
...
* Don't send a chat message before the previous chat message
is acknowledged.
* Fix emitting of notifications in RPC server
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-14 12:38:10 -08:00
Max Brunsfeld
bf6ae0d8f8
Restore logic for storing operations on buffers that are still being opened
2022-02-14 11:59:22 -08:00
Max Brunsfeld
fe46b89500
Remove logic for preserving RPC message order between peers
...
* On the server, spawn a separate task for each incoming message
* In the peer, eliminate the barrier that was used to enforce ordering
of responses with respect to other incoming messages
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-14 10:51:12 -08:00
Antonio Scandurra
90576cf32f
Request code actions inside of task to avoid spamming the LSP
2022-02-14 17:49:03 +01:00
Antonio Scandurra
ae75648f0d
v0.15.0
2022-02-14 17:26:40 +01:00
Antonio Scandurra
fadb94afb2
Use selection instead of just the cursor when fetching code actions
2022-02-14 14:13:36 +01:00
Antonio Scandurra
1eea2f3653
Add integration test for code actions
2022-02-14 11:42:56 +01:00
Antonio Scandurra
68917c78be
Implement Server::add_request_handler in terms of ::add_message_handler
2022-02-14 09:31:31 +01:00
Antonio Scandurra
1aff42302c
Rename subscribe
to add_{message,request}_handler
in Client
...
This makes it easier to distinguish between messages and requests.
2022-02-14 09:25:31 +01:00
Antonio Scandurra
6a6cd68df4
🎨
2022-02-14 09:22:10 +01:00
Antonio Scandurra
03812a6cdc
Pass write(true)
when creating a file in RealFs
2022-02-14 09:12:32 +01:00
Antonio Scandurra
a19735c05f
Ensure client always responds when receiving a request
2022-02-13 12:21:35 +01:00
Antonio Scandurra
a41eb5a663
Ensure server always responds when receiving a request
2022-02-13 10:21:01 +01:00
Antonio Scandurra
331667c00e
WIP: Start auditing all forward_request
calls on the server
...
When the host returns an error after a server has forwarded a request,
we want to surface that error to the guest. At the moment, the server
just returns early leaving some requests unresponded on the guest.
I started auditing all the code paths where we do that, but I am
wondering whether there's some other approach that would prevent us
from repeating this mistake in other code paths.
2022-02-12 14:12:13 +01:00
Antonio Scandurra
2dbea2804c
Deserialize buffers synchronously when deserializing project transaction
...
On guests, this ensures we never miss updates to subsequent buffers in
the project transaction that arrive while we're waiting for edits on a
prior buffer in the transaction.
2022-02-12 13:56:07 +01:00
Antonio Scandurra
8d3b7e996f
Proceed with saving a buffer even if formatting fails
2022-02-12 13:02:19 +01:00
Antonio Scandurra
a2100627c3
Refresh diagnostics and code actions more selectively
2022-02-12 13:01:55 +01:00
Antonio Scandurra
cbe93af3a8
Reduce number of iterations on test_editing_while_guest_opens_buffer
...
I think this was mistakenly increased as part of some other change.
2022-02-12 13:01:18 +01:00
Antonio Scandurra
ca052b4a4d
Make test_propagate_saves_and_fs_changes
more robust
...
...by using a condition that awaits on the actual paths as opposed
to the simple file counts.
2022-02-12 12:37:51 +01:00
Antonio Scandurra
e354133be0
Remove stray log statements
2022-02-12 12:32:57 +01:00
Antonio Scandurra
f2b4a0665f
Fix integration test verifying the rename behavior
...
Specifically, the test now ensures that the host's worktree observes a/file1's
change event *before* the rename occurs, otherwise when interpreting the change
event it will mistakenly think that the file has been deleted (because its path
has changed) and will subsequently fail to detect the rename, causing the test
to fail.
2022-02-12 12:26:39 +01:00
Antonio Scandurra
7b9ff42679
Apply worktree updates in the order they were received
2022-02-12 11:56:20 +01:00
Antonio Scandurra
5a7d391d73
Ensure response barrier is always dropped, even if request is canceled
2022-02-12 10:23:50 +01:00
Max Brunsfeld
174c9d7ab0
Adjust multibuffer history test to reflect new behavior
2022-02-11 16:55:00 -08:00
Max Brunsfeld
8d6504826c
Reduce logging in lsp tests
2022-02-11 16:37:50 -08:00
Max Brunsfeld
d84fc3beec
Remove Buffer::apply_lsp_edits
...
Always use `edits_from_lsp`.
2022-02-11 16:22:19 -08:00
Max Brunsfeld
d4b9d9e820
Inline MultiBuffer::format
...
Put all the logic in Editor. Add an `all_buffers` method so the editor can
format all of the buffers by itself.
2022-02-11 16:22:19 -08:00
Max Brunsfeld
06bb8d2779
Fix panic when canceling with a pending selection
2022-02-11 15:31:54 -08:00
Max Brunsfeld
01664d494c
Restructure fake language server to setup request handlers in advance
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 15:08:56 -08:00
Max Brunsfeld
680d1fedc2
Always call set_selections in mouse selection methods
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 09:52:18 -08:00
Max Brunsfeld
947fe848c1
Make multibuffer anchor's buffer_id optional
...
Avoid using 0 for a buffer id on Anchor::min and max
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 09:51:47 -08:00
Nathan Sobo
fa194c8e14
Pass the pending selection to update_selections and set_selections
...
This helps us preserve our invariant of always having at least a pending selection in set_selections when comparing old and new cursor positions.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-11 10:07:42 -07:00
Nathan Sobo
ad9a0e2d4f
Revert "Ensure there's always at least one selection in the editor"
...
This reverts commit b1a44b5816
.
2022-02-11 09:21:04 -07:00
Antonio Scandurra
612a33147a
Allow toggling of code actions
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 17:01:22 +01:00
Antonio Scandurra
7b28418979
Allow deployment of code actions from indicator
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 16:47:40 +01:00
Antonio Scandurra
b1a44b5816
Ensure there's always at least one selection in the editor
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 16:25:26 +01:00
Antonio Scandurra
a41725daee
Render code actions indicator
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 16:01:15 +01:00
Antonio Scandurra
2fcdcac080
Fetch code actions on cursor movement instead of on-demand
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 14:41:19 +01:00
Antonio Scandurra
763d57c94a
Don't return error when definition, completions, etc. are unavailable
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-11 13:16:17 +01:00
Antonio Scandurra
3fc3e51a44
Fix panic when trying to render a diagnostic that has no message
2022-02-11 12:16:20 +01:00
Antonio Scandurra
4929b8c525
Move Buffer::format
to Project::format
2022-02-11 12:07:46 +01:00
Max Brunsfeld
645df73a37
Finish implementing Buffer::edits_from_lsp
2022-02-10 18:01:18 -08:00
Max Brunsfeld
3a1f9bb212
Start work on applying LSP edits via a diff
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-10 11:14:06 -08:00
Max Brunsfeld
424b35253a
Don't open a multibuffer when code actions's edits are contained in the current editor
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-10 09:55:21 -08:00
Nathan Sobo
5049c1b286
Make Editor::newest_anchor_selection return a non-optional value
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-10 10:16:54 -07:00
Nathan Sobo
93eb005f74
Correctly redo all undone edits after undoing in multi-buffer
...
When undoing edits performed in the multi-buffer, we also undo subsequent edits that may have occurred outside of the multi-buffer. This commit makes us redo those edits as well.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-10 09:26:20 -07:00
Nathan Sobo
c5b0b5f902
Store the oldest transaction id for each excerpted buffer in multi-buffer transactions
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-10 09:14:39 -07:00
Nathan Sobo
9936bb2efa
Undo subsequent edits when undoing in multi-buffer
...
When undoing in the multi-buffer, don't preserve edits that occurred outside the multi-buffer after the edit being undone.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-10 09:04:53 -07:00
Antonio Scandurra
d1f1563278
Push transaction into multi-buffer to allow undoing of a code action
2022-02-10 09:55:03 +01:00
Antonio Scandurra
dd223f93ec
Allow editor to be saved when in multi-buffer mode
...
Also, this commit enables the customization of the title in a multi-buffer.
When specified, it will take precedence over a filename (or "untitled").
2022-02-10 09:35:19 +01:00
Antonio Scandurra
9ea535986f
Fix push_excerpts_with_context_lines
when ranges overlap
2022-02-10 09:06:11 +01:00
Max Brunsfeld
9749fea705
Start work on MultiBuffer::push_excerpts_with_context_lines
...
Use it in Editor::confirm_code_action
2022-02-09 18:28:15 -08:00
Max Brunsfeld
471c23e22f
Allow inserting multiple excerpts in a batch
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-09 17:56:06 -08:00
Max Brunsfeld
aa7dfbdd9c
Remove ExcerptProperties struct
...
Pass buffer and range as separate parameters
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-09 17:52:17 -08:00
Max Brunsfeld
b67be5ded3
Add MultiBufferItemHandle
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-09 17:09:03 -08:00
Max Brunsfeld
ca697e1bba
Add BufferSnapshot::edited_ranges_for_transaction
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-09 17:04:07 -08:00
Max Brunsfeld
1ee15e1a59
Add and remove excerpts in randomized FoldMap and WrapMap tests
2022-02-09 14:43:24 -08:00
Max Brunsfeld
5b4c0d64bc
Get tests passing and project diagnostics view working w/ new excerpt headers
2022-02-09 13:51:52 -08:00
Max Brunsfeld
3d9c39d0eb
Silence warnings
2022-02-09 13:00:09 -08:00
Max Brunsfeld
fc70c6d4fd
Fix BlockMap's handling of trailing empty excerpt updates with other edits
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-09 11:54:59 -08:00
Antonio Scandurra
cbf59ffafb
Handle replacing trailing empty excerpt with another empty excerpt
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-09 19:38:18 +01:00
Antonio Scandurra
fab6f0c568
Add/remove excerpts in BlockMap randomized tests and fix resulting errors
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-09 19:10:13 +01:00
Antonio Scandurra
8d95dbe3e6
Render path headers in editor element
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-09 16:28:18 +01:00
Antonio Scandurra
f1e3d5285b
Fix randomized test failures on BlockMap
with excerpt headers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-09 15:17:40 +01:00
Antonio Scandurra
0e1318dfe4
WIP: Make editor
crate compile again
...
Tests are still failing though.
2022-02-09 11:09:11 +01:00
Max Brunsfeld
c7e2fae9cb
WIP - Add excerpt headers as a built-in feature of BlockMap
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-08 18:15:45 -08:00
Max Brunsfeld
8b1fb9a2cc
Fix unused import warnings
2022-02-08 16:27:33 -08:00
Max Brunsfeld
6731d92f60
Give the editor a handle to the project, not a weak handle to the workspace
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-08 15:48:44 -08:00
Max Brunsfeld
624dbc1d0e
Fix confirming completions in a multibuffer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-08 15:05:34 -08:00
Max Brunsfeld
93bcde953c
Consolidate logic for completion alongside code actions in Project
...
This way, completions are dealt with more consistently with code actions,
and the logic is not spread across so many places. The `language::File`
trait and the multibuffer no longer need to deal with completions. Completions
are no longer generic over an anchor type.
2022-02-08 14:24:45 -08:00
Max Brunsfeld
722c84c976
Consolidate all code actions logic into Project
2022-02-08 13:17:57 -08:00
Max Brunsfeld
e0fe8b5a7c
Merge branch 'main' into assists
2022-02-08 12:41:57 -08:00
Max Brunsfeld
a32dffdd2b
Apply lsp edits in reverse order
...
This fixes the handling of multiple edits on the same line.
2022-02-08 12:41:30 -08:00
Max Brunsfeld
8bad05a4ba
Don't populate editor's context menu state if there are no completions
...
This would accidentally stop the enter key from working.
2022-02-08 12:37:20 -08:00
Antonio Scandurra
36ff31858b
Set file in test_diagnostics
to excercise language server
2022-02-08 20:09:53 +01:00
Antonio Scandurra
7d8641afb6
Make transactions serializable to enable edits on behalf of other users
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-08 19:48:21 +01:00
Antonio Scandurra
6768288da8
Bump protocol version
2022-02-08 15:00:06 +01:00
Antonio Scandurra
624eb5907e
Serialize buffer in terms of operations rather than state
...
This is required because, after joining, we want to be able to refer
to operations that have happened prior to joining, which are not
captured by the state. There is probably a way of reconstructing operations
from the state, but that seems unnecessary and we've already talked about
wanting to have the server store operations rather than state once we start
persisting worktrees.
2022-02-08 14:59:46 +01:00
Antonio Scandurra
dca974c7d4
Apply code actions remotely
2022-02-08 12:18:14 +01:00
Antonio Scandurra
aedf31e2d8
Manually refresh code action when data
is not present
2022-02-08 10:47:50 +01:00
Antonio Scandurra
9ce3b1adf2
Send DidCloseTextDocument
when dropping buffer
...
Closes https://github.com/zed-industries/zed/issues/434
2022-02-08 10:02:26 +01:00
Antonio Scandurra
17114cc6f7
Merge branch 'main' into assists
2022-02-08 09:39:43 +01:00
Max Brunsfeld
050f95149e
Clear test db pool whenever no dbs are in use
2022-02-07 18:30:09 -08:00
Max Brunsfeld
c245356b42
Try another hacky approach for tearing down DBs after all tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-07 15:23:35 -08:00
Max Brunsfeld
b0ed58add3
Run multiple iterations of all integration tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-07 15:11:41 -08:00
Max Brunsfeld
e3f055d950
Use a pool of databases to speed up integration tests
...
Also, use env_logger consistently in the tests for each crate.
Only initiallize the logger at all if some RUST_LOG env var is set.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-07 15:00:00 -08:00
Max Brunsfeld
8a2613d49c
Preserve ordering between responses and other incoming messages
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-07 14:14:15 -08:00
Max Brunsfeld
d4fe1115e7
Use an unbounded channel for peer's outgoing messages
...
Using a bounded channel may have blocked the collaboration server
from making progress handling RPC traffic.
There's no need to apply backpressure to calling code within the
same process - suspending a task that is attempting to call `send` has
an even greater memory cost than just buffering a protobuf message.
We do still want a bounded channel for incoming messages, so that
we provide backpressure to noisy peers - blocking their writes as opposed
to allowing them to buffer arbitrarily many messages in our server.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-07 12:27:13 -08:00
Antonio Scandurra
8f3ff1590e
Apply edits received from LSP code actions and open all touched buffers
2022-02-07 18:48:45 +01:00
Antonio Scandurra
7a35ea7b25
Tolerate language servers reporting non-monotonic buffer versions
...
This isn't perfect but we'll retain up to 10 old versions just in case there
are race conditions in the language server. We haven't seen this in the wild
but we're concerned about diagnostic reporting racing with code action
resolution.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-07 16:29:05 +01:00
Antonio Scandurra
a172c3c5c6
Apply file-system operations coming from an LSP code action
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-07 16:11:40 +01:00
Antonio Scandurra
982e90539d
WIP: Start on applying code actions
2022-02-07 12:20:03 +01:00
Nathan Sobo
dc20be256e
Start on code action confirmation
2022-02-05 12:37:34 -07:00
Nathan Sobo
ba99b01de6
Generalize showing and hiding of context menus
...
We still cancel pending completions when hiding the context menu so its not perfectly general, but I think this is ok.
2022-02-05 12:13:02 -07:00
Nathan Sobo
025e83c1ec
Render code actions context menu
2022-02-05 11:04:05 -07:00
Nathan Sobo
93a3f4b615
Move rendering and select prev/next into ContextMenu enum
...
This prepares the way to have a code actions context menu.
2022-02-05 10:19:43 -07:00
Nathan Sobo
ee661516fa
Start generalizing the completions menu into a context menu
...
This will let us render the code actions menu in a way that's mutually exclusive with completions.
2022-02-05 09:43:25 -07:00
Max Brunsfeld
83d4fe8e3a
Start work on code actions
...
Just print out the returned code actions for now
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-04 17:45:00 -08:00
Max Brunsfeld
4900019e9b
Add a ToPointUtf16 trait in text and multibuffer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-04 17:35:37 -08:00
Max Brunsfeld
16acbd2123
Handle appkit's cancelOperation: message to allow binding cmd-.
2022-02-04 17:33:09 -08:00
Max Brunsfeld
7fc951853d
Adjust assertion to reflect rust grammar upgrade
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-04 13:31:41 -08:00
Max Brunsfeld
3e232f7115
Refine behavior of select_larger_syntax_node
...
Co-Authored-By: Antonio Scandurra <antonio@zed.dev>
2022-02-04 13:19:00 -08:00
Antonio Scandurra
fe1729ff70
Merge pull request #424 from zed-industries/fix-goal-column-on-cut
...
Clear selection goal column when cutting a full line
2022-02-04 19:01:23 +01:00
Nathan Sobo
01f702ae5e
Merge pull request #423 from zed-industries/line-selection
...
Refine line-oriented selection and deletion
2022-02-04 10:24:53 -07:00
Nathan Sobo
3f897ed588
Clear selection goal column when cutting a full line
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-02-04 10:19:26 -07:00
Nathan Sobo
c38fe473cd
Delete to hard line boundary when deleting to start/end of line
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-04 10:10:30 -07:00
Nathan Sobo
90a780a604
Improve moving to start or end of soft-wrapped lines
...
When moving to end, stop at the soft-wrap line boundary first, then move to the end of the hard line. Vice versa when moving to the beginning.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-04 09:52:50 -07:00
Nathan Sobo
4eb2b978e8
Fix warning when not building in test mode
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-04 09:23:16 -07:00
Nathan Sobo
aa12eb6b55
Span across soft-wraps when triple clicking a line
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-04 09:21:13 -07:00
Antonio Scandurra
a2aa844ddd
Buffer all incoming file-system events
...
This avoids a problem where the operating system would drop events
on the floor and tell us to rescan the entire directory, which in turn
would cause a flicker in the project browser.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-04 16:31:34 +01:00
Antonio Scandurra
1e186d7235
Merge pull request #398 from zed-industries/refine-find
...
Refine find
2022-02-04 16:31:06 +01:00
Antonio Scandurra
807049af51
Always populate find bar on cmd-f
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-04 16:13:58 +01:00
Antonio Scandurra
bf043fe3fb
Merge pull request #396 from zed-industries/fix-autocomplete-bugs
...
Refine autocomplete
2022-02-04 16:13:16 +01:00
Antonio Scandurra
7a8765a016
Dismiss the focused find bar on escape
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-04 16:11:48 +01:00
Antonio Scandurra
55f0933872
Show completions as soon as possible
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-04 16:01:04 +01:00
Antonio Scandurra
625beaaa9b
Finish writing test for the new autocompletion behavior
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-04 15:47:19 +01:00
Nathan Sobo
f8dce23440
Merge pull request #394 from zed-industries/fix-selections-after-format
...
Fix selection positions after typing with old selection anchors
2022-02-04 06:02:18 -07:00
Antonio Scandurra
0f266cff54
WIP: Start refactoring completion test
...
The idea is to write more assertions related to how autocompletion
behaves with multiple cursors, prefixes that don't match, etc.
2022-02-04 12:24:04 +01:00
Antonio Scandurra
99d0100c45
Remove unused bytes_at
method
2022-02-04 12:07:30 +01:00
Antonio Scandurra
32859a38ed
Refine autocompletion when text matches a prefix of the suggestion
2022-02-04 12:05:57 +01:00
Antonio Scandurra
8d17287167
Move cursor to diagnostic even if the only diagnostic is currently shown
2022-02-04 09:34:32 +01:00
Max Brunsfeld
d23115f628
Fix selection positions after typing with old selection anchors
2022-02-03 18:14:00 -08:00
Max Brunsfeld
3dfff3866a
Add integration test for getting and resolving completions
2022-02-03 15:24:16 -08:00
Max Brunsfeld
6e33f14218
Confirm completion on tab key as well as enter key
2022-02-03 14:14:24 -08:00
Antonio Scandurra
39152bc85f
Add unit test for multi-cursor snippet
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-03 19:26:24 +01:00
Antonio Scandurra
3e8707ebf6
Support multi-cursor autocompletion
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-03 18:58:36 +01:00
Antonio Scandurra
60595a64bd
Align completion labels with cursor
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-03 17:21:24 +01:00
Antonio Scandurra
71ef052c06
Put rounded corners around autocomplete and give it some padding
2022-02-03 15:48:00 +01:00
Antonio Scandurra
d56e721fab
Mute color of completion's text that can't be filtered
2022-02-03 15:39:53 +01:00
Antonio Scandurra
1375c7b7e4
Fix panic when trying to show completions but none match the query
2022-02-03 14:36:45 +01:00
Antonio Scandurra
85e6ea1091
Transact on applying completion to allow restoring of selections on undo
2022-02-03 12:10:22 +01:00
Antonio Scandurra
f41f1e51a8
Hide completions when {un,re}doing past initial insertion boundaries
2022-02-03 11:42:52 +01:00
Antonio Scandurra
efcbf2714c
Support clicking on a completion to confirm it
2022-02-03 11:39:19 +01:00
Antonio Scandurra
7865c32727
Optimize summaries_for_anchors
when MultiBuffer
is a singleton
2022-02-03 11:22:55 +01:00
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
Antonio Scandurra
bd441723a0
Cancel innermost snippet insertion when hitting esc
2022-02-03 10:37:15 +01:00
Antonio Scandurra
426ca94b52
Allow completions to bleed off the editor's bounds
2022-02-03 10:23:34 +01:00
Antonio Scandurra
d246a39b57
Syntax highlight even when the label doesn't contain a detail
2022-02-03 09:57:04 +01:00
Antonio Scandurra
8fc89da573
Don't overflow selection index when completions are filtered
2022-02-03 08:47:17 +01:00
Max Brunsfeld
439d12cb85
Start work on syntax highlighting completions
2022-02-02 18:14:30 -08:00
Max Brunsfeld
45898daf83
Fix hang in editor completion unit test
2022-02-02 17:09:36 -08:00
Max Brunsfeld
bbdf62f263
Introduce Language::highlight_text method
2022-02-02 17:01:48 -08: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
Antonio Scandurra
101add8da3
Hide completions when using the mouse
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-02 19:12:36 +01:00
Antonio Scandurra
474ec2199c
Improve formatting of variable/field completions for Rust
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-02 18:56:04 +01:00
Antonio Scandurra
8149bcbb13
Improve formatting of function autocompletion labels in Rust
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-02 18:43:55 +01:00
Antonio Scandurra
8d7815456c
Don't apply completion's edit when it wouldn't change the buffer
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-02 18:00:30 +01:00
Antonio Scandurra
924eb622ae
Wait for additional edits before pushing transaction in remote buffer
2022-02-02 17:01:23 +01:00
Antonio Scandurra
d765e75bad
Apply additional edits for completion when the buffer is remote
2022-02-02 16:29:13 +01:00
Antonio Scandurra
91e5c2dfac
Broadcast completion triggers to remote participants
2022-02-02 14:07:41 +01:00
Antonio Scandurra
ed549e352f
Start on requesting completions for remote buffers
2022-02-02 12:22:47 +01:00
Antonio Scandurra
ae5aebf405
Fix flaky test_highlighted_ranges
due to random TypeId
ordering
2022-02-02 10:09:12 +01:00
Antonio Scandurra
74e5c5b89a
Separate autoclose pair stack from autocomplete stack
2022-02-02 09:51:03 +01:00
Antonio Scandurra
79408464ea
Navigate tabstops on tab even if the top of stack is a BracketPairState
2022-02-02 09:04:57 +01:00
Max Brunsfeld
6ff45f2ade
Generalize autoclose stack to include snippet ranges as well
2022-02-01 17:40:39 -08:00
Max Brunsfeld
7270fd00ba
Start work on handling snippet completions
2022-02-01 15:35:02 -08:00
Max Brunsfeld
680fde9608
Handle special "final tabstop" in snippets
2022-02-01 15:33:48 -08:00
Max Brunsfeld
1371a20e58
🎨 Return an option task from confirm_completion
2022-02-01 14:27:01 -08:00
Max Brunsfeld
55cc7bb868
Reimplement snippet parsing using recursive descent
2022-02-01 13:41:41 -08:00
Max Brunsfeld
956748e10c
Add snippet crate
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-01 11:00:40 -08:00
Antonio Scandurra
d873786710
Advertise snippet_support
capability to LSP
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-02-01 18:20:47 +01:00
Antonio Scandurra
6c7d2cf6b5
Apply additional edits when confirming a completion
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-01 17:38:11 +01:00
Antonio Scandurra
bcc57036a5
Fix warnings in language::FakeFile
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-01 16:59:03 +01:00
Nathan Sobo
497626ef2b
Re-filter existing completions on selection update
...
We still request new completions, but this ensures results are up-to-date in the meantime.
Also: Cancel any pending completions task when we dismiss the completions dialog or start a new completions request.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-02-01 07:59:37 -07:00
Antonio Scandurra
b89a39bcb3
Filter and sort suggestions in autocomplete
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-02-01 15:11:20 +01:00
Antonio Scandurra
bcbd265de9
Dismiss autocomplete when moving outside of a word
2022-02-01 13:27:49 +01:00
Nathan Sobo
92f0491c0e
Don't assign completion_state when completions are empty
2022-01-31 18:38:49 -07:00
Nathan Sobo
327ddbe2b4
Always issue a new completions request when typing a trigger character
...
We'll interpolate the anchor range of original request, but it's still a good idea to be up-to-date in case the language server is influenced by the content preceding the location. This doesn't *seem* to be the case with rust-analyzer so far, but it's how VS Code works so let's do it this way.
2022-01-31 18:34:20 -07:00
Nathan Sobo
ae0237c21b
Create anchors with latest snapshot when completions are ready
...
Using the previous snapshot was panicking.
2022-01-31 18:33:25 -07:00
Nathan Sobo
fde03b1b37
Make the anchor range inclusive on completions
...
This will help us to correctly interpolate the replacement range when we confirm before receiving new completions after typing with a completion open.
2022-01-31 18:26:26 -07:00
Max Brunsfeld
1d1f8df180
Trigger completion when typing words or trigger characters
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 17:07:24 -08:00