Commit graph

1333 commits

Author SHA1 Message Date
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