Commit Graph

407 Commits

Author SHA1 Message Date
Lukas Wirth
1f254dd855 feat: Enable flyimport completions for attributes 2021-12-05 15:57:28 +01:00
Lukas Wirth
e4f2d0e3a8 Introduce SymbolKind::Derive 2021-12-04 18:18:09 +01:00
Lukas Wirth
642c1eb720 Introduce SymbolKind::Attribute 2021-12-04 18:01:22 +01:00
Lukas Wirth
d174158abc Rename things: Tool -> ToolModule 2021-12-03 17:15:19 +01:00
Lukas Wirth
d1677f3286 Remove syntax highlighting hack for builtin attrs 2021-12-03 16:54:34 +01:00
bors[bot]
4ca6233bd2
Merge #10847
10847: fix: derive attr path handling in `replace_derive_with_manual_impl` r=rainy-me a=rainy-me

partially fixes #10666

renaming issues mentioned in https://github.com/rust-analyzer/rust-analyzer/issues/10666#issuecomment-955671021 doesn't seem to be fixable at this moment since it's not searchable?(not recorded?) by name.

<del>I'm not sure if it's appropriate to move `parse_comma_sep_paths` function to a method in `ast/node_ext`, maybe `ide_db::helpers` also make sense.</del> put into `ide_db::` instead.

Co-authored-by: rainy-me <github@yue.coffee>
2021-11-24 15:33:00 +00:00
rainy-me
0bb08ccb8f fix: derive path handling 2021-11-25 00:21:29 +09:00
Lukas Wirth
0c98a01b3e Remove possible multiline details in completions 2021-11-24 16:08:11 +01:00
Andrew Leverette
7f15537fa9 Add optimization for not allocating in case of no module path for struct literal 2021-11-23 14:41:31 -06:00
Andrew Leverette
ce7a141110 Add support for qualified struct names 2021-11-23 10:57:29 -06:00
Lukas Wirth
77f08d0fc3 Split parts of ide_db::call_info off into ide 2021-11-22 13:23:34 +01:00
Lukas Wirth
f2f89618b7 minor: Simplify 2021-11-16 19:28:32 +01:00
zhoufan
5666046ec9 fix: flyimport triggers on enum variant declarations 2021-11-14 12:16:21 +08:00
Lukas Wirth
dea973089c Simplify 2021-11-10 18:26:18 +01:00
Lukas Wirth
ab657af5b7 Add some completion profile spans 2021-11-08 19:41:16 +01:00
bors[bot]
c5c11b87cc
Merge #10720
10720: fix: Don't ascribe types in pattern completion for param patterns twice r=Veykril a=Veykril

Fixes #10323
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-08 13:12:03 +00:00
Lukas Wirth
f7e8136923 Add test for current incorrect behaviour 2021-11-08 14:10:26 +01:00
Lukas Wirth
7369360c15 Don't ascribe types in pattern completion for patterns twice 2021-11-05 18:39:36 +01:00
Lukas Wirth
2f5afba9f8 Replace some String usages with SmolStr in completions 2021-11-05 12:30:39 +01:00
Lukas Wirth
439a8194b0 Replace more Name::to_string usages with Name::to_smol_str 2021-11-04 18:12:05 +01:00
Lukas Wirth
96db0d8bdd Add Semantics::original_ast_node for upmapping nodes out of macro files 2021-11-03 21:12:36 +01:00
Lukas Wirth
ebd63ec1cf feat: Make unqualified derive attributes flyimportable 2021-10-29 14:51:26 +02:00
Lukas Wirth
0468b11de7 Remove CompletionKind in favor of CompletionItemKind 2021-10-27 17:23:43 +02:00
Lukas Wirth
722489e3ff Remove filtered completion list usage in completion tests 2021-10-27 16:53:39 +02:00
Lukas Wirth
a932935d4e Fix postfix completions panicking 2021-10-25 15:22:29 +02:00
Laurențiu Nicola
ca44b6892e Use array IntoIter 2021-10-22 09:23:29 +03:00
Lukas Wirth
bed6eae304 Fix qualified lint completions ignoring the qualifier value 2021-10-20 14:03:41 +02:00
bors[bot]
0e4c3b2c2b
Merge #10586
10586: internal: Derive completions work on hir, not names r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-10-19 11:51:07 +00:00
Lukas Wirth
3dfe5045c5 Derive completions work on hir, not names 2021-10-19 13:50:08 +02:00
Lukas Wirth
5704de66c2 Skip non clippy completions when completing a clippy path 2021-10-17 23:04:38 +02:00
Lukas Wirth
99906baa17 Fix clippy attribute completions always prefixing with clippy:: 2021-10-17 13:07:49 +02:00
Lukas Wirth
ce47d13101 Make attribute completions more ast based 2021-10-17 12:44:44 +02:00
Lukas Wirth
e329b7742b Reorder CompletionContext functions 2021-10-17 11:15:56 +02:00
Lukas Wirth
791a2afbf9 Don't turn local names into strings in CompletionContext 2021-10-17 10:59:06 +02:00
Lukas Wirth
81ccebf1f2 internal: Refactor lifetime completion context fields 2021-10-16 23:56:57 +02:00
Lukas Wirth
2fbd52c78f fix: Fix qualified path completion not completing macros 2021-10-16 23:33:09 +02:00
Mirko Rainer
eccfa1645b Saw a FIXME comment and decided to fix it.
This renames `descend_into_macros` to  `descend_into_macros_single` and `descend_into_macros_many` into `descend_into_macros`.
 However, this does not touch a function in `SemanticsImpl` of same name.
2021-10-12 11:52:31 -04:00
Lukas Wirth
66bfa6fc88 Improve user snippet import performance 2021-10-12 11:48:37 +02:00
bors[bot]
1cca1fa5bf
Merge #10525
10525: Regenerate lints and features r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-10-12 07:56:00 +00:00
Lukas Wirth
acaf270911 Remove stale module 2021-10-12 09:37:16 +02:00
Lukas Wirth
d71a4f40d9 Regenerate lints 2021-10-12 09:35:02 +02:00
Lukas Wirth
5ccaff3c97 Simplify 2021-10-11 21:49:50 +02:00
k-nasa
b50cb5c261 Remove neesless clone 2021-10-10 10:50:51 +09:00
Lukas Wirth
12465a8a3c Expose HasSource::source through Semantics with caching behaviour 2021-10-07 15:00:14 +02:00
bors[bot]
c409cf0e26
Merge #10458
10458: feat: Implement custom user snippets r=Veykril a=Veykril

![Y24dX7fOWX](https://user-images.githubusercontent.com/3757771/136059454-ceccfc2c-2c90-46da-8ad1-bac9c2e83ec1.gif)

Allows us to address the following issues:
    - `.arc / .rc / .pin, similar to .box?` https://github.com/rust-analyzer/rust-analyzer/issues/7033
    - `Add unsafe snippet` https://github.com/rust-analyzer/rust-analyzer/issues/10392, would allow users to have this without the diagnostic)
    - `.ok() postfix snippet is annoying` https://github.com/rust-analyzer/rust-analyzer/issues/9636, allows us to get rid of the `ok` postfix and similar ones
    - `Postfix vec completion` https://github.com/rust-analyzer/rust-analyzer/issues/7773

cc https://github.com/rust-analyzer/rust-analyzer/issues/772

Zulipd discussion: https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/Custom.20Postfix.20snippets

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-10-05 16:41:11 +00:00
Lukas Wirth
041cfbe0f4 Render the expansion of snippets as their docs 2021-10-05 18:11:22 +02:00
Lukas Wirth
77cbf4adbc Bring the implementation closer to VSCode snippet definitions 2021-10-05 17:18:40 +02:00
bors[bot]
86c534f244
Merge #10440
10440: Fix Clippy warnings and replace some `if let`s with `match` r=Veykril a=arzg

I decided to try fixing a bunch of Clippy warnings. I am aware of this project’s opinion of Clippy (I have read both [rust-lang/clippy#5537](https://github.com/rust-lang/rust-clippy/issues/5537) and [rust-analyzer/rowan#57 (comment)](https://github.com/rust-analyzer/rowan/pull/57#discussion_r415676159)), so I totally understand if part of or the entirety of this PR is rejected. In particular, I can see how the semicolons and `if let` vs `match` commits provide comparatively little benefit when compared to the ensuing churn.

I tried to separate each kind of change into its own commit to make it easier to discard certain changes. I also only applied Clippy suggestions where I thought they provided a definite improvement to the code (apart from semicolons, which is IMO more of a formatting/consistency question than a linting question). In the end I accumulated a list of 28 Clippy lints I ignored entirely.

Sidenote: I should really have asked about this on Zulip before going through all 1,555 `if let`s in the codebase to decide which ones definitely look better as `match` :P

Co-authored-by: Aramis Razzaghipour <aramisnoah@gmail.com>
2021-10-05 08:58:40 +00:00
Aramis Razzaghipour
9583dd5725
Replace if let with match where appropriate 2021-10-05 09:00:21 +11:00
Lukas Wirth
2b17da60db Resolve macros in snippet require items 2021-10-04 22:53:02 +02:00