aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* chalk 0.29.0Jeremy Kolb2020-09-281-3/+3
|
* Merge #6033bors[bot]2020-09-284-29/+201
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | 6033: Make name resolution resolve proc macros instead of relying purely on the build system r=matklad a=jonas-schievink This makes name resolution look at proc-macro declaration attributes like `#[proc_macro_derive]` and defines the right proc macro in the macro namespace, fixing unresolved custom derives like `thiserror::Error` (which can cause false positives, now that we emit diagnostics for unresolved imports). This works even when proc-macro support is turned off, in which case we fall back to a dummy expander that always returns an error. IMO this is the right way to handle at least the name resolution part of proc. macros, while the *expansion* itself should rely on the build system to build and provide the macro DLL. It does mean that they may go out of sync, but we can provide diagnostics if that happens (something like "could not find macro X in crate Y – ensure that all files of crate Y are saved"). I think it is valuable to be able to reason about proc macros even when we can't expand them, since proc macro expansion can break between Rust releases or users might not want to turn it on for performance reasons. It allows us to provide better diagnostics on any proc macro invocation we're not expanding (like a weak warning that informs the user that proc macro support is turned off, or that it has been disabled because the server crashed). Fixes https://github.com/rust-analyzer/rust-analyzer/issues/5763 Co-authored-by: Jonas Schievink <[email protected]>
| * Add more comments about proc macro resolutionJonas Schievink2020-09-281-0/+20
| |
| * Simplify iterator chainJonas Schievink2020-09-281-5/+2
| |
| * Remove incorrect docsJonas Schievink2020-09-181-6/+0
| |
| * Reduce visibility of non-proc-macrosJonas Schievink2020-09-183-0/+85
| | | | | | | | | | proc-macro crates only export proc-macros, but currently other items are also considered public (and show up in completion)
| * Remove obsolete proc macro collection codeJonas Schievink2020-09-181-19/+0
| | | | | | | | The new attribute-based resolution takes care of this
| * Use hir_def to resolve proc macrosJonas Schievink2020-09-183-16/+79
| |
| * Add testJonas Schievink2020-09-181-0/+32
| |
* | Merge #6085bors[bot]2020-09-281-0/+7
|\ \ | | | | | | | | | | | | | | | | | | | | | 6085: Mark unresolved imports diagnostic as experimental r=jonas-schievink a=jonas-schievink It causes a lot of false positives for people. We collected all of the known ones during the last week. Co-authored-by: Jonas Schievink <[email protected]>
| * | Mark unresolved imports diagnostic as experimentalJonas Schievink2020-09-281-0/+7
| | |
* | | Spawn a flycheck instance per workspaceJonas Schievink2020-09-274-21/+46
| | |
* | | Merge #6073bors[bot]2020-09-255-55/+203
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6073: Dont unnecessarily unnest imports r=matklad a=Veykril Fixes #6071 This has the side effect that paths that refer to items inside of the current module get prefixed with `self`. Changing this behavior is unfortunately not straightforward should it be unwanted, though I don't see a problem with this as prefixing imports like this with `self` is what I do personally anyways 😅. You can see what I mean with this in one of the tests which had to be changed in `crates/ssr/src/tests.rs`. There is one test that i still have to look at though, ~~which I by accident pushed with `#[ignore]` on it~~, which is `different_crate_renamed`, for some reason this now doesn't use the crate alias. This also makes me believe that aliases in general will break with this. So maybe this is not as straight forwards as I'd hoped for, but I don't really know how aliases work here. Edit: The failing test should work now Co-authored-by: Lukas Wirth <[email protected]>
| * | | Remove partial import test in insert_useLukas Wirth2020-09-251-10/+0
| | | |
| * | | Don't unnecessarily unnest imports for import insertionLukas Wirth2020-09-254-45/+203
| | | |
* | | | Merge #6076bors[bot]2020-09-252-5/+11
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6076: Update chalk to 0.28.0 r=matklad a=vandenheuvel Co-authored-by: Bram van den Heuvel <[email protected]>
| * | | | Update chalk to 0.28.0Bram van den Heuvel2020-09-252-5/+11
| | | | |
* | | | | Merge #6055bors[bot]2020-09-251-0/+5
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6055: Add ok postfix completion r=matklad a=mullr Wrapping values in `Ok(...)` is so pervasive that it seems reasonable for it to have its own postfix completion. Co-authored-by: Russell Mull <[email protected]>
| * | | | Cargo fmtRussell Mull2020-09-221-9/+2
| | | | |
| * | | | Add ok postfix completionRussell Mull2020-09-221-0/+12
| | | | |
* | | | | Merge #6072bors[bot]2020-09-252-6/+6
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6072: Cleanup unintended unresolved reference in syntax higlighting test r=matklad a=Nashenas88 Fixes the issue brought up here https://github.com/rust-analyzer/rust-analyzer/pull/5957#discussion_r486625707 cc @jonas-schievink Co-authored-by: Paul Daniel Faria <[email protected]>
| * | | | | Cleanup unintended unresolved reference in syntax higlighting testPaul Daniel Faria2020-09-242-6/+6
| | |/ / / | |/| | |
* | | | | Bump smol_str from 0.1.16 to 0.1.17Jean SIMARD2020-09-243-7/+10
| | | | |
* | | | | Merge #6056bors[bot]2020-09-241-0/+12
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6056: Add dbgr postfix completion r=matklad a=lnicola Expanding to `dbg!(&e)`. Co-authored-by: LaurenÈ›iu Nicola <[email protected]>
| * | | | Add dbgr postfix completionLaurențiu Nicola2020-09-221-0/+12
| | | | |
* | | | | Merge #5846bors[bot]2020-09-243-8/+161
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5846: Add references to fn args during completion r=matklad a=adamrk When completing a function call, if there is an argument taken as a ref or mut ref which matches the name and type of a variable in scope, we will insert a `&` or `&mut` when filling in the function arguments. This addresses https://github.com/rust-analyzer/rust-analyzer/issues/5449. E.g. ```rust fn foo(x: &i32) {} fn main() { let x = 5; foo # completing foo here generates `foo(&x)` now instead of `foo(x)` } ``` Co-authored-by: adamrk <[email protected]>
| * | | | | Make unify private againadamrk2020-09-022-2/+2
| | | | | |
| * | | | | Trim mut keyword in fn completionadamrk2020-09-021-1/+22
| | | | | |
| * | | | | Remove exposing unificationadamrk2020-09-024-23/+1
| | | | | |
| * | | | | Collect locals in contextadamrk2020-09-022-12/+15
| | | | | |
| * | | | | Add back Param structadamrk2020-09-012-3/+13
| | | | | |
| * | | | | Add references to fn args during completionadamrk2020-08-305-10/+151
| | | | | |
* | | | | | lsp-types 0.82kjeremy2020-09-232-8/+8
| |_|/ / / |/| | | |
* | | | | Apply suggestions from code reviewAleksey Kladov2020-09-211-5/+5
| | | | | | | | | | | | | | | Co-authored-by: LaurenÈ›iu Nicola <[email protected]>
* | | | | Document AstTransformationAleksey Kladov2020-09-211-0/+28
| | | | |
* | | | | Document SemanticScopeAleksey Kladov2020-09-211-0/+19
| |_|/ / |/| | |
* | | | Merge #6043bors[bot]2020-09-213-9/+51
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6043: Allow missing trait members assist without needing braces r=matklad a=M-J-Hooper Assist to complete missing items when implementing a trait does not appear without impl def braces (see #5144 ). The reason behind this was that this assist is based on `ast::AssocItemList` which only appears in the AST after the braces are added to the impl def. Instead of relying on and replacing the item list, we now instead replace the entire `ast::Impl` and add the item list if its missing. Co-authored-by: Matt Hooper <[email protected]>
| * | | | Rename impl edit method to be more explicitMatt Hooper2020-09-212-2/+2
| | | | |
| * | | | Added test for impl member assist when impl def is missing bracesMatt Hooper2020-09-211-0/+19
| | | | |
| * | | | Replace entire impl def instead of only associated items for missing impl ↵Matt Hooper2020-09-211-9/+12
| | | | | | | | | | | | | | | | | | | | member assist (if braces are missing from an impl def then there is no associated item list in the AST)
| * | | | Add make utility for empty associated item listsMatt Hooper2020-09-211-0/+4
| | | | |
| * | | | Add edit utility for adding an associated item list to a impl defMatt Hooper2020-09-211-0/+16
| | | | |
* | | | | Merge #6018bors[bot]2020-09-202-8/+15
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6018: Correct project_root path for ProjectJson. r=jonas-schievink a=woody77 It was already the folder containing the rust-project.json file, not the file itself. This also removes the Option-ness of it, since it's now an infallible operation to set the member value. Co-authored-by: Aaron Wood <[email protected]>
| * | | | | Add rustdoc for ProjectJson methodsAaron Wood2020-09-201-0/+10
| | | | | |
| * | | | | Correct project_root path for ProjectJson.Aaron Wood2020-09-162-8/+5
| | | | | | | | | | | | | | | | | | | | | | | | It was already the folder containing the rust-project.json file, not the file itself.
* | | | | | Merge #6036bors[bot]2020-09-181-4/+7
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6036: Don't re-read open files from disk when reloading a workspace r=kjeremy a=lnicola Fixes #5742 Fixes #4263 or so I hope. Co-authored-by: LaurenÈ›iu Nicola <[email protected]>
| * | | | | | Don't re-read open files from disk when reloading a workspaceLaurențiu Nicola2020-09-181-4/+7
| | |_|_|/ / | |/| | | |
* | | | | | Log failure to load crate root fileJonas Schievink2020-09-181-1/+7
| |_|/ / / |/| | | |
* | | | | Support active parameters at the per-signature levelkjeremy2020-09-182-4/+10
| |_|_|/ |/| | | | | | | | | | | Update crates
* | | | Rename `CustomDerive` to `ProcMacro`Jonas Schievink2020-09-186-8/+8
| | | | | | | | | | | | | | | | | | | | It handles fn-like macros too, and will handle attribute macros in the future