aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/handlers/fill_match_arms.rs
Commit message (Collapse)AuthorAgeFilesLines
* Refactor assists API to be more convenient for adding new assistsAleksey Kladov2020-05-071-3/+3
| | | | It now duplicates completion API in its shape.
* Move target to AssistLabelAleksey Kladov2020-05-061-3/+2
| | | | | Target is used for assists sorting, so we need it before we compute the action.
* Merge assits::test_helpers and testsAleksey Kladov2020-05-061-1/+1
|
* When adding match arm, don't let the floating commaAleksey Kladov2020-03-311-5/+25
|
* Use IntoIterAleksey Kladov2020-03-301-2/+1
|
* Remove "TODO" in comment in testMatthew Hall2020-03-281-4/+4
|
* Append new match arms rather than replacing all of themMatthew Hall2020-03-281-5/+68
| | | | This means we now retain comments when filling in match arms.
* Merge #3700bors[bot]2020-03-241-45/+45
|\ | | | | | | | | | | | | | | | | | | 3700: fill match arms with empty block rather than unit tuple r=matklad a=JoshMcguigan As requested by @Veetaha in #3689 and #3687, this modifies the fill match arms assist to create match arms as an empty block `{}` rather than a unit tuple `()`. In one test I left one of the pre-existing match arms as a unit tuple, and added a body to another match arm, to demonstrate that the contents of existing match arms persist. Co-authored-by: Josh Mcguigan <[email protected]>
| * fill match arms with empty block rather than unit tupleJosh Mcguigan2020-03-241-45/+45
| |
* | Use more generic public apiKirill Bulatov2020-03-241-2/+1
| |
* | Auto import macrosKirill Bulatov2020-03-241-2/+3
|/
* review commentsJosh Mcguigan2020-03-231-16/+108
|
* implement fill match arm assist for tuple of enumsJosh Mcguigan2020-03-231-14/+149
|
* Address nits and suggestions.Steffen Lyngbaek2020-03-191-140/+32
| | | | | Simplify the logic a lot by removing the check for a placeholder pat. This means the auto-fill no longer returns a compile-able value.
* Don't show assist if all arms are presentSteffen Lyngbaek2020-03-191-33/+37
|
* 'Fill match arms' should work with existing match armsSteffen Lyngbaek2020-03-191-25/+281
| | | | | | | | | | | | | | | | | | | | | | | | | | | Addresses #3039 This essentially adds missing match arms. The algorithm for this can get complicated rather quickly so bail in certain conditions and rely on a PlaceholderPat. The algorighm works as such: - Iterate through the Enum Def Variants - Attempt to see if the variant already exists as a match arm - If yes, skip the enum variant. If no, include it. - If it becomes complicated, rather than exhaustively deal with every branch, mark it as a "partial match" and simply include the placeholder. Conditions for "complication": - The match arm contains a match guard - Any kind of nested destrucuring Order the resulting merged match branches as such: 1. Provided match arms 2. Missing enum variant branch arms 3. End with Placeholder if required - Add extra tests
* Cleanup importsAleksey Kladov2020-03-191-1/+1
|
* Don't use generic DB where a concrete one will doAleksey Kladov2020-03-131-6/+2
|
* Refactor primary IDE APIAleksey Kladov2020-02-261-15/+8
| | | | | | | | | | This introduces the new type -- Semantics. Semantics maps SyntaxNodes to various semantic info, such as type, name resolution or macro expansions. To do so, Semantics maintains a HashMap which maps every node it saw to the file from which the node originated. This is enough to get all the necessary hir bits just from syntax.
* Add or- and parenthesized-patternsMatthew Jasper2020-02-091-3/+3
|
* Name assist handlersAleksey Kladov2020-02-071-0/+290