aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* rename generate_enum_match_method file to match assist nameDomantas Jadenkus2021-02-272-2/+2
|
* move into_ and as_ generation to a separate fileDomantas Jadenkus2021-02-274-402/+340
|
* cargo fmtDomantas Jadenkus2021-02-271-35/+20
|
* add generate_enum_as_method assistDomantas Jadenkus2021-02-273-0/+154
|
* deduplicate someDomantas Jadenkus2021-02-271-37/+28
|
* add generate_enum_into_method assistDomantas Jadenkus2021-02-273-20/+275
|
* make generate_enum_is_method work on any variantsDomantas Jadenkus2021-02-271-18/+95
|
* rename existing assist to generate_enum_is_methodDomantas Jadenkus2021-02-273-11/+11
|
* Disable "Flip comma" assist inside a macro callDenys Zadorozhnyi2021-02-261-2/+24
|
* docs(ide_assists): Change importMergeBehaviour to importMergeBehaviorSanchith Hegde2021-02-261-3/+3
|
* bump crateskjeremy2021-02-251-1/+1
|
* Merge #7741bors[bot]2021-02-244-0/+327
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7741: Add convert_for_to_iter_for_each assist r=mattyhall a=mattyhall Implements one direction of #7681 I wonder if this tries to guess too much at the right thing here. A common pattern is: ```rust let col = vec![1, 2, 3]; for v in &mut col { *v *= 2; } // equivalent to: col.iter_mut().for_each(|v| *v *= 2); ``` I've tried to detect this case by checking if the expression after the `in` is a (mutable) reference and if not inserting iter()/iter_mut(). This is just a convention used in the stdlib however, so could sometimes be wrong. I'd be happy to make an improvement for this, but not sure what would be best. A few options spring to mind: 1. Only allow this for types that are known to have iter/iter_mut (ie stdlib types) 2. Try to check if iter/iter_mut exists and they return the right iterator type 3. Don't try to do this and just add `.into_iter()` to whatever is after `in` Co-authored-by: Matt Hall <[email protected]>
| * Address further review commentsMatt Hall2021-02-242-51/+36
| | | | | | | | | | | | * Use known names for iter/iter_mut method (simplifies checking if the method exists * Extract code to check assist with fixtures to function
| * Address review commentsMatt Hall2021-02-231-33/+125
| | | | | | | | | | * Move code to build replacement into closure * Look for iter/iter_mut methods on types behind reference
| * Add convert_for_to_iter_for_each assistMatt Hall2021-02-233-0/+250
| |
* | Add tests for apply_demorganLukas Wirth2021-02-243-18/+83
| |
* | De Morgan's Law assist now correctly inverts <, <=, >, >=.lbrande2021-02-247-13/+68
| |
* | De Morgan's Law assist now correctly parenthesizes binary expressions.lbrande2021-02-243-11/+7
| |
* | Pickup ConstReference patterns in FindUsagesLukas Wirth2021-02-232-4/+36
|/
* is_visible_from_def_map: handle block expressionsJonas Schievink2021-02-233-9/+37
|
* Add testJonas Schievink2021-02-231-0/+28
|
* 7526: Renamed create ssr to ide_ssr.Chetan Khilosiya2021-02-2215-8/+9
|
* 7526: Rename crate assists to ide_assists.Chetan Khilosiya2021-02-2271-6/+6
|
* Add isize to the list of suffixed integers in typed_integerJonas Bushart2021-02-221-2/+1
| | | | | | The missing `isize` in `typed_integers` seems to just be an oversight. Might fix: #7751
* Make more common assist easier to uesAleksey Kladov2021-02-224-42/+87
|
* Add test from #7273Laurențiu Nicola2021-02-211-0/+45
|
* Bump depsLaurențiu Nicola2021-02-212-4/+4
|
* Stop mixing Result and Option with ? in inline_local_variableScott McMurray2021-02-201-4/+4
| | | | Depending on the discussion in RFC#3058 this might not end up being necessary, but I think it's a reasonable change regardless.
* Merge #7732bors[bot]2021-02-206-37/+45
|\ | | | | | | | | | | | | | | | | | | | | | | 7732: Don't lower TypeBound::Lifetime as GenericPredicate::Error r=flodiebold a=Veykril Basically we just discard the typebound for now instead when lowering to `GenericPredicate`. I think this shouldn't have any other side effects? Fixes #7683(hopefully for real this time) I also played around with introducing `GenericPredicate::LifetimeOutlives` and `GenericPredicate::TypeOutlives`(see https://github.com/Veykril/rust-analyzer/commit/b9d69048451a5f2e9c5a72c800369bbeef36fdcf) but that won't fix this issue(at least not for now) due to lifetime predicate mismatches when resolving methods so I figure this is a good way to fix it for now. Co-authored-by: Lukas Wirth <[email protected]>
| * Don't write trailing whitespace when formatting empty GenericPredicatesLukas Wirth2021-02-203-14/+24
| |
| * Don't lower TypeBound::Lifetime as GenericPredicate::ErrorLukas Wirth2021-02-204-25/+23
| |
* | Update testsJeremy Kolb2021-02-2010-0/+104
| |
* | Use format_to! to make logic a bit nicerMatt Hall2021-02-201-6/+8
| |
* | Fix #7712 retain visibility extracting mod to fileMatt Hall2021-02-201-2/+43
| |
* | Remove documentation of obsolete extend selection commandLaurențiu Nicola2021-02-201-3/+5
| |
* | Merge #7726bors[bot]2021-02-201-0/+3
|\ \ | | | | | | | | | | | | | | | | | | | | | 7726: feat(completion): add doc(hidden) completion for attributes r=lnicola a=bnjjj Co-authored-by: Benjamin Coenen <[email protected]>
| * | feat(completion): add doc(hidden) completion for attributesBenjamin Coenen2021-02-201-0/+3
| |/ | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* / fix(assist): display where predicates when we want to generate implBenjamin Coenen2021-02-202-1/+33
|/ | | | Signed-off-by: Benjamin Coenen <[email protected]>
* Consider import prefix config settings during flyimportsKirill Bulatov2021-02-203-4/+94
|
* Add testLaurențiu Nicola2021-02-201-0/+24
|
* Fix incorrect missing field diagnostic with box patternsLaurențiu Nicola2021-02-201-4/+13
|
* rename completion -> ide_completionAleksey Kladov2021-02-1734-6/+6
| | | | We don't have completion-related PRs in flight, so lets do it
* Revert "Replace usage of ast::NameOrNameRef with ast::NameLike"Lukas Wirth2021-02-173-28/+26
| | | | This reverts commit e1dbf43cf85f84c3a7e40f9731fc1f7ac96f8979.
* Merge #7699bors[bot]2021-02-176-115/+118
|\ | | | | | | | | | | | | | | 7699: Implement ast::AstNode for NameLike and move it to node_ext r=matklad a=Veykril With this `search`(and 2 other modules) don't necessarily go through 3 calls of `find_node_at_offset_with_descend` to find the correct node. Also makes the code that searches for NameLikes a bit easier on the eyes imo, though that can be fixed with just a helper function as well so its not that relevant. Co-authored-by: Lukas Wirth <[email protected]>
| * Replace usage of ast::NameOrNameRef with ast::NameLikeLukas Wirth2021-02-173-26/+28
| |
| * Implement ast::AstNode for NameLike and move it to node_extLukas Wirth2021-02-165-101/+102
| |
* | Merge #7705bors[bot]2021-02-171-2/+38
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 7705: Show hover info of the definition of ConstReference patterns instead of its type r=Veykril a=Veykril Closes #7671 bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | Show hover info of the definition of ConstReference patterns instead of its typeLukas Wirth2021-02-171-2/+38
| |/
* | Avoid transmitting unchanged diagnosticsMichał Muskała2021-02-171-0/+11
| | | | | | | | | | | | | | | | | | | | Reading through the code for diagnostics and observing debug logs, I noticed that diagnostics are transmitted after every change for every opened file, even if they haven't changed (especially visible for files with no diagnostics). This change avoids marking files as "changed" if diagnostics are the same to what was already sent before. This will only work if diagnostics are always produced in the same order, but from my limited testing it seems this is the case.
* | Merge #7703bors[bot]2021-02-171-16/+22
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7703: Allow comments between newlines in chaining hints r=Veykril a=unratito Currently, chaining hints are not generated if there are comments between newlines, which is a very common pattern: ```rust let vec = (0..10) // Multiply by 2 .map(|x| x * 2) // Add 3 .map(|x| x + 3) .collect::<Vec<i32>>(); ``` Besides, it seems a bit weird that this piece of code generates a chaining hint: ```rust let vec = (0..10) .collect::<Vec<i32>>(); ``` But this one doesn't: ```rust let vec = (0..10) // This is a comment .collect::<Vec<i32>>(); ``` Co-authored-by: Paco Soberón <[email protected]>