First, we go through every environment variable key and record all cases where there are reference to other variables / dependencies. We track two sets of variables - resolved and yet-to-be-resolved. We pass over a list of variables over and over again and when all variable's dependencies were resolved during previous passes we perform a replacement for that variable, too. Over time the size of `toResolve` set should go down to zero, however circular dependencies may prevent that. We track the size of `toResolve` between iterations to avoid infinite looping. At the end we produce an object of the same size and shape as the original, but with the values replace with resolved versions.
rust-analyzer
This extension provides support for the Rust programming language.
Features
- code completion with imports insertion
- go to definition, implementation, type definition
- find all references, workspace symbol search, symbol renaming
- types and documentation on hover
- inlay hints for types and parameter names
- semantic syntax highlighting
- a lot of assists(code actions)
- apply suggestions from errors
- ... and many more, checkout the manual to see them all
Quick start
- Install rustup
- Install the rust-analyzer extension
Configuration
This extension provides configurations through VSCode's configuration settings. All the configurations are under rust-analyzer.*.
See https://rust-analyzer.github.io/manual.html#vs-code-2 for more information on VSCode specific configurations.
Communication
For usage and troubleshooting requests, please use "IDEs and Editors" category of the Rust forum:
https://users.rust-lang.org/c/ide/14
Documentation
See https://rust-analyzer.github.io/ for more information.