ruff/crates/ruff_python_formatter/tests/snapshots
Andrew Gallant b972455ac7
ruff_python_formatter: implement "dynamic" line width mode for docstring code formatting (#9098)
## Summary

This PR changes the internal `docstring-code-line-width` setting to
additionally accept a string value `dynamic`. When `dynamic` is set, the
line width is dynamically adjusted when reformatting code snippets in
docstrings based on the indent level of the docstring. The result is
that the reformatted lines from the code snippet should not exceed the
"global" line width configuration for the surrounding source.

This PR does not change the default behavior, although I suspect the
default should probably be `dynamic`.

## Test Plan

I added a new configuration to the existing docstring code tests and
also added a new set of tests dedicated to the new `dynamic` mode.
2023-12-12 09:58:07 -05:00
..
black_compatibility@cases__comment_after_escaped_newline.py.snap
black_compatibility@cases__comments2.py.snap
black_compatibility@cases__comments6.py.snap
black_compatibility@cases__comments9.py.snap
black_compatibility@cases__comments_in_blocks.py.snap
black_compatibility@cases__composition.py.snap
black_compatibility@cases__composition_no_trailing_comma.py.snap
black_compatibility@cases__conditional_expression.py.snap
black_compatibility@cases__docstring_no_string_normalization.py.snap
black_compatibility@cases__expression.py.snap
black_compatibility@cases__fmtonoff.py.snap
black_compatibility@cases__fmtonoff4.py.snap
black_compatibility@cases__fmtonoff5.py.snap
black_compatibility@cases__fmtpass_imports.py.snap
black_compatibility@cases__fmtskip5.py.snap
black_compatibility@cases__funcdef_return_type_trailing_comma.py.snap Insert trailing comma when function breaks with single argument (#8921) 2023-11-30 21:49:28 -05:00
black_compatibility@cases__function.py.snap
black_compatibility@cases__function2.py.snap
black_compatibility@cases__ignore_pyi.pyi.snap Enforce valid format options in spec tests (#9021) 2023-12-06 07:15:06 +00:00
black_compatibility@cases__line_ranges_basic.py.snap
black_compatibility@cases__line_ranges_diff_edge_case.py.snap
black_compatibility@cases__line_ranges_fmt_off.py.snap
black_compatibility@cases__line_ranges_fmt_off_decorator.py.snap Enforce valid format options in spec tests (#9021) 2023-12-06 07:15:06 +00:00
black_compatibility@cases__line_ranges_fmt_off_overlap.py.snap
black_compatibility@cases__line_ranges_indentation.py.snap
black_compatibility@cases__line_ranges_two_passes.py.snap
black_compatibility@cases__line_ranges_unwrapping.py.snap
black_compatibility@cases__long_strings_flag_disabled.py.snap
black_compatibility@cases__multiline_consecutive_open_parentheses_ignore.py.snap
black_compatibility@cases__nested_stub.pyi.snap
black_compatibility@cases__pattern_matching_style.py.snap
black_compatibility@cases__pep604_union_types_line_breaks.py.snap
black_compatibility@cases__pep_572_py310.py.snap
black_compatibility@cases__pep_572_remove_parens.py.snap
black_compatibility@cases__power_op_newline.py.snap Enforce valid format options in spec tests (#9021) 2023-12-06 07:15:06 +00:00
black_compatibility@cases__preview_allow_empty_first_line_in_special_cases.py.snap
black_compatibility@cases__preview_cantfit.py.snap
black_compatibility@cases__preview_comments7.py.snap
black_compatibility@cases__preview_context_managers_39.py.snap
black_compatibility@cases__preview_context_managers_autodetect_39.py.snap
black_compatibility@cases__preview_context_managers_autodetect_310.py.snap
black_compatibility@cases__preview_context_managers_autodetect_311.py.snap
black_compatibility@cases__preview_docstring_no_string_normalization.py.snap
black_compatibility@cases__preview_dummy_implementations.py.snap
black_compatibility@cases__preview_form_feeds.py.snap
black_compatibility@cases__preview_format_unicode_escape_seq.py.snap
black_compatibility@cases__preview_hug_parens_with_braces_and_square_brackets.py.snap Update formatter fixtures (#8935) 2023-12-01 02:57:05 +00:00
black_compatibility@cases__preview_long_dict_values.py.snap
black_compatibility@cases__preview_long_strings.py.snap
black_compatibility@cases__preview_long_strings__east_asian_width.py.snap
black_compatibility@cases__preview_long_strings__edge_case.py.snap
black_compatibility@cases__preview_long_strings__regression.py.snap Update formatter fixtures (#8935) 2023-12-01 02:57:05 +00:00
black_compatibility@cases__preview_long_strings__type_annotations.py.snap
black_compatibility@cases__preview_multiline_strings.py.snap
black_compatibility@cases__preview_no_blank_line_before_docstring.py.snap
black_compatibility@cases__preview_pattern_matching_trailing_comma.py.snap
black_compatibility@cases__preview_pep_572.py.snap
black_compatibility@cases__preview_percent_precedence.py.snap
black_compatibility@cases__preview_prefer_rhs_split.py.snap
black_compatibility@cases__preview_return_annotation_brackets_string.py.snap Insert trailing comma when function breaks with single argument (#8921) 2023-11-30 21:49:28 -05:00
black_compatibility@cases__preview_single_line_format_skip_with_multiple_comments.py.snap
black_compatibility@cases__raw_docstring.py.snap
black_compatibility@cases__remove_await_parens.py.snap
black_compatibility@cases__remove_except_parens.py.snap
black_compatibility@cases__remove_for_brackets.py.snap
black_compatibility@cases__return_annotation_brackets.py.snap Insert trailing comma when function breaks with single argument (#8921) 2023-11-30 21:49:28 -05:00
black_compatibility@cases__stub.pyi.snap
black_compatibility@cases__torture.py.snap
black_compatibility@cases__trailing_commas_in_leading_parts.py.snap
black_compatibility@cases__tupleassign.py.snap
black_compatibility@conditional_expression.py.snap
black_compatibility@miscellaneous__blackd_diff.py.snap
black_compatibility@miscellaneous__debug_visitor.py.snap
black_compatibility@miscellaneous__force_pyi.py.snap
black_compatibility@miscellaneous__force_pyi.pyi.snap
black_compatibility@miscellaneous__string_quotes.py.snap
black_compatibility@raw_docstring.py.snap
black_compatibility@simple_cases__preview_hug_parens_with_braces_and_square_brackets.py.snap Implement multiline dictionary and list hugging for preview style (#8293) 2023-11-30 21:11:14 -05:00
format@carriage_return__string.py.snap
format@docstring.py.snap ruff_python_formatter: add docstring-code-line-width internal setting (#9055) 2023-12-11 08:20:59 -05:00
format@docstring_code_examples.py.snap ruff_python_formatter: implement "dynamic" line width mode for docstring code formatting (#9098) 2023-12-12 09:58:07 -05:00
format@docstring_code_examples_crlf.py.snap ruff_python_formatter: add docstring-code-line-width internal setting (#9055) 2023-12-11 08:20:59 -05:00
format@docstring_code_examples_dynamic_line_width.py.snap ruff_python_formatter: implement "dynamic" line width mode for docstring code formatting (#9098) 2023-12-12 09:58:07 -05:00
format@empty_multiple_trailing_newlines.py.snap
format@empty_now_newline.py.snap
format@empty_trailing_newline.py.snap
format@empty_whitespace.py.snap
format@expression__annotated_assign.py.snap
format@expression__attribute.py.snap
format@expression__await.py.snap
format@expression__binary.py.snap
format@expression__binary_implicit_string.py.snap
format@expression__binary_pow_spacing.py.snap
format@expression__boolean_operation.py.snap
format@expression__bytes.py.snap ruff_python_formatter: add docstring-code-line-width internal setting (#9055) 2023-12-11 08:20:59 -05:00
format@expression__call.py.snap
format@expression__compare.py.snap
format@expression__dict.py.snap
format@expression__dict_comp.py.snap
format@expression__fstring.py.snap
format@expression__generator_exp.py.snap
format@expression__hug.py.snap Implement multiline dictionary and list hugging for preview style (#8293) 2023-11-30 21:11:14 -05:00
format@expression__if.py.snap
format@expression__lambda.py.snap
format@expression__list.py.snap
format@expression__list_comp.py.snap
format@expression__named_expr.py.snap
format@expression__number.py.snap
format@expression__optional_parentheses_comments.py.snap
format@expression__set_comp.py.snap
format@expression__slice.py.snap
format@expression__split_empty_brackets.py.snap Implement multiline dictionary and list hugging for preview style (#8293) 2023-11-30 21:11:14 -05:00
format@expression__starred.py.snap
format@expression__string.py.snap ruff_python_formatter: add docstring-code-line-width internal setting (#9055) 2023-12-11 08:20:59 -05:00
format@expression__subscript.py.snap
format@expression__tuple.py.snap
format@expression__unary.py.snap
format@expression__unsplittable.py.snap
format@expression__yield.py.snap
format@expression__yield_from.py.snap
format@fmt_on_off__comments.py.snap
format@fmt_on_off__empty_file.py.snap
format@fmt_on_off__fmt_off_docstring.py.snap ruff_python_formatter: add docstring-code-line-width internal setting (#9055) 2023-12-11 08:20:59 -05:00
format@fmt_on_off__fmt_off_unclosed_deep_nested_trailing_comment.py.snap
format@fmt_on_off__fmt_off_unclosed_trailing_comment.py.snap
format@fmt_on_off__form_feed.py.snap
format@fmt_on_off__indent.py.snap ruff_python_formatter: add docstring-code-line-width internal setting (#9055) 2023-12-11 08:20:59 -05:00
format@fmt_on_off__last_statement.py.snap
format@fmt_on_off__mixed_space_and_tab.py.snap ruff_python_formatter: add docstring-code-line-width internal setting (#9055) 2023-12-11 08:20:59 -05:00
format@fmt_on_off__newlines.py.snap
format@fmt_on_off__no_fmt_on.py.snap
format@fmt_on_off__off_on_off_on.py.snap
format@fmt_on_off__simple.py.snap
format@fmt_on_off__trailing_comments.py.snap
format@fmt_on_off__trailing_semicolon.py.snap
format@fmt_on_off__yapf.py.snap
format@fmt_skip__decorators.py.snap
format@fmt_skip__docstrings.py.snap
format@fmt_skip__match.py.snap
format@fmt_skip__or_else.py.snap
format@fmt_skip__parentheses.py.snap
format@fmt_skip__trailing_semi.py.snap
format@fmt_skip__type_params.py.snap
format@form_feed.py.snap
format@module_dangling_comment1.py.snap
format@module_dangling_comment2.py.snap
format@newlines.py.snap
format@newlines.pyi.snap
format@parentheses__call_chains.py.snap
format@parentheses__expression_parentheses_comments.py.snap
format@parentheses__nested.py.snap
format@parentheses__opening_parentheses_comment_empty.py.snap
format@parentheses__opening_parentheses_comment_value.py.snap Insert trailing comma when function breaks with single argument (#8921) 2023-11-30 21:49:28 -05:00
format@preview.py.snap ruff_python_formatter: add docstring-code-line-width internal setting (#9055) 2023-12-11 08:20:59 -05:00
format@quote_style.py.snap ruff_python_formatter: add docstring-code-line-width internal setting (#9055) 2023-12-11 08:20:59 -05:00
format@skip_magic_trailing_comma.py.snap ruff_python_formatter: add docstring-code-line-width internal setting (#9055) 2023-12-11 08:20:59 -05:00
format@statement__ann_assign.py.snap
format@statement__assert.py.snap
format@statement__assign.py.snap Fix handling of trailing target comment (#9051) 2023-12-08 05:00:36 +00:00
format@statement__aug_assign.py.snap
format@statement__break.py.snap
format@statement__class_definition.py.snap
format@statement__delete.py.snap
format@statement__ellipsis.pyi.snap Avoid unstable formatting in ellipsis-only body with trailing comment (#8984) 2023-12-03 19:15:40 -05:00
format@statement__for.py.snap
format@statement__function.py.snap Avoid trailing comma for single-argument with positional separator (#9076) 2023-12-09 18:03:31 -05:00
format@statement__global.py.snap
format@statement__if.py.snap
format@statement__import.py.snap
format@statement__import_from.py.snap
format@statement__match.py.snap
format@statement__module_comment.py.snap
format@statement__nonlocal.py.snap
format@statement__raise.py.snap
format@statement__return.py.snap
format@statement__return_annotation.py.snap Insert trailing comma when function breaks with single argument (#8921) 2023-11-30 21:49:28 -05:00
format@statement__top_level.py.snap
format@statement__top_level.pyi.snap
format@statement__try.py.snap
format@statement__type_alias.py.snap Inline trailing comments for type alias similar to assignments (#8941) 2023-12-04 05:27:04 +00:00
format@statement__while.py.snap
format@statement__with.py.snap
format@stub_files__comments.pyi.snap
format@stub_files__nesting.pyi.snap
format@stub_files__suite.pyi.snap
format@stub_files__top_level.pyi.snap
format@tab_width.py.snap ruff_python_formatter: add docstring-code-line-width internal setting (#9055) 2023-12-11 08:20:59 -05:00
format@trailing_comments.py.snap
format@trivia.py.snap