aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Simplify find_crlfMichał Muskała2021-02-141-1/+1
| | | | | This is both simpler to read and compiles to better code: https://rust.godbolt.org/z/MxKodv
* Merge #7676bors[bot]2021-02-142-81/+96
|\ | | | | | | | | | | | | | | | | 7676: Make it clear which client-side commands we use r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Make it clear which client-side commands we useAleksey Kladov2021-02-142-81/+96
| |
* | Merge #7656bors[bot]2021-02-142-103/+172
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | 7656: Implement constructor usage search for almost all items r=matklad a=Veykril This PR moves the filering for enum constructors to the HIR, with this unprefixed variants as well as when the enum has been renamed via use will then still show up properly. We now walk the ast of the `NameRef` up until we find a `PathExpr`(which also handles `CallExpr` for tuple-type structs and variants already) or a `RecordExpr`. For enum search we then take the `path` out of that expression and do a resolution on it to compare it with the definition enum. With this PR we now support searching for all constructor literals, Unit-, Tuple- and Record-Structs, Unit-, Tuple- and Record-Variants as well as Unions. There is one shortcoming due to how the search is triggered. Unit Variants constructors can't be searched as we have no position for it to kick off the search(since a comma doesn't have to exist for the last variant). Closes #2549 though it doesn't implement it as outlined in the issue since the reference kind was removed recently, though I believe the approach taken here is better personally. Co-authored-by: Lukas Wirth <[email protected]>
| * Only use HIR when searching for enum constructors, otherwise fall back to ASTLukas Wirth2021-02-131-48/+34
| |
| * 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-148-23/+70
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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]>
| | * | fix: tolerate spaces in nix binary patchingYaroslav Bolyukin2021-02-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Signed-off-by: Yaroslav Bolyukin <[email protected]>
| * | | Allow automatically detect the rustc-src directory (fixes #3517).Benjamin Bouvier2021-02-137-20/+67
| | | | | | | | | | | | | | | | | | | | 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
| | | | |
* | | | | Merge #7667bors[bot]2021-02-132-7/+49
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7667: strip type parameter defaults when generating impl generics r=Veykril a=jDomantas Fixes #5666 Co-authored-by: Domantas Jadenkus <[email protected]>
| * | | | | 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
* | | | Merge #7662bors[bot]2021-02-133-12/+12
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | 7662: Group generate getter/setter assist r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | Group generate getter/setter assistLukas Wirth2021-02-133-12/+12
|/ / /
* | | Merge #7596bors[bot]2021-02-137-202/+1172
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | 7596: Move CodeLens to ide crate r=ivan770 a=ivan770 Closes #7579 Co-authored-by: ivan770 <[email protected]>
| * | Remove CodeLensResolveData mention from lsp-extensions.mdivan7702021-02-131-11/+0
| | |
| * | 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-137-202/+388
| | |
* | | Merge #7659bors[bot]2021-02-132-28/+124
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7659: Improve "Generate From impl" r=Veykril a=jDomantas * Allows any field type. Previously it was restricted to path types, but I don't see why it couldn't apply to all other types too. (the main reason for is PR is that I'm too lazy to write out `From<&'static str>` by hand 😄) * More correct handling for generic enums - previously it wouldn't emit generic params on the impl. * Also accepts variants with named field. The impl generation code got mostly copy-pasted from generate_impl assist - please tell if there's an easy way to avoid this duplication. Co-authored-by: Domantas Jadenkus <[email protected]>
| * | | 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
|/ / /
* | | Merge #7658bors[bot]2021-02-132-2/+34
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7658: Build dist-x86_64-unknown-linux-musl releases r=lnicola a=andylizi Closes #4956. * Artifact sample: [rust-analyzer-x86_64-unknown-linux-musl.gz](https://github.com/rust-analyzer/rust-analyzer/files/5975504/rust-analyzer-x86_64-unknown-linux-musl.gz) * Build time: ~14m ``` $ ls -lh -rwxr-xr-x 1 root root 29.7M Feb 13 18:24 rust-analyzer-x86_64-unknown-linux-musl $ ldd rust-analyzer-x86_64-unknown-linux-musl /lib/ld-musl-x86_64.so.1 (0x7f2751f13000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x7f2750a78000) libc.musl-x86_64.so.1 => /lib/ld-musl-x86_64.so.1 (0x7f2751f13000) $ ./rust-analyzer-x86_64-unknown-linux-musl --version rust-analyzer 63fcf65 ``` I can do `aarch64-unknown-linux-musl` if it's also needed. Co-authored-by: andylizi <[email protected]>
| * | Build dist-x86_64-unknown-linux-musl releasesandylizi2021-02-132-2/+34
|/ /
* | Merge #7655bors[bot]2021-02-122-25/+33
|\ \ | |/ |/| | | | | | | | | | | 7655: Include a commit log summary in the changelog r=matklad a=lnicola This version omits any direct pushes, and maybe even pull requests merged from the GitHub UI. But I think it makes writing the release notes easier. Co-authored-by: Laurențiu Nicola <[email protected]>
| * Include a commit log summary in the changelogLaurențiu Nicola2021-02-122-25/+33
| |
* | Merge #7358bors[bot]2021-02-128-426/+460
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7358: Refactor reference searching to work with the ast r=matklad a=Veykril Addresses #4290 This PR is still a bit unpolished. Its main purpose for now is to discuss the direction of the changes as to whether this seems to be the right approach or not. I annotated a few parts with reviews to give a better overwiew without having to read into it too much. Big part of the diff are test output changes in the `references` module. Co-authored-by: Lukas Wirth <[email protected]>
| * | 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
|/ /
* | Merge #7650bors[bot]2021-02-126-18/+171
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 7650: Add `find_impl_block_end` assist helper r=Veykril a=yoshuawuyts Fixes #7605. This makes it so assists can use helpers to either append a method to the start or the end of an `impl` block. Thanks! @Veykril if this is merged, perhaps it could be good to update the gif in https://github.com/rust-analyzer/rust-analyzer/pull/7617#issuecomment-776622135 ? -- this should fix the ordering issue when generating multiple methods. Co-authored-by: Yoshua Wuyts <[email protected]>
| * | Add `find_impl_block_end` assist helperYoshua Wuyts2021-02-126-18/+171
| |/
* | Merge #7639bors[bot]2021-02-121-1/+1
|\ \ | |/ |/| | | | | | | | | | | 7639: Bump rust to latest stable 1.50 r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]>