aboutsummaryrefslogtreecommitdiff
path: root/crates/assists/src/handlers
Commit message (Collapse)AuthorAgeFilesLines
* Align config's API with usageAleksey Kladov2021-01-061-2/+1
| | | | The config now is mostly immutable, optimize for that.
* Better target for move moduleAleksey Kladov2021-01-061-18/+30
|
* Rename expr -> tail_exprAleksey Kladov2021-01-059-17/+21
|
* Created an inline-function assist (fixes #6863)Michael-F-Bryan2021-01-041-0/+202
|
* rename exrtract_assignment -> pullAleksey Kladov2021-01-041-27/+27
| | | | | | | Vertical code motions are conventionally called "pull up" / "push down". "extract" is used for introducing new names.
* Support assignment to FieldExpr for extract_assignment assistJesse Bakker2021-01-031-14/+89
|
* Merge #7115bors[bot]2021-01-032-14/+15
|\ | | | | | | | | | | | | | | | | | | | | | | | | 7115: Migrate HasSource::source to return Option r=matklad a=nick96 I've made a start on fixing #6913 based on the provided work plan, migrating `HasSource::source` to return an `Option`. The simple cases are migrated but there are a few that I'm unsure exactly how they should be handled: - Logging the processing of functions in `AnalysisStatsCmd::run`: In verbose mode it includes the path to the module containing the function and the syntax range. I've handled this with an if-let but would it be better to blow up here with `expect`? I'm not 100% on the code paths but if we're processing a function definition then the source should exist. I've handled `source()` in all code paths as `None` being a valid return value but are there some cases where we should just blow up? Also, all I've done is bubble up the returned `None`s, there may be some places where we can recover and still provide something. Co-authored-by: Nick Spain <[email protected]> Co-authored-by: Nick Spain <[email protected]>
| * Handle missing source in target_data_for_defNick Spain2021-01-021-13/+12
| |
| * Go back to use of source_old() in offset_target_and_file_id as it's not as ↵Nick Spain2021-01-021-1/+2
| | | | | | | | simple as I thought
| * source_old -> source for cases that can be handled by simple bubblingNick Spain2021-01-022-5/+3
| |
| * Mark HasSource::source_old as deprecated but allow at all call sitesNick Spain2021-01-022-0/+3
| |
| * HasSource::source -> HasSource::source_oldNick Spain2021-01-022-3/+3
| | | | | | | | To start migrating HasSource::source to return an Option.
* | Add support for MatchExpr to extract_assigment assistJesse Bakker2021-01-021-7/+94
| |
* | Add extract-assignment assistJesse Bakker2021-01-021-0/+238
|/
* Avoid a couple of allocationsLaurențiu Nicola2020-12-292-16/+17
|
* Merge #7038bors[bot]2020-12-251-7/+9
|\ | | | | | | | | | | | | | | 7038: Fix type typo in add_missing_impl_members doc r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * Fix type typo in add_missing_impl_members docLukas Wirth2020-12-251-7/+9
| |
* | Don't think that /submod.rs is /mod.rsAleksey Kladov2020-12-231-4/+4
| |
* | Improve extract_module_to_file assistAleksey Kladov2020-12-221-103/+66
|/ | | | | | | * simplify code * correctly handle crate roots and mod.rs files (nested inline modules are still mishandled) * make sure that new text contains a trailing newline
* Merge #6746bors[bot]2020-12-221-0/+170
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6746: Feature/add assist extract module to file r=matklad a=sasurau4 Fix #6522 ## Screenshot <img src="https://user-images.githubusercontent.com/13580199/102748269-33a44300-43a5-11eb-9e37-f5fcb8e62f73.gif" width=600 /> ## TODO - [x] Remove all TODO comment - [x] Pass the doc test Co-authored-by: Daiki Ihara <[email protected]>
| * Add extract_module_to_file assistDaiki Ihara2020-12-211-0/+170
| |
* | Delete related whitespace when removing unused paramRüdiger Herrmann2020-12-211-7/+74
| | | | | | | | | | | | | | Include adjacent whitespace in the text edits to remove the parameter declaration and its occurences in calling code. https://github.com/rust-analyzer/rust-analyzer/issues/6663
* | Remove parentheses when inverting `!(cond)`Jesse Bakker2020-12-211-0/+9
|/
* Align code_model name with ungrammarAleksey Kladov2020-12-203-6/+6
|
* Minor, cleanup APIAleksey Kladov2020-12-181-1/+1
|
* Merge #6896bors[bot]2020-12-163-14/+11
|\ | | | | | | | | | | | | | | | | | | | | | | 6896: Node-ify lifetimes r=jonas-schievink a=Veykril Let's see if this passes the tests 🤞 Depends on https://github.com/rust-analyzer/ungrammar/pull/15 Co-authored-by: Jonas Schievink <[email protected]> Co-authored-by: Jonas Schievink <[email protected]> Co-authored-by: Lukas Wirth <[email protected]>
| * Node-ify lifetimesLukas Wirth2020-12-163-14/+11
| |
* | Merge #6861bors[bot]2020-12-161-0/+175
|\ \ | | | | | | | | | | | | | | | | | | | | | 6861: generate default implementation for an enum from an enum variant #6860 r=matklad a=bnjjj close #6860 Co-authored-by: Benjamin Coenen <[email protected]>
| * | generate default implementation for an enum from an enum variant #6860Benjamin Coenen2020-12-151-4/+8
| | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | generate default implementation for an enum from an enum variant #6860Benjamin Coenen2020-12-151-22/+22
| | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | generate default implementation for an enum from an enum variant #6860Benjamin Coenen2020-12-141-0/+171
| | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* | | Merge #6894bors[bot]2020-12-161-0/+9
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | 6894: Parenthesize composite if condition before inverting in invert-if assist r=matklad a=Jesse-Bakker Fixes #6867 Co-authored-by: Jesse Bakker <[email protected]>
| * | Parenthesize composite if condition before inverting in invert-if assistJesse Bakker2020-12-151-0/+9
| |/
* / Use standard test styleAleksey Kladov2020-12-151-62/+67
|/
* Merge #6845bors[bot]2020-12-121-0/+25
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 6845: Don't HirDisplay unknown types when displaying for source r=Veykril a=Veykril Was wondering why the add missing impl assist didn't do anything here: ![Code_JCA1Qo0V9P](https://user-images.githubusercontent.com/3757771/101990300-7af44a80-3ca6-11eb-8431-e5eb4de4e78c.png) Turns out me forgetting to set the Index::Idx type in the trait causes RA to panic due to it trying to to create an unparsable type in the `make` module. Now we get this instead which imo is definitely better to have. ![Code_MUFPJUCULY](https://user-images.githubusercontent.com/3757771/101990347-c9094e00-3ca6-11eb-9c6a-146bddf64b7c.png) Co-authored-by: Lukas Wirth <[email protected]>
| * Don't HirDisplay unknown types when displaying for sourceLukas Wirth2020-12-121-0/+25
| |
* | Remove some redundant allocationsJeremy Kolb2020-12-122-2/+2
|/
* Normalize spelling to American EnglishAleksey Kladov2020-12-101-3/+3
|
* Add replace_match_with_if_let assistLukas Wirth2020-12-054-3/+279
|
* Fix use merging not using the first path segmentLukas Wirth2020-11-301-1/+1
|
* Minor cleanupAleksey Kladov2020-11-301-14/+9
|
* Move the helpers into ide_dbKirill Bulatov2020-11-288-11/+11
|
* Rustdocs fixesKirill Bulatov2020-11-271-1/+1
|
* Extract the import code into the shared moduleKirill Bulatov2020-11-278-27/+26
|
* Merge #6586bors[bot]2020-11-271-8/+16
|\ | | | | | | | | | | | | | | 6586: Don't call a closure a function in the infer_function_return_type assist label r=lnicola a=Veykril `Add this function's return type` becomes `Add this closure's return type` for closures. This makes it more obvious that we are indeed planning on modifying the closure and not its containing function. Co-authored-by: Lukas Wirth <[email protected]>
| * Don't call a closure function in infer_function_return_type labelLukas Wirth2020-11-171-8/+16
| |
* | Avoid string allocations in ignore_testLaurențiu Nicola2020-11-241-1/+1
| |
* | add 'Re-enable this test' assistJakob Hellermann2020-11-231-7/+76
| |
* | Don't wrap parens around expr in remove_dbg assist if its in conditionsLukas Wirth2020-11-201-7/+64
| |
* | Merge #6553bors[bot]2020-11-174-17/+19
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6553: Auto imports in completion r=matklad a=SomeoneToIgnore ![completion](https://user-images.githubusercontent.com/2690773/99155339-ae4fb380-26bf-11eb-805a-655b1706ce70.gif) Closes https://github.com/rust-analyzer/rust-analyzer/issues/1062 but does not handle the completion order, since it's a separate task for https://github.com/rust-analyzer/rust-analyzer/issues/4922 , https://github.com/rust-analyzer/rust-analyzer/issues/4922 and maybe something else. 2 quirks in the current implementation: * traits are not auto imported during method completion If I understand the current situation right, we cannot search for traits by a **part** of a method name, we need a full name with correct case to get a trait for it. * VSCode (?) autocompletion is not as rigid as in Intellij Rust as you can notice on the animation. Intellij is able to refresh the completions on every new symbol added, yet VS Code does not query the completions on every symbol for me. With a few debug prints placed in RA, I've observed the following behaviour: after the first set of completion suggestions is received, next symbol input does not trigger a server request, if the completions contain this symbol. When more symbols added, the existing completion suggestions are filtered out until none are left and only then, on the next symbol it queries for completions. It seems like the only alternative to get an updated set of results is to manually retrigger it with Esc and Ctrl + Space. Despite the eerie latter bullet, the completion seems to work pretty fine and fast nontheless, but if you have any ideas on how to make it more smooth, I'll gladly try it out. Co-authored-by: Kirill Bulatov <[email protected]>