summaryrefslogtreecommitdiff
path: root/pygments/lexers/agile.py
diff options
context:
space:
mode:
Diffstat (limited to 'pygments/lexers/agile.py')
-rw-r--r--pygments/lexers/agile.py28
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),