aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_assists/src/lib.rs
Commit message (Collapse)AuthorAgeFilesLines
* Check for eprintln on CIAleksey Kladov2020-04-061-0/+5
|
* Merge #3746bors[bot]2020-04-031-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3746: Add create_function assist r=flodiebold a=TimoFreiberg The function part of #3639, creating methods will come later - [X] Function arguments - [X] Function call arguments - [x] Method call arguments - [x] Literal arguments - [x] Variable reference arguments - [X] Migrate to `ast::make` API Done, but there are some ugly spots. Issues to handle in another PR: - function reference arguments: Their type isn't printed properly right now. The "insert explicit type" assist has the same issue and this is probably a relatively rare usecase. - generating proper names for all kinds of argument expressions (if, loop, ...?) Without this, it's totally possible for the assist to generate invalid argument names. I think the assist it's already helpful enough to be shipped as it is, at least for me the main usecase involves passing in named references. Besides, the Rust tooling ecosystem is immature enough that some janky behaviour in a new assist probably won't scare anyone off. - select the generated placeholder body so it's a bit easier to overwrite it - create method (`self.foo<|>(..)` or `some_foo.foo<|>(..)`) instead of create_function. The main difference would be finding (or creating) the impl block and inserting the `self` argument correctly - more specific default arg names for literals. So far, every generated argument whose name can't be taken from the call site is called `arg` (with a number suffix if necessary). - creating functions in another module of the same crate. E.g. when typing `some_mod::foo<|>(...)` when in `lib.rs`, I'd want to have `foo` generated in `some_mod.rs` and jump there. Issues: the mod could exist in `some_mod.rs`, in `lib.rs` as `mod some_mod`, or inside another mod but be imported via `use other_mod::some_mod`. - refer to arguments of the generated function with a qualified path if the types aren't imported yet (alternative: run autoimport. i think starting with a qualified path is cleaner and there's already an assist to replace a qualified path with an import and an unqualified path) - add type arguments of the arguments to the generated function - Autocomplete functions with information from unresolved calls (see https://github.com/rust-analyzer/rust-analyzer/pull/3746#issuecomment-605281323) Issues: see https://github.com/rust-analyzer/rust-analyzer/pull/3746#issuecomment-605282542. The unresolved call could be anywhere. But just offering this autocompletion for unresolved calls in the same module would already be cool. Co-authored-by: Timo Freiberg <[email protected]>
| * Add create_function assistTimo Freiberg2020-04-011-0/+2
| |
* | Add impl From for enum variant assistMatthew Hall2020-04-011-0/+2
|/ | | | | | Basically adds a From impl for tuple enum variants with one field. Added to cover the fairly common case of implementing your own Error that can be created from another one, although other use cases exist.
* Merge #3742bors[bot]2020-03-271-0/+2
|\ | | | | | | | | | | | | | | | | | | | | 3742: Replace if with if-let r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Replace if with if-letAleksey Kladov2020-03-271-0/+2
| |
* | Assist: replace unwrap with matchUnreal Hoang2020-03-261-0/+2
|/
* Add a testKirill Bulatov2020-03-241-9/+20
|
* Merge imports assistAleksey Kladov2020-03-181-0/+2
| | | | Work towards #2220
* Reduce visibilityAleksey Kladov2020-03-181-28/+28
|
* Remove some TextUnit->usize escapeesCAD972020-03-131-1/+1
|
* Highlight assist testsAleksey Kladov2020-03-031-2/+6
|
* Fix applicability of inline localAleksey Kladov2020-03-031-6/+6
|
* Move insert_use util to utilsAleksey Kladov2020-02-281-1/+0
|
* Refactor primary IDE APIAleksey Kladov2020-02-261-3/+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.
* Remove code duplication in testsAleksey Kladov2020-02-261-65/+49
|
* Add `remove_mut` assistAleksey Kladov2020-02-191-0/+2
|
* CleanupShotaro Yamada2020-02-191-1/+1
|
* Run cargo +nightly fix --clippy -Z unstable-optionsKirill Bulatov2020-02-181-2/+2
|
* Added a utility function that can be used to determine the missing impl items.Kevin DeLorey2020-02-091-1/+1
|
* Simplify Assists interfaceAleksey Kladov2020-02-091-49/+15
| | | | | Instead of building a physical tree structure, just "tag" related assists with the same group
* Rename add import assistKirill Bulatov2020-02-071-3/+3
|
* Introduce assists utilsAleksey Kladov2020-02-071-0/+1
|
* Name assist handlersAleksey Kladov2020-02-071-32/+14
|
* CleanupAleksey Kladov2020-02-071-0/+8
|
* CleanupAleksey Kladov2020-02-071-3/+4
|
* SimplifyAleksey Kladov2020-02-071-28/+27
|
* Minor renameAleksey Kladov2020-02-061-5/+5
|
* Fix testsAleksey Kladov2020-02-061-12/+23
|
* Mostly remove ImoportLocator infraAleksey Kladov2020-02-061-152/+6
|
* Assists are not genericAleksey Kladov2020-02-061-16/+11
|
* Remove assists TestDBAleksey Kladov2020-02-061-2/+0
|
* Start switching assists to a root databaseAleksey Kladov2020-02-061-33/+28
|
* Make assists use ImportsLocator directlyAleksey Kladov2020-02-061-9/+9
|
* Code review fixesKirill Bulatov2020-01-271-2/+3
|
* Adjust the testsKirill Bulatov2020-01-261-6/+60
|
* Have a better trait interfaceKirill Bulatov2020-01-261-7/+3
|
* Remove unnecessary lifetime parameterKirill Bulatov2020-01-261-6/+6
|
* Initial auto import action implementationKirill Bulatov2020-01-261-13/+113
|
* fix typo in 'inline_local_variable'TomasKralCZ2020-01-191-1/+1
|
* itertools::Either -> either::EitherKirill Bulatov2020-01-151-1/+1
|
* Apply the api design suggestionsKirill Bulatov2020-01-151-13/+27
|
* Another attempt to add multiple editsKirill Bulatov2020-01-151-2/+5
|
* Fix casingJeremy Kolb2020-01-141-4/+7
|
* Fix ordering problem between qualifying paths and substituting paramsFlorian Diebold2020-01-111-0/+1
|
* assists: add assist for custom implementation for derived traitPaulo Lieuthier2019-11-281-0/+2
|
* initial invert_ifbravomikekilo2019-11-211-0/+2
|
* Add add_new assistWesley Norris2019-11-091-0/+2
| | | | | | | Adds a new assist to autogenerate a new fn based on the selected struct, excluding tuple structs and unions. The fn will inherit the same visibility as the struct and the assist will attempt to reuse any existing impl blocks that exist at the same level of struct.
* Restore assists testsAleksey Kladov2019-11-041-3/+5
|
* Rename MockDatabase -> TestDBAleksey Kladov2019-11-041-16/+16
| | | | Actually working rename is sooo useful!