aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* add support of feature flag for runnables #4464Benjamin Coenen2020-05-217-19/+212
| | | | Signed-off-by: Benjamin Coenen <[email protected]>
* Merge #4472bors[bot]2020-05-164-2/+115
|\ | | | | | | | | | | | | | | 4472: Fix path resolution for module and function with same name r=hasali19 a=hasali19 This fixes #3970 and also fixes completion for the same issue. Co-authored-by: Hasan Ali <[email protected]>
| * Add doc comment for resolve_hir_path_qualifierHasan Ali2020-05-161-0/+13
| |
| * Fix completion and hover for module and function of same nameHasan Ali2020-05-164-2/+102
| |
* | Merge #4479bors[bot]2020-05-163-34/+53
|\ \ | | | | | | | | | | | | | | | | | | | | | 4479: Chalk upgrade r=matklad a=flodiebold This includes the fix for `dyn Trait` super traits, but I noticed that still a lot of `db.super_trait_method()` calls don't work because the super trait isn't in scope (because it doesn't actually need to be). Somehow, I thought we handled that already, but I'll fix it in a separate PR. Also I'll see what happens if we use more of Chalk's new built-in types and traits in a separate PR. Co-authored-by: Florian Diebold <[email protected]>
| * | Chalk upgradeFlorian Diebold2020-05-163-34/+53
|/ /
* | Merge #4288bors[bot]2020-05-161-5/+206
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | 4288: Add rename self to parameter and back. r=zbsz a=zbsz This is a first stab at #3439 I liked the idea to do this as a rename instead of separate assist, so I tried implementing that. It mostly works, but I'm sure there are some cases that I missed, especially in regards to parameter type. Note: I'm playing with this this as a way to learn Rust and this project. So I'm sure it could be cleaner and put in better places`. Any suggestions? Co-authored-by: zbsz <[email protected]>
| * Add 'self to parameter' renaming.zbsz2020-05-161-5/+206
|/
* Merge #4470bors[bot]2020-05-156-19/+197
|\ | | | | | | | | | | | | | | | | | | | | | | | | 4470: Handle `Self` in values and patterns r=matklad a=flodiebold I.e. - `Self(x)` or `Self` in tuple/unit struct impls - `Self::Variant(x)` or `Self::Variant` in enum impls - the same in patterns Fixes #4454. Co-authored-by: Florian Diebold <[email protected]>
| * Handle `Self` in values and patternsFlorian Diebold2020-05-156-19/+197
|/ | | | | | | | | I.e. - `Self(x)` or `Self` in tuple/unit struct impls - `Self::Variant(x)` or `Self::Variant` in enum impls - the same in patterns Fixes #4454.
* Merge #4448bors[bot]2020-05-157-101/+258
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4448: Generate configuration for launch.json r=vsrs a=vsrs This PR adds two new commands: `"rust-analyzer.debug"` and `"rust-analyzer.newDebugConfig"`. The former is a supplement to the existing `"rust-analyzer.run"` command and works the same way: asks for a runnable and starts new debug session. The latter allows adding a new configuration to **launch.json** (or to update an existing one). If the new option `"rust-analyzer.debug.useLaunchJson"` is set to true then `"rust-analyzer.debug"` and Debug Lens will first look for existing debug configuration in **launch.json**. That is, it has become possible to specify startup arguments, env variables, etc. `"rust-analyzer.debug.useLaunchJson"` is false by default, but it might be worth making true the default value. Personally I prefer true, but I'm not sure if it is good for all value. ---- I think that this PR also solves https://github.com/rust-analyzer/rust-analyzer/issues/3441. Both methods to update launch.json mentioned in the issue do not work: 1. Menu. It is only possible to add a launch.json configuration template via a debug adapter. And anyway it's only a template and it is impossible to specify arguments from an extension. 2. DebugConfigurationProvider. The exact opposite situation: it is possible to specify all debug session settings, but it is impossible to export these settings to launch.json. Separate `"rust-analyzer.newDebugConfig"` command looks better for me. ---- Fixes #4450 Fixes #3441 Co-authored-by: vsrs <[email protected]> Co-authored-by: vsrs <[email protected]>
| * Fix occasional test run during debug configurationvsrs2020-05-151-1/+5
| |
| * Fix runnable naming in the client side fallback.vsrs2020-05-141-1/+1
| |
| * Better label for a runnable.vsrs2020-05-141-1/+1
| | | | | | Co-authored-by: Aleksey Kladov <[email protected]>
| * Multiple binaries support for launch.json.vsrs2020-05-142-3/+7
| | | | | | | | Generate unique names on the LSP side.
| * Mixed "bin" and "test" artifacts workaround.vsrs2020-05-141-2/+7
| |
| * Multiple binaries support for launch.json.vsrs2020-05-141-0/+5
| |
| * Fix "rust-analyzer.debug" for QuickPick binaries.vsrs2020-05-141-0/+4
| |
| * Runnable quick pick with buttonsvsrs2020-05-141-21/+61
| |
| * Remove "rust-analyzer.debug.useLaunchJson" optionvsrs2020-05-143-19/+10
| |
| * Use launch.json in Debug Lens sessions.vsrs2020-05-133-2/+25
| | | | | | | | Add the possibility to use existing configurations via Debug Lens
| * DebugConfiguration simplification.vsrs2020-05-111-1/+11
| | | | | | | | ${workspaceRoot} substitution in generated DebugConfiguration.
| * "rust-analyzer.newDebugConfig" commandvsrs2020-05-114-3/+36
| |
| * "rust-analyzer.debug" commandvsrs2020-05-114-106/+144
| |
* | Merge #4431bors[bot]2020-05-153-3/+37
|\ \ | | | | | | | | | | | | | | | | | | | | | 4431: Store proc-macro result in salsa db r=matklad a=edwin0cheng Fixed #4315 Co-authored-by: Edwin Cheng <[email protected]>
| * | Store proc-macro result in salsa dbEdwin Cheng2020-05-143-3/+37
| | |
* | | Merge #4460bors[bot]2020-05-1518-1506/+1490
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4460: Remove flycheck -> LSP dependency r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | CleanupsAleksey Kladov2020-05-152-85/+75
| | | |
| * | | Better structureAleksey Kladov2020-05-154-20/+15
| | | |
| * | | Move LSP bits from flycheck to rust-analyzerAleksey Kladov2020-05-1518-1506/+1505
|/ / / | | | | | | | | | | | | There should be only one place that knows about LSP, and that place is right before we spit JSON on stdout.
* | | Merge #4273bors[bot]2020-05-142-4/+532
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4273: Trigger add_vis assist on paths/record fields as well r=flodiebold a=TimoFreiberg Resolves #4037. - [x] Function defs - [x] ADT defs - [x] Enum variants - [x] Consts - [x] Statics - [x] Traits - [x] Type aliases - [x] Modules - [x] Record fields (using different implementation) - [x] struct fields - [x] enum variant fields - :x: union fields (`Semantics::resolve_record_field` seems to not work for union fields, so I think this can be handled in a future PR) - [x] More tests? - [x] Improve test fixture code and documentation a bit (see [Zulip](https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/resolve_path.20between.20fixture.20files)) Co-authored-by: Timo Freiberg <[email protected]>
| * | | Expand fixture documentation a littleTimo Freiberg2020-05-101-3/+17
| | | |
| * | | Trigger change_visibility assist when on an invisible struct fieldTimo Freiberg2020-05-101-61/+248
| | | | | | | | | | | | | | | | Union fields apparently don't work :(
| * | | Trigger change_visibility assist when on a path to an invisible defTimo Freiberg2020-05-101-1/+328
| | | |
* | | | Merge #4456bors[bot]2020-05-141-11/+11
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4456: Sort preselect items on top r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | MinorAleksey Kladov2020-05-141-10/+8
| | | | |
| * | | | Put preselect items on topAleksey Kladov2020-05-141-1/+3
| | | | |
* | | | | Merge #4455bors[bot]2020-05-142-5/+55
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4455: Prioritize locals with correct types r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | Prioritize locals with correct typesAleksey Kladov2020-05-142-5/+55
|/ / / /
* | | | Merge #4445bors[bot]2020-05-145-2/+92
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4445: Correctly fill default type parameters r=flodiebold a=montekki Fixes #3877 So, basically even if the parameters are omitted from the `impl` block, check the parameters in `trait` if they have a default type, and if they do go from `hir` to `ast::TypeArg`. I've added a helper for that but I am not sure that it's a proper way to go from `hir` to `ast` here. Co-authored-by: Fedor Sakharov <[email protected]>
| * | | | Ty -> TypeFedor Sakharov2020-05-141-2/+7
| | | | |
| * | | | Adds a param_idx helperFedor Sakharov2020-05-142-2/+7
| | | | |
| * | | | Fix formattingFedor Sakharov2020-05-141-1/+1
| | | | |
| * | | | Change type_arg to type_ref funcFedor Sakharov2020-05-142-4/+3
| | | | |
| * | | | Use generic_defaults and display_source_codeFedor Sakharov2020-05-144-14/+16
| | | | |
| * | | | Correctly fill default type parametersFedor Sakharov2020-05-136-1/+80
| | | | |
* | | | | Merge #4405bors[bot]2020-05-146-10/+7
|\ \ \ \ \ | |_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4405: Make some stuff public so that they can be reused by other tools r=pksunkara a=pksunkara So, my little experiment of building a code analysis tool using rust-analyzer is successful. I am going to proceed to build the tool now. This PR makes the needed things public. I know there were some things about trying to change stuff regarding loading workspaces, which would make it more easier for other tools to reuse. But, until then, it should be okay using this `load_cargo` fn. Btw, if I were publish my tool, I would need the `ra` crates to be released. Since @matklad told me that he doesn't want to care about breaking stuff, I would propose the following. Every monday, during the weekly release, we release a new pre v1 minor version of all the crates. That way, we don't need to care about breaking stuff but still have rust-analyzer on crates.io. I made https://github.com/pksunkara/cargo-workspaces to help release workspace crates easily. So, coming week, we start with `0.1.0`, then week after that, we release `0.2.0` and then `0.3.0` etc.. until we decide on `1.0.0` which is probably when the compiler team also starts using the crates. There is no limit to the minor versions (we can even have `0.150.0` or `0.1500.0`), so I don't see anything wrong with this strategy. Co-authored-by: Pavan Kumar Sunkara <[email protected]>
| * | | | Make some stuff public so that they can be reused by other toolsPavan Kumar Sunkara2020-05-146-10/+7
| | | | |
* | | | | Merge #4432bors[bot]2020-05-141-2/+12
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4432: Update features.md r=matklad a=bnjjj Co-authored-by: Coenen Benjamin <[email protected]>
| * | | | | Update features.mdCoenen Benjamin2020-05-121-2/+12
| | | | | |