]>
git.madduck.net Git - etc/vim.git/commitdiff
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:
summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (parent:
afc8c32 )
bracket_tracker: BracketTracker = field(default_factory=BracketTracker)
inside_brackets: bool = False
should_explode: bool = False
bracket_tracker: BracketTracker = field(default_factory=BracketTracker)
inside_brackets: bool = False
should_explode: bool = False
+ magic_trailing_comma: Optional[Leaf] = None
def append(self, leaf: Leaf, preformatted: bool = False) -> None:
"""Add a new `leaf` to the end of the line.
def append(self, leaf: Leaf, preformatted: bool = False) -> None:
"""Add a new `leaf` to the end of the line.
self.bracket_tracker.mark(leaf)
if self.mode.magic_trailing_comma:
if self.has_magic_trailing_comma(leaf):
self.bracket_tracker.mark(leaf)
if self.mode.magic_trailing_comma:
if self.has_magic_trailing_comma(leaf):
- self.should_explode = True
+ self.magic_trailing_comma = leaf
elif self.has_magic_trailing_comma(leaf, ensure_removable=True):
self.remove_trailing_comma()
if not self.append_comment(leaf):
elif self.has_magic_trailing_comma(leaf, ensure_removable=True):
self.remove_trailing_comma()
if not self.append_comment(leaf):
depth=self.depth,
inside_brackets=self.inside_brackets,
should_explode=self.should_explode,
depth=self.depth,
inside_brackets=self.inside_brackets,
should_explode=self.should_explode,
+ magic_trailing_comma=self.magic_trailing_comma,
)
def __str__(self) -> str:
)
def __str__(self) -> str:
transformers: List[Transformer]
if (
not line.contains_uncollapsable_type_comments()
transformers: List[Transformer]
if (
not line.contains_uncollapsable_type_comments()
- and not line.should_explode
+ and not (line.should_explode or line.magic_trailing_comma)
and (
is_line_short_enough(line, line_length=mode.line_length, line_str=line_str)
or line.contains_unsplittable_type_ignore()
and (
is_line_short_enough(line, line_length=mode.line_length, line_str=line_str)
or line.contains_unsplittable_type_ignore()
depth=line.depth + 1,
inside_brackets=True,
should_explode=line.should_explode,
depth=line.depth + 1,
inside_brackets=True,
should_explode=line.should_explode,
+ magic_trailing_comma=line.magic_trailing_comma,
)
string_leaf = Leaf(token.STRING, string_value)
insert_str_child(string_leaf)
)
string_leaf = Leaf(token.STRING, string_value)
insert_str_child(string_leaf)
"""
omit: Set[LeafID] = set()
"""
omit: Set[LeafID] = set()
- if not line.should_explode:
+ if not line.should_explode and not line.magic_trailing_comma :
yield omit
length = 4 * line.depth
yield omit
length = 4 * line.depth
elif leaf.type in CLOSING_BRACKETS:
prev = line.leaves[index - 1] if index > 0 else None
if (
elif leaf.type in CLOSING_BRACKETS:
prev = line.leaves[index - 1] if index > 0 else None
if (
+ (line.should_explode or line.magic_trailing_comma)
and prev
and prev.type == token.COMMA
and not is_one_tuple_between(
and prev
and prev.type == token.COMMA
and not is_one_tuple_between(
+ (line.should_explode or line.magic_trailing_comma)
and prev
and prev.type == token.COMMA
and not is_one_tuple_between(leaf.opening_bracket, leaf, line.leaves)
and prev
and prev.type == token.COMMA
and not is_one_tuple_between(leaf.opening_bracket, leaf, line.leaves)
penultimate = line.leaves[-2]
last = line.leaves[-1]
penultimate = line.leaves[-2]
last = line.leaves[-1]
- if line.should_explode:
+ if line.should_explode or line.magic_trailing_comma :
try:
penultimate, last = last_two_except(line.leaves, omit=omit_on_explode)
except LookupError:
try:
penultimate, last = last_two_except(line.leaves, omit=omit_on_explode)
except LookupError:
# unnecessary.
return True
# unnecessary.
return True
- if line.should_explode and penultimate.type == token.COMMA:
+ if (
+ line.should_explode or line.magic_trailing_comma
+ ) and penultimate.type == token.COMMA:
# The rightmost non-omitted bracket pair is the one we want to explode on.
return True
# The rightmost non-omitted bracket pair is the one we want to explode on.
return True