]>
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:
f0a99f6 )
Excet
;t
# "import from" nodes store parentheses directly as part of
# the statement
if is_lpar_token(child):
# "import from" nodes store parentheses directly as part of
# the statement
if is_lpar_token(child):
+ assert is_rpar_token(node.children[-1])
# make parentheses invisible
child.value = ""
# make parentheses invisible
child.value = ""
- node.children[-1].value = "" # type: ignore
+ node.children[-1].value = ""
elif child.type != token.STAR:
# insert invisible parentheses
node.insert_child(index, Leaf(token.LPAR, ""))
elif child.type != token.STAR:
# insert invisible parentheses
node.insert_child(index, Leaf(token.LPAR, ""))
import ast
import platform
import sys
import ast
import platform
import sys
-from typing import Any, Iterable, Iterator, List, Set, Tuple, Type, Union
+from typing import Any, AnyStr, Iterable, Iterator, List, Set, Tuple, Type, Union
if sys.version_info < (3, 8):
from typing_extensions import Final
if sys.version_info < (3, 8):
from typing_extensions import Final
ast27_AST: Final[Type[ast27.AST]] = ast27.AST
ast27_AST: Final[Type[ast27.AST]] = ast27.AST
+def _normalize(lineend: AnyStr, value: AnyStr) -> AnyStr:
+ # To normalize, we strip any leading and trailing space from
+ # each line...
+ stripped: List[AnyStr] = [i.strip() for i in value.splitlines()]
+ normalized = lineend.join(stripped)
+ # ...and remove any blank lines at the beginning and end of
+ # the whole string
+ return normalized.strip()
+
+
def stringify_ast(
node: Union[ast.AST, ast3.AST, ast27.AST], depth: int = 0
) -> Iterator[str]:
def stringify_ast(
node: Union[ast.AST, ast3.AST, ast27.AST], depth: int = 0
) -> Iterator[str]:
and field == "value"
and isinstance(value, (str, bytes))
):
and field == "value"
and isinstance(value, (str, bytes))
):
- lineend = "\n" if isinstance(value, str) else b"\n"
- # To normalize, we strip any leading and trailing space from
- # each line...
- stripped = [line.strip() for line in value.splitlines()]
- normalized = lineend.join(stripped) # type: ignore[attr-defined]
- # ...and remove any blank lines at the beginning and end of
- # the whole string
- normalized = normalized.strip()
+ if isinstance(value, str):
+ normalized: Union[str, bytes] = _normalize("\n", value)
+ else:
+ normalized = _normalize(b"\n", value)
else:
normalized = value
yield f"{' ' * (depth+2)}{normalized!r}, # {value.__class__.__name__}"
else:
normalized = value
yield f"{' ' * (depth+2)}{normalized!r}, # {value.__class__.__name__}"