Open oskarkv opened 10 years ago
Hi oskarv!
In this case, the some-func part of the name some-func' becomes clojureFunc while the ' becomes clojureQuote, resulting in a name with two colors in it, which can be confusing. Normally, the name in the let should be a clojureSymbol, but it seems that because some-func is also a function this happens somehow.
Yes, this is a problem with the way vim-clojure-static handles single quotes. We use syntax keyword
statements to match known symbols, but since we cannot include '
in the iskeywords
setting¹, symbols with single quotes are broken in this way.
Now we could avoid this problem by using syntax match
instead of syntax keyword
, but there is a significant performance hit because while matching syntax keyword
is a simple table lookup, matching a syntax match
requires a full regexp match.
My benchmarks showed that the performance hit was ~8-10x when translating to simple regexps, while the hit was about ~2x when using frak optimized regexps.
2x is pretty good, but IMO, the Clojure syntax is already a little slow, so I decided against the switch.
Names that contain ' become clojureSymbol instead of clojureFunc when using vim-clojure-highlight.
Now this is a bug! I'll have a look at it today. Thanks!
¹ That would break quoting and the #'
reader macro
Not sure if this is a vim-clojure-static or vim-clojure-highlight issue.
Names that contain
'
becomeclojureSymbol
instead ofclojureFunc
when using vim-clojure-highlight.Also, another problem with
'
is the following:In this case, the
some-func
part of the namesome-func'
becomesclojureFunc
while the'
becomesclojureQuote
, resulting in a name with two colors in it, which can be confusing. Normally, the name in the let should be aclojureSymbol
, but it seems that becausesome-func
is also a function this happens somehow.