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.
Fixes #3320. Followup from #3044.
<!-- Changes that affect Black's preview style -->
- Fix a crash in preview style with assert + parenthesized string (#3415)
<!-- Changes that affect Black's preview style -->
- Fix a crash in preview style with assert + parenthesized string (#3415)
+- Do not put the closing quotes in a docstring on a separate line, even if the line is
+ too long (#3430)
# We need to find the length of the last line of the docstring
# to find if we can add the closing quotes to the line without
# exceeding the maximum line length.
# We need to find the length of the last line of the docstring
# to find if we can add the closing quotes to the line without
# exceeding the maximum line length.
- # If docstring is one line, then we need to add the length
- # of the indent, prefix, and starting quotes. Ending quotes are
- # handled later.
+ # If docstring is one line, we don't put the closing quotes on a
+ # separate line because it looks ugly (#3320).
lines = docstring.splitlines()
last_line_length = len(lines[-1]) if docstring else 0
lines = docstring.splitlines()
last_line_length = len(lines[-1]) if docstring else 0
- if len(lines) == 1:
- last_line_length += len(indent) + len(prefix) + quote_len
-
# If adding closing quotes would cause the last line to exceed
# the maximum line length then put a line break before the
# closing quotes
# If adding closing quotes would cause the last line to exceed
# the maximum line length then put a line break before the
# closing quotes
- if last_line_length + quote_len > self.mode.line_length:
+ if (
+ len(lines) > 1
+ and last_line_length + quote_len > self.mode.line_length
+ ):
leaf.value = prefix + quote + docstring + "\n" + indent + quote
else:
leaf.value = prefix + quote + docstring + quote
leaf.value = prefix + quote + docstring + "\n" + indent + quote
else:
leaf.value = prefix + quote + docstring + quote
def docstring_almost_at_line_limit():
def docstring_almost_at_line_limit():
- """long docstring.................................................................
- """
+ """long docstring................................................................."""
def docstring_almost_at_line_limit_with_prefix():
def docstring_almost_at_line_limit_with_prefix():
- f"""long docstring................................................................
- """
+ f"""long docstring................................................................"""
def mulitline_docstring_almost_at_line_limit():
def mulitline_docstring_almost_at_line_limit():