1.1 --- a/moinformat/tree.py Sat Apr 29 23:04:30 2017 +0200
1.2 +++ b/moinformat/tree.py Sun Apr 30 01:43:33 2017 +0200
1.3 @@ -34,6 +34,9 @@
1.4 def empty(self):
1.5 return not self.nodes
1.6
1.7 + def last(self):
1.8 + return self.nodes and self.nodes[-1] or None
1.9 +
1.10 def normalise(self):
1.11
1.12 "Combine adjacent text nodes."
1.13 @@ -84,7 +87,7 @@
1.14 self.type = type
1.15
1.16 def append(self, node):
1.17 - last = self.nodes and self.nodes[-1]
1.18 + last = self.last()
1.19 if last and last.empty():
1.20 self.nodes[-1] = node
1.21 else:
1.22 @@ -173,20 +176,26 @@
1.23
1.24 "A list item."
1.25
1.26 + def __init__(self, nodes, indent, marker, space):
1.27 + Container.__init__(self, nodes)
1.28 + self.indent = indent
1.29 + self.marker = marker
1.30 + self.space = space
1.31 +
1.32 def __repr__(self):
1.33 - return "ListItem(%r)" % self.nodes
1.34 + return "ListItem(%r, %r, %r, %r)" % (self.nodes, self.indent, self.marker, self.space)
1.35
1.36 def prettyprint(self, indent=""):
1.37 - l = ["%sListItem:" % indent]
1.38 + l = ["%sListItem: indent=%d marker=%r space=%r" % (indent, self.indent, self.marker, self.space)]
1.39 for node in self.nodes:
1.40 l.append(node.prettyprint(indent + " "))
1.41 return "\n".join(l)
1.42
1.43 def to_string(self, out):
1.44 - out.start_listitem()
1.45 + out.start_listitem(self.indent, self.marker, self.space)
1.46 for node in self.nodes:
1.47 node.to_string(out)
1.48 - out.end_listitem()
1.49 + out.end_listitem(self.indent, self.marker)
1.50
1.51
1.52