Commit Graph

21813 Commits

Author SHA1 Message Date
Lukas Wirth
99fa37d6e3 Split namelike into the corresponding completion contexts 2022-05-07 14:16:03 +02:00
Lukas Wirth
6a045c7029 Introduce NameRefContext 2022-05-07 13:46:43 +02:00
Lukas Wirth
1dc83f5a90 minor: Move inferred type completions 2022-05-07 12:59:26 +02:00
bors
81b3e6d124 Auto merge of #12178 - jonas-schievink:fix-tt-conv-panic, r=jonas-schievink
fix: Fix panic when a macro passes a float token to another macro

Fixes https://github.com/rust-lang/rust-analyzer/issues/12170 (num-traits no longer causes a panic)
2022-05-06 16:39:43 +00:00
Jonas Schievink
43a066c5a8 Fix conversion of float literals in TtTreeSink 2022-05-06 18:39:06 +02:00
bors
505f2d97b8 Auto merge of #12177 - jonas-schievink:mbe-output-float-literals, r=jonas-schievink
fix: fix macro expansion with float tokens

Fixes https://github.com/rust-lang/rust-analyzer/issues/12170

The parser tells us to consume up to 3 tokens, but on the MBE side all float literals are a single `tt::Literal`, so make sure to only consume a single MBE leaf.
2022-05-06 14:12:29 +00:00
Jonas Schievink
7db55313a1 Skip only the tt::Literal when consuming float tokens 2022-05-06 16:10:54 +02:00
bors
10dd471fd1 Auto merge of #12175 - Veykril:completion-rev, r=Veykril
fix: Fix snippets triggering where they shouldn't

Fixes https://github.com/rust-lang/rust-analyzer/issues/12169
2022-05-06 13:45:12 +00:00
Lukas Wirth
0ce620686c fix: Fix snippets triggering where they shouldn't 2022-05-06 15:44:41 +02:00
bors
57c5447f90 Auto merge of #12174 - Veykril:completion-rev, r=Veykril
internal: Improve completion tests by checking that the offset is included in the source_range of items
2022-05-06 11:12:29 +00:00
Lukas Wirth
582f99d293 internal: Improve completion tests by checking that the offset is included in the source_range of items 2022-05-06 13:11:50 +02:00
bors
db1434b34f Auto merge of #12171 - lnicola:proc-macros-dont-invalidate-state, r=Veykril
fix: Try not to invalidate state when the proc macro preference didn't change

This appears to fix #12027, but I'm not sure.
2022-05-06 10:14:05 +00:00
bors
616796a2c0 Auto merge of #12173 - Veykril:completion-rev, r=Veykril
internal: completion PathKind is not optional
2022-05-06 10:06:06 +00:00
Lukas Wirth
57a9915c1f internal: completion PathKind is not optional 2022-05-06 12:04:41 +02:00
Laurențiu Nicola
97cdf3eb0e Try not to invalidate our state when the proc macro preference didn't change 2022-05-06 09:49:03 +03:00
bors
dd3f5e0993 Auto merge of #12168 - Veykril:completion-rev, r=Veykril
internal: Remove unqualified_path completions module
2022-05-05 20:22:30 +00:00
Lukas Wirth
0c4e23b8ef internal: Remove unqualified_path completions module 2022-05-05 22:21:42 +02:00
bors
cc9ae2b89e Auto merge of #12149 - jonas-schievink:literally-just-a-literal, r=jonas-schievink
fix: split float literal tokens at `.` to fix parsing of tuple field accesses

This introduces an `ast::FloatLiteral` node, changes the `FLOAT_LITERAL` token to `FLOAT_LITERAL_PART`, and splits any float literal at the `.` character, into a `FLOAT_LITERAL_PART`, and optional `DOT` and trailing `FLOAT_LITERAL_PART` token. The tokens are reassembled when passing them to a macro as a `tt::Literal`.

~~A slight regression is introduced in how float literals are highlighted: the `.` is now highlighted as an operator. I've tried to fix this but couldn't figure out how to highlight the whole `ast::FloatLiteral` node as a unit.~~ This is fixed

Fixes https://github.com/rust-lang/rust-analyzer/issues/1109
Fixes https://github.com/rust-lang/rust-analyzer/issues/10492
Fixes https://github.com/rust-lang/rust-analyzer/issues/12107
Fixes https://github.com/rust-lang/rust-analyzer/issues/10560
Fixes https://github.com/rust-lang/rust-analyzer/issues/11487
2022-05-05 15:35:10 +00:00
Jonas Schievink
d974a0b889 Fix rebase fallout 2022-05-05 16:35:07 +02:00
Jonas Schievink
37443eb9a1 Maybe everything else *should* have to deal with it 2022-05-05 16:28:59 +02:00
Jonas Schievink
2fe38d3b63 Indicate the number of float tokens in the first token 2022-05-05 16:28:59 +02:00
Jonas Schievink
34dc8e9383 Wrap floats in token trees in FLOAT_LITERAL node 2022-05-05 16:28:59 +02:00
Jonas Schievink
90bd99f1bb Add completion test 2022-05-05 16:28:59 +02:00
Jonas Schievink
2a755495d0 Add tests 2022-05-05 16:28:59 +02:00
Jonas Schievink
1bc3305d95 Split float literal tokens at the . 2022-05-05 16:28:58 +02:00
Jonas Schievink
502c519e7d Wrap float literals in their own node 2022-05-05 16:28:14 +02:00
Jonas Schievink
2d5d16f18c Remove ast::Literal::token 2022-05-05 16:27:35 +02:00
bors
7dfd1cb572 Auto merge of #12164 - Veykril:completion-rev, r=Veykril
internal: Remove `unqualified_path` completions module

cc https://github.com/rust-lang/rust-analyzer/issues/12144
2022-05-05 13:51:22 +00:00
Lukas Wirth
16d2e79b50 internal: Remove unqualified_path completions module 2022-05-05 15:50:40 +02:00
bors
4b1eb98817 Auto merge of #12161 - Veykril:completion-rev, r=Veykril
internal: Lift out item list path completions from (un)qualified_path

cc https://github.com/rust-lang/rust-analyzer/issues/12144
2022-05-05 10:20:30 +00:00
Lukas Wirth
25d133e3b8 internal: Lift out item list path completions from (un)qualified_path 2022-05-05 12:20:18 +02:00
bors
52a58f672e Auto merge of #12160 - Veykril:completions-rev, r=Veykril
minor: Sort ide-completions test outputs for less disruptive diffs
2022-05-05 09:03:23 +00:00
Lukas Wirth
5280e08c13 minor: Sort ide-completions test outputs for less disruptive diffs 2022-05-05 10:53:20 +02:00
bors
01198da2a2 Auto merge of #12159 - Veykril:completions-rev, r=Veykril
internal: Lift out macro bang property from completion PathKind enum
2022-05-05 08:51:18 +00:00
Lukas Wirth
8b092ec337 internal: Lift out macro bang property from PathKind enum 2022-05-05 10:51:02 +02:00
bors
e789d73424 Auto merge of #12157 - lnicola:lower-char-byte-literals, r=Veykril
feat: Lower values of char and byte literals

Closes #12137
2022-05-05 07:35:41 +00:00
Laurențiu Nicola
9856144b0b Lower values of char and byte literals 2022-05-05 08:12:08 +03:00
bors
0218aeba7a Auto merge of #12150 - rainy-me:feat/fix-doc-url-links, r=rainy-me
fix: doc url link type

fix: #12033

I did some debugging and found the cause looks like to be some doc links' `LinkType` are kept as `Shortcut` which don't make sense for url links.
This PR should resolve both problems in the origin issue, but aside this PR, more work are needed for doc_links.

about `LinkType`: f29bd1e228/src/lib.rs (L191-L210)
2022-05-05 04:54:12 +00:00
rainy-me
ddff1b22f9 fix: add docs and remove unnecessary check 2022-05-05 13:41:33 +09:00
rainy-me
5f4351fbb6 fix: doc url link type 2022-05-05 00:41:29 +09:00
bors
1f709d5446 Auto merge of #12143 - bnjjj:master, r=Veykril
improve the default constructor mode when filling fields

Instead of filling a boolean field with `bool::default()` it's not `false` and same for `Option` instead of using `Option::default()` it will be `None`
2022-05-04 09:32:17 +00:00
bors
9ed4af8967 Auto merge of #12142 - WaffleLapkin:sort-items-by-trait-def, r=lnicola
feat: Sort items by trait definition assist

This PR replaces the "Sort **methods** by trait definition" assist with a "Sort **items** by trait definition" assist that sorts all items, not just methods.

![sort-items-by-trait-def-showcase](https://user-images.githubusercontent.com/38225716/166491828-0bc10dbd-91be-408f-9fe0-636ef5e99377.gif)
2022-05-04 09:08:22 +00:00
Benjamin Coenen
6344eea242 improve the default constructor mode when filling fields
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2022-05-04 09:45:12 +02:00
Maybe Waffle
e315124798 Remove "Sort methods by trait definition" assist
It was replaced by the "Sort items by trait definition" assist.
2022-05-04 00:59:23 +04:00
Maybe Waffle
2b20a05fc6 Add "Sort items by trait definition" 2022-05-03 19:57:39 +04:00
Maybe Waffle
d7ed351573 Fix some typos in ide-assists/src/lib.rs 2022-05-03 19:41:07 +04:00
bors
0ee4e6a22d Auto merge of #12086 - iDawer:infer.rpit, r=flodiebold
infer from RPIT bounds of _this_ function

Collect obligations from RPITs (Return Position `impl Trait`) of a function which is being inferred.
This allows inferring {unknown}s from RPIT bounds.

Closes #8403
2022-05-03 11:50:31 +00:00
bors
eeb45329e3 Auto merge of #12139 - matklad:depsdeps, r=matklad
⬆️ deps
2022-05-03 11:01:26 +00:00
iDawer
970276b559 'inference': collect RPIT obligations
Collect obligations from RPITs (Return Position `impl Trait`) of a function which is being inferred.
This allows inferring {unknown}s from RPIT bounds.
2022-05-03 15:59:12 +05:00
Aleksey Kladov
59dcb63309 ⬆️ deps 2022-05-03 11:57:40 +01:00