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.