aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add hover actions LSP extension documentation.vsrs2020-06-052-1/+39
|
* Add hover actions as LSP extensionvsrs2020-06-0511-56/+351
|
* Merge #4750bors[bot]2020-06-051-2/+17
|\ | | | | | | | | | | | | | | | | | | 4750: introduce_named_lifetime assist wasn't applicable when type parameter r=matklad a=jbalint followed anonymous lifetime token (fixes #4684) Co-authored-by: Jess Balint <[email protected]>
| * introduce_named_lifetime assist wasn't applicable when type parameterJess Balint2020-06-041-2/+17
| | | | | | | | | | | | followed anonymous lifetime token (fixes #4684)
* | Merge #4737bors[bot]2020-06-048-15/+143
|\ \ | | | | | | | | | | | | | | | | | | | | | 4737: Parse default unsafe & default const r=matklad a=Avi-D-coder Closes: #4718 #4264 Co-authored-by: Avi Dessauer <[email protected]>
| * | Move default const test out of lineAvi Dessauer2020-06-045-10/+0
| | |
| * | Address reviewAvi Dessauer2020-06-041-5/+4
| | |
| * | Update testsAvi Dessauer2020-06-046-0/+109
| | |
| * | Parse default unsafe & default constAvi Dessauer2020-06-042-15/+45
| |/
* | Merge #4740bors[bot]2020-06-041-1/+1
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4740: Remove unneeded "./" prefix affecting error messages r=kjeremy a=dtolnay I noticed this in the error in the commit message of https://github.com/rust-analyzer/rust-analyzer/pull/4739. Before: ```console error[E0599]: no method named `initialize_finish` found for struct `lsp_server::Connection` in the current scope --> crates/rust-analyzer/./src/bin/main.rs:99:16 | 99 | connection.initialize_finish(initialize_id, initialize_result)?; | ^^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection` ``` After: ```console error[E0599]: no method named `initialize_finish` found for struct `lsp_server::Connection` in the current scope --> crates/rust-analyzer/src/bin/main.rs:99:16 | 99 | connection.initialize_finish(initialize_id, initialize_result)?; | ^^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection` ``` ```diff - --> crates/rust-analyzer/./src/bin/main.rs:99:16 + --> crates/rust-analyzer/src/bin/main.rs:99:16 ``` Co-authored-by: David Tolnay <[email protected]>
| * | Remove unneeded "./" prefix affecting error messagesDavid Tolnay2020-06-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before: error[E0599]: no method named `initialize_finish` found for struct `lsp_server::Connection` in the current scope --> crates/rust-analyzer/./src/bin/main.rs:99:16 | 99 | connection.initialize_finish(initialize_id, initialize_result)?; | ^^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection` After: error[E0599]: no method named `initialize_finish` found for struct `lsp_server::Connection` in the current scope --> crates/rust-analyzer/src/bin/main.rs:99:16 | 99 | connection.initialize_finish(initialize_id, initialize_result)?; | ^^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection`
* | | Merge #4739bors[bot]2020-06-041-1/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4739: Declare required lsp-server dependency of rust-analyzer crate r=jonas-schievink a=dtolnay My codebase already depended on lsp-server and introducing a dependency on rust-analyzer failed at first because it assumes some functions that were first present in lsp-server 0.3.2. Without this change: ```console error[E0599]: no method named `initialize_start` found for struct `lsp_server::Connection` in the current scope --> crates/rust-analyzer/./src/bin/main.rs:83:57 | 83 | let (initialize_id, initialize_params) = connection.initialize_start()?; | ^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection` error[E0599]: no method named `initialize_finish` found for struct `lsp_server::Connection` in the current scope --> crates/rust-analyzer/./src/bin/main.rs:99:16 | 99 | connection.initialize_finish(initialize_id, initialize_result)?; | ^^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection` ``` Co-authored-by: David Tolnay <[email protected]>
| * | | Declare required lsp-server dependency of rust-analyzer crateDavid Tolnay2020-06-041-1/+1
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | My codebase already depended on lsp-server and introducing a dependency on rust-analyzer failed at first because it assumes some functions that were first present in lsp-server 0.3.2. Without this change: error[E0599]: no method named `initialize_start` found for struct `lsp_server::Connection` in the current scope --> crates/rust-analyzer/./src/bin/main.rs:83:57 | 83 | let (initialize_id, initialize_params) = connection.initialize_start()?; | ^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection` error[E0599]: no method named `initialize_finish` found for struct `lsp_server::Connection` in the current scope --> crates/rust-analyzer/./src/bin/main.rs:99:16 | 99 | connection.initialize_finish(initialize_id, initialize_result)?; | ^^^^^^^^^^^^^^^^^ method not found in `lsp_server::Connection`
* | | Merge #4741bors[bot]2020-06-041-1/+1
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4741: Fix type inference failure when built with log/kv_unstable r=flodiebold a=dtolnay This code is broken by an `impl From<kv::Error> for fmt::Error` in the log crate when building in a codebase that has the log/kv_unstable feature enabled. ```console $ cargo check --manifest-path crates/ra_hir_def/Cargo.toml Checking ra_hir_def v0.1.0 Finished dev [unoptimized] target(s) in 0.75s $ cargo check --manifest-path crates/ra_hir_def/Cargo.toml --features log/kv_unstable Checking ra_hir_def v0.1.0 error[E0282]: type annotations needed for the closure `fn(&str) -> std::result::Result<(), _>` --> crates/ra_hir_def/src/path.rs:278:17 | 278 | f.write_str("::")?; | ^^^^^^^^^^^^^^^^^^ cannot infer type | help: give this closure an explicit return type without `_` placeholders | 276 | let mut add_segment = |s| -> std::result::Result<(), _> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ``` https://github.com/rust-lang/log/issues/397 Co-authored-by: David Tolnay <[email protected]>
| * | Fix type inference failure when built with log/kv_unstableDavid Tolnay2020-06-041-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code is broken by an `impl From<kv::Error> for fmt::Error` in the log crate when building in a codebase that has the log/kv_unstable feature enabled. $ cargo check --manifest-path crates/ra_hir_def/Cargo.toml Checking ra_hir_def v0.1.0 Finished dev [unoptimized] target(s) in 0.75s $ cargo check --manifest-path crates/ra_hir_def/Cargo.toml --features log/kv_unstable Checking ra_hir_def v0.1.0 error[E0282]: type annotations needed for the closure `fn(&str) -> std::result::Result<(), _>` --> crates/ra_hir_def/src/path.rs:278:17 | 278 | f.write_str("::")?; | ^^^^^^^^^^^^^^^^^^ cannot infer type | help: give this closure an explicit return type without `_` placeholders | 276 | let mut add_segment = |s| -> std::result::Result<(), _> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
* | Merge #4736bors[bot]2020-06-041-3/+3
|\ \ | |/ |/| | | | | | | | | | | 4736: Bugfix r=kjeremy a=Veetaha Co-authored-by: Veetaha <[email protected]>
| * BufgixVeetaha2020-06-031-3/+3
|/
* Merge #4717bors[bot]2020-06-0314-85/+210
|\ | | | | | | | | | | | | | | 4717: Implementation of lazy assits r=matklad a=mcrakhman Co-authored-by: Mikhail Rakhmanov <[email protected]>
| * Fix more commentsMikhail Rakhmanov2020-06-031-5/+4
| |
| * Merge branch 'master' into compute-lazy-assitsMikhail Rakhmanov2020-06-0350-1829/+1191
| |\ | |/ |/| | | | | | | # Conflicts: # crates/rust-analyzer/src/main_loop/handlers.rs # crates/rust-analyzer/src/to_proto.rs
* | Merge #4734bors[bot]2020-06-038-1328/+16
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4734: Don't store generated docs in the repo r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Don't store generated docs in the repoAleksey Kladov2020-06-038-1328/+16
|/ /
* | Merge #4733bors[bot]2020-06-031-14/+14
|\ \ | | | | | | | | | | | | | | | | | | | | | 4733: Cargo update r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * | Cargo updatekjeremy2020-06-031-14/+14
| | |
* | | Merge #4502bors[bot]2020-06-032-2/+9
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4502: Mark fixes from diagnostics as quick fixes r=kjeremy a=kjeremy Populates the diagnostic UI with fixes: Before: ![quickfix-before](https://user-images.githubusercontent.com/4325700/82165183-0e38df00-9882-11ea-96cf-7dab5faec4d4.PNG) After: ![image](https://user-images.githubusercontent.com/4325700/82165193-1a24a100-9882-11ea-97d7-be1b64b135e0.png) Co-authored-by: Jeremy Kolb <[email protected]>
| * | Mark fixes from diagnostics as quick fixesJeremy Kolb2020-06-032-2/+9
| | |
* | | Merge #4730bors[bot]2020-06-035-20/+118
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | 4730: Document rust-project.json r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Document rust-project.jsonAleksey Kladov2020-06-035-20/+118
| | |
* | | Merge #4678bors[bot]2020-06-035-8/+20
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4678: Unsquish parameter types in tooltips for macro-generated functions r=aloucks a=aloucks Note the missing whitespace between `:` and the parameter type. Before: ![image](https://user-images.githubusercontent.com/221559/83364680-faf13d80-a370-11ea-96b7-a041969a4954.png) After: ![image](https://user-images.githubusercontent.com/221559/83364685-03e20f00-a371-11ea-9668-4e6ebcb81947.png) Co-authored-by: Aaron Loucks <[email protected]>
| * | | Use split1 when formatting function signature paramsAaron Loucks2020-06-035-11/+12
| | | |
| * | | Unsquish parameter types in tooltips for macro-generated functionsAaron Loucks2020-05-311-1/+12
| | | |
* | | | Merge #4660bors[bot]2020-06-037-19/+260
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4660: Enable hover and autocomplete docs on macro generated items r=aloucks a=aloucks Enable hover and autocomplete docs on macro generated items. This de-sugars doc comments into `doc` attributes in some cases, but not all. Comments and `doc` attributes are then merged together. This PR is essentially a partial implementation of what's being suggested #3182, but it's not all the way there yet. ~I still need to add unit tests~, but I wanted to first get feedback on whether or not this was an acceptable path forward. Fixes #4564 Fixes #3984 Fixes #3180 Related #3182 ![macro_item_docs](https://user-images.githubusercontent.com/221559/83336760-15012200-a284-11ea-8d0d-b6a615850044.gif) Co-authored-by: Aaron Loucks <[email protected]>
| * | | | Update generated feature docsAaron Loucks2020-06-031-1/+1
| | | | |
| * | | | Consolidate documentation expansion and mergingAaron Loucks2020-06-032-53/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Removes the duplicated `expand_doc_attrs` and `merge_doc_comments_and_attrs` functions from `ra_ide` and exposes the same functionality via `ra_hir::Documentation::from_ast`.
| * | | | Add basic hover and completion doc tests for macro generated itemsAaron Loucks2020-06-033-2/+182
| | | | |
| * | | | Enable hover and autocomplete docs on macro generated itemsAaron Loucks2020-06-035-10/+110
| | | | |
* | | | | Merge #4727bors[bot]2020-06-031-2/+0
|\ \ \ \ \ | |/ / / / |/| | / / | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | 4727: Drop test for old format r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Drop test for old formatAleksey Kladov2020-06-031-2/+0
| | | |
* | | | Merge #4726bors[bot]2020-06-036-65/+110
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4726: Groundwork for specifying the set of projects via config r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Groundwork for specifying the set of projects via configAleksey Kladov2020-06-035-46/+83
| | | |
| * | | Rename ProjectRoot -> ProjectManifestAleksey Kladov2020-06-033-19/+19
| | | |
| * | | Move project discoveryAleksey Kladov2020-06-032-8/+16
|/ / /
* | | Merge #4724bors[bot]2020-06-037-273/+291
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4724: Rename WorldState -> GlobalState r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Rename WorldState -> GlobalStateAleksey Kladov2020-06-037-273/+291
|/ / /
* | | Merge #4723bors[bot]2020-06-034-67/+21
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4723: Derive local roots from Workspaces r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Drop no-project testAleksey Kladov2020-06-031-49/+0
| | | | | | | | | | | | | | | | | | | | | | | | Eventually, we should support "just open random rust file" use case, we don't really do this now, so let's avoid spending time on it until we fix it properly.
| * | | Derive local roots from WorkspacesAleksey Kladov2020-06-032-11/+14
| | | |
| * | | Put important things on topAleksey Kladov2020-06-031-7/+7
|/ / /
* | | Merge pull request #4382 from woody77/json_cfgsAleksey Kladov2020-06-033-2/+92
|\ \ \ | | | | | | | | Begin transition to new fields for JsonProject crate cfgs
| * | | Begin transition to new fields for JsonProject crate cfgsAaron Wood2020-05-093-2/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This starts the transition to a new method of documenting the cfgs that are enabled for a given crate in the json file. This is changing from a list of atoms and a dict of key:value pairs, to a list of strings that is equivalent to that returned by `rustc --print cfg ..`, and parsed in the same manner by rust-analyzer. This is the first of two changes, which adds the new field that contains the list of strings. Next change will complete the transition and remove the previous fields.