Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Empty lines wrongly removed #4930

Open
jnqnfe opened this issue Jul 30, 2021 · 7 comments
Open

Empty lines wrongly removed #4930

jnqnfe opened this issue Jul 30, 2021 · 7 comments
Labels
a-comments a-whitespace duplicate only-with-option requires a non-default option value to reproduce

Comments

@jnqnfe
Copy link

jnqnfe commented Jul 30, 2021

The empty line after the initial comment within the struct definition here is there deliberately to separate it from the comments associated with the first attribute. rustfmt should not remove it, just as it preserves the choice I made to have empty lines between attributes for this struct.

 #[repr(C)]
 #[derive(Debug, Copy, Clone, PartialEq, Eq)]
 pub struct TimingInfo {
     /* NOTE: This struct must be directly usable by the C API, thus same attributes/layout/etc */
-
     /// The system clock time when this timing info structure was current.
     pub timestamp: Timeval,
 
     /// Non-zero if the local and the remote machine have synchronized clocks. If synchronized
     /// clocks are detected `transport_usec` becomes much more reliable. However, the code that
     /// detects synchronized clocks is very limited and unreliable itself.
     pub synchronized_clocks: i32,
 
     /// Time in usecs a sample takes to be played on the sink. For playback streams and record
     /// streams connected to a monitor source.
     pub sink_usec: MicroSeconds,

config:

brace_style = "SameLineWhere"
comment_width = 100
control_brace_style = "ClosingNextLine"
edition = "2018"
fn_args_layout = "Compressed"
hard_tabs = false
match_block_trailing_comma = true
max_width = 100
merge_derives = false
newline_style = "Unix"
normalize_doc_attributes = true
overflow_delimited_expr = true
reorder_imports = false
group_imports = "StdExternalCrate"
reorder_modules = true
#struct_field_align_threshold = 20
tab_spaces = 4
trailing_comma = "Never"
use_small_heuristics = "Max"
use_try_shorthand = true
#where_single_line = true
wrap_comments = true

Version string: rustfmt 1.4.37-stable (a178d03 2021-07-26)
Project: https://github.com/jnqnfe/pulse-binding-rust
Specific file: https://github.com/jnqnfe/pulse-binding-rust/blob/master/pulse-binding/src/def.rs
Ran against the master branch after adding the quoted config.

@calebcartwright
Copy link
Member

Please provide your version of rustfmt, and the original, pre-formatted input along with, and separate from, the formatted result

@jnqnfe
Copy link
Author

jnqnfe commented Aug 26, 2021

Please provide your version of rustfmt, and the original, pre-formatted input along with, and separate from, the formatted result

Please see #4928 regarding the version, and which also provides before and after copies of the code snippet applicable here.

@jnqnfe
Copy link
Author

jnqnfe commented Aug 29, 2021

Updated with specific version string.

@ytmimi ytmimi added a-comments only-with-option requires a non-default option value to reproduce labels Nov 20, 2021
@stegaBOB
Copy link

stegaBOB commented Jul 1, 2022

Should this be closed @jnqnfe? It looks like the issue you linked has been closed.

@calebcartwright
Copy link
Member

Should this be closed @jnqnfe? It looks like the issue you linked has been closed.

If you're referring to #4928, that isn't actually related at all so it's status doesn't have any impact on the status of this issue

@ytmimi
Copy link
Contributor

ytmimi commented Jul 20, 2022

seems related to #3716

@kpreid
Copy link

kpreid commented Jul 18, 2024

rustfmt also removes blank lines at the end of the struct definition, between the last field and a comment, in the same way as this issue already describes for the beginning of the struct definition. That is,

struct Foo {
    // Introductory comment.
    
    /// Blah blah blah.
    foo: String,
    
    // Final comment.
}

is formatted as

struct Foo {
    // Introductory comment.
    /// Blah blah blah.
    foo: String,
    // Final comment.
}

and I think both blank lines should be preserved.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a-comments a-whitespace duplicate only-with-option requires a non-default option value to reproduce
Projects
None yet
Development

No branches or pull requests

5 participants