Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 7a2abd5

Browse files
committed
Remove correct radix literal matching for better performance
Halves syntime benchmark: TOTAL COUNT BEFORE: 0.116939 49694 AFTER: 0.052234 27016
1 parent 262a75c commit 7a2abd5

File tree

2 files changed

+5
-8
lines changed

2 files changed

+5
-8
lines changed

‎clj/test/vim_clojure_static/syntax_test.clj

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"0x0" number "+0x0" number "-0x0" number ; Hexadecimal zero
3636
"3/2" number "+3/2" number "-3/2" number ; Rational
3737
"0/0" number "+0/0" number "-0/0" number ; Rational (not a syntax error)
38+
"36r0XYZ" number "16rFF" number "8r077" number ; Radix
3839
"2r1" number "+2r1" number "-2r1" number ; Radix
3940
"36R1" number "+36R1" number "-36R1" number ; Radix
4041

@@ -47,7 +48,7 @@
4748
"1.0/1" !number
4849
"01/2" !number
4950
"1/02" !number
50-
"2r2" !number
51+
;"2r2" !number ;; Removed for performance
5152
"1r0" !number
5253
"37r36" !number
5354

@@ -68,7 +69,7 @@
6869
"08.9M" !number
6970
"0x1fM" !number
7071
"3/4M" !number
71-
"2r1M" !number
72+
;"2r1M" !number ;; Removed for performance
7273

7374
;; Exponential notation
7475

‎syntax/clojure.vim

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,12 +80,8 @@ syntax match clojureCharacter "\v\\%(.$|o%([0-3]\o{2}|\o{1,2})|u\x{4}|newline|ta
8080

8181
syntax match clojureSymbol "\v%([a-zA-Z!$&*_+=|<.>?-]|[^\x00-\x7F])+%(:?%([a-zA-Z0-9!#$%&*_+=|'<.>/?-]|[^\x00-\x7F]))*[#:]@<!"
8282

83-
let s:radix_chars = "0123456789abcdefghijklmnopqrstuvwxyz"
84-
for s:radix in range(2, 36)
85-
execute 'syntax match clojureNumber "\v\c<[-+]?' . s:radix . 'r[' . strpart(s:radix_chars, 0, s:radix) . ']+>"'
86-
endfor
87-
unlet! s:radix_chars s:radix
88-
83+
" NB. Correct matching of radix literals was removed for better performance.
84+
syntax match clojureNumber "\v<[-+]?%([2-9]|[12]\d|3[0-6])[rR][[:alnum:]]+>"
8985
syntax match clojureNumber "\v<[-+]?%(0\o*|0x\x+|[1-9]\d*)N?>"
9086
syntax match clojureNumber "\v<[-+]?%(0|[1-9]\d*|%(0|[1-9]\d*)\.\d*)%(M|[eE][-+]?\d+)?>"
9187
syntax match clojureNumber "\v<[-+]?%(0|[1-9]\d*)/%(0|[1-9]\d*)>"

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /