Commit graph

337 commits

Author SHA1 Message Date
Yu Zeng
8f3eecc369 discard when the path is invalid utf8 symbol. 2024-04-30 15:39:05 +08:00
bors
f7de09415c Auto merge of #17144 - cbiffle:patch-1, r=Veykril
manual: remove suggestion of rust-project.json example

The manual has been linking to the repo

https://github.com/rust-analyzer/rust-project.json-example/tree/master

This repo does not contain a rust-project.json, does not appear to have _ever_ contained a rust-project.json, and my bug report about this has gone untouched: https://github.com/rust-analyzer/rust-project.json-example/issues/4

Since I can't figure out an example, this commit removes the link pending better documentation.
2024-04-29 08:16:11 +00:00
bors
3e3faf00fc Auto merge of #17157 - Veykril:retry, r=Veykril
fix: Don't retry position relient requests and version resolve data

Fixes https://github.com/rust-lang/rust-analyzer/issues/15907
Fixes https://github.com/rust-lang/rust-analyzer/issues/14839
Fixes https://github.com/rust-lang/rust-analyzer/issues/16536
2024-04-29 08:02:08 +00:00
Lukas Wirth
495afd15d2 Retry inlay hint requests 2024-04-29 09:53:12 +02:00
Lukas Wirth
e379766311 Work around completion retrying not fixing up offsets 2024-04-28 17:25:20 +02:00
Lukas Wirth
001c387150 Don't retry position relient requests and version resolve data 2024-04-28 17:02:38 +02:00
bors
960598b514 Auto merge of #17153 - Veykril:doc-comment-desugaring, r=Veykril
fix: Fix doc comment desugaring for proc-macros

Fixes https://github.com/rust-lang/rust-analyzer/issues/16259
2024-04-27 11:32:40 +00:00
Lukas Wirth
efb390bb94 fix: Fix doc comment desugaring for proc-macros 2024-04-27 13:30:51 +02:00
bors
b81f1f66c8 Auto merge of #17151 - Veykril:fix-cfg-trait-params, r=Veykril
fix: Fix attributes on generic parameters colliding in item tree

Fixes https://github.com/rust-lang/rust-analyzer/issues/16141
2024-04-27 11:17:14 +00:00
Lukas Wirth
d37c4b70d2 fix: Fix attributes on generic parameters colliding in item tree 2024-04-27 13:15:36 +02:00
bors
94c5034ee9 Auto merge of #17150 - RalfJung:josh-pull, r=lnicola
internal: add no-new-root check to josh pull

We probably don't want a second root to show up...

Also clear the rust-version file while we are at it.
2024-04-27 07:10:12 +00:00
Ralf Jung
70fb0394f5 empty rust-version file, since no pull has happened yet 2024-04-27 09:02:52 +02:00
Ralf Jung
0274d34f75 add no-new-root check to josh pull 2024-04-27 09:02:07 +02:00
Lukas Wirth
2b6f198a5e fix: Fix source roots not always being created when necessary 2024-04-26 18:55:58 +02:00
Cliff L. Biffle
0daa8915cf
manual: remove suggestion of rust-project.json example
The manual has been linking to the repo

https://github.com/rust-analyzer/rust-project.json-example/tree/master

This repo does not contain a rust-project.json, does not appear to have _ever_ contained a rust-project.json, and my bug report about this has gone untouched: https://github.com/rust-analyzer/rust-project.json-example/issues/4

Since I can't figure out an example, this commit removes the link pending better documentation.
2024-04-26 08:23:50 -07:00
Lukas Wirth
3bc103ad88 Show workspace info in the status bar 2024-04-26 11:28:33 +02:00
bors
b2c377417e Auto merge of #17135 - Veykril:inline-const-scope, r=Veykril
fix: Fix expression scopes not being calculated for inline consts
2024-04-25 07:56:23 +00:00
Lukas Wirth
7dd3a16da8 fix: Fix expression scopes not being calculated for inline consts 2024-04-25 09:49:19 +02:00
bors
a2259bb8a2 Auto merge of #17134 - Veykril:lt-err-display, r=Veykril
internal: Don't render unknown lifetimes when rendering generic args

cc https://github.com/rust-lang/rust-analyzer/issues/17098
2024-04-25 07:36:47 +00:00
bors
d00de38599 Auto merge of #17021 - roife:add-hover-limits-for-adts, r=Veykril
Support hovering limits for adts

Fix #17009

1. Currently, r-a supports limiting the number of struct fields displayed when hovering. This PR extends it to support enum variants and union fields. Since the display of these three (ADTs) is similar, this PR extends 'hover_show_structFields' to 'hover_show_adtFieldsOrVariants'.
2. This PR also resolved the problem that the layout of ADT was not restricted by display limitations when hovering on the Self type.
3. Additionally, this PR changes the default value of display limitations to `10` (instead of the original `null`), which helps users discover this feature.
2024-04-25 07:23:27 +00:00
Lukas Wirth
10e82da69d Add inlay hints lifetime arg tests 2024-04-25 09:10:49 +02:00
bors
1709e37f18 Auto merge of #16972 - joshka:cargo-run-runnable, r=Veykril
Make `cargo run` always available for binaries

Previously, items for `cargo test` and `cargo check` would appear as in
the `Select Runnable` quick pick that appears when running
`rust-analyzer: Run`, but `run` would only appear as a runnable if a
`main`` function was selected in the editor. This change adds `cargo
run` as an always available runnable command for binary packages.

This makes it easier to develop cli / tui applications, as now users can
run application from anywhere in their codebase.
2024-04-25 07:08:24 +00:00
Lukas Wirth
ec1a29b443 Drop unknown lifetimes when rendering generic args 2024-04-24 21:22:48 +02:00
Josh McKinney
410f71fcc3
fix: move no_std check out of loop 2024-04-24 01:29:31 -07:00
Bao Zhiyuan
9e212e0523 different error code based on variant 2024-04-23 20:54:03 +08:00
bors
afa2a898a4 Auto merge of #17102 - davidbarsky:david/add-some-tracing-to-project-loading, r=lnicola
chore: add some `tracing` to project loading

I wanted to see what's happening during project loading and if it could be parallelized. I'm thinking maybe, but it's not this PR :)
2024-04-22 15:56:06 +00:00
David Barsky
2d4723b38b chore: add some tracing to project loading 2024-04-22 11:39:01 -04:00
bors
a200391f54 Auto merge of #17025 - lnicola:josh, r=lnicola
internal: Use josh for subtree syncs
2024-04-21 16:39:18 +00:00
bors
8ea8c7432b Auto merge of #16938 - Nilstrieb:dont-panic-tests, r=Veykril
Implement `BeginPanic` handling in const eval

for #16935, needs some figuring out of how to write these tests correctly
2024-04-21 16:22:02 +00:00
bors
7a3ad0308a Auto merge of #17115 - leviska:json_is_not_rust_better_names, r=Veykril
Try to generate more meaningful names in json converter

I just found out about rust-analyzer json converter, but I think it would be more convenient, if names were more useful, like using the names of the keys.

Let's look at some realistic arbitrary json:

```json
{
    "user": {
        "address": {
            "street": "Main St",
            "house": 3
        },
        "email": "example@example.com"
    }
}
```
I think, new generated code is much easier to read and to edit, than the old:
```rust
// Old
struct Struct1{ house: i64, street: String }
struct Struct2{ address: Struct1, email: String }
struct Struct3{ user: Struct2 }

// New
struct Address1{ house: i64, street: String }
struct User1{ address: Address1, email: String }
struct Root1{ user: User1 }
```

Ideally, if we drop the numbers, I can see it being usable just as is (may be rename root)
```rust
struct Address{ house: i64, street: String }
struct User{ address: Address, email: String }
struct Root{ user: User }
```

Sadly, we can't just drop them, because there can be multiple fields (recursive) with the same name, and we can't just easily retroactively add numbers if the name has 2 instances due to parsing being single pass.
We could ignore the `1` and add number only if it's > 1, but I will leave this open to discussion and right now made it the simpler way

In sum, even with numbers, I think this PR still helps in readability
2024-04-21 16:09:17 +00:00
Lukas Wirth
0a29e6fc85 Support flychecking for cargo scripts 2024-04-21 17:40:17 +02:00
Lukas Wirth
92ace4b139 Extract common fields out of ProjectWorkspace variants 2024-04-21 17:03:02 +02:00
Lukas Wirth
7c39263450 Allow rust files to be used linkedProjects 2024-04-21 16:26:55 +02:00
Laurențiu Nicola
8f2138102f Use josh for subtree syncs 2024-04-21 10:07:08 +03:00
Lukas Wirth
04de0fff1e Peek for panic message in test output 2024-04-21 08:50:25 +02:00
Lev Iskandarov
846f8046b0 add test with multiple names 2024-04-20 21:04:53 +03:00
Lev Iskandarov
570c725f69 try to generate more meaningful names 2024-04-20 20:50:47 +03:00
roife
f7f02c0d12 fix: remove space within {} when no fields in struct 2024-04-20 10:07:33 +08:00
roife
0e9d845fc7 Add hovering limitations support for variants 2024-04-20 09:14:00 +08:00
roife
c1a4ba55d7 fix: add a separate setting for enum variants 2024-04-19 21:45:56 +08:00
Lukas Wirth
2efaa44acf Implement BeginPanic for mir eval 2024-04-19 12:42:32 +02:00
Lukas Wirth
ca53651640 Fix #[rustc_const_panic_str] functions not actually being hooked 2024-04-18 15:49:08 +02:00
Lukas Wirth
4a33c5f305 Fixup some issues with minicore 2024-04-18 12:20:54 +02:00
Lukas Wirth
b6751b7611 Fix missing function body in minicore 2024-04-18 12:20:54 +02:00
Nilstrieb
a8e50cffbc Handle panicking like rustc CTFE does
Instead of using `core::fmt::format` to format panic messages, which may in turn
panic too and cause recursive panics and other messy things, redirect
`panic_fmt` to `const_panic_fmt` like CTFE, which in turn goes to
`panic_display` and does the things normally. See the tests for the full
call stack.
2024-04-18 12:20:54 +02:00
roife
a1136121b8 fix: adjust the limitation for ADTs' fields to 5 2024-04-16 16:28:23 +08:00
roife
2b38652764 fix: the fields or variants of ADT was not restricted by limitations when hovering on Self type 2024-04-16 16:27:57 +08:00
roife
3994fcb245 Update tests and docs for hover_show_adtFieldsOrVariants 2024-04-16 16:27:56 +08:00
roife
3a4a69a510 Add config hover_show_adtFieldsOrVariants to handle hovering limitation for ADTs 2024-04-16 16:26:23 +08:00
Josh McKinney
29d28f801c
Make cargo run always available for binaries
Previously, items for `cargo test` and `cargo check` would appear as in
the `Select Runnable` quick pick that appears when running
`rust-analyzer: Run`, but `run` would only appear as a runnable if a
`main`` function was selected in the editor. This change adds `cargo
run` as an always available runnable command for binary packages.

This makes it easier to develop cli / tui applications, as now users can
run application from anywhere in their codebase.
2024-03-28 20:42:44 -07:00