]>
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 (from parent 1:
9c9f6eb )
It reads much nicer.
Dict, Generic, Iterable, Iterator, List, Optional, Set, Tuple, TypeVar, Union
)
Dict, Generic, Iterable, Iterator, List, Optional, Set, Tuple, TypeVar, Union
)
-from attr import attrib, dataclass, Factory
+from attr import dataclass, Factory
import click
# lib2to3 fork
import click
# lib2to3 fork
@dataclass
class DebugVisitor(Visitor[T]):
@dataclass
class DebugVisitor(Visitor[T]):
- tree_depth: int = attrib(default=0)
def visit_default(self, node: LN) -> Iterator[T]:
indent = ' ' * (2 * self.tree_depth)
def visit_default(self, node: LN) -> Iterator[T]:
indent = ' ' * (2 * self.tree_depth)
@dataclass
class BracketTracker:
@dataclass
class BracketTracker:
- depth: int = attrib(default=0)
- bracket_match: Dict[Tuple[Depth, NodeType], Leaf] = attrib(default=Factory(dict) )
- delimiters: Dict[LeafID, Priority] = attrib(default=Factory(dict) )
- previous: Optional[Leaf] = attrib(default=None)
+ depth: int = 0
+ bracket_match: Dict[Tuple[Depth, NodeType], Leaf] = Factory(dict )
+ delimiters: Dict[LeafID, Priority] = Factory(dict )
+ previous: Optional[Leaf] = None
def mark(self, leaf: Leaf) -> None:
if leaf.type == token.COMMENT:
def mark(self, leaf: Leaf) -> None:
if leaf.type == token.COMMENT:
- depth: int = attrib(default=0)
- leaves: List[Leaf] = attrib(default=Factory(list) )
- comments: Dict[LeafID, Leaf] = attrib(default=Factory(dict) )
- bracket_tracker: BracketTracker = attrib(default=Factory(BracketTracker) )
- inside_brackets: bool = attrib(default=False)
- has_for: bool = attrib(default=False)
- _for_loop_variable: bool = attrib(default=False, init=False)
+ depth: int = 0
+ leaves: List[Leaf] = Factory(list )
+ comments: Dict[LeafID, Leaf] = Factory(dict )
+ bracket_tracker: BracketTracker = Factory(BracketTracker )
+ inside_brackets: bool = False
+ has_for: bool = False
+ _for_loop_variable: bool = False
def append(self, leaf: Leaf, preformatted: bool = False) -> None:
has_value = leaf.value.strip()
def append(self, leaf: Leaf, preformatted: bool = False) -> None:
has_value = leaf.value.strip()
Note: this tracker works on lines that haven't been split yet.
"""
Note: this tracker works on lines that haven't been split yet.
"""
- previous_line: Optional[Line] = attrib(default=None)
- previous_after: int = attrib(default=0)
- previous_defs: List[int] = attrib(default=Factory(list) )
+ previous_line: Optional[Line] = None
+ previous_after: int = 0
+ previous_defs: List[int] = Factory(list )
def maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]:
"""Returns the number of extra empty lines before and after the `current_line`.
def maybe_empty_lines(self, current_line: Line) -> Tuple[int, int]:
"""Returns the number of extra empty lines before and after the `current_line`.
Note: destroys the tree it's visiting by mutating prefixes of its leaves
in ways that will no longer stringify to valid Python code on the tree.
"""
Note: destroys the tree it's visiting by mutating prefixes of its leaves
in ways that will no longer stringify to valid Python code on the tree.
"""
- current_line: Line = attrib(default=Factory(Line) )
- standalone_comments: List[Leaf] = attrib(default=Factory(list) )
+ current_line: Line = Factory(Line )
+ standalone_comments: List[Leaf] = Factory(list )
def line(self, indent: int = 0) -> Iterator[Line]:
"""Generate a line.
def line(self, indent: int = 0) -> Iterator[Line]:
"""Generate a line.
@dataclass
class Report:
"""Provides a reformatting counter."""
@dataclass
class Report:
"""Provides a reformatting counter."""
- change_count: int = attrib(default=0)
- same_count: int = attrib(default=0)
- failure_count: int = attrib(default=0)
+ change_count: int = 0
+ same_count: int = 0
+ failure_count: int = 0
def done(self, src: Path, changed: bool) -> None:
"""Increment the counter for successful reformatting. Write out a message."""
def done(self, src: Path, changed: bool) -> None:
"""Increment the counter for successful reformatting. Write out a message."""