aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src/completion/complete_path.rs
Commit message (Collapse)AuthorAgeFilesLines
* Fix completion of HashMap::newFlorian Diebold2020-03-131-0/+32
| | | | | | | | | | | | | | | The `ty` function in code_model returned the type with placeholders for type parameters. That's nice for printing, but not good for completion, because placeholders won't unify with anything else: So the type we got for `HashMap` was `HashMap<K, V, T>`, which doesn't unify with `HashMap<?, ?, RandomState>`, so the `new` method wasn't shown. Now we instead return `HashMap<{unknown}, {unknown}, {unknown}>`, which does unify with the impl type. Maybe we should just expose this properly as variables though, i.e. we'd return something like `exists<type, type, type> HashMap<?0, ?1, ?2>` (in Chalk notation). It'll make the API more complicated, but harder to misuse. (And it would handle cases like `type TypeAlias<T> = HashMap<T, T>` more correctly.)
* Restore cargo-fmt gatingAleksey Kladov2020-03-131-1/+0
|
* fix issue 3444Josh Mcguigan2020-03-131-0/+39
|
* Introduce completion test utilsAleksey Kladov2020-03-111-1/+1
|
* Merge #3513bors[bot]2020-03-091-2/+35
|\ | | | | | | | | | | | | | | | | | | | | 3513: Completion in macros r=matklad a=flodiebold I experimented a bit with completion in macros. It's kind of working, but there are a lot of rough edges. - I'm trying to expand the macro call with the inserted fake token. This requires some hacky additions on the HIR level to be able to do "hypothetical" expansions. There should probably be a nicer API for this, if we want to do it this way. I'm not sure whether it's worth it, because we still can't do a lot if the original macro call didn't expand in nearly the same way. E.g. if we have something like `println!("", x<|>)` the expansions will look the same and everything is fine; but in that case we could maybe have achieved the same result in a simpler way. If we have something like `m!(<|>)` where `m!()` doesn't even expand or expands to something very different, we don't really know what to do anyway. - Relatedly, there are a lot of cases where this doesn't work because either the original call or the hypothetical call doesn't expand. E.g. if we have `m!(x.<|>)` the original token tree doesn't parse as an expression; if we have `m!(match x { <|> })` the hypothetical token tree doesn't parse. It would be nice if we could have better error recovery in these cases. Co-authored-by: Florian Diebold <[email protected]>
| * Fix CompletionContext module field (by removing it)Florian Diebold2020-03-071-1/+1
| | | | | | | | | | Two uses only needed the crate; one was wrong and should use the module from the scope instead.
| * Add more testsFlorian Diebold2020-03-071-0/+33
| |
| * Try to complete within macrosFlorian Diebold2020-03-071-1/+1
| |
* | Handle visibility for assoc item path completion as wellFlorian Diebold2020-03-081-2/+65
| |
* | Handle visibility for path completion (not in all cases yet)Florian Diebold2020-03-081-4/+40
|/
* Fix completion snippet for reexported functionsFlorian Diebold2020-03-031-0/+51
| | | | Fixes #3356.
* Refactor primary IDE APIAleksey Kladov2020-02-261-2/+2
| | | | | | | | | | 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.
* Refactor how builtins are resolvedFlorian Diebold2020-02-211-6/+7
| | | | This fixes autocompletion suggesting e.g. self::usize.
* Move Type API to typeAleksey Kladov2020-01-141-12/+14
|
* Some clippy lintskjeremy2020-01-131-1/+1
|
* Remove imports from hirAleksey Kladov2019-12-211-10/+8
|
* Revert "Merge #2629"Aleksey Kladov2019-12-211-7/+10
| | | | | This reverts commit cdc9d682b066b110e0a44e5f8f1c574b38c16ba9, reversing changes made to 90ef070db3dce0a7acb9cd11d0b0d72de13c9d79.
* Remove hir for importsAleksey Kladov2019-12-211-10/+7
|
* Replace `ra_hir_expand::either` with crateice10002019-12-031-2/+3
|
* rename ra_ide_api -> ra_ideAleksey Kladov2019-11-271-0/+785