Commit log

d23115f Fix selection positions after typing with old selection anchors

Max Brunsfeld created

40f9d2f Merge pull request #393 from zed-industries/autocomplete

Click to expand commit body
Autocomplete

Max Brunsfeld created

3dfff38 Add integration test for getting and resolving completions

Max Brunsfeld created

6e33f14 Confirm completion on tab key as well as enter key

Max Brunsfeld created

39152bc Add unit test for multi-cursor snippet

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

3e8707e Support multi-cursor autocompletion

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

60595a6 Align completion labels with cursor

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

Antonio Scandurra and Nathan Sobo created

71ef052 Put rounded corners around autocomplete and give it some padding

Antonio Scandurra created

d56e721 Mute color of completion's text that can't be filtered

Antonio Scandurra created

1375c7b Fix panic when trying to show completions but none match the query

Antonio Scandurra created

85e6ea1 Transact on applying completion to allow restoring of selections on undo

Antonio Scandurra created

f41f1e5 Hide completions when {un,re}doing past initial insertion boundaries

Antonio Scandurra created

efcbf27 Support clicking on a completion to confirm it

Antonio Scandurra created

7865c32 Optimize `summaries_for_anchors` when `MultiBuffer` is a singleton

Antonio Scandurra created

ab26a17 Opt into language-aware features when getting buffer chunks

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

Antonio Scandurra created

bd44172 Cancel innermost snippet insertion when hitting `esc`

Antonio Scandurra created

426ca94 Allow completions to bleed off the editor's bounds

Antonio Scandurra created

d246a39 Syntax highlight even when the label doesn't contain a detail

Antonio Scandurra created

8fc89da Don't overflow selection index when completions are filtered

Antonio Scandurra created

439d12c Start work on syntax highlighting completions

Max Brunsfeld created

45898da Fix hang in editor completion unit test

Max Brunsfeld created

bbdf62f Introduce Language::highlight_text method

Max Brunsfeld created

88adddb Remove theme parameters from buffer/display map's chunks methods

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

Max Brunsfeld created

101add8 Hide completions when using the mouse

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

474ec21 Improve formatting of variable/field completions for Rust

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

8149bcb Improve formatting of function autocompletion labels in Rust

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

8d78154 Don't apply completion's edit when it wouldn't change the buffer

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

Antonio Scandurra and Nathan Sobo created

924eb62 Wait for additional edits before pushing transaction in remote buffer

Antonio Scandurra created

d765e75 Apply additional edits for completion when the buffer is remote

Antonio Scandurra created

91e5c2d Broadcast completion triggers to remote participants

Antonio Scandurra created

ed549e3 Start on requesting completions for remote buffers

Antonio Scandurra created

ae5aebf Fix flaky `test_highlighted_ranges` due to random `TypeId` ordering

Antonio Scandurra created

74e5c5b Separate autoclose pair stack from autocomplete stack

Antonio Scandurra created

7940846 Navigate tabstops on tab even if the top of stack is a BracketPairState

Antonio Scandurra created

6ff45f2 Generalize autoclose stack to include snippet ranges as well

Max Brunsfeld created

7270fd0 Start work on handling snippet completions

Max Brunsfeld created

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