aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
*---. Merge #4913 #4915 #4916bors[bot]2020-06-1710-34/+426
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]> Co-authored-by: Leander Tentrup <[email protected]> Co-authored-by: Gabriel Valfridsson <[email protected]>
| | | * Warnings as hint or infoGabriel Valfridsson2020-06-167-13/+402
| | | |
| | * | Inspect markdown code fences to determine whether to apply syntax highlightingLeander Tentrup2020-06-163-4/+22
| | |/
| * / Remove debugging code for incremental syncLaurențiu Nicola2020-06-161-17/+2
| |/
* | Merge #4914bors[bot]2020-06-171-384/+406
|\ \ | | | | | | | | | | | | | | | | | | | | | 4914: Fix panic in match checking r=flodiebold a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/issues/4416 Co-authored-by: Jonas Schievink <[email protected]>
| * | Use ra_fixture and reformat testsJonas Schievink2020-06-161-387/+385
| | |
| * | Fix index-out-of-bounds panic in match checkingJonas Schievink2020-06-161-2/+26
| |/
* | Merge #4919bors[bot]2020-06-171-54/+20
|\ \ | |/ |/| | | | | | | | | | | 4919: Remove :expr from placeholders r=matklad a=davidlattimore Reasoning discussed at https://github.com/rust-analyzer/rust-analyzer/issues/3186#issuecomment-644069324 Co-authored-by: David Lattimore <[email protected]>
| * Remove :expr from placeholdersDavid Lattimore2020-06-171-54/+20
|/ | | | Reasoning discussed at #3186
* Merge #4911bors[bot]2020-06-161-29/+43
|\ | | | | | | | | | | | | | | 4911: cargo update r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * cargo updatekjeremy2020-06-161-29/+43
|/
* Merge #4909bors[bot]2020-06-168-81/+67
|\ | | | | | | | | | | | | | | | | | | | | 4909: Anchor file-system operations to the file, and not to the source root. r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Anchor file-system operations to the file, and not to the source root.Aleksey Kladov2020-06-168-81/+67
|/ | | | | | | | | | | | | | | | Anchoring to the SourceRoot wont' work if the path is absolute: #[path = "/tmp/foo.rs"] mod foo; Anchoring to a file will. However, we *should* anchor, instead of just producing an abs path. I can imagine a situation where, for example, rust-analyzer processes crates from different machines (or, for example, from in-memory git branch), where the same absolute path in different crates might refer to different files in the end!
* Merge #4908bors[bot]2020-06-161-20/+20
|\ | | | | | | | | | | | | | | 4908: Fix typos in docs/dev/README.md r=kjeremy a=okaneco Small grammar and spelling changes in the README.md for the dev docs. Co-authored-by: okaneco <[email protected]>
| * Fix typos in docs/dev/README.mdokaneco2020-06-161-20/+20
|/ | | | Small grammar and spelling changes
* Merge #4891bors[bot]2020-06-168-0/+520
|\ | | | | | | | | | | | | | | 4891: New VFS API r=matklad a=matklad cc @flodiebold , @jonas-schievink Co-authored-by: Aleksey Kladov <[email protected]>
| * New VFS APIAleksey Kladov2020-06-168-0/+520
| |
* | Merge #4876bors[bot]2020-06-1612-16/+102
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4876: Syntactic highlighting of NAME_REF for injections r=matklad a=ltentrup This commit adds a function that tries to determine the syntax highlighting class of NAME_REFs based on the usage. It is used for highlighting injections (such as highlighting of doctests) as the semantic logic will most of the time result in unresolved references. It also adds a color to unresolved references in HTML encoding. Follow up of #4683. Fixes #4809. Co-authored-by: Leander Tentrup <[email protected]>
| * | Syntactic highlighting of NAME_REF for injectionsLeander Tentrup2020-06-1512-16/+102
| | | | | | | | | | | | | | | | | | This commit adds a function that tries to determine the syntax highlighting class of NAME_REFs based on the usage. It is used for highlighting injections (such as highlighting of doctests) as the semantic logic will most of the time result in unresolved references. It also adds a color to unresolved references in HTML encoding.
* | | Merge #4878bors[bot]2020-06-165-59/+257
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 4878: Make "Replace qualified name with use" replace *all* mentions of the path r=matklad a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/issues/4836 Co-authored-by: Jonas Schievink <[email protected]>
| * | Operate only on AST paths instead of HIRJonas Schievink2020-06-151-30/+36
| | |
| * | SimplifyJonas Schievink2020-06-151-13/+6
| | |
| * | It's fookin' rawJonas Schievink2020-06-151-48/+48
| | |
| * | Shorten *all* qualified paths when adding useJonas Schievink2020-06-132-11/+192
| | |
| * | Expose `find_insert_use_container`Jonas Schievink2020-06-132-8/+18
| | |
| * | Fix `rewrite_root` when there's only 1 replacementJonas Schievink2020-06-131-0/+8
| | |
* | | Merge #4860bors[bot]2020-06-154-22/+31
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4860: Accept relative paths in rust-project.json r=matklad a=tweksteen If a relative path is found as part of Crate.root_module or Root.path, interpret it as relative to the location of the rust-project.json file. Fixes: #4816 Co-authored-by: Thiébaud Weksteen <[email protected]>
| * | | Accept relative paths in rust-project.jsonThiébaud Weksteen2020-06-154-22/+31
| | | | | | | | | | | | | | | | | | | | If a relative path is found as part of Crate.root_module or Root.path, interpret it as relative to the location of the rust-project.json file.
* | | | Merge #4877bors[bot]2020-06-153-16/+37
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4877: Fix syntax highlighting of recursive macros r=matklad a=ltentrup Add syntax highlighting for the BANG (`!`) token if the parent is `MACRO_CALL`. Before: <img width="514" alt="before" src="https://user-images.githubusercontent.com/201808/84595030-11f65c00-ae56-11ea-9bb2-b1abe2236990.png"> After: <img width="516" alt="recursive-macro" src="https://user-images.githubusercontent.com/201808/84594981-d196de00-ae55-11ea-8636-f877d5d795ff.png"> Fixes #4694. Co-authored-by: Leander Tentrup <[email protected]>
| * | | | Fix syntax highlighting of recursive macrosLeander Tentrup2020-06-153-16/+37
| |/ / / | | | | | | | | | | | | Add syntax highlighting for the BANG (`!`) token if the parent is `MACRO_CALL`.
* | | | Merge #4892bors[bot]2020-06-151-1/+2
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4892: Make ra_syntax::{SyntaxNodeChildren, SyntaxElementChildren} public. r=matklad a=davidlattimore SyntaxNode::children and SyntaxNode::children_with_tokens return these types, but there's currently no way AFAIK to name them. Co-authored-by: David Lattimore <[email protected]>
| * | | | Make ra_syntax::{SyntaxNodeChildren, SyntaxElementChildren} public.David Lattimore2020-06-151-1/+2
| | |_|/ | |/| | | | | | | | | | SyntaxNode::children and SyntaxNode::children_with_tokens return these types, but there's currently no way AFAIK to name them.
* | | | Merge #4893bors[bot]2020-06-151-0/+1
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4893: Add Embark Studios to the sponsors list r=matklad a=matklad Forgot to do this when updating the sponsors list on the website the last time :( bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Add Embark Studios to the sponsors listAleksey Kladov2020-06-151-0/+1
|/ / / | | | | | | | | | | | | Forgot to do this when updating the sponsors list on the website the last time :(
* | | Merge #4889bors[bot]2020-06-157-13/+17
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4889: Deprecate hir::Path::from_ast r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Update parser tests with env varAleksey Kladov2020-06-153-8/+11
| | | |
| * | | Allow attributes on expressionsAleksey Kladov2020-06-151-4/+2
| | | | | | | | | | | | | | | | https://github.com/rust-lang/rust/pull/69201/
| * | | Deprecate hir::Path::from_astAleksey Kladov2020-06-153-1/+4
| | | |
* | | | Merge #4888bors[bot]2020-06-151-0/+7
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4888: Var naming r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Var namingAleksey Kladov2020-06-151-0/+7
| |/ /
* | | Merge #4882bors[bot]2020-06-151-113/+142
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4882: _match.rs: improve comment formatting r=matklad a=jonas-schievink This results in much nicer rustdoc output Co-authored-by: Jonas Schievink <[email protected]>
| * | | _match.rs: improve comment formattingJonas Schievink2020-06-141-113/+142
| | |/ | |/|
* | | Merge #4880bors[bot]2020-06-151-2/+48
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | 4880: "fill match arms" assist: Match on bind patterns r=flodiebold a=tobz1000 This prevents duplication of match arms where the pre-existing arm is a bind pattern. Co-authored-by: Toby Dimmick <[email protected]>
| * | fill_match_arms bind pattern implementationToby Dimmick2020-06-141-2/+14
| | |
| * | fill_match_arms bind pattern testToby Dimmick2020-06-141-0/+34
|/ /
* | Merge #4875bors[bot]2020-06-143-0/+135
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | | | 4875: Introduce paths crate r=matklad a=matklad It's a good idea to distinguish between absolute and relative paths at the type level, to avoid accidental dependency on the cwd, which really shouldn't matter for rust-analyzer service bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Introduce paths crateAleksey Kladov2020-06-143-0/+135
|/ | | | | | It's a good idea to distinguish between absolute and relative paths at the type level, to avoid accidental dependency on the cwd, which really shouldn't matter for rust-analyzer service
* Merge #4867bors[bot]2020-06-136-160/+134
|\ | | | | | | | | | | | | | | | | | | | | 4867: Cleanup URL handling r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Cleanup URL handlingAleksey Kladov2020-06-136-160/+134
| |
* | Merge #4869bors[bot]2020-06-131-11/+32
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4869: Discourage allocation r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>