|
171 | 171 |
|
172 | 172 | (def vim-unicode-category-char-classes |
173 | 173 | "Vimscript literal `syntax match` for Unicode General Category classes." |
174 | | - (let [table (group-by first (map seq (:category character-properties))) |
175 | | - cats (map str (keys table)) |
176 | | - subcats (map (fn [[c sc]] |
177 | | - (format "%s[%s]?" c (apply str (sort (mapcat rest sc))))) |
178 | | - table)] |
| 174 | + (let [cats (:category character-properties) |
| 175 | + chrs (->> (map seq cats) |
| 176 | + (group-by first) |
| 177 | + (keys) |
| 178 | + (map str))] |
179 | 179 | ;; gc= and general_category= can be case insensitive, but this is behavior |
180 | 180 | ;; is undefined. |
181 | 181 | (str |
182 | 182 | (syntax-match-properties |
183 | 183 | :clojureRegexpUnicodeCharClass |
184 | 184 | "%s" |
185 | | - (:category character-properties) |
| 185 | + chrs |
186 | 186 | false) |
187 | 187 | (syntax-match-properties |
188 | 188 | :clojureRegexpUnicodeCharClass |
189 | 189 | "%s" |
190 | | - (:category character-properties)) |
| 190 | + cats) |
191 | 191 | (syntax-match-properties |
192 | 192 | :clojureRegexpUnicodeCharClass |
193 | 193 | "%%(Is|gc\\=|general_category\\=)?%s" |
194 | | - (:category character-properties))))) |
| 194 | + cats)))) |
195 | 195 |
|
196 | 196 | (def vim-unicode-script-char-classes |
197 | 197 | "Vimscript literal `syntax match` for Unicode Script properties." |
|
229 | 229 | (fmt "script=" :script) |
230 | 230 | (fmt "block=" :block)]))) |
231 | 231 |
|
232 | | -;;comment |
233 | | -;; Generate the vim literal definitions for pasting into the runtime files. |
234 | | -(spit "tmp/clojure-defs.vim" |
235 | | - (str generation-comment |
236 | | - clojure-version-comment |
237 | | - vim-syntax-keywords |
238 | | - \newline |
239 | | - generation-comment |
240 | | - clojure-version-comment |
241 | | - vim-completion-words |
242 | | - \newline |
243 | | - generation-comment |
244 | | - java-version-comment |
245 | | - vim-posix-char-classes |
246 | | - vim-java-char-classes |
247 | | - vim-unicode-binary-char-classes |
248 | | - vim-unicode-category-char-classes |
249 | | - vim-unicode-script-char-classes |
250 | | - vim-unicode-block-char-classes)) |
251 | | -;; Generate an example file with all possible character property literals. |
252 | | -(spit "tmp/all-char-props.clj" |
253 | | - comprehensive-clojure-character-property-regexps) |
| 232 | +(comment |
| 233 | + ;; Generate the vim literal definitions for pasting into the runtime files. |
| 234 | + (spit "tmp/clojure-defs.vim" |
| 235 | + (str generation-comment |
| 236 | + clojure-version-comment |
| 237 | + vim-syntax-keywords |
| 238 | + \newline |
| 239 | + generation-comment |
| 240 | + clojure-version-comment |
| 241 | + vim-completion-words |
| 242 | + \newline |
| 243 | + generation-comment |
| 244 | + java-version-comment |
| 245 | + vim-posix-char-classes |
| 246 | + vim-java-char-classes |
| 247 | + vim-unicode-binary-char-classes |
| 248 | + vim-unicode-category-char-classes |
| 249 | + vim-unicode-script-char-classes |
| 250 | + vim-unicode-block-char-classes)) |
| 251 | + ;; Generate an example file with all possible character property literals. |
| 252 | + (spit "tmp/all-char-props.clj" |
| 253 | + comprehensive-clojure-character-property-regexps)) |
254 | 254 |
|
0 commit comments