aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide
Commit message (Collapse)AuthorAgeFilesLines
* Generalise syntax rewriting infrastructure to allow removal of nodesAleksey Kladov2020-03-241-6/+6
|
* Add testEdwin Cheng2020-03-221-0/+57
|
* Improve find_all_ref work inside macroEdwin Cheng2020-03-221-9/+23
|
* Remove constSteffen Lyngbaek2020-03-193-6/+48
| | | | | - Add test for @ matching - Address comments
* Fixes to more accurately give complete_scope completionsSteffen Lyngbaek2020-03-193-15/+38
| | | | | | | - Exclude const, static, functions form is_pat_binding_and_path (there might be more?) - Add a check to filter out Record Fields - Fix tests
* - Exclude Local Scope for BindPatsSteffen Lyngbaek2020-03-192-58/+16
| | | | | - Exclude BindPats with @ or ref - Remove outdated test and add one testing for ref
* Completition for type name? #3418Steffen Lyngbaek2020-03-192-3/+120
| | | | | | | | Iterate through TupleStructPat's until a MatchArm if one exists. Store in a new is_pat_bind_and_path bool and allow the `complete_scope` to find matches. Added some tests to ensure it works in simple and nested cases.
* Check that no file contains trailing wsAleksey Kladov2020-03-171-4/+4
| | | | rustfmt allows trailing spaces in string literals unfortunately.
* Fix typophynalle2020-03-171-2/+2
|
* Add test, remove printlnsFlorian Diebold2020-03-161-0/+53
|
* Get tests workingFlorian Diebold2020-03-162-2/+13
|
* wipFlorian Diebold2020-03-162-4/+13
|
* Attempt to implement ranking of rules when none matches perfectly (wip)Florian Diebold2020-03-161-1/+38
|
* Make MBE expansion more resilient (WIP)Florian Diebold2020-03-162-1/+38
|
* Remove dat fixmeVeetaha2020-03-161-1/+1
|
* Merge #3603bors[bot]2020-03-162-2/+2
|\ | | | | | | | | | | | | | | 3603: Fix crate display name dashes r=matklad a=SomeoneToIgnore A follow-up of https://github.com/rust-analyzer/rust-analyzer/pull/3602#discussion_r392733525 Co-authored-by: Kirill Bulatov <[email protected]>
| * Use Display instead of a custom methodKirill Bulatov2020-03-161-16/+11
| |
| * Fix crate display name dashesKirill Bulatov2020-03-162-12/+17
| |
* | Merge #3540bors[bot]2020-03-162-9/+30
|\ \ | |/ |/| | | | | | | | | | | 3540: Swtches to rust SSR query check r=matklad a=mikhail-m1 related to #3186 Co-authored-by: Mikhail Modin <[email protected]>
| * Swtches to rust SSR query checkMikhail Modin2020-03-152-9/+30
| |
* | Merge #3602bors[bot]2020-03-162-66/+33
|\ \ | | | | | | | | | | | | | | | | | | | | | 3602: ra_ide: remove dead code, migrate from readonly String -> &str r=matklad a=Veetaha https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/hover/near/190671355 Co-authored-by: veetaha <[email protected]>
| * | ra_ide: refactor readonly String -> &strveetaha2020-03-162-25/+28
| | |
| * | ra_ide: remove dead code in HoverResultveetaha2020-03-151-41/+5
| | |
* | | Merge #3591bors[bot]2020-03-151-0/+15
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3591: Support local macro_rules r=matklad a=edwin0cheng This PR implement local `macro_rules` in function body, by adding following things: 1. While lowering, add a `MacroDefId` in body's `ItemScope` as a textual legacy macro. 2. Make `Expander::enter_expand` search with given `ItemScope`. 3. Make `Resolver::resolve_path_as_macro` search with `LocalItemScope`. Fix #2181 Co-authored-by: Edwin Cheng <[email protected]>
| * | | Support local macro_rulesEdwin Cheng2020-03-141-0/+15
| | | |
* | | | Fix completion of trait itemsFlorian Diebold2020-03-141-0/+32
| |/ / |/| | | | | | | | Trait items should be public by default.
* | | Simplify testsAleksey Kladov2020-03-131-20/+20
| | |
* | | Don't use generic DB where a concrete one will doAleksey Kladov2020-03-131-3/+6
|/ /
* | Fix completion of HashMap::newFlorian Diebold2020-03-134-4/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| |
* | Merge #3553bors[bot]2020-03-131-0/+39
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3553: Completions do not show for function with same name as mod r=matklad a=JoshMcguigan fixes #3444 I've added a test case in `crates/ra_ide/src/completion/complete_path.rs` which verifies the described behavior in #3444. Digging in, I found that [the module scope iterator](https://github.com/JoshMcguigan/rust-analyzer/blob/ba62d8bd1ce8a68b8d21aaf89ae1ea6787f18366/crates/ra_ide/src/completion/complete_path.rs#L22) only provides the module `z`, and does not provide the function `z` (although if I name the function something else then it does show up here). I thought perhaps the name wasn't being properly resolved, but I added a test in `crates/ra_hir_def/src/nameres/tests.rs` which seems to suggest that it is? I've tried to figure out how to bridge the gap between these two tests (one passing, one failing) to see where the function `z` is being dropped, but to this point I haven't been able to track it down. Any pointers on where I might look for this? Co-authored-by: Josh Mcguigan <[email protected]>
| * | fix issue 3444Josh Mcguigan2020-03-131-0/+39
| | |
* | | Merge #3572bors[bot]2020-03-131-0/+34
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3572: Add test for completion of unresolved items r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Add test for completion of unresolved itemsAleksey Kladov2020-03-131-0/+34
| | | |
* | | | Remove some TextUnit->usize escapeesCAD972020-03-131-6/+10
|/ / /
* | | Fix completion testsAleksey Kladov2020-03-123-0/+12
| | |
* | | Make naming more uniformAleksey Kladov2020-03-123-30/+30
| | |
* | | Merge #3543bors[bot]2020-03-122-21/+98
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3543: Parameter inlay hint separate from variable type inlay? #2876 r=matklad a=slyngbaek Add setting to allow enabling either type inlay hints or parameter inlay hints or both. Group the the max inlay hint length option into the object. - Add a new type for the inlayHint options. - Add tests to ensure the inlays don't happen on the server side Co-authored-by: Steffen Lyngbaek <[email protected]>
| * | | Switch from Vec<InlayKind> to object with propsSteffen Lyngbaek2020-03-121-11/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Instead of a single object type, use several individual nested types to allow toggling from the settings GUI - Remove unused struct definitions - Install and test that the toggles work
| * | | Address Issues from GithubSteffen Lyngbaek2020-03-103-30/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Updated naming of config - Define struct in ra_ide and use remote derive in rust-analyzer/config - Make inlayConfig type more flexible to support more future types - Remove constructor only used in tests
| * | | Parameter inlay hint separate from variable type inlay? #2876Steffen Lyngbaek2020-03-103-19/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add setting to allow enabling either type inlay hints or parameter inlay hints or both. Group the the max inlay hint length option into the object. - Add a new type for the inlayHint options. - Add tests to ensure the inlays don't happen on the server side
* | | | Add test on hoverEdwin Cheng2020-03-111-0/+19
| | | |
* | | | Implement dummy assert macroEdwin Cheng2020-03-111-6/+2
| |/ / |/| |
* | | Continue multiline non-doc comment blocksAleksey Kladov2020-03-111-3/+35
| | |
* | | Split on enter testsAleksey Kladov2020-03-111-15/+28
| | |
* | | Move on enter to a separate moduleAleksey Kladov2020-03-112-154/+177
| | |
* | | Merge #3549bors[bot]2020-03-113-0/+4
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3549: Implement env! macro r=matklad a=edwin0cheng This PR implements `env!` macro by adding following things: 1. Added `additional_outdirs` settings in vscode. (naming to be bikeshed) 2. Added `ExternSourceId` which is a wrapping for SourceRootId but only used in extern sources. It is because `OUT_DIR` is not belonged to any crate and we have to access it behind an `AstDatabase`. 3. This PR does not implement the `OUT_DIR` parsing from `cargo check`. I don't have general design about this, @kiljacken could we reuse some cargo watch code for that ? ~~Block on [#3536]~~ PS: After this PR , we (kind of) completed the `include!(concat!(env!('OUT_DIR'), "foo.rs")` macro call combo. [Exodia Obliterate!](https://www.youtube.com/watch?v=RfqNH3FoGi0) Co-authored-by: Edwin Cheng <[email protected]>
| * | | Add extern sourceEdwin Cheng2020-03-113-0/+4
| | | |
* | | | Merge #3555bors[bot]2020-03-1116-40/+93
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3555: Introduce completion test utils r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | Introduce completion test utilsAleksey Kladov2020-03-1116-48/+49
| | | | |