aboutsummaryrefslogtreecommitdiffstats
path: root/lv2specgen
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2020-02-16 14:44:55 +0100
committerDavid Robillard <d@drobilla.net>2020-02-16 15:49:51 +0100
commitd2bd47c38be8ca75385a8de5f8ce32003d790429 (patch)
treeb42ca187532b758ae41c2436617a3f1f314611d3 /lv2specgen
parent66985fb0748b6e4397ea9115d81088071984867c (diff)
downloadlv2-d2bd47c38be8ca75385a8de5f8ce32003d790429.tar.xz
Use standard Turtle lexer in Pygments
A Turtle lexer was finally added in Pygments 2.1.
Diffstat (limited to 'lv2specgen')
-rwxr-xr-xlv2specgen/lv2specgen.py60
1 files changed, 2 insertions, 58 deletions
diff --git a/lv2specgen/lv2specgen.py b/lv2specgen/lv2specgen.py
index ce05c74..75415d4 100755
--- a/lv2specgen/lv2specgen.py
+++ b/lv2specgen/lv2specgen.py
@@ -59,9 +59,8 @@ except:
try:
import pygments
import pygments.lexers
+ import pygments.lexers.rdf
import pygments.formatters
- from pygments.lexer import RegexLexer, include, bygroups
- from pygments.token import Text, Comment, Operator, Keyword, Name, String, Literal, Punctuation
have_pygments = True
except ImportError:
print("Error importing pygments, syntax highlighting disabled")
@@ -178,61 +177,6 @@ def getLabel(m, urinode):
else:
return ''
-if have_pygments:
- # Based on sw.py by Philip Cooper
- class Notation3Lexer(RegexLexer):
- """
- Lexer for N3 / Turtle / NT
- """
- name = 'N3'
- aliases = ['n3', 'turtle']
- filenames = ['*.n3', '*.ttl', '*.nt']
- mimetypes = ['text/rdf+n3','application/x-turtle','application/n3']
-
- tokens = {
- 'comments': [
- (r'(\s*#.*)', Comment)
- ],
- 'root': [
- include('comments'),
- (r'(\s*@(?:prefix|base|keywords)\s*)(\w*:\s+)?(<[^> ]*>\s*\.\s*)',bygroups(Keyword,Name.Variable,Name.Namespace)),
- (r'\s*(<[^>]*\>)', Name.Class, ('triple','predObj')),
- (r'(\s*[a-zA-Z_:][a-zA-Z0-9\-_:]*\s)', Name.Class, ('triple','predObj')),
- (r'\s*\[\]\s*', Name.Class, ('triple','predObj')),
- ],
- 'triple' : [
- (r'\s*\.\s*', Text, '#pop')
- ],
- 'predObj': [
- include('comments'),
- (r'\s*a\s*', Name.Keyword, 'object'),
- (r'\s*[a-zA-Z_:][a-zA-Z0-9\-_:]*\b\s*', Name.Tag, 'object'),
- (r'\s*(<[^>]*\>)', Name.Tag, 'object'),
- (r'\s*\]\s*', Text, '#pop'),
- (r'(?=\s*\.\s*)', Keyword, '#pop'),
- ],
- 'objList': [
- include('comments'),
- (r'\s*\)', Text, '#pop'),
- include('object')
- ],
- 'object': [
- include('comments'),
- (r'\s*\[', Text, 'predObj'),
- (r'\s*<[^> ]*>', Name.Tag),
- (r'\s*("""(?:.|\n)*?""")(\@[a-z]{2-4}|\^\^<?[a-zA-Z0-9\-\:_#/\.]*>?)?\s*', bygroups(Literal.String,Text)),
- (r'\s*".*?[^\\]"(?:\@[a-z]{2-4}|\^\^<?[a-zA-Z0-9\-\:_#/\.]*>?)?\s*', Literal.String),
- (r'\s*[0-9]+\.[0-9]*\s*\n?', Literal.Number),
- (r'\s*[0-9]+\s*\n?', Literal.Number),
- (r'\s*[a-zA-Z0-9\-_\:]+\s*', Name.Tag),
- (r'\s*\(', Text, 'objList'),
- (r'\s*;\s*\n?', Punctuation, '#pop'),
- (r'\s*,\s*\n?', Punctuation), # Added by drobilla so "," is not an error
- (r'(?=\s*\])', Text, '#pop'),
- (r'(?=\s*\.)', Text, '#pop'),
- ],
- }
-
def linkify(string):
if linkmap == {}:
return string
@@ -280,7 +224,7 @@ def getComment(m, urinode, classlist, proplist, instalist):
match_str = xml.sax.saxutils.unescape(code.group(1))
code_str = pygments.highlight(
match_str,
- Notation3Lexer(),
+ pygments.lexers.rdf.TurtleLexer(),
pygments.formatters.HtmlFormatter())
markup = code_rgx.sub(code_str, markup, 1)