Commit log

680fde9 Handle special "final tabstop" in snippets

Max Brunsfeld created

1371a20 :art: Return an option task from confirm_completion

Max Brunsfeld created

55cc7bb Reimplement snippet parsing using recursive descent

Max Brunsfeld created

956748e Add snippet crate

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Max Brunsfeld , Nathan Sobo , and Antonio Scandurra created

d873786 Advertise `snippet_support` capability to LSP

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>
Co-Authored-By: Max Brunsfeld <max@zed.dev>

Antonio Scandurra , Nathan Sobo , and Max Brunsfeld created

6c7d2cf Apply additional edits when confirming a completion

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

bcc5703 Fix warnings in `language::FakeFile`

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

497626e Re-filter existing completions on selection update

Click to expand commit body
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>

Nathan Sobo and Antonio Scandurra created

b89a39b Filter and sort suggestions in autocomplete

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

bcbd265 Dismiss autocomplete when moving outside of a word

Antonio Scandurra created

92f0491 Don't assign completion_state when completions are empty

Nathan Sobo created

327ddbe Always issue a new completions request when typing a trigger character

Click to expand commit body
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.

Nathan Sobo created

ae0237c Create anchors with latest snapshot when completions are ready

Click to expand commit body
Using the previous snapshot was panicking.

Nathan Sobo created

fde03b1 Make the anchor range inclusive on completions

Click to expand commit body
This will help us to correctly interpolate the replacement range when we confirm before receiving new completions after typing with a completion open.

Nathan Sobo created

1d1f8df Trigger completion when typing words or trigger characters

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

8d2b7ba Insert completion text on enter

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

071a55a Allow selecting items from the autocomplete list

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

16c0bac Dispatch editor events on the autocomplete list

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

6da01ea Make editor element's paint and layout states non-optional

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

c19d639 Derive autocomplete menu's width from the width of its largest item

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Max Brunsfeld and Nathan Sobo created

1a6e972 Get basic list of completions rendering without styling

Click to expand commit body
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nathan Sobo and Max Brunsfeld created

ab6eb0a Start on completion rendering

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>
Co-Authored-By: Max Brunsfeld <maxbrunsfeld@gmail.com>

Nathan Sobo , Antonio Scandurra , and Max Brunsfeld created

960696a Bind autocomplete to ctrl-space

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Nathan Sobo and Antonio Scandurra created

0344c54 Return anchored completions from Buffer::completions

Click to expand commit body
Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Nathan Sobo and Antonio Scandurra created

03bcbdc WIP

Antonio Scandurra created

bd2527e Use StringMatchCandidate::new to construct candidates more conveniently

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

1e96fc9 Advertise `additionalTextEdits` resolution capability to language servers

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

808550f v0.14

Antonio Scandurra created

08b8b60 Merge pull request #378 from zed-industries/multibuffer-anchors

Click to expand commit body
Fix errors when anchors escape an excerpt's buffer boundaries

Antonio Scandurra created

52f9c27 Merge pull request #380 from zed-industries/find-bar

Click to expand commit body
Find in buffer

Antonio Scandurra created

3ccbd77 Move match index before the navigation buttons

Click to expand commit body
Co-Authored-By: Nathan Sobo <nathan@zed.dev>

Antonio Scandurra and Nathan Sobo created

51ec350 Assign a background to find buttons

Antonio Scandurra created

eb53721 Fix panic when moving to next/prev result but there are no matches

Antonio Scandurra created

803cdd0 Add some basic styling to `FindBar`

Antonio Scandurra created

7db4cad Fix panic when closing pane's last item

Antonio Scandurra created

611538f Clear highlighted matches when dismissing `FindBar`

Antonio Scandurra created

b1639e5 Add cmd-g and cmd-shift-g to jump to next / previous result

Click to expand commit body
I added the action handler on Pane so we can use these bindings when the find bar isn't focused.

Nathan Sobo created

f90193b Populate query and select it only if find bar isn't already deployed

Antonio Scandurra created

83423a4 Use cmd-f to move focus back to the editor when find bar is focused

Antonio Scandurra created

9ce1eda Bind `cmd-e` to deploy `FindBar` without focusing it

Antonio Scandurra created

ce52704 Propagate `Cancel` when editor is not in full mode

Click to expand commit body
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.

Antonio Scandurra created

c53b6b9 Populate query with text under selection when hitting `cmd-f`

Antonio Scandurra created

2a1b1ad Bind `enter` and `shift-enter` in `FindBar`

Antonio Scandurra created

e8105c9 Show a message when no matches were found

Antonio Scandurra created

c16bd98 Fix panic when no matches were found

Antonio Scandurra created

969d81b Determine active match index correctly when cursor is after last match

Antonio Scandurra created

df4cc45 Select next/prev find match based on whether we intersect active match

Click to expand commit body
Also, capture the next/prev selection logic in a unit test.

Antonio Scandurra created

1d55872 Display active match and allow going to next or previous match

Click to expand commit body
We still need to write a unit test for this, as well as add a keybinding.

Antonio Scandurra created

5ebd24d :memo: Improve assertion comment

Antonio Scandurra created

a284e71 Always return valid locations when refreshing anchors

Click to expand commit body
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.

Antonio Scandurra created