Skip to content

Commit

Permalink
change config name to generated_marker_line_search_limit
Browse files Browse the repository at this point in the history
change config name to generated_marker_line_search_limit

update docs

fix formatting

use config variable

add 0 limit docs

adding zero limit search
  • Loading branch information
IVIURRAY committed Jan 16, 2024
1 parent 3bc09b6 commit 1ca738e
Show file tree
Hide file tree
Showing 12 changed files with 69 additions and 11 deletions.
8 changes: 5 additions & 3 deletions Configurations.md
Original file line number Diff line number Diff line change
Expand Up @@ -1050,7 +1050,7 @@ Max width for code snippets included in doc comments. Only used if [`format_code

## `format_generated_files`

Format generated files. A file is considered generated if any of the first several lines contain a `@generated` comment marker. The number of lines to check is configured by `generated_file_header_size`.
Format generated files. A file is considered generated if any of the first several lines contain a `@generated` comment marker. The number of lines to check is configured by `generated_marker_line_search_limit`.

By default, generated files are reformatted, i. e. `@generated` marker is ignored.
This option is currently ignored for stdin (`@generated` in stdin is ignored.)
Expand All @@ -1059,14 +1059,16 @@ This option is currently ignored for stdin (`@generated` in stdin is ignored.)
- **Possible values**: `true`, `false`
- **Stable**: No (tracking issue: [#5080](https://github.com/rust-lang/rustfmt/issues/5080))

## `generated_file_header_size`
## `generated_marker_line_search_limit`

Number of lines to check for a `@generated` pragma header when `format_generated_files` is enabled. When `format_generated_files` is disabled, this option has no effect.
Number of lines to check for a `@generated` pragma header, starting from the top of the file. Setting this value to `0` will treat all files as non-generated. When`format_generated_files` is `true`, this option has no effect.

- **Default value**: `5`
- **Possible values**: any positive integer
- **Stable**: No (tracking issue: [#5080](https://github.com/rust-lang/rustfmt/issues/5080))

See also [format_generated_files](#format_generated_files) link here.

## `format_macro_matchers`

Format the metavariable matching patterns in macros.
Expand Down
6 changes: 3 additions & 3 deletions src/config/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -151,8 +151,8 @@ create_config! {
"Write an item and its attribute on the same line \
if their combined width is below a threshold";
format_generated_files: bool, true, false, "Format generated files";
generated_file_header_size: usize, 5, false, "Number of lines to check for a `@generated` \
marker when `format_generated_files` is enabled";
generated_marker_line_search_limit: usize, 5, false, "Number of lines to check for a \
`@generated` marker when `format_generated_files` is enabled";

// Options that can change the source code beyond whitespace/blocks (somewhat linty things)
merge_derives: bool, true, true, "Merge multiple `#[derive(...)]` into a single one";
Expand Down Expand Up @@ -682,7 +682,7 @@ edition = "2015"
version = "One"
inline_attribute_width = 0
format_generated_files = true
generated_file_header_size = 5
generated_marker_line_search_limit = 5
merge_derives = true
use_try_shorthand = false
use_field_init_shorthand = false
Expand Down
2 changes: 1 addition & 1 deletion src/formatting.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ fn should_skip_module<T: FormatHandler>(
let source_file = context.parse_session.span_to_file_contents(module.span);
let src = source_file.src.as_ref().expect("SourceFile without src");

if is_generated_file(src, config.generated_file_header_size()) {
if is_generated_file(src, config) {
return true;
}
}
Expand Down
7 changes: 5 additions & 2 deletions src/formatting/generated.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
use crate::Config;

/// Returns `true` if the given span is a part of generated files.
pub(super) fn is_generated_file(original_snippet: &str, header_size: usize) -> bool {
pub(super) fn is_generated_file(original_snippet: &str, config: &Config) -> bool {
original_snippet
.lines()
.take(header_size) // looking for marker only in the beginning of the file
// looking for marker only in the beginning of the file
.take(config.generated_marker_line_search_limit())
.any(|line| line.contains("@generated"))
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// rustfmt-format_generated_files: false
// rustfmt-generated_file_header_size: 15
// rustfmt-generated_marker_line_search_limit: 15

fn main()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// rustfmt-format_generated_files: false
// rustfmt-generated_file_header_size: 15
// rustfmt-generated_marker_line_search_limit: 1

fn main()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// rustfmt-format_generated_files: false
// rustfmt-generated_marker_line_search_limit: 0

// @generated
fn main() {
println!("hello, world")
;
}
// @generated
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// rustfmt-format_generated_files: true
// rustfmt-generated_marker_line_search_limit: 20

fn main()
{
println!("hello, world")
;
}

// @generated
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
// rustfmt-format_generated_files: false
// rustfmt-generated_marker_line_search_limit: 15

fn main()
{
println!("hello, world")
;
}

// @generated
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// rustfmt-format_generated_files: false
// rustfmt-generated_marker_line_search_limit: 1

fn main() {
println!("hello, world");
}

// @generated
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// rustfmt-format_generated_files: false
// rustfmt-generated_marker_line_search_limit: 0

// @generated
fn main() {
println!("hello, world");
}
// @generated
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
// rustfmt-format_generated_files: true
// rustfmt-generated_marker_line_search_limit: 20

fn main() {
println!("hello, world");
}

// @generated

0 comments on commit 1ca738e

Please sign in to comment.