1.1 --- a/viewer.py Sat Apr 07 00:47:19 2007 +0200
1.2 +++ b/viewer.py Mon Apr 09 02:07:48 2007 +0200
1.3 @@ -48,6 +48,7 @@
1.4 .body { padding-left: 2em; }
1.5 .keyword { color: yellow; }
1.6 .comment { color: blue; }
1.7 + .class-name { color: cyan; }
1.8 .function-name { color: cyan; }
1.9 .str { color: #FF00FF; }
1.10 .doc { color: #FF00FF; margin-top: 1em; margin-bottom: 1em; }
1.11 @@ -200,7 +201,7 @@
1.12 self.stream.write("<div class='class' id='%s'>\n" % self._url(structure.full_name()))
1.13 self.stream.write("<div>\n")
1.14 self._keyword("class")
1.15 - self._name_start(structure.name)
1.16 + self._name_start(structure.name, "class-name")
1.17 self._popup(
1.18 self._scopes(definitions)
1.19 )
1.20 @@ -429,8 +430,15 @@
1.21 self.stream.write("</div>\n")
1.22
1.23 def visitRaise(self, node):
1.24 + target = node._node.expr
1.25 + targets = target.active()
1.26 self.stream.write("<div class='raise'>\n")
1.27 + self.stream.write("<span class='call'>\n")
1.28 self._keyword("raise")
1.29 + self._popup(
1.30 + self._invocations(targets)
1.31 + )
1.32 + self.stream.write("</span>\n")
1.33 self.dispatch(node.expr1)
1.34 if node.expr2 is not None:
1.35 self.stream.write(",\n")
1.36 @@ -539,7 +547,7 @@
1.37 self.stream.write("<span class='%s'>\n" % name)
1.38 self.dispatch(node.left)
1.39 self.stream.write("<span class='operator'>\n")
1.40 - self.stream.write(symbol)
1.41 + self.stream.write(self._text(symbol))
1.42 self._popup(
1.43 self._invocations(node._left_call.active() + node._right_call.active())
1.44 )
1.45 @@ -616,7 +624,7 @@
1.46 self.dispatch(node.nodes[0])
1.47 for op in node._ops:
1.48 self.stream.write("<span class='op'>\n")
1.49 - self.stream.write(op.name)
1.50 + self.stream.write(self._text(op.name))
1.51 self._popup(
1.52 self._op(op)
1.53 )
1.54 @@ -659,7 +667,7 @@
1.55 self.dispatch(node.expr)
1.56 for op in node._ops:
1.57 self.stream.write("<span class='op'>\n")
1.58 - self.stream.write(op.name)
1.59 + self.stream.write(self._text(op.name))
1.60 self._popup(
1.61 self._op(op)
1.62 )
1.63 @@ -795,9 +803,16 @@
1.64 self._visitBinary(node, "power", "**")
1.65
1.66 def visitSlice(self, node):
1.67 + target = node._node
1.68 + targets = target.active()
1.69 self.stream.write("<span class='slice'>\n")
1.70 self.dispatch(node.expr)
1.71 + self.stream.write("<span class='call'>\n")
1.72 self.stream.write("[")
1.73 + self._popup(
1.74 + self._invocations(targets)
1.75 + )
1.76 + self.stream.write("</span>\n")
1.77 if node.lower:
1.78 self.dispatch(node.lower)
1.79 self.stream.write(":")
1.80 @@ -820,9 +835,16 @@
1.81 self._visitBinary(node, "sub", "-")
1.82
1.83 def visitSubscript(self, node):
1.84 + target = node._node
1.85 + targets = target.active()
1.86 self.stream.write("<span class='subscript'>\n")
1.87 self.dispatch(node.expr)
1.88 + self.stream.write("<span class='call'>\n")
1.89 self.stream.write("[")
1.90 + self._popup(
1.91 + self._invocations(targets)
1.92 + )
1.93 + self.stream.write("</span>\n")
1.94 first = 1
1.95 for sub in node.subs:
1.96 if not first: