diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-02-05 15:17:41 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2021-02-05 15:17:41 +0000 |
commit | 855b00cbe600cad34a14841c37a2ac1f2f3a247e (patch) | |
tree | 941bc83d49c72efc7badfc4fc20cd14c3570ce32 /crates/ide/src/goto_implementation.rs | |
parent | ae7bee70a10d01f0fdebfc12c70aca4f765826b3 (diff) | |
parent | d90bd635366d9223762b3b1c7381405a1f12f9d4 (diff) | |
parent | eeb5bfcfab1c41e3ad80b9e8ce69d2865c42abc6 (diff) |
Merge #7570 #7571
7570: Add doc gen to the `generate_enum_match_method` assist r=yoshuawuyts a=yoshuawuyts
Implements a small extension to https://github.com/rust-analyzer/rust-analyzer/pull/7562, generating default comments. I wasn't sure if this would fit the goals of Rust-Analyzer, so I chose to split it into a separate PR. This is especially useful when writing code in a codebase which uses `#![warn(missing_docs)]` lint, as many production-grade libraries do.
The comments we're generating here are similar to the ones found on [`Option::is_some`](https://doc.rust-lang.org/std/option/enum.Option.html#method.is_some) and [`Result::is_err`](https://doc.rust-lang.org/std/result/enum.Result.html#method.is_err). I briefly considered only generating these for `pub` types, but they seem small and unobtrusive enough that they're probably useful in the general case. Thanks!
## Example
__input__
```rust
pub(crate) enum Variant {
Undefined,
Minor, // cursor here
Major,
}
```
__output__
```rust
pub(crate) enum Variant {
Undefined,
Minor,
Major,
}
impl Variant {
/// Returns `true` if the variant is [`Minor`].
pub(crate) fn is_minor(&self) -> bool {
matches!(self, Self::Minor)
}
}
```
## Future Directions
This opens up the path to adding an assist for generating these comments on existing `is_` methods. This would make it both easy to document new code, and update existing code with documentation.
7571: Cleanup decl_check r=Veykril a=Veykril
bors r+
Co-authored-by: Yoshua Wuyts <[email protected]>
Co-authored-by: Lukas Wirth <[email protected]>