724829892d
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
0b7628d3c9
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 and Nathan Sobo
70a6a78b15
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
b75f0e3ff3
Apply additional edits for completion when the buffer is remote
2022-02-02 16:29:13 +01:00
Antonio Scandurra
a68c127491
Broadcast completion triggers to remote participants
2022-02-02 14:07:41 +01:00
Antonio Scandurra
76884e3b0f
Start on requesting completions for remote buffers
2022-02-02 12:22:47 +01:00
Antonio Scandurra
b0792751c8
Fix flaky test_highlighted_ranges due to random TypeId ordering
2022-02-02 10:09:12 +01:00
Antonio Scandurra
c204d05aaf
Separate autoclose pair stack from autocomplete stack
2022-02-02 09:51:03 +01:00
Antonio Scandurra
70fb20ce6b
Navigate tabstops on tab even if the top of stack is a BracketPairState
2022-02-02 09:04:57 +01:00
Max Brunsfeld
a99b1a6f3d
Generalize autoclose stack to include snippet ranges as well
2022-02-01 17:40:39 -08:00
Max Brunsfeld
067eb8740c
Start work on handling snippet completions
2022-02-01 15:35:02 -08:00
Max Brunsfeld
0323952bfb
🎨 Return an option task from confirm_completion
2022-02-01 14:27:01 -08:00
Antonio Scandurra and Nathan Sobo
e354b91d22
Apply additional edits when confirming a completion
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-01 17:38:11 +01:00
Nathan Sobo and Antonio Scandurra
9a466995f6
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 and Nathan Sobo
e150081fa1
Filter and sort suggestions in autocomplete
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-01 15:11:20 +01:00
Antonio Scandurra
58ceed23fd
Dismiss autocomplete when moving outside of a word
2022-02-01 13:27:49 +01:00
Nathan Sobo
53c3a770fc
Don't assign completion_state when completions are empty
2022-01-31 18:38:49 -07:00
Nathan Sobo
20c1a19b11
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
4d0cfe5bec
Create anchors with latest snapshot when completions are ready
...
Using the previous snapshot was panicking.
2022-01-31 18:33:25 -07:00
Max Brunsfeld and Nathan Sobo
267b719dbc
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 and Nathan Sobo
c876da9601
Insert completion text on enter
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-31 13:46:50 -08:00
Max Brunsfeld and Nathan Sobo
2a7c4eb0c7
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 and Nathan Sobo
7cc6658775
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 and Nathan Sobo
70cb9adb1d
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 and Nathan Sobo
e737c6fdfe
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 and Max Brunsfeld
c8460223fa
Get basic list of completions rendering without styling
...
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com >
2022-01-31 13:17:42 -07:00
a991daeb70
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 and Antonio Scandurra
e8094adae4
Bind autocomplete to ctrl-space
...
Co-Authored-By: Antonio Scandurra <me@as-cii.com >
2022-01-31 11:34:19 -07:00
Antonio Scandurra
c80716473a
WIP
2022-01-31 19:12:35 +01:00
Antonio Scandurra
c7cf722140
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
b7d56b7e45
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
1446f1833e
Populate query with text under selection when hitting cmd-f
2022-01-30 16:01:05 +01:00
Antonio Scandurra
06faec5348
📝 Improve assertion comment
2022-01-29 10:41:55 +01:00
Antonio Scandurra
b5da038bea
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
009e45df15
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
7c33d0dfd4
WIP - Navigate to prev/next search result
2022-01-28 14:00:00 -08:00
Max Brunsfeld
981f00da33
Add a simple unit test for find bar
2022-01-28 13:05:29 -08:00
Antonio Scandurra and Nathan Sobo
7aec06cffe
Implement regex search with multiline support
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-28 16:15:18 +01:00
Antonio Scandurra
ccda42e148
Optimize some common operations when MultiBuffer is a singleton
2022-01-28 11:50:13 +01:00
Antonio Scandurra
67ac4b0bc2
Implement whole word mode
2022-01-28 11:48:04 +01:00
Max Brunsfeld and Nathan Sobo
421cb954af
Add highlighted_ranges API to editor
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-27 15:19:28 -08:00
Antonio Scandurra
4182060386
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 and Nathan Sobo
c8c3f77580
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 and Nathan Sobo
2b2bf99359
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 and Nathan Sobo
e8ea29213f
Avoid grouping transactions created by different editors
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-27 15:51:46 +01:00
Max Brunsfeld
3588e8276c
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
c165f42f71
Avoid showing selection strip on top of diagnostic headers
2022-01-26 10:23:40 -08:00
Antonio Scandurra and Nathan Sobo
b67959a504
Display squiggly underlines underneath text with diagnostics
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-01-26 15:52:40 +01:00
Max Brunsfeld
ecb419e20d
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
c17eadd038
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