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
bfaeefc61d
Merge pull request #376 from zed-industries/bump-rust-analyzer
...
Bump rust-analyzer to the 2022-01-24 release
2022-01-28 13:24:24 -07:00
Max Brunsfeld
be7f5340d0
Adjust hover assertion in lsp test after bumping rust-analyzer
2022-01-28 12:11:26 -08:00
Antonio Scandurra
e1c12ffac2
Bump rust-analyzer to the 2022-01-24 release
2022-01-28 19:46:14 +01: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