aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Fix MergeBehaviour::Full not working when merging nested long pathsLukas Wirth2020-10-132-4/+33
|/ /
| * Slightly cleanup import_assets moduleLukas Wirth2020-10-132-62/+84
| |
| * Adhere to style guidelines in import_assetsLukas Wirth2020-10-132-43/+45
| |
| * Extract ImportAssets out of auto_importLukas Wirth2020-10-133-241/+273
|/
*-. Merge #6130 #6135bors[bot]2020-10-1215-84/+1407
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6130: Items case quick fix (snake_case / UPPER_SNAKE_CASE / CamelCase) r=matklad a=popzxc Resolves #4598. After a third try, it finally works. Boy, it appeared tougher than it seemed. Initially I thought like "Ha, `rustc` already tells us where idents are named incorrectly. It shouldn't be that hard, should it?". Well, the problems with the information provided by `rustc` appeared shortly: - `rustc` warnings are `flycheck` warnings, which are slightly aside from our diagnostics with fixes. When we map flycheck diagnostic to LSP, we can convert it into a fix, but only if it's marked as `Applicability::MachineApplicable`. Name case fix is marked `Applicability::MaybeIncorrect`, and for a reason: it only suggest to rename symbol under cursor, without tracking any references. - Warning spawned by `rustc` are identified by string labels rather than enum. It means that if one day the diagnostic will be renamed in `rustc`, `rust-analyzer` code will still compile, but won't find the required diagnostic by name anymore. If by chance this will happen when some unlucky guy will decide to create their first pull request, they'll be confused by suddenly failing tests (likely) not related to their changes. - Even if we'll try to build fixes atop of `rustc` warnings, we'll have to do it in the `rust_analyzer::diagnostics::to_proto` module, which is far less convenient for that matter than `ide` crate. That's why I decided that it's worth a separate `rust-analyzer` diagnostic, which will implement `DiagnosticWithFix` trait. After that, I discovered that currently `hir_ty::diagnostics` only check `DefWithBody` types, like function bodies. I had to add support for diagnostics which look at any `ModuleDef`. And of course, since I'd added a lot of new functionality, it required extensive testing. That explains why the diff is so big for a (looking) relatively small feature. I hope that this PR doesn't only add a small feature, but also creates a base for building another features. ## Example: ![case_quick_fix](https://user-images.githubusercontent.com/12111581/95008475-e07ee780-0622-11eb-9978-62a9ea0e7782.gif) P.S. My eyes were bleeding when I had to write the code for the example... 6135: when generating new function, focus on return type instead of body r=matklad a=bnjjj I made a little change when we use the assist to generate a new function, instead of focusing on the function body, it will focus on return type Co-authored-by: Igor Aleksanov <[email protected]> Co-authored-by: Benjamin Coenen <[email protected]>
| | * when generating new function, focus on return type instead of bodyBenjamin Coenen2020-10-083-68/+80
| | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | Use TextRange::contains_inclusive in fixes checkIgor Aleksanov2020-10-122-5/+4
| | |
| * | Keep SyntaxNodePtr::range privateIgor Aleksanov2020-10-124-9/+17
| | |
| * | Replace 'if let' with 'match' in decl_check.rsIgor Aleksanov2020-10-121-30/+33
| | |
| * | Add to_upper_snake_case function to stdxIgor Aleksanov2020-10-123-6/+13
| | |
| * | Fix compilation errorIgor Aleksanov2020-10-121-2/+1
| | |
| * | Apply suggestions from code reviewIgor Aleksanov2020-10-122-3/+3
| | | | | | | | | Co-authored-by: Lukas Wirth <[email protected]>
| * | Fix code style issuesIgor Aleksanov2020-10-123-4/+7
| | |
| * | Apply case check diagnostic to impl itemsIgor Aleksanov2020-10-122-1/+26
| | |
| * | Fix issues with match arm bindingsIgor Aleksanov2020-10-121-7/+12
| | |
| * | Code style adjustmentsIgor Aleksanov2020-10-123-8/+88
| | |
| * | Remove previously added parameter names from the function dataIgor Aleksanov2020-10-123-18/+0
| | |
| * | Make incorrect case diagnostic work inside of functionsIgor Aleksanov2020-10-124-33/+280
| | |
| * | Refactor string helpers for decl_check moduleIgor Aleksanov2020-10-121-32/+97
| | |
| * | Add diagnostics for enum names and variantsIgor Aleksanov2020-10-123-2/+173
| | |
| * | Add fix for incorrect case diagnosticIgor Aleksanov2020-10-128-30/+112
| | |
| * | Improve string helpers functionsIgor Aleksanov2020-10-122-2/+13
| | |
| * | Check structure fields to be snake_caseIgor Aleksanov2020-10-121-46/+65
| | |
| * | Add check for structure names to be CamelCaseIgor Aleksanov2020-10-122-1/+139
| | |
| * | Extract helper functions into a separate moduleIgor Aleksanov2020-10-122-29/+112
| | |
| * | Add checks for function parametersIgor Aleksanov2020-10-122-7/+94
| | |
| * | Create basic support for names case checks and implement function name case ↵Igor Aleksanov2020-10-126-3/+300
| | | | | | | | | | | | check
* | | Merge #6205bors[bot]2020-10-121-2/+2
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6205: Fix iterator hint shortening heuristic r=SomeoneToIgnore a=Veykril Turns out I made a mistake with the heuristic check which is always true, so all iterators exposed from `core` were shortened, including things like ranges. 😅 Co-authored-by: Lukas Wirth <[email protected]>
| * | | Fix iterator hint shortening heuristicLukas Wirth2020-10-121-2/+2
| | | |
* | | | Merge #6153bors[bot]2020-10-125-13/+119
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6153: Improve prime_caches and display its progress r=matklad a=jonas-schievink It now computes the `CrateDefMap` of all crates, which is generally a reasonable approximation for "IDE features ready". There is still some delay after this finishes, I suspect mostly due to impl collection, which takes a while, but this should be an improvement already. For more accurate progress reports, this topologically sorts all crates before starting this operation. ~~Because that is also the ordering in which parallelization makes sense (which was previously attempted in https://github.com/rust-analyzer/rust-analyzer/pull/3529), I decided to throw that into the mix as well. It still doesn't provide *that* much of a performance boost, but it does scale beyond the current single-core architecture, and adding it was very easy.~~ ~~Unfortunately, as written, this will not tell the user which crate is actually causing slowdowns, since the displayed crate is the last one that was *started*, not the one we are currently *blocked* on, but that seems fairly difficult to implement unless I'm missing something.~~ (I have removed rayon for now since it does not work correctly with cancellation.) Co-authored-by: Jonas Schievink <[email protected]>
| * | | Improve prime_caches and display its progressJonas Schievink2020-10-125-13/+119
| |/ /
* | | Merge #6195bors[bot]2020-10-122-30/+53
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6195: Shorten iterators in associated params r=matklad a=SomeoneToIgnore Applies the same iterator-shortening logic to the iterator associated types, recursively. Before: ![image](https://user-images.githubusercontent.com/2690773/95662735-e6ecf200-0b41-11eb-8e54-28493ad4e644.png) After: <img width="1192" alt="image" src="https://user-images.githubusercontent.com/2690773/95662894-e9038080-0b42-11eb-897d-527571ccac58.png"> Co-authored-by: Kirill Bulatov <[email protected]>
| * | | Also replace the associated types with iterKirill Bulatov2020-10-102-12/+19
| | | |
| * | | Add a testKirill Bulatov2020-10-101-23/+39
| | | |
* | | | Merge #6198bors[bot]2020-10-124-4/+124
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6198: Skip macro matcher fragment name semantic highlighting r=matklad a=Veykril Implements a small state-machine for macro_rules! highlighting to separate out the matcher part of its rules. This skips semantically highlighting names of metavariables in the matcher and expander. This might even allow for more fun macro highlighting things in the future. Fixes #4380. Co-authored-by: Lukas Wirth <[email protected]>
| * | | | Skip macro matcher fragment name semantic highlightingLukas Wirth2020-10-104-4/+124
| | | | |
* | | | | Merge #6199bors[bot]2020-10-122-2/+5
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6199: Fix `mut self` not emitting mutable binding on `self` use r=matklad a=Veykril Prior to this, when `self` in a function is taken by value and bound mutably, its use inside of the method body won't be marked `mutably`. Fixes #5461 Co-authored-by: Lukas Wirth <[email protected]>
| * | | | Fix `mut self` not emitting mutable binding on `self` useLukas Wirth2020-10-112-2/+5
| |/ / /
* | | | Merge #5917bors[bot]2020-10-1212-23/+350
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5917: Add a command to open docs for the symbol under the cursor r=matklad a=zacps #### Todo - [ ] Decide if there should be a default keybind or context menu entry - [x] Figure out how to get the documentation path for methods and other non-top-level defs - [x] Design the protocol extension. In future we'll probably want parameters for local/remote documentation URLs, so that should maybe be done in this PR? - [x] Code organisation - [x] Tests Co-authored-by: Zac Pullar-Strecker <[email protected]>
| * | | | Remove methodowner & fix formattingZac Pullar-Strecker2020-10-084-53/+27
| | | | |
| * | | | Rebase fixesZac Pullar-Strecker2020-10-082-14/+6
| | | | |
| * | | | Changes from reviewZac Pullar-Strecker2020-10-081-3/+3
| | | | |
| * | | | Remove outdated part of doc_links module docsZac Pullar-Strecker2020-10-081-2/+0
| | | | |
| * | | | Add ignored test to demonstrate ImportMap bugZac Pullar-Strecker2020-10-081-1/+26
| | | | |
| * | | | Fix namespace detection & function testZac Pullar-Strecker2020-10-081-6/+2
| | | | |
| * | | | Add testsZac Pullar-Strecker2020-10-081-2/+94
| | | | |
| * | | | Update tests for new function fieldZac Pullar-Strecker2020-10-081-12/+12
| | | | |
| * | | | Change Option::Some bug to a fixme noteZac Pullar-Strecker2020-10-082-3/+4
| | | | | | | | | | | | | | | | | | | | IMO this is too much work to be worth fixing at the moment.
| * | | | Differentiate method/tymethod by determining 'defaultness'Zac Pullar-Strecker2020-10-086-8/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently a method only has defaultness if it is a provided trait method, but this will change when specialisation is available and may need to become a concept known to hir. I opted to go for a 'fewest changes' approach given specialisation is still under development.
| * | | | Code reorganisation and field supportZac Pullar-Strecker2020-10-084-56/+101
| | | | |