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
Max Brunsfeld
8d2b7ba032
Insert completion text on enter
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 13:46:50 -08:00
Max Brunsfeld
071a55a7ab
Allow selecting items from the autocomplete list
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 13:25:46 -08:00
Max Brunsfeld
16c0baced6
Dispatch editor events on the autocomplete list
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 13:15:30 -08:00
Max Brunsfeld
6da01eac9b
Make editor element's paint and layout states non-optional
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 13:06:59 -08:00
Max Brunsfeld
c19d639e0a
Derive autocomplete menu's width from the width of its largest item
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 13:01:20 -08:00
Nathan Sobo
1a6e972ed4
Get basic list of completions rendering without styling
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-31 13:17:42 -07:00
Nathan Sobo
ab6eb0a655
Start on completion rendering
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-31 12:19:17 -07:00
Nathan Sobo
960696a504
Bind autocomplete to ctrl-space
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-31 11:34:19 -07:00
Nathan Sobo
0344c543af
Return anchored completions from Buffer::completions
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-31 11:25:00 -07:00
Antonio Scandurra
03bcbdc33d
WIP
2022-01-31 19:12:35 +01:00
Antonio Scandurra
bd2527e691
Use StringMatchCandidate::new to construct candidates more conveniently
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 19:11:13 +01:00
Antonio Scandurra
1e96fc98e7
Advertise additionalTextEdits
resolution capability to language servers
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 19:09:29 +01:00
Antonio Scandurra
808550fe41
v0.14
2022-01-31 15:14:54 +01:00
Antonio Scandurra
08b8b60377
Merge pull request #378 from zed-industries/multibuffer-anchors
...
Fix errors when anchors escape an excerpt's buffer boundaries
2022-01-31 14:28:41 +01:00
Antonio Scandurra
52f9c27338
Merge pull request #380 from zed-industries/find-bar
...
Find in buffer
2022-01-31 14:23:40 +01:00
Antonio Scandurra
3ccbd77269
Move match index before the navigation buttons
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-31 14:06:49 +01:00
Antonio Scandurra
51ec350635
Assign a background to find buttons
2022-01-31 14:00:35 +01:00
Antonio Scandurra
eb537214ed
Fix panic when moving to next/prev result but there are no matches
2022-01-31 11:04:53 +01:00
Antonio Scandurra
803cdd00a6
Add some basic styling to FindBar
2022-01-31 11:00:29 +01:00
Antonio Scandurra
7db4cad9e0
Fix panic when closing pane's last item
2022-01-31 10:10:15 +01:00
Antonio Scandurra
611538f6bd
Clear highlighted matches when dismissing FindBar
2022-01-31 09:58:03 +01:00
Nathan Sobo
b1639e5677
Add cmd-g and cmd-shift-g to jump to next / previous result
...
I added the action handler on Pane so we can use these bindings when the find bar isn't focused.
2022-01-30 20:59:20 -07:00
Antonio Scandurra
f90193beea
Populate query and select it only if find bar isn't already deployed
2022-01-30 16:44:42 +01:00
Antonio Scandurra
83423a4344
Use cmd-f to move focus back to the editor when find bar is focused
2022-01-30 16:30:07 +01:00
Antonio Scandurra
9ce1eda305
Bind cmd-e
to deploy FindBar
without focusing it
2022-01-30 16:11:48 +01:00
Antonio Scandurra
ce5270488f
Propagate Cancel
when editor is not in full mode
...
This is consistent with what VS Code and Sublime Text do and allows the user to
perform only one keybinding to e.g. dismiss the find bar when the query is
(partially) selected.
2022-01-30 16:01:53 +01:00
Antonio Scandurra
c53b6b907a
Populate query with text under selection when hitting cmd-f
2022-01-30 16:01:05 +01:00
Antonio Scandurra
2a1b1adfab
Bind enter
and shift-enter
in FindBar
2022-01-30 15:20:57 +01:00
Antonio Scandurra
e8105c9a99
Show a message when no matches were found
2022-01-29 18:23:14 +01:00
Antonio Scandurra
c16bd98f56
Fix panic when no matches were found
2022-01-29 18:21:19 +01:00
Antonio Scandurra
969d81b632
Determine active match index correctly when cursor is after last match
2022-01-29 16:44:26 +01:00
Antonio Scandurra
df4cc45790
Select next/prev find match based on whether we intersect active match
...
Also, capture the next/prev selection logic in a unit test.
2022-01-29 16:16:48 +01:00
Antonio Scandurra
1d55872e7a
Display active match and allow going to next or previous match
...
We still need to write a unit test for this, as well as add a keybinding.
2022-01-29 14:38:58 +01:00
Antonio Scandurra
5ebd24d528
📝 Improve assertion comment
2022-01-29 10:41:55 +01:00
Antonio Scandurra
a284e7140c
Always return valid locations when refreshing anchors
...
Specifically, with this commit:
- We will now refresh the anchor if it escapes the boundaries of the excerpt by
using the `Excerpt::contains` method. This was not the case before, as we were
just checking if the excerpt id and buffer id of the anchors matched the ones
stored on the excerpt.
- We fixed a bug that was causing the anchor to be outside of the excerpt when
resetting it to one of the excerpt's endpoints after we couldn't keep its
position. This would happen because we were using `anchor_at`, which resolved
the anchor to an offset first and then converted it back into an anchor with
the given bias, which is a lossy operation. We now use `Anchor::bias` to
achieve the same goal: note that this could still lead to the anchor escaping
the excerpt's boundary when the bias doesn't match the endpoint's bias, so we
take extra care to avoid that and `min`/`max` the newly-produced anchor with
the other endpoint.
2022-01-29 10:10:53 +01:00
Antonio Scandurra
2d6e348185
Prevent anchors from escaping their excerpt's range when resolving them
...
This could happen if an anchor was created on an excerpt with a larger range.
Then, if the excerpt was removed and added back at the same position and with
the same buffer but a smaller range, resolving the anchor could overshoot
the excerpt's boundaries.
2022-01-29 09:52:38 +01:00
Max Brunsfeld
5c7cea5a3e
WIP - Navigate to prev/next search result
2022-01-28 14:00:00 -08:00
Max Brunsfeld
7e02d669e1
Add a simple unit test for find bar
2022-01-28 13:05:29 -08:00
Max Brunsfeld
be7f5340d0
Adjust hover assertion in lsp test after bumping rust-analyzer
2022-01-28 12:11:26 -08:00
Antonio Scandurra
d2a64f2171
Optimize search when regex doesn't contain newlines
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-28 17:26:08 +01:00
Antonio Scandurra
5b9d791269
Implement regex search with multiline support
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-28 16:15:18 +01:00
Antonio Scandurra
5c862bfe98
Maintain search results as query and active editor changes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-28 15:19:58 +01:00
Antonio Scandurra
860e37d50f
Move finding results in the background
2022-01-28 12:15:55 +01:00
Antonio Scandurra
b2ded5bca8
Optimize some common operations when MultiBuffer
is a singleton
2022-01-28 11:50:13 +01:00
Antonio Scandurra
b980b11053
Implement whole word mode
2022-01-28 11:48:04 +01:00
Nathan Sobo
df1810a3b0
A bit more progress styling find
...
Fix the pinwheel when hovering mode buttons.
2022-01-27 18:59:44 -07:00
Max Brunsfeld
da35df0cca
WIP
2022-01-27 16:16:51 -08:00
Max Brunsfeld
4f0ffdcdaf
Avoid panic when closing the last tab in a pane, due to calling activate_item
2022-01-27 15:38:10 -08:00
Max Brunsfeld
3abd7bc8dd
Highlight find matches
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 15:19:52 -08:00
Max Brunsfeld
34ed734749
Add highlighted_ranges API to editor
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 15:19:28 -08:00
Max Brunsfeld
d8e4464a89
WIP - Run substring search when typing in find bar
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 13:00:51 -08:00
Max Brunsfeld
05e20ca72b
Inform toolbars when active item changes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 13:00:23 -08:00
Antonio Scandurra
bebde782fa
Deploy FindBar
when hitting cmd-f
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-27 17:56:50 +01:00
Antonio Scandurra
e7d4c385d5
Take an Into<AnyViewHandle>
in ChildView::new
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-27 17:54:45 +01:00
Antonio Scandurra
dbf48d2a5b
Merge pull request #375 from zed-industries/more-project-diagnostics-styling
...
Last touches on project diagnostics for now
2022-01-27 16:47:05 +01:00
Antonio Scandurra
3853826f78
Pause cursor blinking only when editor is focused
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 16:33:47 +01:00
Antonio Scandurra
37032f5eb2
Show non-disk-based diagnostics in project diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 16:23:50 +01:00
Antonio Scandurra
ff24766319
Fix warning
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 15:55:48 +01:00
Antonio Scandurra
41ec4645ab
Don't panic when ending transaction that wasn't started by the same editor
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 15:53:44 +01:00
Antonio Scandurra
f055053fc9
Avoid grouping transactions created by different editors
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-27 15:51:46 +01:00
Antonio Scandurra
4d9cdd474b
Style empty project diagnostics state
2022-01-27 10:21:26 +01:00
Antonio Scandurra
3e4fe09d00
Filter out supporting diagnostics that contain no messages
2022-01-27 09:51:15 +01:00
Max Brunsfeld
0e55f0ccaa
Use Rust 2021 edition in all crates
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 12:50:31 -08:00
Max Brunsfeld
509d362bdd
Avoid stripping newlines before opening backticks in error messages
2022-01-26 11:51:12 -08:00
Max Brunsfeld
f1d621133e
Dial back opacity of border.1 in dark themes
2022-01-26 11:27:00 -08:00
Max Brunsfeld
76bbd101c6
Increase diagnostic editor's vertical scroll margin
...
This way, the first path header will always be fully visible when
you move your cursor to the beginning of the multibuffer.
2022-01-26 10:23:41 -08:00
Max Brunsfeld
9b9fcf6927
Avoid showing selection strip on top of diagnostic headers
2022-01-26 10:23:40 -08:00
Antonio Scandurra
51c34ebcc2
Alpha-blend borders with backgrounds in quad SDF
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-26 19:16:26 +01:00
Antonio Scandurra
02baaa3529
Bump the protocol version
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 17:42:04 +01:00
Nathan Sobo
e585bc7199
Add retries to rescan test that uses the real file system
...
We could potentially use a fake file system, but this should avoid flaky tests in the short run.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-26 09:25:06 -07:00
Antonio Scandurra
0263ea289c
Style diagnostic header's border in light and dark theme
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 17:08:24 +01:00
Antonio Scandurra
dedd5d63fb
Fix blending of quad's border with background
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 17:06:20 +01:00
Antonio Scandurra
3f6960bd34
Position underlines at a distance proportional to the line descent
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 16:03:06 +01:00
Antonio Scandurra
b9b255652f
Display squiggly underlines underneath text with diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-26 15:52:40 +01:00
Antonio Scandurra
52594fe250
WIP: Start on squiggly underlines
2022-01-26 13:07:39 +01:00
Max Brunsfeld
a890787923
Render header blocks as horizontall fixed (like the gutter)
...
Tweak editor layout to perform horizontal autoscroll before
laying out the blocks, so that they can access the scroll position.
2022-01-25 17:19:38 -08:00
Max Brunsfeld
f19934096a
Account for editor's full scroll width when laying out blocks
...
Compute the editor's scroll width earlier in layout and
store it on the layout state, rather than computing it repeatedly.
2022-01-25 16:31:14 -08:00
Max Brunsfeld
cefb63936d
Tweak diagnostic header styling
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-25 15:33:49 -08:00
Max Brunsfeld
e04e929010
Render diagnostic status bar icon with icons
2022-01-25 15:33:34 -08:00
Max Brunsfeld
dbe969893c
Show icons and counts in the project diagnostics tab
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-25 12:31:55 -08:00
Max Brunsfeld
c9b4bb78f2
Merge branch 'project-diagnostics-pinned-tab' into style-project-diagnostics
2022-01-25 12:20:37 -08:00
Max Brunsfeld
78b57e4d9d
Scale diagnostic header and message text with editor font
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-25 12:10:11 -08:00
Nathan Sobo
0c6fd157ee
Scale diagnostic headers icons with editor font and right align w/ line numbers
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-25 12:40:53 -07:00
Antonio Scandurra
121b45e249
Sanitize language server diagnostics coming from Rust
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-25 17:49:50 +01:00
Antonio Scandurra
7250974aa6
Style block decorations
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-25 17:07:12 +01:00
Antonio Scandurra
65d4c33c0e
Format messages within backticks using bold instead of with a background
2022-01-25 15:50:49 +01:00
Antonio Scandurra
7e55353de8
Show error code in diagnostic header
2022-01-25 15:23:58 +01:00
Antonio Scandurra
ec0ca2a1b6
Display icon next to primary message
2022-01-25 15:15:03 +01:00
Antonio Scandurra
e7ec016350
Restyle diagnostic headers
2022-01-25 12:23:24 +01:00
Max Brunsfeld
0cfb9ff1ae
Add random delays in FakeFs
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-24 16:50:38 -08:00
Max Brunsfeld
2b8685c1a2
Insert random delays when sending and receiving websocket messages in tests
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-24 16:37:22 -08:00
Nathan Sobo
d241ab6370
Don't store operations for remote buffers we haven't yet opened
...
This used to be needed, but we think with our improvements to message ordering that we'll never miss operations that were applied after opening a remote buffer.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-24 17:33:46 -07:00
Nathan Sobo
afa33c958b
Clear shared buffers when unsharing projects
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-24 17:24:07 -07:00
Nathan Sobo
469ee554a0
Get most tests passing when respecting wake order for foreground tasks in Deterministic executor
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-24 17:13:56 -07:00
Antonio Scandurra
b7314ef2aa
WIP: Start restructuring executor
2022-01-24 18:49:20 +01:00
Antonio Scandurra
96b66dcce1
Fix race condition when opening a buffer and getting a definition to it
2022-01-24 18:47:55 +01:00
Antonio Scandurra
93125cbd16
Remove executor::Foreground::Test
...
All code paths have already transitioned to `Foreground::Deterministic`.
2022-01-24 16:14:30 +01:00
Antonio Scandurra
dabab6e323
Verify simultaneously opening buffers via definition
and open_buffer
...
This fails because we don't yet handle this scenario.
2022-01-24 15:08:04 +01:00
Antonio Scandurra
a762f575f4
Add remote worktree to project before it is fully deserialized
...
This prevents a race condition where the host will send us messages and
responses about a worktree that we have seen but haven't yet finished loading.
2022-01-24 14:00:38 +01:00
Antonio Scandurra
245490f934
Implement Project::definition
when the buffer is remote
2022-01-24 13:10:13 +01:00
Antonio Scandurra
528a4dd9b4
Fix regression causing guests to miss operations while opening a buffer
2022-01-24 11:28:46 +01:00
Antonio Scandurra
f859d444ff
Don't show conflict indicator on remote buffer after a reload
2022-01-24 10:17:36 +01:00
Antonio Scandurra
4372fe1ed0
Maintain remote buffers via UpdateBufferFile
messages sent by host
2022-01-24 09:32:40 +01:00
Nathan Sobo
da13d028a3
Send File protos as part of Buffer protos
...
Use the File proto to build the File associated with the buffer rather than relying on the local entry.
2022-01-22 22:19:04 -07:00
Nathan Sobo
66fce5ec8e
Introduce LocalFile trait
...
If you want to call `abs_path` or `load`, the file needs to be local. You call `as_local` which returns `Option<dyn LocalFile>` with those local-only methods. I think this makes it more explicit what works only locally vs everywhere.
2022-01-22 15:52:14 -07:00
Nathan Sobo
ea9c5b0686
💄
2022-01-22 15:30:38 -07:00
Nathan Sobo
506ce8e032
Introduce LocalSnapshot
...
This allows us to remove the absolute path and scan-related state from the Snapshot. None of this data is relevant or valid on guests.
2022-01-22 15:19:14 -07:00
Nathan Sobo
d192b6ebc7
Remove Worktree::abs_path
...
I'd like to only have methods related to absolute paths on local worktrees, because it's not really possible to implement them on remote worktrees since we don't know the full path being shared and wouldn't have anything to do with it anyway if we did.
2022-01-22 14:44:58 -07:00
Nathan Sobo
e2a2073bdb
Remove worktree_path from File struct
2022-01-22 14:29:36 -07:00
Nathan Sobo
e61a5b172c
Defer pane interaction when opening excerpts in diagnostics view
...
Activating a new item causes the current item to be deactivated. We're the current item, but we're on the stack, so we panic if we try to do this synchronously. If we use defer to wait until we're off the stack it works.
2022-01-22 13:23:08 -07:00
Nathan Sobo
b755b2d602
Add ViewHandle::defer
...
It's like update, but happens after the current effect instead of synchronously. Also, it doesn't allow the callback to return a value because there would be nothing to do with it.
2022-01-22 13:21:59 -07:00
Nathan Sobo
8b04c5d3ac
Add a ViewContext::defer
...
This takes a closure that will be enqueued as an effect to ensure there are no entities on the stack.
2022-01-22 13:14:25 -07:00
Nathan Sobo
83418204b6
Assign diagnostics on buffer even if it doesn't have a language
...
This shouldn't be necessary in practice but makes testing easier.
2022-01-22 09:54:25 -07:00
Nathan Sobo
8bf628c17b
Update new buffers with existing diagnostics in Project – after assigning language
2022-01-22 08:46:37 -07:00
Antonio Scandurra
2773cab4ec
Simplify opening buffers in the Project and assign language synchronously
2022-01-22 11:34:44 +01:00
Antonio Scandurra
31dfd01fda
Make add_local_worktree
private and use find_or_create_local_worktree
...
The former always adds a worktree, even if we have one already in the
project and that could be misused. The public API should always search
for a local worktree containing the requested path first so that the
project can uphold invariants about which worktrees it has.
2022-01-22 11:23:00 +01:00
Max Brunsfeld
622aff3be2
Get diagnostics crate's tests passing
...
Update diagnostics on project instead of on worktree
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 18:02:10 -08:00
Max Brunsfeld
2712cadaf6
Get integration tests passing
...
* Fix misuse of guest buffer's id as its remote id
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 17:44:24 -08:00
Max Brunsfeld
f1fc0bde99
Flush effects after every spawned future completes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 17:43:24 -08:00
Max Brunsfeld
34e42c0c5f
Remove worktree_id from buffer-related RPC messages
2022-01-21 16:23:39 -08:00
Max Brunsfeld
03dc1e5aea
Move main worktree structs adjacent to each other
2022-01-21 16:10:26 -08:00
Max Brunsfeld
bd49a02c92
Move buffers from worktree to project
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 15:46:27 -08:00
Max Brunsfeld
7de26302ec
Remove UserStore from Worktree
2022-01-21 12:37:44 -08:00
Max Brunsfeld
6751bd9d78
Change integration tests to open buffers via the project
2022-01-21 12:23:17 -08:00
Nathan Sobo
a578d71ea2
v0.13.0
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-21 11:26:32 -07:00
Nathan Sobo
3ecb7e81f1
Remove panic when guest attempts to go to definition
...
We'll implement this soon but want to merge something stable to main.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-21 11:24:05 -07:00
Nathan Sobo
19751e9200
Merge remote-tracking branch 'origin/main' into go-to-definition
2022-01-21 11:12:38 -07:00
Nathan Sobo
a73671e57c
Revert "Replace project_path
with project_entry
in workspace::{Item, ItemView}
"
...
This reverts commit 9c9a09cccb
.
2022-01-21 11:07:10 -07:00
Nathan Sobo
1d72e8face
Remove source_range from definition
...
We don't use it now, and plan on dealing with it in a dedicated way when we need mouse hover interactions.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-21 07:31:02 -07:00
Antonio Scandurra
4698d57ddd
Add unit test for Project::definition
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 15:05:25 +01:00
Antonio Scandurra
64f5a45397
Hide weak worktrees in the file finder
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 14:39:35 +01:00
Antonio Scandurra
2fcf1aee6b
Remove weak handles when worktree gets dropped
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 14:34:14 +01:00
Antonio Scandurra
e5662dd426
Allow observing the release of entities
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-21 14:34:14 +01:00
Antonio Scandurra
6e7e86e491
Remove weak worktrees from project when nobody references them
...
Also, avoid showing them in the project panel as well as in the
contacts panel.
2022-01-21 14:34:14 +01:00
Antonio Scandurra
ee95775b1c
Unregister worktree when its last handle to it gets released
2022-01-21 14:34:14 +01:00
Nathan Sobo
9505d6cdcf
Disable the nav history when selecting a definition in a different buffer
...
When jumping between different buffers, we don't care about the cursor's previous location. When navigating backward, we want to jump directly to the site of the jump.
2022-01-20 21:33:16 -07:00
Nathan Sobo
fbca28337a
When opening a path in an existing window, move it to the foreground
2022-01-20 20:45:30 -07:00
Antonio Scandurra
377e41a90f
Make navigation history work with project diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-20 18:21:48 +01:00
Antonio Scandurra
c450945001
WIP
2022-01-20 18:11:37 +01:00
Antonio Scandurra
fad5c98b8d
Center selections when going to definition
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-20 17:33:07 +01:00
Antonio Scandurra
b6685a532c
Make "go to definition" work in project diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-20 17:30:30 +01:00
Antonio Scandurra
d92b40474f
Change GoToDefinition
binding to F12
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-20 15:43:02 +01:00
Antonio Scandurra
a53c87edfe
🎨
2022-01-20 15:26:10 +01:00
Antonio Scandurra
66734e11af
WIP: Start on a GoToDefinition
action for the editor
2022-01-20 12:26:04 +01:00
Antonio Scandurra
cbbf7391e8
Start on Project::definition
that only works locally (for now)
2022-01-20 12:11:41 +01:00
Antonio Scandurra
11a83d01c2
Advertise link capability in LSP
2022-01-20 12:10:01 +01:00
Antonio Scandurra
6b1f989c2b
Omit worktree id when emitting Event::DiskBasedDiagnosticsUpdated
...
Sometimes we will have more than one worktree associated with the same
language server and in that case it's unclear which worktree id we should
report an event for.
2022-01-20 10:13:27 +01:00
Antonio Scandurra
71082d4cdc
Return a Task<Result<()>>
in {ItemView,Buffer,MultiBuffer}::save
2022-01-20 09:58:24 +01:00
Antonio Scandurra
634340dd84
Return a task from Workspace::save_active_item
...
This required changing our approach to OS prompts and this commit greatly
simplifies that. We now avoid passing a callback and return a simple future
instead. This lets callers spawn tasks to handle those futures.
2022-01-20 09:51:29 +01:00
Max Brunsfeld
e56c043693
Get tests passing, centralize more diagnostic logic in Project
2022-01-19 16:32:55 -08:00
Max Brunsfeld
0992132a0d
Always open buffers via the project
2022-01-19 14:48:54 -08:00
Max Brunsfeld
f43dcd6763
Move logic for starting language servers to the project
2022-01-19 14:05:06 -08:00
Antonio Scandurra
10c64f527c
WIP
2022-01-19 19:28:41 +01:00
Antonio Scandurra
8052f905e5
Remove unused languages
field from LocalWorktree
2022-01-19 18:46:17 +01:00
Antonio Scandurra
ae284c2d8a
Route save_as
via the Project
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-19 18:44:48 +01:00
Antonio Scandurra
e7235a82ec
Remove unused languages
field on LocalWorktree
2022-01-19 17:27:00 +01:00
Antonio Scandurra
9c9a09cccb
Replace project_path
with project_entry
in workspace::{Item, ItemView}
2022-01-19 15:56:04 +01:00
Antonio Scandurra
18f1040c85
Rename Navigation
to NavHistory
2022-01-19 15:27:34 +01:00
Max Brunsfeld
05bf8f61e2
Avoid changing selection in buffer navigation dialogs
...
If an editor has highlighted_rows, autoscroll it to reveal those rows instead of
its cursor positions.
2022-01-18 17:29:33 -08:00
Max Brunsfeld
2cae706033
Limit the storage used by the navigation history
2022-01-18 16:31:48 -08:00
Max Brunsfeld
926306582b
Add a unit test for navigation behavior at the editor level
2022-01-18 16:25:22 -08:00
Max Brunsfeld
f7326b8d74
Push to navigation history based on jump distance instead of time
2022-01-18 15:02:49 -08:00
Antonio Scandurra
16b82d59f1
Experiment with a more general way of pushing editor navigation entries
2022-01-18 18:03:10 +01:00
Antonio Scandurra
0cae3e0ac0
Ensure focus is transferred when opening the first item in pane
2022-01-18 10:15:37 +01:00
Antonio Scandurra
b7091dd5e2
Fix double borrow error when closing an item
2022-01-18 10:13:50 +01:00
Antonio Scandurra
4f472e1442
🔥
2022-01-18 10:10:16 +01:00
Antonio Scandurra
bb954e29cf
Introduce a test to verify navigation
2022-01-18 10:03:56 +01:00
Antonio Scandurra
d5acbe1e32
Use offset to restore navigation position if anchor can't be resolved
2022-01-18 09:59:28 +01:00
Antonio Scandurra
d480738cc5
Skip past entries in the navigation history that can't be re-opened
2022-01-18 09:58:40 +01:00
Max Brunsfeld
11b7270f68
Navigate to previous positions in editors when using navigation history
2022-01-17 16:01:52 -08:00
Max Brunsfeld
e43d33cdad
WIP - Reopen closed items when going back in nav history
2022-01-17 10:46:47 -08:00
Antonio Scandurra
ea624c6cde
Populate backward/forward stacks upon item deactivation
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-17 18:57:31 +01:00
Antonio Scandurra
bbf634f439
Start laying the foundation for a per-pane navigation system
2022-01-17 16:59:06 +01:00
Antonio Scandurra
cd0d1d3340
Delete unused pane::State
struct
2022-01-17 15:27:54 +01:00
Antonio Scandurra
f51cf6b05e
Cleanup worktrees' shared state when unsharing
2022-01-17 10:58:49 +01:00
Antonio Scandurra
466b26e7e6
Always re-render outline view when changing the active selection
2022-01-17 10:17:11 +01:00
Max Brunsfeld
e27fafb824
v0.12
2022-01-14 12:03:29 -08:00
Max Brunsfeld
485554cd0c
Merge pull request #342 from zed-industries/symbolic-nav
...
Introduce outline view
2022-01-14 12:02:43 -08:00
Max Brunsfeld
f3239fe1d5
Apply scroll_max after uniform list autoscrolls
2022-01-14 11:56:28 -08:00
Max Brunsfeld
dd8e5ee543
Add bottom margin to the outline view
2022-01-14 11:01:20 -08:00
Max Brunsfeld
5de5e4b6f2
Avoid panic in OutlineView when active item isn't an editor
2022-01-14 10:51:26 -08:00
Max Brunsfeld
b7561c6cef
Add select_first and select_last bindings to outline view
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 10:45:37 -08:00
Max Brunsfeld
ea69dcd42a
Match on names only when outline query has no spaces
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 09:16:29 -08:00
Antonio Scandurra
ce51196eab
Center the selected item when updating outline query
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 17:53:06 +01:00
Antonio Scandurra
e4c0fc6ad5
Dismiss outline view when the query editor is blurred
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 17:25:24 +01:00
Nathan Sobo
b52db22544
Only enable smart case if the query contains an uppercase character
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-14 09:16:09 -07:00
Nathan Sobo
f934370e7f
Match full path when query contains spaces
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-14 09:02:04 -07:00
Antonio Scandurra
be24e58926
Associate StringMatchCandidate
with an id
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 14:55:03 +01:00
Antonio Scandurra
e538beb920
Highlight matches by increasing the font weight
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-14 14:39:15 +01:00
Antonio Scandurra
a64ba8b687
Allow matching of context items in outline view
2022-01-14 11:09:02 +01:00
Antonio Scandurra
e7f1398f3a
💄
2022-01-14 10:20:04 +01:00
Antonio Scandurra
b0033bb6d4
Don't emit duplicate text when mixing syntax highlighting and match indices
2022-01-14 10:08:08 +01:00
Antonio Scandurra
ecba761e18
Make mod
a @context
2022-01-14 09:22:20 +01:00
Antonio Scandurra
deb679b8f5
Report all matching strings in fuzzy matcher even if they're duplicates
2022-01-14 09:16:39 +01:00
Antonio Scandurra
9c1f58ee89
Maintain order of outline items when filling out tree's missing parts
2022-01-14 09:12:30 +01:00
Max Brunsfeld
adeb7e6864
Incorporate syntax highlighting into symbol outline view
...
Still need to figure out how to style the fuzzy match characters
now that there's syntax highlighting. Right now, they are
underlined in red.
2022-01-13 18:10:02 -08:00
Max Brunsfeld
7913a1ea22
Include highlighting runs in Outline
2022-01-13 14:46:15 -08:00
Max Brunsfeld
3e1c559b2d
Allow multiple disjoint nodes to be captured as matcheable in the outline query
2022-01-13 14:04:25 -08:00
Max Brunsfeld
950b06674f
Add more items to rust outline query
2022-01-13 12:01:36 -08:00
Max Brunsfeld
f2cef0b795
Implement navigation via outline modal
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-13 11:48:44 -08:00
Max Brunsfeld
373fe6fadf
Change Editor::set_highlighted_row to take a row range
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-13 09:49:46 -08:00
Antonio Scandurra
055d48cfb2
Select the closest outline item when the outline view's query is empty
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-13 18:43:49 +01:00
Antonio Scandurra
2660d37ad8
Return Outline<Anchor>
from MultiBuffer::outline
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-13 18:24:00 +01:00
Antonio Scandurra
e165f1e16c
Use OutlineItem::depth
to include ancestors of matching candidates
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-13 16:59:52 +01:00
Antonio Scandurra
aee3bb98f2
Implement selecting prev and next in outline view
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-13 16:44:06 +01:00
Antonio Scandurra
d74658fdb5
Allow searching of outline items
2022-01-13 15:10:50 +01:00
Antonio Scandurra
06ba1c64cf
Implement Outline::search
2022-01-13 15:10:29 +01:00
Antonio Scandurra
5e64f1aca8
Report the candidate's index when matching strings
2022-01-13 15:09:27 +01:00
Antonio Scandurra
5f2ac61401
Use only lowercase characters to determine if query matches a candidate
2022-01-13 15:07:48 +01:00
Antonio Scandurra
d6ed2ba642
Start on rendering the outline view
2022-01-13 12:01:11 +01:00
Antonio Scandurra
ef596c64f8
Add OutlineItem::depth so that we can render a tree in the outline view
2022-01-13 11:35:43 +01:00
Antonio Scandurra
08c3fddc65
Allow splitting of project diagnostics
2022-01-13 10:24:41 +01:00
Max Brunsfeld
63a401ac5d
Add Buffer::outline method
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 18:17:49 -08:00
Nathan Sobo
057dc62b90
Merge pull request #338 from zed-industries/use-wildcard-cert
...
Associate staging and production load balancers with wildcard cert
2022-01-12 17:23:04 -07:00
Nathan Sobo
a93502bb64
Add placeholder environment variables to our deploy
...
We have the ability to define environment-specific environment variables, but don't current need it. This keeps these files in place while avoiding noise from running `export` with no args due to the files being empty.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-12 16:33:41 -07:00
Nathan Sobo
e71b989041
Use the same wildcard certificate on production and staging
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-12 16:28:09 -07:00
Nathan Sobo
3a82d0d8e1
Use a wildcard cert on DigitalOcean in the staging environment
...
If this works, we'll use it for production as well and delete the other certs.
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-12 16:17:21 -07:00
Max Brunsfeld
1a672929e0
Adjust BlockMap tests to reflect new tiebreaking behavior
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 12:11:55 -08:00
Max Brunsfeld
ed88fdcea2
Add unit test for diagnostic + path header ordering
2022-01-12 11:34:57 -08:00
Max Brunsfeld
6865a42df9
Show error+warning counts in project diagnostics tab
...
Allow workspace items' tab contents to be arbitrary elements
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 10:51:28 -08:00
Max Brunsfeld
6ad9ff10c1
Ensure path headers appear before first diagnostic header
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 10:51:28 -08:00
Max Brunsfeld
ac0d55222f
Adjust project diagnostics test to reflect new block structure
2022-01-12 10:51:08 -08:00
Max Brunsfeld
9ccf2f3f58
Tweak theming of project diagnostics
2022-01-12 10:51:08 -08:00
Max Brunsfeld
b5ee095da9
Deduplicate path names in the project diagnostics view
2022-01-12 10:51:08 -08:00
Max Brunsfeld
a9937ee8be
Expand block decorations' bounds to include the gutter
2022-01-12 10:51:08 -08:00
Nathan Sobo
30225678c0
Test ordering of responses with respect to uni-directional messages
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-12 11:19:17 -07:00
Antonio Scandurra
66694b4c9a
Fix failing tests
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-12 18:43:23 +01:00
Antonio Scandurra
8b53868f8a
Preserve the order of responses with respect to all other incoming messages
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-12 18:26:00 +01:00
Antonio Scandurra
9e4b118214
Use synchronous locks for Peer
state
...
We hold these locks for a short amount of time anyway, and using an
async lock could cause parallel sends to happen in an order different
than the order in which `send`/`request` was called.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 18:02:41 +01:00
Antonio Scandurra
310def2923
Implement Buffer::format
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-12 18:01:20 +01:00
Antonio Scandurra
6fbbbab7ba
Process selection anchors in a sorted fashion when refreshing them
2022-01-12 09:28:09 +01:00
Antonio Scandurra
b768a3977c
Add unit test reproducing a panic when refreshing selections
2022-01-12 09:27:03 +01:00
Antonio Scandurra
7daa4b5b04
Don't return a Result
in test-only method select_display_ranges
2022-01-12 09:14:48 +01:00
Max Brunsfeld
9602bc6f8e
Remove stray dbg! calls
2022-01-11 13:56:07 -08:00
Max Brunsfeld
5941f5fca0
Upgrade tree-sitter-markdown
2022-01-11 10:36:31 -08:00
Max Brunsfeld
5a889b04df
Merge pull request #329 from zed-industries/fix-newline-in-multibuffer
...
Fix cursor position when inserting newlines on a repeated excerpt
2022-01-11 09:39:05 -08:00
Antonio Scandurra
89ead1c44d
Merge pull request #314 from zed-industries/auto-connect
...
Auto-connect to server on startup if credentials are on the keychain
2022-01-11 18:34:20 +01:00
Antonio Scandurra
c16820166b
Fix cursor position when inserting newlines on a repeated excerpt
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-11 18:30:25 +01:00
Antonio Scandurra
aa543a4b0a
Ensure selections stay sorted after refreshing them
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-11 17:16:45 +01:00
Antonio Scandurra
e70b728758
Verify Anchor::buffer_id
before resolving it or comparing it
...
This commit also verifies some properties about anchor resolution in the
multibuffer randomized test.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-11 16:40:12 +01:00
Antonio Scandurra
d7fcb049d4
Don't register an entity ID extractor for non-entity subscriptions
...
This commit fixes a panic that could occur when registering N subscriptions for
N entities of the same kind. Before, when dropping the first of the
subscriptions, we would remove the entity ID extractor as well. This was,
however, used by all the other N - 1 subscriptions which would then start
losing messages. In addition, dropping yet another subscription of that kind
would result in a panic, because we wouldn't find the extractor in the map
upon invoking `Subscription::drop`.
With this change we will avoid removing the ID extractor when dropping a
subscription. Crucially, we also avoid inserting extractors for simple message
subscriptions. This enables these non-entity subscriptions to be dropped and
re-registered without seeing a "registered handler for the same message twice"
panic.
2022-01-11 08:21:35 +01:00
Max Brunsfeld
a0a558318c
In diagnostics editor, attempt to open excerpts in a different pane
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-10 16:33:25 -08:00
Max Brunsfeld
747d9e8784
Add files to project diagnostics view in order
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-10 16:17:56 -08:00
Max Brunsfeld
c7eb6a6a60
Tweak color of share icon in titlebar
2022-01-10 11:26:07 -08:00
Max Brunsfeld
7244fe9c7f
Merge pull request #315 from zed-industries/fix-outdent-column-0
...
Fix outdent not working when cursor is at column 0
2022-01-10 11:16:30 -08:00
Antonio Scandurra
4992a8a407
🎨
2022-01-10 16:10:29 +01:00
Antonio Scandurra
b44ae46559
Fix panic if subscribing after dropping a subscription for the same message
2022-01-10 16:09:06 +01:00
Antonio Scandurra
dff812b38e
Don't panic when dropping a subscription in a subscription handler
2022-01-10 16:04:49 +01:00
Antonio Scandurra
9f6c53b547
Fix dev dependencies in client/Cargo.toml
2022-01-10 16:03:55 +01:00
Antonio Scandurra
b1de9a945d
Fix outdent not working when cursor is at column 0
2022-01-10 15:32:28 +01:00
Antonio Scandurra
e8bbd370e4
Auto-connect to server on startup if credentials are on the keychain
2022-01-10 15:06:38 +01:00
Antonio Scandurra
5c3ae8808b
Fix diagnostic unit test assertions
2022-01-10 14:28:25 +01:00
Antonio Scandurra
eb353648e6
🎨
2022-01-10 12:14:52 +01:00
Antonio Scandurra
a1597578ff
Compare singleton buffers in test_open_and_save_new_file
2022-01-10 11:56:00 +01:00
Antonio Scandurra
0742640b39
Correctly report line boundaries when a map contains both folds and wraps
...
This fixes the randomized test failures that were occurring on main.
2022-01-10 11:26:48 +01:00
Antonio Scandurra
1a53d5b7ba
Use a new Workspace::activate_item
API in project diagnostics
...
Previously, we would only activate the pane without switching the
pane's *active item*.
2022-01-10 10:10:11 +01:00
Max Brunsfeld
f933d54469
When selections lose their excerpts, move them to the next primary diagnostic
2022-01-07 14:53:33 -08:00
Max Brunsfeld
ce6f3d7f3e
Reuse views when moving between diagnostic view and editors
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-07 11:00:12 -08:00
Max Brunsfeld
ea263822fa
Finish implementing ProjectDiagnostics::open_excerpts
...
* Build workspace item views with a reference to the workspace
* Add randomized test for MultiBuffer::excerpted_buffers and fix a small bug
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-07 09:59:27 -08:00
Antonio Scandurra
e5c520a265
Use Buffer
handles instead of MultiBuffer
as editor workspace items
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-07 17:48:31 +01:00
Antonio Scandurra
794d214eee
Refactor opening workspace items
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-07 17:38:37 +01:00
Antonio Scandurra
3cab32d201
WIP: Add keybinding to open buffers under cursors
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-07 16:12:50 +01:00
Antonio Scandurra
cf62d26ed8
Display a "Checking..." message when running disk-based diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-07 15:03:19 +01:00
Antonio Scandurra
e39be35e17
Show status bar item for project diagnostic summary
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-07 14:14:21 +01:00
Antonio Scandurra
56496c2585
Move back diagnostic_summaries
into Worktree
...
This fixes an issue where updating the snapshot's entries would
override the diagnostic summaries received on the remote side.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-07 13:38:20 +01:00
Antonio Scandurra
089542c6f4
Avoid removing diagnostics from Worktree
after opening a buffer
...
This allows re-opening the same buffer and supplying the previous
diagnostics.
2022-01-07 10:33:21 +01:00
Antonio Scandurra
67f672d0cc
Clear selections on other excerpted buffers when setting active selections
2022-01-07 10:19:28 +01:00
Max Brunsfeld
94e9c7fd5b
Give a full-width background to the diagnostic headers
2022-01-06 17:55:56 -08:00
Max Brunsfeld
2b36ab0de7
Introduce Expanded element
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-06 17:35:45 -08:00
Max Brunsfeld
1f762e482d
Unify Flexible and Expanded elements
...
We'll use the name Expanded for something else now.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-06 17:29:34 -08:00
Max Brunsfeld
b19d92e918
Keep selections at the top of the project diagnostics view when it is first populated
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-06 17:01:13 -08:00
Max Brunsfeld
9bbe67f0ea
Don't clobber diagnostics when getting new snapshot from background scanner
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-06 15:04:06 -08:00
Max Brunsfeld
7357b3ff2a
Revert "Remove special handling of multi-line primary diagnostic messages and fix tests"
...
This reverts commit ce4142eab3
.
2022-01-06 14:38:13 -08:00
Max Brunsfeld
10548c2038
Always group diagnostics the way they're grouped in the LSP message
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-06 14:22:28 -08:00
Nathan Sobo
943571af2a
Report backtraces of pending conditions when deterministic executor illegally parks
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-06 13:33:55 -07:00
Nathan Sobo
2dbee1d914
Send diagnostic summaries to guests when they join the project
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>
2022-01-06 12:12:09 -07:00
Nathan Sobo
d7a78e14ac
Allow disk-based diagnostic progress begin/end events to interleave
...
When multiple saves occur, we can have multiple start events followed by multiple end events. We don't want to update our project diagnostics view until all pending progress is finished.
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-06 09:32:08 -07:00
Nathan Sobo
571d0386e2
Re-focus diagnostics editor when transitioning from an empty to a populated state
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-06 08:35:31 -07:00
Antonio Scandurra
1875a0e349
Polish rendering of inline errors
...
- Don't soft-wrap
- Render multiple lines
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-06 16:17:53 +01:00
Antonio Scandurra
d0f7e5f075
Maintain excerpt ordering correctly when some errors don't change
2022-01-06 15:33:02 +01:00
Antonio Scandurra
f37f839330
Wire up refresh_anchors
in Editor::refresh_selections
and call it
2022-01-06 15:32:37 +01:00
Max Brunsfeld
7340e83059
WIP - MultiBuffer::refresh_anchors
2022-01-05 21:12:49 -08:00
Max Brunsfeld
fee7657fd7
Merge branch 'main' into polish-project-diagnostics
2022-01-05 20:38:20 -08:00
Max Brunsfeld
f9f75e98f8
Fix Locator::from_index
...
Enhance language::tests::test_random_collaborators so that it checks buffer invariants.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-05 17:58:24 -08:00
Max Brunsfeld
e5faaeb2f2
Fix Global::gt
and rename it to changed_since
...
A false negative return value of `gt` was preventing guests' multibuffers from
syncing correctly.
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-05 17:36:12 -08:00
Max Brunsfeld
5a53eeef63
Don't scroll editors away from the top of their buffer when content changes
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-05 12:31:00 -08:00
Max Brunsfeld
85a13fa477
Fix panic when resolving anchors after an excerpt id has been recycled
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
2022-01-05 11:28:49 -08:00
Max Brunsfeld
8728d3292d
Merge branch 'main' into polish-project-diagnostics
...
Also fix false failure in ModelHandle::condition when parking is not forbidden.
2022-01-05 10:53:18 -08:00
Antonio Scandurra
29b63ae4c6
Remove invalid excerpts as opposed to styling them differently
2022-01-05 18:21:17 +01:00
Antonio Scandurra
fe28abe8cf
Show a message when no diagnostics are available
2022-01-05 17:25:03 +01:00
Antonio Scandurra
e56609cf0c
Ensure prior, deferred selections don't override newer selections
2022-01-05 15:43:26 +01:00
Antonio Scandurra
eb65a5d29a
Fix TreeMap::get
always returning None
2022-01-05 15:41:30 +01:00
Antonio Scandurra
f8c2620166
Fix Buffer::remote_selections_in_range
at query range boundaries
2022-01-05 15:04:50 +01:00
Antonio Scandurra
587a908225
Populate deferred operations when an operation can't be applied
2022-01-05 15:04:19 +01:00
Antonio Scandurra
bf044506ed
Verify that selections are replicated correctly in randomized test
2022-01-05 15:04:08 +01:00
Antonio Scandurra
870fa5f278
Serialize deferred operations
2022-01-05 11:52:41 +01:00
Antonio Scandurra
d383ff30ce
Introduce randomized test for collaboration on buffers
...
This test will exercise serialization of operations as well as peers
replicating from an existing buffer.
2022-01-05 11:51:41 +01:00
Antonio Scandurra
7bc8eb4f3d
Fix compile errors and get serialization unit test passing
2022-01-05 10:29:29 +01:00
Max Brunsfeld
984e366c32
WIP - Serialize buffer in terms of its state, not its base text + ops
...
The main reason for this is that we need to include information about
a buffer's UndoMap into its protobuf representation. But it's a bit
complex to correctly incorporate this information into the current
protobuf representation.
If we want to continue reusing `Buffer::apply_remote_edit` for
incorporating the historical operations, we need to either make
that method capable of incorporating already-undone edits, or
serialize the UndoMap into undo *operations*, so that we can apply
these undo operations after the fact when deserializing. But this is
not trivial, because an UndoOperation requires information about
the full offset ranges that were undone.
2022-01-04 18:06:16 -08:00
Max Brunsfeld
0bcd0a3f08
Forward events from remote worktrees to their projects
2022-01-04 16:01:25 -08:00
Max Brunsfeld
d7ecbdcc1d
Add unit test showing problem with serialization of undo ops
2022-01-04 16:01:12 -08:00
Max Brunsfeld
d8b888c9cb
Replicate diagnostic summaries
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
2022-01-04 14:29:22 -08:00
Antonio Scandurra
b2f0c78924
Merge branch 'main' into polish-project-diagnostics
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-04 18:35:28 +01:00
Antonio Scandurra
5d45c5711d
Merge pull request #303 from zed-industries/project-sharing-fixes
...
Miscellaneous bug fixes after switching to a project-centric sharing model
2022-01-04 18:29:46 +01:00
Antonio Scandurra
b3b56c36d0
Release v0.11.0
...
Co-Authored-By: Max Brunsfeld <max@zed.dev>
2022-01-04 18:27:35 +01:00
Antonio Scandurra
ad1db117e6
Re-enable cargo check for rust-analyzer
2022-01-04 18:26:16 +01:00
Antonio Scandurra
508b9dc024
Rip out "diagnostic providers"
2022-01-04 16:32:17 +01:00
Antonio Scandurra
496066db59
Run Project::diagnose
when registering a new language on Worktree
2022-01-04 15:17:37 +01:00
Antonio Scandurra
2b31a48ef9
Clip right when moving to next word in case we land on a block line
2022-01-04 15:17:37 +01:00
Antonio Scandurra
ed361f2d1a
Position selections correctly when duplicating lines in a multi-buffer
2022-01-04 15:17:37 +01:00
Antonio Scandurra
8dc9197324
Position cursors correctly in Editor::delete_line
in a multi-buffer
2022-01-04 15:17:37 +01:00
Antonio Scandurra
05a6137549
Capture a new buffer snapshot for excerpts whose selections got updated
2022-01-04 12:22:51 +01:00