diff options
Diffstat (limited to 'pygments/lexers/agile.py')
-rw-r--r-- | pygments/lexers/agile.py | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/pygments/lexers/agile.py b/pygments/lexers/agile.py index 64929f51..97730e93 100644 --- a/pygments/lexers/agile.py +++ b/pygments/lexers/agile.py @@ -1367,9 +1367,7 @@ class ClojureLexer(RegexLexer): keywords = [ 'fn', 'def', 'defn', 'defmacro', 'defmethod', 'defmulti', 'defn-', - 'defstruct', - 'if', 'cond', - 'let', 'for' + 'defstruct', 'if', 'cond', 'let', 'for' ] builtins = [ '.', '..', @@ -1389,13 +1387,13 @@ class ClojureLexer(RegexLexer): 'double', 'down', 'drop', 'drop-while', 'edit', 'end?', 'ensure', 'eval', 'every?', 'false?', 'ffirst', 'file-seq', 'filter', 'find', 'find-doc', 'find-ns', 'find-var', 'first', 'float', 'flush', - 'fnseq', 'frest', 'gensym', 'get', 'get-proxy-class', + 'fnseq', 'frest', 'gensym', 'get-proxy-class', 'get', 'hash-map', 'hash-set', 'identical?', 'identity', 'if-let', 'import', 'in-ns', 'inc', 'index', 'insert-child', 'insert-left', 'insert-right', 'inspect-table', 'inspect-tree', 'instance?', 'int', 'interleave', 'intersection', 'into', 'into-array', 'iterate', 'join', 'key', 'keys', 'keyword', 'keyword?', 'last', 'lazy-cat', 'lazy-cons', 'left', - 'lefts', 'line-seq', 'list', 'list*', 'load', 'load-file', + 'lefts', 'line-seq', 'list*', 'list', 'load', 'load-file', 'locking', 'long', 'loop', 'macroexpand', 'macroexpand-1', 'make-array', 'make-node', 'map', 'map-invert', 'map?', 'mapcat', 'max', 'max-key', 'memfn', 'merge', 'merge-with', 'meta', 'min', @@ -1429,13 +1427,11 @@ class ClojureLexer(RegexLexer): # TODO / should divide keywords/symbols into namespace/rest # but that's hard, so just pretend / is part of the name - valid_name = r'[\w!$%*+,<=>?/-]+' - - prefix_operators = ['`', "'", '#', '^', '~', '~@'] + valid_name = r'[\w!$%*+,<=>?/.-]+' def _multi_escape(entries): - return '(%s)' % ('|'.join([ - re.escape(entry) + ' ' for entry in entries])) + return '|'.join([re.escape(entry) + '(?![\\w-!$%*+,<=>?/.-])' + for entry in entries])) tokens = { 'root' : [ @@ -1460,19 +1456,13 @@ class ClojureLexer(RegexLexer): (r':' + valid_name, Name.Constant), # special operators - (_multi_escape(prefix_operators), - Operator - ), + (r'~@|[`\'#^~&]', Operator), # highlight the keywords - (_multi_escape(keywords), - Keyword - ), + (_multi_escape(keywords), Keyword), # highlight the builtins - (_multi_escape(builtins), - Name.Builtin - ), + (_multi_escape(builtins), Name.Builtin), # the remaining functions (r'(?<=\()' + valid_name, Name.Function), |