The completion of cfg will look at the enabled cfg keys when
performing completion.
It will also look crate features when completing a feature cfg
option. A fixed list of known values for some cfg options are
provided.
For unknown keys it will look at the enabled values for that cfg key,
which means that completion will only show enabled options for those.
9264: feat: Make documentation on hover configurable r=Veykril a=Veykril
This also implements deprecation support for config options as this renames `hoverActions_linksInHover` to `hover_linksInHover`.
Fixes#9232
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
9227: Add a config setting to disable the 'test' cfg in specified crates r=matklad a=lf-
If you are opening libcore from rust-lang/rust as opposed to e.g.
goto definition from some other crate which would use the sysroot
instance of libcore, a `#![cfg(not(test))]` would previously have made
all the code excluded from the module tree, breaking the editor
experience.
Core does not need to ever be edited with `#[cfg(test)]` enabled,
as the tests are in another crate.
This PR puts in a slight hack that checks for the crate name "core" and
turns off `#[cfg(test)]` for that crate.
Fixes#9203Fixes#9226
Co-authored-by: Jade <software@lfcode.ca>
9357: fix: Update sysroot crates r=jonas-schievink a=jonas-schievink
Removes `rtstartup`, since that's not a Cargo crate (its files are compiled into object files and linked alongside the stdlib).
Adds `std_detect`.
Part of https://github.com/rust-analyzer/rust-analyzer/issues/9352 (doesn't fix it since std_detect is full of `cfg_if!`)
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
9355: Don't insert `}` when typing `{` in string r=jonas-schievink a=jonas-schievink
Checks that the token at the cursor is `L_CURLY`.
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/9351
bors r+
Co-authored-by: Jonas Schievink <jonasschievink@gmail.com>
9347: add note about passing cfg(debug_assertions) r=matklad a=rezural
add note about passing cfg(debug_assertions) to rustc on build. The server will not spin on start without this arcane hack
Co-authored-by: rezural <69941255+rezural@users.noreply.github.com>
9346: Refactor / clean up hir_ty tests r=flodiebold a=flodiebold
Notable changes:
- unify `check_types` and `check_mismatches` into `check`, which supports both kinds of annotations (`check_types` still exists because I didn't want to change all the annotations, but uses the same implementation)
- because of that, `check_types` now fails on any type mismatches; also annotations always have to hit the exact range
- there's also `check_no_mismatches` for when we explicitly just want to check that there are no type mismatches without giving any annotations (`check` will fail without annotations)
- test annotations can now be overlapping (they point to the nearest line that has actual code in that range):
```
// ^^^^ annotation
// ^^^^^^^^^ another annotation
```
Co-authored-by: Florian Diebold <flodiebold@gmail.com>
If you are opening libcore from rust-lang/rust as opposed to e.g.
goto definition from some other crate which would use the sysroot
instance of libcore, a `#![cfg(not(test))]` would previously have made
all the code excluded from the module tree, breaking the editor
experience.
This puts in a slight hack that checks for the crate name "core" and
turns off `#[cfg(test)]`.
9334: feat: Allow to disable import insertion on single path glob imports r=Veykril a=Veykril
On by default as I feel like this is something the majority would prefer.
Closes#8490
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>