83d1d9aa14
Remove possible whitespace from the `CommentStyle::opener()` so that the literal itself has control over the comment's leading spaces. This is most useful for tools, such as bindgen, to allow for example: machine-readable comments with precise syntax rules, or idempotently round-tripping between the proc-macro API and rustfmt.
120 lines
3.8 KiB
Rust
120 lines
3.8 KiB
Rust
// rustfmt-wrap_comments: true
|
|
// rustfmt-normalize_doc_attributes: true
|
|
|
|
// Only doc = "" attributes should be normalized
|
|
#![doc = " Example doc attribute comment"]
|
|
#![doc = " Example doc attribute comment with 10 leading spaces"]
|
|
#![doc(html_logo_url = "https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
|
|
html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
|
|
html_root_url = "https://doc.rust-lang.org/nightly/",
|
|
html_playground_url = "https://play.rust-lang.org/", test(attr(deny(warnings))))]
|
|
|
|
|
|
// Long `#[doc = "..."]`
|
|
struct A { #[doc = " xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"] b: i32 }
|
|
|
|
|
|
#[doc = " The `nodes` and `edges` method each return instantiations of `Cow<[T]>` to leave implementers the freedom to create entirely new vectors or to pass back slices into internally owned vectors."]
|
|
struct B { b: i32 }
|
|
|
|
|
|
#[doc = " Level 1 comment"]
|
|
mod tests {
|
|
#[doc = " Level 2 comment"]
|
|
impl A {
|
|
#[doc = " Level 3 comment"]
|
|
fn f() {
|
|
#[doc = " Level 4 comment"]
|
|
fn g() {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
struct C {
|
|
#[doc = " item doc attrib comment"]
|
|
// regular item comment
|
|
b: i32,
|
|
|
|
// regular item comment
|
|
#[doc = " item doc attrib comment"]
|
|
c: i32,
|
|
}
|
|
|
|
// non-regression test for regular attributes, from #2647
|
|
#[cfg(feature = "this_line_is_101_characters_long_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")]
|
|
pub fn foo() {}
|
|
|
|
// path attrs
|
|
#[clippy::bar]
|
|
#[clippy::bar=foo]
|
|
#[clippy::bar(a, b, c)]
|
|
pub fn foo() {}
|
|
|
|
mod issue_2620 {
|
|
#[derive(Debug, StructOpt)]
|
|
#[structopt(about = "Display information about the character on FF Logs")]
|
|
pub struct Params {
|
|
#[structopt(help = "The server the character is on")]
|
|
server: String,
|
|
#[structopt(help = "The character's first name")]
|
|
first_name: String,
|
|
#[structopt(help = "The character's last name")]
|
|
last_name: String,
|
|
#[structopt(
|
|
short = "j",
|
|
long = "job",
|
|
help = "The job to look at",
|
|
parse(try_from_str)
|
|
)]
|
|
job: Option<Job>
|
|
}
|
|
}
|
|
|
|
// non-regression test for regular attributes, from #2969
|
|
#[cfg(not(all(feature="std",
|
|
any(target_os = "linux", target_os = "android",
|
|
target_os = "netbsd",
|
|
target_os = "dragonfly",
|
|
target_os = "haiku",
|
|
target_os = "emscripten",
|
|
target_os = "solaris",
|
|
target_os = "cloudabi",
|
|
target_os = "macos", target_os = "ios",
|
|
target_os = "freebsd",
|
|
target_os = "openbsd", target_os = "bitrig",
|
|
target_os = "redox",
|
|
target_os = "fuchsia",
|
|
windows,
|
|
all(target_arch = "wasm32", feature = "stdweb"),
|
|
all(target_arch = "wasm32", feature = "wasm-bindgen"),
|
|
))))]
|
|
type Os = NoSource;
|
|
|
|
// use cases from bindgen needing precise control over leading spaces
|
|
#[doc = " <div rustbindgen accessor></div>"]
|
|
#[repr(C)]
|
|
#[derive(Debug, Default, Copy, Clone)]
|
|
pub struct ContradictAccessors {
|
|
#[doc = "<foo>no leading spaces here</foo>"]
|
|
pub mBothAccessors: ::std::os::raw::c_int,
|
|
#[doc = " <div rustbindgen accessor=\"false\"></div>"]
|
|
pub mNoAccessors: ::std::os::raw::c_int,
|
|
#[doc = " <div rustbindgen accessor=\"unsafe\"></div>"]
|
|
pub mUnsafeAccessors: ::std::os::raw::c_int,
|
|
#[doc = " <div rustbindgen accessor=\"immutable\"></div>"]
|
|
pub mImmutableAccessor: ::std::os::raw::c_int,
|
|
}
|
|
|
|
#[doc = " \\brief MPI structure"]
|
|
#[repr(C)]
|
|
#[derive(Debug, Copy, Clone)]
|
|
pub struct mbedtls_mpi {
|
|
#[doc = "< integer sign"]
|
|
pub s: ::std::os::raw::c_int,
|
|
#[doc = "< total # of limbs"]
|
|
pub n: ::std::os::raw::c_ulong,
|
|
#[doc = "< pointer to limbs"]
|
|
pub p: *mut mbedtls_mpi_uint,
|
|
}
|