356f89c939
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
cb37c266d3
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 and Nathan Sobo
4aa203196d
Align completion labels with cursor
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-03 17:21:24 +01:00
Antonio Scandurra
138a4d8bdd
Put rounded corners around autocomplete and give it some padding
2022-02-03 15:48:00 +01:00
Antonio Scandurra
5233ef85a9
Mute color of completion's text that can't be filtered
2022-02-03 15:39:53 +01:00
Antonio Scandurra
f5546c1960
Fix panic when trying to show completions but none match the query
2022-02-03 14:36:45 +01:00
Antonio Scandurra
0647ffa166
Transact on applying completion to allow restoring of selections on undo
2022-02-03 12:10:22 +01:00
Antonio Scandurra
94a2683460
Hide completions when {un,re}doing past initial insertion boundaries
2022-02-03 11:42:52 +01:00
Antonio Scandurra
7fce7d8ccb
Support clicking on a completion to confirm it
2022-02-03 11:39:19 +01:00
Antonio Scandurra
b72e086faa
Optimize summaries_for_anchors when MultiBuffer is a singleton
2022-02-03 11:22:55 +01:00
Antonio Scandurra
6293058b27
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
ec0c7f4c01
Cancel innermost snippet insertion when hitting esc
2022-02-03 10:37:15 +01:00
Antonio Scandurra
f01fb117a0
Allow completions to bleed off the editor's bounds
2022-02-03 10:23:34 +01:00
Antonio Scandurra
fcd9cfde27
Syntax highlight even when the label doesn't contain a detail
2022-02-03 09:57:04 +01:00
Antonio Scandurra
26b13301f5
Don't overflow selection index when completions are filtered
2022-02-03 08:47:17 +01:00
Max Brunsfeld
8d1a1c61dd
Start work on syntax highlighting completions
2022-02-02 18:14:30 -08:00
Max Brunsfeld
0c273d6603
Fix hang in editor completion unit test
2022-02-02 17:09:36 -08:00
Max Brunsfeld
17cb388fe2
Introduce Language::highlight_text method
2022-02-02 17:01:48 -08:00
Max Brunsfeld
90404114e3
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
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
07a0eec4fd
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
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
b221c19b8e
Wait for additional edits before pushing transaction in remote buffer
2022-02-02 17:01:23 +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
0efa4b0696
Handle special "final tabstop" in snippets
2022-02-01 15:33:48 -08:00
Max Brunsfeld
0323952bfb
🎨 Return an option task from confirm_completion
2022-02-01 14:27:01 -08:00
Max Brunsfeld
ebfcc272ad
Reimplement snippet parsing using recursive descent
2022-02-01 13:41:41 -08:00
864fbe76ed
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
5b996f341f
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 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
Antonio Scandurra and Nathan Sobo
f6b3a840a4
Fix warnings in language::FakeFile
...
Co-Authored-By: Nathan Sobo <nathan@zed.dev >
2022-02-01 16:59:03 +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
Nathan Sobo
3897447af2
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 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