]>
git.madduck.net Git - etc/vim.git/blobdiff - src/black/linegen.py
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
"""
Generating lines of code.
"""
"""
Generating lines of code.
"""
import sys
from dataclasses import replace
from enum import Enum, auto
import sys
from dataclasses import replace
from enum import Enum, auto
self.visit_case_block = self.visit_match_case
self.visit_case_block = self.visit_match_case
+def _hugging_power_ops_line_to_string(
+ line: Line,
+ features: Collection[Feature],
+ mode: Mode,
+) -> Optional[str]:
+ try:
+ return line_to_string(next(hug_power_op(line, features, mode)))
+ except CannotTransform:
+ return None
+
+
def transform_line(
line: Line, mode: Mode, features: Collection[Feature] = ()
) -> Iterator[Line]:
def transform_line(
line: Line, mode: Mode, features: Collection[Feature] = ()
) -> Iterator[Line]:
line_str = line_to_string(line)
line_str = line_to_string(line)
+ # We need the line string when power operators are hugging to determine if we should
+ # split the line. Default to line_str, if no power operator are present on the line.
+ line_str_hugging_power_ops = (
+ (_hugging_power_ops_line_to_string(line, features, mode) or line_str)
+ if Preview.fix_power_op_line_length in mode
+ else line_str
+ )
+
ll = mode.line_length
sn = mode.string_normalization
string_merge = StringMerger(ll, sn)
ll = mode.line_length
sn = mode.string_normalization
string_merge = StringMerger(ll, sn)
and not line.should_split_rhs
and not line.magic_trailing_comma
and (
and not line.should_split_rhs
and not line.magic_trailing_comma
and (
- is_line_short_enough(line, mode=mode, line_str=line_str)
+ is_line_short_enough(line, mode=mode, line_str=line_str_hugging_power_ops )
or line.contains_unsplittable_type_ignore()
)
and not (line.inside_brackets and line.contains_standalone_comments())
or line.contains_unsplittable_type_ignore()
)
and not (line.inside_brackets and line.contains_standalone_comments())