cargo-appraiser
Features
- Workspace
- hover on members will show the list of members
- Dependencies
- version decorations

- hover on version will show the available versions

- hover on git dependency will show the git reference and commit

- hover on
features
will show available features, hover on a feature name
will show its values

- code action on dependency's
version

cargo update
code action on dependency's version
and workspace
- goto definition on workspace dependency
- Audit
- Show warining and vulnerability on dependencies
Audit Feature
Audit feature is enabled by default, to disable this feature, check audit.disabled
config.
The audit feature requires cargo audit
command, you can install it by running cargo install cargo-audit --locked
.
Check cargo-audit for detail.
Config
VSCode specific config
{
//vscode decoration color config, for example `cargo-appraiser.decorationColor.light: {latest: "#006400"}`
"decorationColor": {
//the default for light and highContrastLight
"light": {
"notParsed": "#808080",
"latest": "#006400",
"local": "#00008B",
"notInstalled": "#808080",
"mixedUpgradeable": "#B8860B",
"compatibleLatest": "#B8860B",
"nonCompatibleLatest": "#B8860B",
"yanked": "#FF0000",
"git": "#800080"
},
//the default for dark and highContrast
"dark": {
"notParsed": "#808080",
"latest": "#006400",
"local": "#00008B",
"notInstalled": "#808080",
"mixedUpgradeable": "#FF8C00",
"compatibleLatest": "#FF8C00",
"nonCompatibleLatest": "#FF8C00",
"yanked": "#FF0000",
"git": "#800080"
},
"highContrast": {
//same as dark
},
"highContrastLight": {
//same as light
}
}
}
lsp initialization options
To apply these config, you need to restart the lsp.
Examples
{
"cargo-appraiser.decorationFormatter": {}, //see below
"cargo-appraiser.audit": {} //see below
}
{
"lsp": {
"cargo-appraiser": {
"initialization_options": {
"decorationFormatter": {}, //see below
"audit": {} //see below
}
}
}
}
Default values
{
/// the formatter has 7 fields:
/// latest: the dependency has the latest version installed
/// local: the dependency is a local path dependency
/// not_installed: the dependency is not installed maybe because of platform mismatch
/// loading: the dependency is loading
/// mixed_upgradeable: the installed version has an compatible upgrade, but the latest version is not compatible with the current version requirement
/// compatible_latest: the installed version can update to latest version
/// noncompatible_latest: the installed version can't upate to latest version and there is no compatible upgrade
/// yanked: the installed version is yanked
/// git: the dependency is a git dependency, support {{ref}}, {{commit}} template strings
///
/// a dependency is in `waiting` state for 2 possible reasons:
/// 1. wait for `cargo` to run. `Cargo.toml` is not saved, so `cargo` haven't picked up the change.
/// 2. wait for `cargo` to finish. `cargo` is running in process to resolve the dependency.
///
/// each field's value may has 3 template strings:
/// - installed: the installed version
/// - latest_matched: the latest compatible version
/// - latest: the latest version, the latest version may or may not be compatilbe with the version requirement
///
/// the default formatter is:
"decorationFormatter": {
"latest": "✅ {{installed}}",
"local": "Local",
"not_installed": "Not installed",
"waiting": "Waiting...",
"mixed_upgradeable": "🚀🔒 {{installed}} -> {{latest_matched}}, {{latest}}",
"compatible_latest": "🚀 {{installed}} -> {{latest}}",
"noncompatible_latest": "🔒 {{installed}}, {{latest}}",
"yanked": "❌ yanked {{installed}}, {{latest_matched}}",
"git": "🐙 {{commit}}"
},
"audit":{
"disabled": false,
// "warning" will show warning and vulnerability
// "vulnerability" will only show vulnerability
"level": "warning"
}
}
Supported Editors
VSCode is the main supported editor.
Enable inlay_hints
in settings.
"inlay_hints": {
"enabled": true
}
Vim has minimal support for now.
Thanks to