License New BSD license
Lines 51
Keywords
lexer (6) nodebox (8) pygments (6)
Included in this Library
Permissions
Owner: Theodore Test
Viewable by Everyone
Editable by All Siafoo Users
Hide
Easily highlight source code for your blog with our Syntax Highlighter. Join Siafoo Now or Learn More

Nodebox Pygments Lexer Atom Feed 0

In Brief A simple, nigh-boilerplate Pygments lexer extending PythonLexer to include the Nodebox builtin environmental names.... more
# 's
 1from pygments.lexers.agile import PythonLexer
2
3class NodeboxLexer(PythonLexer):
4 '''
5 An extension to the Pygments PythonLexer based on the Nodebox environment.
6
7 Creative Commons Attribution License, 2008, Theodore Test
8
9 '''
10
11 name = 'Nodebox Python'
12 aliases = ['nodebox','Nodebox']
13 filenames = ['*.py']
14
15 NODEBOX_MOD = [# Primitive Functions
16 'rect', 'line', 'star', 'oval', 'arrow',
17 # Path Functions
18 'beginpath', 'moveto', 'lineto', 'curveto',
19 'endpath', 'drawpath', 'beginclip', 'endclip',
20 'autoclosepath', 'findpath', 'closepath'
21 # Transform Functions
22 'transform', 'translate', 'rotate', 'scale',
23 'skew', 'push', 'pop', 'reset',
24 # Color Functions
25 'outputmode', 'colormode', 'fill', 'nofill',
26 'nostroke', 'strokewidth', 'background',
27 # Typography Functions
28 'font', 'fontsize', 'text', 'textpath', 'textwidth',
29 'textheight', 'textmetrics', 'lineheight', 'align',
30 # Image Functions
31 'image', 'imagesize'
32 # Utility Functions
33 'size', 'var', 'random', 'choice', 'grid',
34 'open', 'files', 'autotext'
35 # Constants
36 'BOOLEAN', 'BUTTON', 'CENTER', 'CLOSE', 'CMYK',
37 'CORNER', 'CURVETO', 'DEFAULT_HEIGHT', 'DEFAULT_WIDTH',
38 'FORTYFIVE', 'FRAME', 'HEIGHT', 'JUSTIFY',
39 'KEY_BACKSPACE', 'KEY_DOWN', 'KEY_LEFT', 'KEY_RIGHT',
40 'KEY_UP', 'LEFT', 'LINETO', 'MOUSEX', 'MOUSEY', 'MOVETO',
41 'NORMAL', 'NUMBER', 'PAGENUM', 'RGB', 'RIGHT', 'TEXT','HEIGHT'
42 # Various Classes
43 'BezierPath', 'Canvas', 'ClippingPath', 'Color',
44 'Context', 'Grob', 'Image', 'Oval', 'PathElement',
45 'Point', 'Rect', 'Text', 'Transform', 'Variable'
46 # Misc Functions
47 'addvar', 'canvas', 'cm', 'colorrange', 'findvar', 'inch',
48 'key', 'keycode', 'keydown', 'mm', 'mousedown', 'save',
49 'scale', 'scrollwheel', 'wheeldelta', 'ximport']
50
51
52
53
54 def get_tokens_unprocessed(self, text):
55 for index, token, value in PythonLexer.get_tokens_unprocessed(self, text):
56 if token is Name and value in self.NODEBOX_MOD:
57 yield index, Name.Builtin, value
58 else:
59 yield index, token, value

A simple, nigh-boilerplate Pygments lexer extending PythonLexer to include the Nodebox builtin environmental names.

Currently the basis for the Siafoo Nodebox syntax highlighting.