|
93 | 93 | from pygments import highlight, __version__ as pygments_version
|
94 | 94 | from pygments.lexers import get_lexer_by_name
|
95 | 95 |
|
| 96 | +# Use latest version, not version bundled with Pygments |
| 97 | +import robotframeworklexer |
96 | 98 |
|
97 |
| -pygments_version = tuple(int(v) for v in pygments_version.split('.')[:2]) |
98 |
| -if pygments_version < (2, 1): |
99 |
| - sys.exit('Pygments version 2.1 or newer is required.') |
| 99 | + |
| 100 | +def too_old(version_string, minimum): |
| 101 | + version = tuple(int(v) for v in version_string.split('.')[:2]) |
| 102 | + return version < minimum |
| 103 | + |
| 104 | + |
| 105 | +if too_old(getattr(robotframeworklexer, '__version__', '1.0'), (1, 1)): |
| 106 | + sys.exit('robotframeworklexer >= 1.1 is required.') |
| 107 | +if too_old(pygments_version, (2, 1)): |
| 108 | + sys.exit('Pygments >= 2.1 is required.') |
100 | 109 |
|
101 | 110 |
|
102 | 111 | def pygments_directive(name, arguments, options, content, lineno,
|
103 | 112 | content_offset, block_text, state, state_machine):
|
104 | 113 | try:
|
105 |
| - lexer = get_lexer_by_name(arguments[0]) |
| 114 | + if arguments[0] == 'robotframework': |
| 115 | + lexer = robotframeworklexer.RobotFrameworkLexer() |
| 116 | + else: |
| 117 | + lexer = get_lexer_by_name(arguments[0]) |
106 | 118 | except ValueError as err:
|
107 | 119 | raise ValueError(f'Invalid syntax highlighting language "{arguments[0]}".')
|
108 | 120 | # take an arbitrary option if more than one is given
|
|
0 commit comments