Commit Graph

22158 Commits

Author SHA1 Message Date
feniljain
ddd59b9a9a fix(extract_module): nearby imports deletion causing panic 2022-05-21 19:13:49 +05:30
bors
01d412f4d7 Auto merge of #12339 - matklad:dead, r=matklad
dead code
2022-05-21 12:40:29 +00:00
Aleksey Kladov
7734a8b72f dead code 2022-05-21 13:39:59 +01:00
bors
49ffde4a65 Auto merge of #12337 - matklad:docz, r=matklad
internal: document overall approach to reload
2022-05-21 12:12:23 +00:00
Aleksey Kladov
cbdab0e647 internal: document overall approach to reload 2022-05-21 13:11:05 +01:00
bitgaoshu
7c5e97221f mismatch 2022-05-21 17:26:03 +08:00
Christofer Nolander
068b138c87 Remove unecessary unwrap 2022-05-21 10:25:12 +02:00
Amos Wenger
707a5683b1 Still suggest generating enum methods if the name ref starts with a lowercase letter 2022-05-21 01:43:05 +02:00
Amos Wenger
0ed85beb15 Don't suggest enum variant if name_ref start with ASCII lowercase letter 2022-05-21 01:36:26 +02:00
Amos Wenger
7d716cbeb9 Simplify with adt.source() 2022-05-21 01:32:25 +02:00
Amos Wenger
2347da8c8d Generate enum variant assist
This also disables "generate function" when what we clearly want is to
generate an enum variant.

Co-authored-by: Maarten Flippo <maartenflippo@outlook.com>
2022-05-21 01:18:35 +02:00
Christofer Nolander
aef16300f7 Order auto-imports by relevance
This first attempt prefers items that are closer to the module they are
imported in.
2022-05-21 00:07:06 +02:00
bors
1182387224 Auto merge of #12329 - jonas-schievink:build-script-errors, r=jonas-schievink
fix: Don't swallow build script errors
2022-05-20 15:29:12 +00:00
Jonas Schievink
33939a3db1 Don't swallow build script errors 2022-05-20 17:28:39 +02:00
bors
2a978e1404 Auto merge of #12328 - Veykril:simplify, r=Veykril
minor: Simplify
2022-05-20 15:03:59 +00:00
Lukas Wirth
88e297e47d minor: Simplify 2022-05-20 16:52:10 +02:00
bors
c8d9a2dbdb Auto merge of #12327 - jonas-schievink:lambda-to-closure, r=jonas-schievink
internal: Rename `Expr::Lambda` to `Expr::Closure`

They're never really called "Lambda"s in Rust, so let's call them "Closures" consistently.
2022-05-20 13:45:21 +00:00
Jonas Schievink
60a2ab4c67 Rename Expr::Lambda to Expr::Closure 2022-05-20 15:40:32 +02:00
bors
1b65e00aea Auto merge of #12326 - jonas-schievink:add-clippy-task-preset, r=jonas-schievink
feat: Add "cargo clippy" task preset

We've had a couple of common presets in `Tasks: Run Task -> cargo -> cargo [check,build,test,...]` before. This PR adds `cargo clippy` to that list, which makes for a convenient way of occasionally running Clippy on your code without having to reconfigure the Check on Save command to clippy.

These presets all use the `cargo` task type that we provide, so diagnostics will show up in the editor. However, they don't go through the server-side parsing logic, so it's not possible to apply suggestions, and diagnostics are fairly "low-fidelity". It would be cool if we could somehow pass Cargo's JSON output through the LSP server and render it properly, for arbitrary tasks.

cc https://github.com/rust-lang/rust-analyzer/issues/12323
2022-05-20 13:36:59 +00:00
Jonas Schievink
c99a5ae312 Add "cargo clippy" task preset 2022-05-20 15:25:37 +02:00
bors
c73513f211 Auto merge of #12325 - jonas-schievink:clear-check-diags, r=jonas-schievink
fix: Clear `cargo check` diagnostics when flycheck is turned off

Previously stale diagnostics were left over indefinitely when turning off "Check on Save" while diagnostics are present.
2022-05-20 13:10:49 +00:00
Jonas Schievink
3e356c1fd3 Clear cargo check diagnostics when flycheck is turned off 2022-05-20 15:07:55 +02:00
bors
7f226fc912 Auto merge of #12324 - jonas-schievink:rm-attribute, r=jonas-schievink
feat: Revert the "Add attribute" assist

Reverts https://github.com/rust-lang/rust-analyzer/pull/12296, as the added indirection and "assist noise" (the assist has to trigger inside the body of an item to match what the "Add `#[derive]`" does) makes this not really pull its weight over just using attribute completions.

Keeps the changes to "Add getter". `#[must_use]` can be applied using the attribute completions.
2022-05-20 12:57:08 +00:00
bors
4bad1956a0 Auto merge of #12315 - matklad:update, r=Veykril
⬆️ deps
2022-05-20 12:44:15 +00:00
Jonas Schievink
e52d463524 Revert the "Add attribute" assist 2022-05-20 14:39:22 +02:00
bors
41388bf81a Auto merge of #12263 - andylizi:hide-type-hint-closure, r=Veykril
feat: hide type inlay hints for initializations of closures

![hide_closure_initialization](https://user-images.githubusercontent.com/12008103/168470158-6cb77b18-068e-4431-a8b5-e2b22d50d263.gif)

This PR adds an option to hide the inlay hints for `let IDENT_PAT = CLOSURE_EXPR;`, which is a somewhat common coding pattern. Currently the inlay hints for the assigned variable and the closure expression itself are both displayed, making it rather repetitive.

In order to be consistent with closure return type hints, only closures with block bodies will be hid by this option.

Personally I'd feel comfortable making it always enabled (or at least when closure return type hints are enabled), but considering the precedent set in #10761, I introduced an off-by-default option for this.

changelog feature: option to hide type inlay hints for initializations of closures
2022-05-20 12:35:36 +00:00
bors
f5229cebb2 Auto merge of #12301 - harpsword:fix_for_crlf_cargo_range_map, r=jonas-schievink
fix: calculate correct postion for Dos line ending in mapping rustc range to ls…

fix #12293
2022-05-20 12:15:22 +00:00
andylizi
2b1c1a934c
feat: hide type inlay hints for initializations of closures 2022-05-20 17:42:56 +08:00
bors
44be090f2e Auto merge of #12320 - NotWearingPants:patch-1, r=Veykril
Hide closure ret hints if ret type is specified

Fixes #12319
2022-05-19 23:57:37 +00:00
NotWearingPants
641b78a162
hide closure ret hints if ret type is specified
fixes #12319
2022-05-20 02:35:37 +03:00
bors
bf37fe23f3 Auto merge of #12316 - jonas-schievink:closure-param-hints, r=jonas-schievink
feat: Show parameter inlay hints for closure invocations

Fixes https://github.com/rust-lang/rust-analyzer/issues/12268
2022-05-19 16:54:09 +00:00
Jonas Schievink
52ff863abc Teach Callable about closures properly 2022-05-19 18:53:08 +02:00
Aleksey Kladov
e64ccddcc7 ⬆️ deps 2022-05-19 17:08:18 +01:00
bors
eba26af9f1 Auto merge of #12314 - jonas-schievink:proc-macro-load, r=jonas-schievink
minor: simplify
2022-05-19 14:50:08 +00:00
bors
46b5483055 Auto merge of #12313 - equinox:typo-fix, r=lnicola
Removed duplicate 'to' in `cachePriming.numThreads` option description

One 'to' too many!
2022-05-19 14:22:09 +00:00
Equinox
7197042ac4 remove duplicate 'to' in cachePriming.numThreads option description 2022-05-20 02:05:48 +12:00
bors
57861bd99e Auto merge of #12311 - Veykril:inlay-hints-tips, r=Veykril
internal: Improve inlay hint tooltips
2022-05-19 13:45:05 +00:00
Lukas Wirth
9ebb55d354 Hide more unnecessary parameter hints for constructors 2022-05-19 15:44:52 +02:00
Jonas Schievink
b2779111b4 simplify 2022-05-19 15:29:35 +02:00
Lukas Wirth
5fe28441b8 Update test fixtures 2022-05-19 15:20:45 +02:00
Lukas Wirth
b08bbd7be0 Enable hovering function parameter inlay hints 2022-05-19 14:32:40 +02:00
Lukas Wirth
74230e26ff internal: Improve inlay hint tooltips 2022-05-19 13:38:37 +02:00
bors
4f7d1a9d69 Auto merge of #12309 - Veykril:completion, r=Veykril
fix: Fix incorrect expected type in completions for trailing match arms

Fixes https://github.com/rust-lang/rust-analyzer/issues/12264
2022-05-19 10:34:36 +00:00
Lukas Wirth
018975b041 fix: Fix incorrect expected type in completions for match arms 2022-05-19 12:33:25 +02:00
bors
d5ab27a0bf Auto merge of #12304 - jonas-schievink:more-doc-gen-improvements, r=jonas-schievink
minor: Include self type in generated getter/setter docs
2022-05-18 17:22:20 +00:00
Jonas Schievink
5279cdbefb Include self type in generated getter/setter docs 2022-05-18 19:22:04 +02:00
bors
b6b17c7a59 Auto merge of #12303 - jonas-schievink:improve-generate-docs-assist, r=jonas-schievink
feat: Improve docs generation assist

- Split into 2 assists: one generates basic docs structure, but no example, one generates an example
- Fix section ordering (the example comes last)
- Allow generating docs for private functions
- Expand `len` to `length` when generating an intro sentence
2022-05-18 16:09:02 +00:00
Jonas Schievink
93b62dbe85 Improve docs generation assist 2022-05-18 18:05:21 +02:00
bors
76030ebdea Auto merge of #12277 - listochkin:show-implementations-display-error, r=listochkin
"Show implementations" link display error fix

While VSCode [uses it's own implementation for URIs](https://github.com/microsoft/vscode-uri)
which notably doesn't have any limits of URI size, the renderer itself
relies on Web platform engine, that limits the length of the URLs and
bails out when the attribute length of an `href` inside `a` tag is too
long.

Command URIs have a form of `command:command-name?arguments`, where
`arguments` is a percent-encoded array of data we want to pass along to
the command function. For "Show References" this is a list of all file
URIs with locations of every reference, and it can get quite long.

This PR introduces another intermediary `linkToCommand` command. When
we render a command link, a reference to a command with all its arguments
is stored in a map, and instead a `linkToCommand` link is rendered
with the key to that map.

For now the map is cleaned up periodically (I've set it to every
10 minutes). In general case we'll probably need to introduce TTLs or
flags to denote ephemeral links (like these in hover popups) and
persistent links and clean those separately. But for now simply keeping
the last few links in the map should be good enough. Likewise, we could
add code to remove a target command from the map after the link is
clicked, but assuming most links in hover sheets won't be clicked anyway
this code won't change the overall memory use much.

Closes #9926
2022-05-18 13:13:09 +00:00
Andrei Listochkin
e87e1bc33d "Show implementations" link display error fix
While VSCode [uses it's own implementation for URIs](https://github.com/microsoft/vscode-uri)
which notably doesn't have any limits of URI size, the renderer itself
relies on Web platform engine, that limits the length of the URLs and
bails out when the attribute length of an `href` inside `a` tag is too
long.

Command URIs have a form of `command:command-name?arguments`, where
`arguments` is a percent-encoded array of data we want to pass along to
the command function. For "Show References" this is a list of all file
URIs with locations of every reference, and it can get quite long.

This PR introduces another intermediary `linkToCommand` command. When
we render a command link, a reference to a command with all its arguments
is stored in a map, and instead a `linkToCommand` link is rendered
with the key to that map.

For now the map is cleaned up periodically (I've set it to every
10 minutes). In general case we'll probably need to introduce TTLs or
flags to denote ephemeral links (like these in hover popups) and
persistent links and clean those separately. But for now simply keeping
the last few links in the map should be good enough. Likewise, we could
add code to remove a target command from the map after the link is
clicked, but assuming most links in hover sheets won't be clicked anyway
this code won't change the overall memory use much.

Closes #9926
2022-05-18 14:12:23 +01:00