summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Gilbert <timgilbert@gmail.com>2014-04-16 18:46:50 -0400
committerTim Gilbert <timgilbert@gmail.com>2014-04-16 18:46:50 -0400
commit70a10a2e423d9729b62c7b56faca28889c0d688a (patch)
treeea48b2c97ef681f5fd95ceec8f4a2a99f7e9f359
parent84b7c8aca975566dde86fc90a23d49353e534265 (diff)
downloadpygments-70a10a2e423d9729b62c7b56faca28889c0d688a.tar.gz
Tweaking clojure keyword lexing
-rw-r--r--pygments/lexers/jvm.py2
-rw-r--r--tests/examplefiles/clojure-weird-keywords.clj5
2 files changed, 6 insertions, 1 deletions
diff --git a/pygments/lexers/jvm.py b/pygments/lexers/jvm.py
index 4b91e723..6d8a2584 100644
--- a/pygments/lexers/jvm.py
+++ b/pygments/lexers/jvm.py
@@ -778,7 +778,7 @@ class ClojureLexer(RegexLexer):
(r"\\(.|[a-z]+)", String.Char),
# keywords
- (r'::?' + valid_name, String.Symbol),
+ (r'::?#?' + valid_name, String.Symbol),
# special operators
(r'~@|[`\'#^~&@]', Operator),
diff --git a/tests/examplefiles/clojure-weird-keywords.clj b/tests/examplefiles/clojure-weird-keywords.clj
new file mode 100644
index 00000000..2d914c59
--- /dev/null
+++ b/tests/examplefiles/clojure-weird-keywords.clj
@@ -0,0 +1,5 @@
+; Note, clojure lexer is here (and is a good deal more liberal than the language spec:
+; https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/LispReader.java#L62
+
+(defn valid [#^java.lang.reflect.Method meth]
+ [:keyword :#initial-hash :h#sh-in-middle :hash-at-end# #js {:keyword "value"}])