rust/crates
bors[bot] 931f317399
Merge #4913 #4915 #4916
4913: Remove debugging code for incremental sync r=matklad a=lnicola



4915: Inspect markdown code fences to determine whether to apply syntax highlighting r=matklad a=ltentrup

Fixes #4904 

4916: Warnings as hint or info r=matklad a=GabbeV

Fixes #4229 

This PR is my second attempt at providing a solution to the above issue. My last PR(#4721) had to be rolled back(#4862) due to it overriding behavior many users expected. This PR solves a broader problem while trying to minimize surprises for the users. 

### Problem description
The underlying problem this PR tries to solve is the mismatch between [Rustc lint levels](https://doc.rust-lang.org/rustc/lints/levels.html) and [LSP diagnostic severity](https://microsoft.github.io/language-server-protocol/specification#diagnostic). Rustc currently doesn't have a lint level less severe than warning forcing the user to disable warnings if they think they get to noisy. LSP however provides two severitys below warning, information and hint. This allows editors like VSCode to provide more fine grained control over how prominently to show different diagnostics.

Info severity shows a blue squiggly underline in code and can be filtered separately from errors and warnings in the problems panel.
![image](https://user-images.githubusercontent.com/13839236/84830640-0bb8d900-b02a-11ea-9e2f-0561b0e8f1ef.png)
![image](https://user-images.githubusercontent.com/13839236/84826931-ffca1880-b023-11ea-8080-5e5b91a6ac0d.png)

Hint severity doesn't show up in the problems panel at all and only show three dots under the affected code or just faded text if the diagnostic also has the unnecessary tag.
![image](https://user-images.githubusercontent.com/13839236/84827165-55062a00-b024-11ea-8bd6-bdbf1217c4c5.png)

### Solution
The solution provided by this PR allows the user to configure lists of of warnings to report as info severity and hint severity respectively. I purposefully only convert warnings and not errors as i believe it's a good idea to have the editor show the same severity as the compiler as much as possible.
![image](https://user-images.githubusercontent.com/13839236/84829609-50437500-b028-11ea-80a8-1bbd05680ba7.png)

### Open questions
#### Discoverability
How do we teach this to new and existing users? Should a section be added to the user manual? If so  where and what should it say?

#### Defaults
Other languages such as TypeScript report unused code as hint by default. Should rust-analyzer similarly report some problems as hint/info by default?

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
Co-authored-by: Leander Tentrup <leander.tentrup@gmail.com>
Co-authored-by: Gabriel Valfridsson <gabriel.valfridsson@gmail.com>
2020-06-17 11:01:37 +00:00
..
paths Introduce paths crate 2020-06-14 14:15:36 +02:00
ra_arena Extract messy tree handling out of profiling code 2020-04-25 21:22:40 +02:00
ra_assists Merge #4878 2020-06-16 05:29:05 +00:00
ra_cfg add support of feature flag for runnables #4464 2020-05-23 20:59:18 +02:00
ra_db Make relevant_crates return a Set 2020-06-11 11:30:06 +02:00
ra_flycheck flycheck now uses the configured features 2020-06-09 21:47:54 +02:00
ra_fmt Introduce EffectExpr 2020-05-02 11:21:39 +02:00
ra_hir Merge #4843 2020-06-11 10:18:53 +00:00
ra_hir_def Anchor file-system operations to the file, and not to the source root. 2020-06-16 18:45:58 +02:00
ra_hir_expand Don't guess macro expansion crate 2020-06-11 12:13:14 +02:00
ra_hir_ty Use ra_fixture and reformat tests 2020-06-16 22:54:41 +02:00
ra_ide Merge #4913 #4915 #4916 2020-06-17 11:01:37 +00:00
ra_ide_db Anchor file-system operations to the file, and not to the source root. 2020-06-16 18:45:58 +02:00
ra_mbe Reuse Vec allocations 2020-05-16 22:20:44 +02:00
ra_parser Allow attributes on expressions 2020-06-15 10:59:05 +02:00
ra_proc_macro proc_macro: add ability to log to stderr and view output in vscode 2020-04-23 01:57:02 +03:00
ra_proc_macro_srv Fix tests, apply code review proposals 2020-05-31 03:10:23 +03:00
ra_prof Simplify profiler impl (bubble up Option and shorten code 2020-04-26 00:55:49 +03:00
ra_project_model Accept relative paths in rust-project.json 2020-06-15 13:11:53 +02:00
ra_syntax Merge #4878 2020-06-16 05:29:05 +00:00
ra_text_edit Formalize JoinLines protocol extension 2020-05-21 20:05:33 +02:00
ra_toolchain Simplify match 2020-05-09 22:20:11 +03:00
ra_tt Reduce reallocations in ra_tt::buffer::TokenBuffer::new_inner 2020-05-16 22:20:44 +02:00
rust-analyzer Merge #4913 #4915 #4916 2020-06-17 11:01:37 +00:00
stdx Use split1 when formatting function signature params 2020-06-03 07:26:15 -04:00
test_utils Update parser tests with env var 2020-06-15 11:02:17 +02:00
vfs New VFS API 2020-06-16 13:42:29 +02:00