Commit Graph

134 Commits

Author SHA1 Message Date
Lukas Wirth 6dca2cbba5 Simplify mod completion 2021-01-07 23:33:52 +01:00
Lukas Wirth ca6db58762 Tidy up attribute completion match 2021-01-07 22:48:54 +01:00
Kevaundray Wedderburn 72b9a4fbd3 Change <|> to $0 - Rebase 2021-01-07 12:09:23 +00:00
Aleksey Kladov f8a0561178 Align config's API with usage
The config now is mostly immutable, optimize for that.
2021-01-06 21:22:24 +03:00
Aleksey Kladov 6e87828756 YAGNI active_resolve_capabilities
This leaks a lot of LSP details into ide layer, which we want to avoid:

https://github.com/rust-analyzer/rust-analyzer/tree/c9cec381bcfd97e5f3536e31a9c546ab5c0665e6/docs/dev#lsp-independence

Additionally, all what this infra does is providing a toggle for
auto-import completion, but we already have one!
2021-01-06 20:23:53 +03:00
FlowerBOII e3d39cf2b1 Change the should_panic completion and his related attribute test 2021-01-06 12:23:19 +01:00
FlowerBOII 220c838bc6 Remove the args for the must_use attibute and change the related tests 2021-01-06 12:04:23 +01:00
FlowerBOII db0a844ad8 Update deprecated test 2021-01-06 11:07:57 +01:00
FlowerBOII 64f8ec4632 Remove a part of the deprecated autocompletion 2021-01-06 11:06:02 +01:00
bors[bot] c8d3d5694b Merge #7168
7168: Rename expr -> tail_expr r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-05 12:51:38 +00:00
Aleksey Kladov f9707cde68 Rename expr -> tail_expr 2021-01-05 15:51:13 +03:00
Kirill Bulatov 27b3b13824 Small helpers 2021-01-04 22:01:35 +02:00
Kirill Bulatov ca42a52051 Code review fixes 2021-01-04 18:33:05 +02:00
Kirill Bulatov ec316cb211 Ignore associated items during unqialified path fuzzy completions 2021-01-04 17:44:27 +02:00
Nick Spain 5c659c21dd Handle case where detail doesn't exist without giving up on completion
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-01-02 21:53:52 +11:00
Nick Spain 3a1f8e897b Remove source_old from adding const and function impls 2021-01-02 21:53:52 +11:00
Nick Spain 7bfec89cf9 Make the result of Const, FunctionRender and TypeAliasRender constructors optional
They use source() which now returns an Option so they need to too.
2021-01-02 21:53:52 +11:00
Nick Spain 14d0db0759 HasSource::source_old -> HasSource::source for places where proc-macros were special cased
In #6901 some special case handling for proc-macros was introduced to
prevent panicing as they have no AST. Now the new HasSource::source
method is used that returns an option.

Generally this was a pretty trivial change, the only thing of much
interest is that `hir::MacroDef` now implements `TryToNav` not `ToNav`
as this allows us to handle `HasSource::source` now returning an option.
2021-01-02 21:53:52 +11:00
Nick Spain ea4708c444 Mark HasSource::source_old as deprecated but allow at all call sites 2021-01-02 21:53:51 +11:00
Nick Spain 27cadcd531 HasSource::source -> HasSource::source_old
To start migrating HasSource::source to return an Option.
2021-01-02 21:53:51 +11:00
bors[bot] f687d738be Merge #7102
7102: Fix completion of Default struct update syntax r=Veykril a=nick96

Previously the inserted text was always `..Default::default()` which ends up as `...Default::default()`
if `.` was typed. Now  checks if the current token is `.` and inserts `.Default::default()`
if it is, so `..Default::default()` is correctly completed.

I think there's probably a better way to implement this context aware completion because I've seen it in other parts of rust-analyzer as a user but I'm not sure how to do it.

Fixes #6969

Co-authored-by: Nick Spain <nicholas.spain@stileeducation.com>
2021-01-01 00:32:59 +00:00
Nick Spain 3d95c66556 Strip completion prefix of what has already been typed
Per Veykril's suggestion, this removes the need to repeat the completion text twice. It also handles the completion
in a more general case.
2021-01-01 11:17:15 +11:00
Nick Spain 49eeeb61ae Add a test for correct completion of ..Default::default() 2021-01-01 11:10:22 +11:00
Lukas Wirth 816190c6f6 Remove some unneeded string allocations 2020-12-31 10:13:14 +01:00
Nick Spain 4cc3a6d4fe Fix completion of Default struct update syntax
Previously the inserted text was always `..Default::default()` which ends up as `...Default::default()`
if `.` was typed. Now  checks if the current token is `.` and inserts `.Default::default()`
if it is, so `..Default::default()` is correctly completed.

Fixes #6969
2020-12-31 16:23:05 +11:00
Laurențiu Nicola 42c24ff25f Avoid a couple of allocations 2020-12-29 14:35:49 +02:00
bors[bot] ef1177c5b5 Merge #7064
7064: Ignore qualifiers when doing autoimport completions lookup r=lnicola a=SomeoneToIgnore

A follow-up of https://github.com/rust-analyzer/rust-analyzer/pull/6918#issuecomment-748511151 and the PR itself.

Tweaks the `import_map` query api to be more flexible with the ways to match against the import path and now fuzzy imports search in names only.
This had improved the completion speed for me locally in ~5 times for `fuzzy_completion` span time, but please recheck me here.

IMO we're fast and presice enough now, so I've added the modules back to the fuzzy search output.

Also tweaks the the expect tests to display functions explicitly, to avoid confusing "duplicate" results.

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2020-12-29 12:19:31 +00:00
bors[bot] 7b246a6a14 Merge #7076
7076: Properly parse path separators in format-like postfix r=Veykril a=Veykril



Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-29 12:12:19 +00:00
Lukas Wirth ddc25d87ca Properly parse path separators in format-like postfix 2020-12-29 13:10:35 +01:00
Lukas Wirth 20bd4ddd4e format-postfix completion takes format instead of fmt 2020-12-29 12:28:46 +01:00
Kirill Bulatov 77b4a1c5ef Tweak the fuzzy search limits 2020-12-28 16:37:51 +02:00
Kirill Bulatov e4c3f753d2 Add docs and optimisations 2020-12-28 15:09:39 +02:00
Kirill Bulatov c4995cfbd5 Better query api and fuzzy search 2020-12-28 15:06:10 +02:00
Kirill Bulatov 0e48cd0c3c Draft the module exclusion in modules 2020-12-28 15:06:10 +02:00
bors[bot] ee06096b0c Merge #6960
6960: Show enum variant on Self qualified paths r=matklad a=Veykril

Fixes first part of #6549
Fixes #6550

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2020-12-23 09:48:04 +00:00
Lukas Wirth 83121efcd5 Reduce some more code duplication 2020-12-22 19:00:38 +01:00
Lukas Wirth 2cd2947bf8 Insert snippet positions after fields names in record patterns 2020-12-21 15:10:27 +01:00
Lukas Wirth 33ecad4407 Create non-exhaustive patterns for non_exhaustive attributed items 2020-12-20 20:13:06 +01:00
Lukas Wirth a5874a38cb Reduce code duplication in pattern completion 2020-12-20 19:20:55 +01:00
Lukas Wirth 2f6a24950a Emit snippets for struct pattern completion if enabled 2020-12-20 19:16:28 +01:00
Lukas Wirth b184bfad7a Add completions for patterns 2020-12-20 18:19:23 +01:00
Lukas Wirth 15a52f69d9 Show enum variant completions for ref scrutinee 2020-12-20 12:32:53 +01:00
Lukas Wirth 943e4faceb Show enum variant on Self qualified paths 2020-12-20 12:31:59 +01:00
Aleksey Kladov f6ed16674c Align code_model name with ungrammar 2020-12-20 10:05:24 +03:00
Kirill Bulatov b45ec84739 Fewer allocations 2020-12-19 20:42:16 +02:00
Kirill Bulatov 0415dcd832 Tidy up 2020-12-19 14:13:27 +02:00
Kirill Bulatov 8c292e3cc5 Keep the original completion order in tests 2020-12-19 13:18:40 +02:00
Kirill Bulatov 5fa078f26f Add a slightly better fuzzy search heuristics 2020-12-19 12:54:17 +02:00
bors[bot] f4929fa9cc Merge #6901
6901: Temp fixes panic caused by no ast for proc-macro r=maklad a=edwin0cheng

There are some panic when hover/goto definition for proc-macro. It is because in current design, we don't have `ast-node` for proc-macro and then it trigger [this](https://github.com/rust-analyzer/rust-analyzer/blob/479d1f7eec22c3564867223e2093f14774092528/crates/hir/src/has_source.rs#L116) line to panic.

This PR is a temp fix for all of these similar to https://github.com/rust-analyzer/rust-analyzer/blob/bd4c352831662762ee7a66da77ec9adf623b0a0a/crates/completion/src/render/macro_.rs#L42

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-12-18 02:30:51 +00:00
Edwin Cheng 60a3785ac2 Temp fixes panic caused by no ast for proc-macro 2020-12-18 10:26:17 +08:00