Changelog #14
Commit: 2c8f136
Release: 2020-03-02
New Features
-
#3159,#3321,#3322switch syntax highlighting implementation to use the new proposed semantic token LSP/VS Code API.To try this out:-
install vscode plugin from source (using
cargo xtask install --client-code) -
set
"rust-analyzer.highlighting.semanticTokens": true,in settings, -
install the recent VS Code Insiders
-
run
codeascode-insiders --enable-proposed-api matklad.rust-analyzer(handy bash wrapper)
-
-
#3362remove ctrl+r default keybinding for running tests & binaries, to avoid conflict with a build-in keybinding. You might want to assign shortcut for this action, it is a productivity booster!
-
#3349rust-analyzer now highlights code in rust-analyzer’s own tests as rust:
-
#3294when joining lines, unwrap single-statement blocks if possible. -
#3285structural search replace now correctly ignores whitespace differences. -
#3357change visibility assist now works with consts:
-
#3355add completion & docs forfeatureFlagconfiguration in VS Code extension. -
#3309look forCargo.tomlnot only in the root and parent directory, but also among one-level child directories. -
#3387type inference for slice patterns. -
#3397add minimal metadata to VS Code extension.
Fixes
-
#3314,#3325,#3350,#3366fix a lot of range-mapping bugs for recursive macro invocations. -
#3308fix conflict forEnterkey with VS Code vim extension. If rust-analyzer’s custom on enter behavior causes you trouble, you can disable it by removing the corresponding shortcut from the settings. -
#3364correctly handle unions in IDEs. -
#3367finally fix highlighting and name goto definition for constants in patterns, likeNone. -
#3376fix a common false-positive type mismatch. -
#3380use unsizing in method resolution & autoderef for indexing. -
#3384fix name resolution for paths with repeatedsupersegments.
Internal Improvements
-
#3222redo the interface between "compiler" and "IDE". IDE no longer needs to explicitly track the file a particular bit of syntax tree originated from. -
#3296bump TypeScript version. -
#3299more type safe way to deal with custom LSP extensions. -
#3298update chalk. -
#3316remove code duplication in assists tests. -
#3324,#3335,#3344,#3346refactor syntax highlighting infrastructure to be more future proof and robust. -
#3337remove unused dependencies. -
#3340gate CI on eslint. -
#3351better API for working with string literals. -
#3360fix parsing of attributes in let statements. -
#3370extract code for adding a newuseitem to a separate module. -
#3374cleanup API for constructing syntax trees for paths. -
#3375cleanup API for editing syntax trees. -
#3377simplify API for getting semantic definitions from syntax trees.