Ryan Mehri
ab44e6d504
make TryToNav take Semantics instead of RootDatabase
2025-09-08 15:59:46 -04:00
Ryan Mehri
67a39886c3
feat: support navigation on primitives
2025-09-08 11:16:11 -04:00
Lukas Wirth
aed0fec1a9
Auto-attach database in Analysis calls
2025-08-18 09:52:23 +02:00
jackh726
eeaefa4b9d
impl HirDisplay for next_solver::Ty
2025-08-17 16:04:49 +00:00
Deadbeef
82f174fbd9
Merge Trait and TraitAlias handling
2025-08-13 15:28:08 +08:00
jackh726
9418a3f2df
Implement next trait solver
2025-08-09 16:08:58 +00:00
Lukas Wirth
8ce30264c8
cargo clippy --fix
2025-07-31 10:55:10 +02:00
Lukas Wirth
03f1003637
chore: Start infesting ide crates with 'db lifetime
2025-06-17 10:42:38 +02:00
Shoyu Vanilla
e806957098
feat: Render padding information when hovering on structs
2025-05-28 14:18:50 +09:00
Hayashi Mikihiro
778322eb31
check module path inner or outer
...
Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
2025-05-07 00:36:17 +09:00
roifewu
06cf9ca521
minor: simplify and enhance notable traits rendering
2025-04-21 19:03:35 +08:00
Conrad Irwin
498633ed97
Tidy up drop glue notification
...
This combines the memory layout and drop information on one line,
and makes the wording more succinct.
Closes #19410
2025-03-25 20:24:32 -06:00
Shoyu Vanilla
ecc1ff8f33
Render layout and other extra informations on hovering Self
2025-03-22 23:53:59 +09:00
BenjaminBrienen
7535bb4661
cargo fmt
2025-03-15 21:32:01 +01:00
Chayim Refael Friedman
c94e9efbef
Salsify the crate graph
...
I.e. make it not one giant input but multiple, for incrementality and decreased memory usage for Salsa 3 reasons.
2025-03-12 21:02:30 +02:00
David Barsky
74620e64ec
internal: port rust-analyzer to new Salsa
2025-03-10 13:30:51 -04:00
Chayim Refael Friedman
2fc0dc0f13
Pass the target crate in HirFormatter
...
This is required to format evaluated consts, because we need trait env, and it needs the crate (currently it uses the last crate in topological order, which is wrong, the next commit will fix that).
2025-03-06 21:00:05 +02:00
Chayim Refael Friedman
100e166bb1
Calculate drop glue and show it on hover
...
Also fix the `needs_drop()` intrinsic.
Unions also need this information (to err if they have a drop-needing field), but this will come in a follow-up PR.
2025-02-17 06:29:37 +02:00
Lukas Wirth
3bb0ff3480
Add GenericDefId::StaticId
2025-01-26 11:07:54 +01:00
Luuk Wester
5ad3de8b29
remove is_pwr2
2025-01-21 14:47:07 +01:00
Luuk Wester
705eb84941
switch from using leading zeros to trailing zeros
2025-01-21 14:45:30 +01:00
Luuk Wester
6b6e019593
make large niche description more terse, switch to using u128::is_power_of_two
2025-01-21 10:33:28 +01:00
Luuk Wester
57bd824b5a
Make niches into nices
2025-01-18 19:35:27 +01:00
Lukas Wirth
3bae1f0a1b
Improve hover module path rendering
2025-01-10 12:36:55 +01:00
Lukas Wirth
4b6007115a
minor: New clippy lints
2025-01-06 17:57:17 +01:00
dfireBird
83fcdbf3f6
fix no space insert before and after if value is only spaces
2025-01-02 16:28:25 +05:30
Lukas Wirth
721e43e9d3
internal: Do not render closure ids in hover messages
...
They are not useful
2025-01-01 13:41:07 +01:00
roife
edaf62e7d9
feat: show go-to-type-def actions for subst when hovering
2024-12-31 13:05:29 +08:00
dfireBird
92f8fef527
Fix render of literal to be rendered in codeblock
2024-12-30 20:03:10 +05:30
Lukas Wirth
bb921fbe94
Show variance of parameters on hover
2024-12-28 20:31:20 +01:00
roife
5a3d1a6d0d
fix missing name enum when hovering on fields in variants
2024-12-25 07:28:26 +08:00
Chayim Refael Friedman
b5486ffc42
Show substitution where hovering over generic things
...
There are few things to note in the implementation:
First, this is a best-effort implementation. Mainly, type aliases may not be shown (due to their eager nature it's harder) and partial pathes (aka. hovering over `Struct` in `Struct::method`) are not supported at all.
Second, we only need to show substitutions in expression and pattern position, because in type position all generic arguments always have to be written explicitly.
2024-12-20 11:30:19 +02:00
Lukas Wirth
15239f612d
internal: Show mir eval errors on hover with debug env var set
2024-12-15 17:38:37 +01:00
Laurențiu Nicola
1042a8c22c
Merge pull request #18490 from ShoyuVanilla/dyn-compat-rename
...
minor: Rename `dyn compatible` to `dyn-compatible`
2024-11-07 14:21:40 +00:00
Shoyu Vanilla
05e5f9e4fd
minor: Rename dyn compatible to dyn-compatible
2024-11-07 23:00:29 +09:00
Lukas Wirth
94c35f6138
Allow static initializers to be const evaluated
2024-11-02 12:43:11 +01:00
Lukas Wirth
a953875f49
Style hover messages a bit differently
2024-10-29 16:59:48 +01:00
Lukas Wirth
3741b863a6
Do not render meta info when hovering usages
2024-10-29 15:34:17 +01:00
usamoi
b32127e0b0
fix dyn incompatible hint message
2024-10-23 18:10:14 +08:00
Shoyu Vanilla
e09c2a08d7
Fix: Handle block exprs as modules when finding their parents
2024-10-01 14:05:15 +09:00
Noah Bright
4255cae1bb
Rename object_safety to dyn_compatibility
...
Up to a trait implemented by another package, linking to
$CARGO_HOME/registry/cache/index.crates.io-6f17d22bba15001f/
2024-09-29 07:26:45 -04:00
Laurențiu Nicola
a6572e9234
Support expect in attribute completion and hover
2024-09-23 14:55:50 +03:00
Chayim Refael Friedman
cfb701ac78
Get rid of $crate in expansions shown to the user
...
Be it "Expand Macro Recursively", "Inline macro" or few other things.
We replace it with the crate name, as should've always been.
2024-09-18 18:30:59 +03:00
Shoyu Vanilla
6520a43ca3
feat: Implement object safety
2024-08-29 22:22:21 +09:00
Chayim Refael Friedman
9d3368f2c2
Properly account for editions in names
...
This PR touches a lot of parts. But the main changes are changing
`hir_expand::Name` to be raw edition-dependently and only when necessary
(unrelated to how the user originally wrote the identifier),
and changing `is_keyword()` and `is_raw_identifier()` to be edition-aware
(this was done in #17896 , but the FIXMEs were fixed here).
It is possible that I missed some cases, but most IDE parts should properly
escape (or not escape) identifiers now.
The rules of thumb are:
- If we show the identifier to the user, its rawness should be determined
by the edition of the edited crate. This is nice for IDE features,
but really important for changes we insert to the source code.
- For tests, I chose `Edition::CURRENT` (so we only have to (maybe) update
tests when an edition becomes stable, to avoid churn).
- For debugging tools (helper methods and logs), I used `Edition::LATEST`.
2024-08-16 16:46:24 +03:00
Lukas Wirth
f90bdfc13d
internal: Properly check the edition for edition dependent syntax kinds
2024-08-15 15:57:47 +02:00
beetrees
d5db933f9d
Add f16 and f128 support
2024-07-10 10:43:14 +01:00
roife
78118f98f6
feat: add hover config for showing container bounds
2024-06-11 21:02:13 +08:00
Lukas Wirth
aaa5426fec
internal: Add StaticLifetime to hir API
2024-05-16 08:02:51 +02:00
Lukas Wirth
5b696bac5c
Don't render multi-line literal values
2024-05-13 12:56:02 +02:00