aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Implement constructor usage search for almost all itemsLukas Wirth2021-02-122-108/+191
| | | | | | | | | | | | | | | | | | | | | For all struct kinds, unions and enums, as well as for record- and tuple-variants but not for unit-variants, as these have no trailing character we can anchor the search to. Functionality wise it is implemented though.
| | |
| \ \
*-. \ \ Merge #7643 #7663bors[bot]2021-02-145-18/+65
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7643: Automatically detect the rustc-src directory (fixes #3517) r=matklad a=bnjbvr If the configured rustcSource was not set, then try to automatically detect a source for the sysroot rustc directory. I wasn't sure how to do it in the case of the project.json file, though. 7663: Tolerate spaces in nix binary patching r=matklad a=CertainLach If path to original file contains space (I.e on code insiders, where default data directory is ~/Code - Insiders/), then there is syntax error evaluating src arg. Instead pass path as str, and coerce to path back in nix expression Co-authored-by: Benjamin Bouvier <[email protected]> Co-authored-by: Yaroslav Bolyukin <[email protected]>
| * | | | Allow automatically detect the rustc-src directory (fixes #3517).Benjamin Bouvier2021-02-135-18/+65
| | | | | | | | | | | | | | | | | | | | | | | | | If the configured rustcSource is set to "discover", try to automatically detect a source from the sysroot rustc directory.
* | | | | Merge #7668bors[bot]2021-02-142-51/+133
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7668: Finalize rename infra rewrite r=matklad a=Veykril This should be the final PR in regards to rewriting rename stuff, #4290. It addresses 3 things: - Currently renaming import aliases causes some undesired behavior(see #5198) which is why this PR causes us to just return an error if an attempt at renaming an alias is made for the time being. Though this only prevents it from happening when the alias import is renamed, so its not too helpful. - Fixes #6898 - If we are inside a macro file simply rename the input name node as there isn't really a way to do any of the fancy shorthand renames and similar things as for that we would have to exactly know what the macro generates and what not. Co-authored-by: Lukas Wirth <[email protected]>
| * | | | | Don't rename field record patterns directlyLukas Wirth2021-02-132-39/+73
| | | | | |
| * | | | | Fallback to renaming input NameRef node for macros when inside macroLukas Wirth2021-02-131-16/+53
| | | | | |
| * | | | | Prevent aliases from being renamed for nowLukas Wirth2021-02-131-13/+24
| | |_|_|/ | |/| | |
* | | | | strip type parameter defaults when generating impl genericsDomantas Jadenkus2021-02-132-7/+49
| | | | |
* | | | | Merge #7664bors[bot]2021-02-134-98/+55
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7664: refactor impl generation in assists r=Veykril a=jDomantas Follow-up to #7659: all impl generation in assists (at least what I found) is now done through `utils::{generate_impl_text, generate_trait_impl_text}`. Co-authored-by: Domantas Jadenkus <[email protected]>
| * | | | | cargo fmtDomantas Jadenkus2021-02-134-14/+21
| | | | | |
| * | | | | use generate_impl_text in replace_derive_with_manual_implDomantas Jadenkus2021-02-131-20/+12
| | | | | |
| * | | | | use generate_impl_text in generate_implDomantas Jadenkus2021-02-132-41/+14
| | | | | |
| * | | | | use generate_impl_text in generate_from_implDomantas Jadenkus2021-02-132-45/+30
| | |_|/ / | |/| | |
* | | | | Merge #7665bors[bot]2021-02-132-3/+46
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7665: Don't classify attribute macros as their path unless it's a function with the proc_macro_attribute attribute r=Veykril a=Veykril bors r+ Closes #6389 Co-authored-by: Lukas Wirth <[email protected]>
| * | | | Don't classify attribute macros as their path unless it's a function with ↵Lukas Wirth2021-02-132-3/+46
| |/ / / | | | | | | | | | | | | the proc_macro_attribute attribute
* / / / Group generate getter/setter assistLukas Wirth2021-02-133-12/+12
|/ / /
* | | Merge #7596bors[bot]2021-02-136-201/+1171
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 7596: Move CodeLens to ide crate r=ivan770 a=ivan770 Closes #7579 Co-authored-by: ivan770 <[email protected]>
| * | Make annotations tests similar to those in runnablesivan7702021-02-131-188/+707
| | |
| * | Improve runnable annotations order, fix incorrect ignore detectionivan7702021-02-131-5/+13
| | |
| * | Added annotation testsivan7702021-02-131-0/+267
| | |
| * | Fix incorrect references annotationivan7702021-02-131-2/+3
| | |
| * | Moved CodeLens to ide crateivan7702021-02-136-201/+376
| |/
* | cargo fmtDomantas Jadenkus2021-02-131-1/+4
| |
* | make it work for record-style variantsDomantas Jadenkus2021-02-131-14/+46
| |
* | update docDomantas Jadenkus2021-02-132-2/+2
| |
* | handle generic enumsDomantas Jadenkus2021-02-131-8/+58
| |
* | allow any field typeDomantas Jadenkus2021-02-131-5/+16
| |
* | use Self instead of enum nameDomantas Jadenkus2021-02-131-5/+5
|/
* Update references test outputLukas Wirth2021-02-121-2/+2
|
* Use NameLike in FileReference directly as its not exported from ide anymoreLukas Wirth2021-02-125-59/+29
|
* Refactor reference searching to work with the astLukas Wirth2021-02-128-406/+489
|
* Remove unused ReferenceSearchResult functionsLukas Wirth2021-02-121-24/+5
|
* Add `find_impl_block_end` assist helperYoshua Wuyts2021-02-126-18/+171
|
* Fix slow tests sometimes failingFlorian Diebold2021-02-126-14/+51
| | | | | | | | | | In some situations we reloaded the workspace in the tests after having reported to be ready. There's two fixes here: 1. Add a version to the VFS config and include that version in progress reports, so that we don't think we're done prematurely; 2. Delay status transitions until after changes are applied. Otherwise the last change during loading can potentially trigger a workspace reload, if it contains interesting changes.
* Merge #7644bors[bot]2021-02-1210-29/+89
|\ | | | | | | | | | | | | | | 7644: Primitive completion r=jonas-schievink a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/issues/7642 Co-authored-by: Jonas Schievink <[email protected]>
| * Complete builtin type pathsJonas Schievink2021-02-111-1/+33
| |
| * Wrap `BuiltinType` in code modelJonas Schievink2021-02-119-28/+56
| |
| |
| \
*-. \ Merge #7638 #7648bors[bot]2021-02-123-4/+4
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7638: libloading 0.7 r=kjeremy a=kjeremy See https://docs.rs/libloading/0.7.0/libloading/changelog/r0_7_0/index.html 7648: fix nightly warning `legacy_derive_helpers` r=lnicola a=peddermaster2 With a recent nightly (e.g. 2021-02-10) a warning comes up. This PR reorders the attributes to fix the warning. See https://github.com/rust-lang/rust/issues/79202 Co-authored-by: kjeremy <[email protected]> Co-authored-by: Peter Wischer <[email protected]>
| | * | fix nightly warning `legacy_derive_helpers`Peter Wischer2021-02-121-1/+1
| |/ / |/| | | | | | | | see https://github.com/rust-lang/rust/issues/79202
* | | Pin Rust to 1.49.0 on CIJonas Schievink2021-02-124-10/+12
| |/ |/|
| * libloading 0.7kjeremy2021-02-112-3/+3
|/ | | | See https://docs.rs/libloading/0.7.0/libloading/changelog/r0_7_0/index.html
* Add test for #1165Jonas Schievink2021-02-101-0/+29
| | | | Closes #1165
* Slightly expand testJonas Schievink2021-02-101-0/+3
|
* Add more testsJonas Schievink2021-02-102-8/+84
|
* Put the old resolver backJonas Schievink2021-02-101-3/+8
|
* Update fixed testsJonas Schievink2021-02-103-18/+21
|
* infer: update resolver when descending into blockJonas Schievink2021-02-102-16/+39
|
* Merge #7617bors[bot]2021-02-109-68/+603
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7617: Add getter/setter assists r=Veykril a=yoshuawuyts This patch makes progress towards the design outlined in https://github.com/rust-analyzer/rust-analyzer/issues/5943, and includes a small refactor which closes https://github.com/rust-analyzer/rust-analyzer/issues/7607. All together this patch does 4 things: - Adds a `generate_getter` assist. - Adds a `generate_getter_mut` assist. - Adds a `generate_setter` assist. - Moves the `generate_impl_text` function from `generate_new` into `utils` (which closes #7607). ## Design Notes I've chosen to follow the [Rust API guidelines on getters](https://rust-lang.github.io/api-guidelines/naming.html#getter-names-follow-rust-convention-c-getter) as closely as possible. This deliberately leaves "builder pattern"-style setters out of scope. Also, similar to https://github.com/rust-analyzer/rust-analyzer/pull/7570 this assist generates doc comments. I think this should work well in most cases, and for the few where it doesn't it's probably easily edited. This makes it slightly less correct than the #7570 implementation, but I think this is still useful enough to include for many of the same reasons. The reason why this PR contains 3 assists, rather than 1, is because each of them is so similar to the others that it felt more noisy to do them separately than all at once. The amount of code added does not necessarily reflect that, but hope that still makes sense. ## Examples **Input** ```rust struct Person { name: String, // <- cursor on "name" } ``` **generate getter** ```rust struct Person { name: String, } impl Person { /// Get a reference to the person's name. fn name(&self) -> &String { &self.name } } ``` **generate mut getter** ```rust struct Person { name: String, } impl Person { /// Get a mutable reference to the person's name. fn name_mut(&mut self) -> &mut String { &mut self.name } } ``` **generate setter** ```rust struct Person { name: String, } impl Person { /// Set the person's name. fn set_name(&mut self, name: String) { self.name = name; } } ``` Co-authored-by: Yoshua Wuyts <[email protected]>
| * Add getter/setter assistsYoshua Wuyts2021-02-099-68/+603
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Finish implementing `generate_setter` assists Make `generate_impl_text` util generic generate getter methods Fix getter / setter naming It's now in-line with the Rust API naming guidelines: https://rust-lang.github.io/api-guidelines/naming.html#getter-names-follow-rust-convention-c-getter apply clippy Improve examples
| |
| \
*-. \ Merge #7591 #7622bors[bot]2021-02-102-6/+34
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7591: Fix/no floating promises r=matklad a=sahandevs closes #3515 - added `@typescript-eslint/no-floating-promises: error` rule - changed `"no-console": ["error"]` to `"no-console": ["error", { allow: ["warn", "error"] }]` (we at least log the error messages of the floating promises) - fixed lint/compile errors 7622: Resolve TupleStructPat in SourceAnalyzer::resolve_path r=Veykril a=Veykril Closes #7594 bors r+ Co-authored-by: Sahandevs <[email protected]> Co-authored-by: Lukas Wirth <[email protected]>