summaryrefslogtreecommitdiffstats
path: root/txr.vim
blob: deaa286652ef5ed0eaf7b0f234be68a1ed13152e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
" VIM Syntax file for txr
" Kaz Kylheku <kaz@kylheku.com>

" INSTALL-HOWTO:
"
" 1. Create the directory .vim/syntax in your home directory and
"    put the files txr.vim and txl.vim into this directory.
" 2. In your .vimrc, add this command to associate *.txr and *.tl
"    files with the txr and txl filetypes:
"    :au BufRead,BufNewFile *.txr set filetype=txr | set lisp
"    :au BufRead,BufNewFile *.tl set filetype=txl | set lisp
"
" If you want syntax highlighting to be on automatically (for any language)
" you need to add ":syntax on" in your .vimrc also. But you knew that already!
"
" This file is generated by the genvim.txr script in the TXR source tree.

syn case match
syn spell toplevel

setlocal iskeyword=a-z,A-Z,48-57,!,$,&,*,+,-,<,=,>,?,\\,_,~,/

syn keyword txl_keyword contained %e% %pi% * *args*
syn keyword txl_keyword contained *args-full* *e* *flo-dig* *flo-epsilon*
syn keyword txl_keyword contained *flo-max* *flo-min* *full-args* *gensym-counter*
syn keyword txl_keyword contained *keyword-package* *lib-version* *pi* *place-clobber-expander*
syn keyword txl_keyword contained *place-delete-expander* *place-macro* *place-update-expander* *random-state*
syn keyword txl_keyword contained *self-path* *stddebug* *stderr* *stdin*
syn keyword txl_keyword contained *stdlog* *stdnull* *stdout* *txr-version*
syn keyword txl_keyword contained *unhandled-hook* *user-package* + -
syn keyword txl_keyword contained / /= < <=
syn keyword txl_keyword contained = > >= abort
syn keyword txl_keyword contained abs abs-path-p acons acons-new
syn keyword txl_keyword contained aconsql-new acos ado alist-nremove
syn keyword txl_keyword contained alist-remove all and andf
syn keyword txl_keyword contained ap apf append append*
syn keyword txl_keyword contained append-each append-each* apply aret
syn keyword txl_keyword contained ash asin assoc assql
syn keyword txl_keyword contained atan atan2 atom bignump
syn keyword txl_keyword contained bindable bit block boundp
syn keyword txl_keyword contained break-str caaaaar caaaadr caaaar
syn keyword txl_keyword contained caaadar caaaddr caaadr caaar
syn keyword txl_keyword contained caadaar caadadr caadar caaddar
syn keyword txl_keyword contained caadddr caaddr caadr caar
syn keyword txl_keyword contained cadaaar cadaadr cadaar cadadar
syn keyword txl_keyword contained cadaddr cadadr cadar caddaar
syn keyword txl_keyword contained caddadr caddar cadddar caddddr
syn keyword txl_keyword contained cadddr caddr cadr call
syn keyword txl_keyword contained call-clobber-expander call-delete-expander call-update-expander callf
syn keyword txl_keyword contained car caseq caseql casequal
syn keyword txl_keyword contained cat-str cat-streams cat-vec catch
syn keyword txl_keyword contained catenated-stream-p catenated-stream-push cdaaaar cdaaadr
syn keyword txl_keyword contained cdaaar cdaadar cdaaddr cdaadr
syn keyword txl_keyword contained cdaar cdadaar cdadadr cdadar
syn keyword txl_keyword contained cdaddar cdadddr cdaddr cdadr
syn keyword txl_keyword contained cdar cddaaar cddaadr cddaar
syn keyword txl_keyword contained cddadar cddaddr cddadr cddar
syn keyword txl_keyword contained cdddaar cdddadr cdddar cddddar
syn keyword txl_keyword contained cdddddr cddddr cdddr cddr
syn keyword txl_keyword contained cdr ceil chain chand
syn keyword txl_keyword contained chdir chmod chr-isalnum chr-isalpha
syn keyword txl_keyword contained chr-isascii chr-isblank chr-iscntrl chr-isdigit
syn keyword txl_keyword contained chr-isgraph chr-islower chr-isprint chr-ispunct
syn keyword txl_keyword contained chr-isspace chr-isunisp chr-isupper chr-isxdigit
syn keyword txl_keyword contained chr-num chr-str chr-str-set chr-tolower
syn keyword txl_keyword contained chr-toupper chrp clear-error close-stream
syn keyword txl_keyword contained closelog cmp-str collect-each collect-each*
syn keyword txl_keyword contained comb compl-span-str cond conda
syn keyword txl_keyword contained cons conses conses* consp
syn keyword txl_keyword contained constantp copy copy-alist copy-cons
syn keyword txl_keyword contained copy-hash copy-list copy-str copy-vec
syn keyword txl_keyword contained cos count-if countq countql
syn keyword txl_keyword contained countqual cum-norm-dist daemon dec
syn keyword txl_keyword contained define-modify-macro define-place-macro defmacro defparm
syn keyword txl_keyword contained defparml defplace defsymacro defun
syn keyword txl_keyword contained defvar defvarl del delay
syn keyword txl_keyword contained delete-package do dohash dotimes
syn keyword txl_keyword contained downcase-str dup dupfd dwim
syn keyword txl_keyword contained each each* eighth empty
syn keyword txl_keyword contained ensure-dir env env-fbind env-hash
syn keyword txl_keyword contained env-vbind eq eql equal
syn keyword txl_keyword contained errno error eval evenp
syn keyword txl_keyword contained exec exit exit* exp
syn keyword txl_keyword contained expr expt exptmod false
syn keyword txl_keyword contained fbind fboundp fifth fileno
syn keyword txl_keyword contained filter-equal filter-string-tree finalize find
syn keyword txl_keyword contained find-if find-max find-min find-package
syn keyword txl_keyword contained first fixnump flatten flatten*
syn keyword txl_keyword contained flet flip flipargs flo-dig
syn keyword txl_keyword contained flo-epsilon flo-int flo-max flo-min
syn keyword txl_keyword contained flo-str floatp floor flush-stream
syn keyword txl_keyword contained fmakunbound for for* force
syn keyword txl_keyword contained fork format fourth fstat
syn keyword txl_keyword contained fun func-get-env func-get-form func-get-name
syn keyword txl_keyword contained func-set-env functionp gcd gen
syn keyword txl_keyword contained generate gensym gequal get-byte
syn keyword txl_keyword contained get-char get-clobber-expander get-delete-expander get-error
syn keyword txl_keyword contained get-error-str get-hash-userdata get-indent get-indent-mode
syn keyword txl_keyword contained get-line get-lines get-list-from-stream get-sig-handler
syn keyword txl_keyword contained get-string get-string-from-stream get-update-expander getegid
syn keyword txl_keyword contained getenv geteuid getgid getgroups
syn keyword txl_keyword contained gethash getitimer getpid getppid
syn keyword txl_keyword contained getuid giterate glob glob-altdirfunc
syn keyword txl_keyword contained glob-brace glob-err glob-mark glob-nocheck
syn keyword txl_keyword contained glob-noescape glob-nomagic glob-nosort glob-onlydir
syn keyword txl_keyword contained glob-period glob-tilde glob-tilde-check greater
syn keyword txl_keyword contained group-by gun hash hash-alist
syn keyword txl_keyword contained hash-construct hash-count hash-diff hash-eql
syn keyword txl_keyword contained hash-equal hash-from-pairs hash-isec hash-keys
syn keyword txl_keyword contained hash-list hash-pairs hash-proper-subset hash-revget
syn keyword txl_keyword contained hash-subset hash-uni hash-update hash-update-1
syn keyword txl_keyword contained hash-values hashp have html-decode
syn keyword txl_keyword contained html-encode iapply identity ido
syn keyword txl_keyword contained if ifa iff iffi
syn keyword txl_keyword contained iflet ignerr in inc
syn keyword txl_keyword contained inc-indent indent-code indent-data indent-off
syn keyword txl_keyword contained inhash int-flo int-str integerp
syn keyword txl_keyword contained intern interp-fun-p interpose ip
syn keyword txl_keyword contained ipf isqrt itimer-prov itimer-real
syn keyword txl_keyword contained itimer-virtual juxt keep-if keep-if*
syn keyword txl_keyword contained keyword-package keywordp kill labels
syn keyword txl_keyword contained lambda last lazy-str lazy-str-force
syn keyword txl_keyword contained lazy-str-force-upto lazy-str-get-trailing-list lazy-stream-cons lazy-stringp
syn keyword txl_keyword contained lbind lcm lcons lcons-fun
syn keyword txl_keyword contained lconsp ldiff length length-list
syn keyword txl_keyword contained length-str length-str-< length-str-<= length-str->
syn keyword txl_keyword contained length-str->= length-vec lequal less
syn keyword txl_keyword contained let let* lexical-fun-p lexical-lisp1-binding
syn keyword txl_keyword contained lexical-var-p lib-version link lisp-parse
syn keyword txl_keyword contained list list* list-str list-vector
syn keyword txl_keyword contained listp load log log-alert
syn keyword txl_keyword contained log-auth log-authpriv log-cons log-crit
syn keyword txl_keyword contained log-daemon log-debug log-emerg log-err
syn keyword txl_keyword contained log-info log-ndelay log-notice log-nowait
syn keyword txl_keyword contained log-odelay log-perror log-pid log-user
syn keyword txl_keyword contained log-warning log10 log2 logand
syn keyword txl_keyword contained logior lognot logtest logtrunc
syn keyword txl_keyword contained logxor lstat mac-param-bind macro-form-p
syn keyword txl_keyword contained macro-time macroexpand macroexpand-1 macrolet
syn keyword txl_keyword contained major make-catenated-stream make-env make-hash
syn keyword txl_keyword contained make-lazy-cons make-like make-package make-random-state
syn keyword txl_keyword contained make-similar-hash make-string-byte-input-stream make-string-input-stream make-string-output-stream
syn keyword txl_keyword contained make-strlist-output-stream make-sym make-time make-time-utc
syn keyword txl_keyword contained make-trie makedev makunbound mapcar
syn keyword txl_keyword contained mapcar* mapdo mapf maphash
syn keyword txl_keyword contained mappend mappend* mask match-fun
syn keyword txl_keyword contained match-regex match-regex-right match-regst match-regst-right
syn keyword txl_keyword contained match-str match-str-tree max member
syn keyword txl_keyword contained member-if memq memql memqual
syn keyword txl_keyword contained merge min minor minusp
syn keyword txl_keyword contained mkdir mknod mkstring mlet
syn keyword txl_keyword contained mod multi multi-sort n-choose-k
syn keyword txl_keyword contained n-perm-k nconc nilf ninth
syn keyword txl_keyword contained none not notf nreverse
syn keyword txl_keyword contained nthcdr null nullify num-chr
syn keyword txl_keyword contained num-str numberp oand oddp
syn keyword txl_keyword contained op open-command open-directory open-file
syn keyword txl_keyword contained open-fileno open-files open-files* open-pipe
syn keyword txl_keyword contained open-process open-tail openlog opip
syn keyword txl_keyword contained or orf packagep pad
syn keyword txl_keyword contained partition partition* partition-by perm
syn keyword txl_keyword contained pipe place-form-p placelet placelet*
syn keyword txl_keyword contained plusp poll poll-err poll-in
syn keyword txl_keyword contained poll-nval poll-out poll-pri poll-rdband
syn keyword txl_keyword contained poll-rdhup poll-wrband pop pos
syn keyword txl_keyword contained pos-if pos-max pos-min posq
syn keyword txl_keyword contained posql posqual pppred ppred
syn keyword txl_keyword contained pprinl pprint pprof pred
syn keyword txl_keyword contained prinl print prof prog1
syn keyword txl_keyword contained progn prop proper-listp pset
syn keyword txl_keyword contained push pushhash pushnew put-byte
syn keyword txl_keyword contained put-char put-line put-lines put-string
syn keyword txl_keyword contained put-strings pwd qquote quasi
syn keyword txl_keyword contained quasilist quote rand random
syn keyword txl_keyword contained random-fixnum random-state-p range range*
syn keyword txl_keyword contained range-regex rcomb read readlink
syn keyword txl_keyword contained real-time-stream-p reduce-left reduce-right ref
syn keyword txl_keyword contained refset regex-compile regex-parse regexp
syn keyword txl_keyword contained regsub rehome-sym remhash remove-if
syn keyword txl_keyword contained remove-if* remove-path remq remq*
syn keyword txl_keyword contained remql remql* remqual remqual*
syn keyword txl_keyword contained rename-path repeat replace replace-list
syn keyword txl_keyword contained replace-str replace-vec rest ret
syn keyword txl_keyword contained retf return return-from reverse
syn keyword txl_keyword contained rlcp rlet rotate rperm
syn keyword txl_keyword contained rplaca rplacd run s-ifblk
syn keyword txl_keyword contained s-ifchr s-ifdir s-ififo s-iflnk
syn keyword txl_keyword contained s-ifmt s-ifreg s-ifsock s-irgrp
syn keyword txl_keyword contained s-iroth s-irusr s-irwxg s-irwxo
syn keyword txl_keyword contained s-irwxu s-isgid s-isuid s-isvtx
syn keyword txl_keyword contained s-iwgrp s-iwoth s-iwusr s-ixgrp
syn keyword txl_keyword contained s-ixoth s-ixusr search search-regex
syn keyword txl_keyword contained search-regst search-str search-str-tree second
syn keyword txl_keyword contained seek-stream select self-path seqp
syn keyword txl_keyword contained set set-diff set-hash-userdata set-indent
syn keyword txl_keyword contained set-indent-mode set-sig-handler setegid setenv
syn keyword txl_keyword contained seteuid setgid sethash setitimer
syn keyword txl_keyword contained setlogmask setq setuid seventh
syn keyword txl_keyword contained sh shift sig-abrt sig-alrm
syn keyword txl_keyword contained sig-bus sig-check sig-chld sig-cont
syn keyword txl_keyword contained sig-fpe sig-hup sig-ill sig-int
syn keyword txl_keyword contained sig-io sig-iot sig-kill sig-lost
syn keyword txl_keyword contained sig-pipe sig-poll sig-prof sig-pwr
syn keyword txl_keyword contained sig-quit sig-segv sig-stkflt sig-stop
syn keyword txl_keyword contained sig-sys sig-term sig-trap sig-tstp
syn keyword txl_keyword contained sig-ttin sig-ttou sig-urg sig-usr1
syn keyword txl_keyword contained sig-usr2 sig-vtalrm sig-winch sig-xcpu
syn keyword txl_keyword contained sig-xfsz sign-extend sin sixth
syn keyword txl_keyword contained size-vec some sort sort-group
syn keyword txl_keyword contained source-loc source-loc-str span-str special-operator-p
syn keyword txl_keyword contained special-var-p splice split split-str
syn keyword txl_keyword contained split-str-set sqrt sssucc ssucc
syn keyword txl_keyword contained stat stdlib str< str<=
syn keyword txl_keyword contained str= str> str>= stream-get-prop
syn keyword txl_keyword contained stream-set-prop streamp string-extend string-lt
syn keyword txl_keyword contained stringp sub sub-list sub-str
syn keyword txl_keyword contained sub-vec succ swap symacrolet
syn keyword txl_keyword contained symbol-function symbol-name symbol-package symbol-value
syn keyword txl_keyword contained symbolp symlink sys-lisp1-value sys-mark-special
syn keyword txl_keyword contained sys-qquote sys-splice sys-unquote sys:*lisp1*
syn keyword txl_keyword contained sys:eval-err sys:get-fb sys:get-vb sys:l1-setq
syn keyword txl_keyword contained sys:l1-val sys:pl-expand sys:placelet-1 sys:sym-clobber-expander
syn keyword txl_keyword contained sys:sym-delete-expander sys:sym-update-expander sys:trigger-load syslog
syn keyword txl_keyword contained tan tb tc tenth
syn keyword txl_keyword contained test-set-indent-mode tf third throw
syn keyword txl_keyword contained throwf time time-fields-local time-fields-utc
syn keyword txl_keyword contained time-string-local time-string-utc time-usec tofloat
syn keyword txl_keyword contained toint tok-str tok-where tostring
syn keyword txl_keyword contained tostringp tprint transpose tree-bind
syn keyword txl_keyword contained tree-case tree-find trie-add trie-compress
syn keyword txl_keyword contained trie-lookup-begin trie-lookup-feed-char trie-value-at trim-str
syn keyword txl_keyword contained true trunc trunc-rem tuples
syn keyword txl_keyword contained txr-case txr-case-impl txr-if txr-version
syn keyword txl_keyword contained txr-when typeof unget-byte unget-char
syn keyword txl_keyword contained uniq unique unless unquote
syn keyword txl_keyword contained unsetenv until until* upcase-str
syn keyword txl_keyword contained update url-decode url-encode user-package
syn keyword txl_keyword contained usleep uw-protect var vec
syn keyword txl_keyword contained vec-push vec-set-length vecref vector
syn keyword txl_keyword contained vector-list vectorp w-continued w-coredump
syn keyword txl_keyword contained w-exitstatus w-ifcontinued w-ifexited w-ifsignaled
syn keyword txl_keyword contained w-ifstopped w-nohang w-stopsig w-termsig
syn keyword txl_keyword contained w-untraced wait weave when
syn keyword txl_keyword contained whenlet where while while*
syn keyword txl_keyword contained whilet width width-check with-clobber-expander
syn keyword txl_keyword contained with-delete-expander with-gensyms with-resources with-saved-vars
syn keyword txl_keyword contained with-update-expander wrap wrap* zap
syn keyword txl_keyword contained zerop zip

syn keyword txr_keyword contained accept all and assert
syn keyword txr_keyword contained bind block cases cat
syn keyword txr_keyword contained catch choose chr close
syn keyword txr_keyword contained coll collect defex deffilter
syn keyword txr_keyword contained define do elif else
syn keyword txr_keyword contained end eof eol fail
syn keyword txr_keyword contained filter finally flatten forget
syn keyword txr_keyword contained freeform fuzz gather if
syn keyword txr_keyword contained include last line load
syn keyword txr_keyword contained local maybe merge next
syn keyword txr_keyword contained none or output rebind
syn keyword txr_keyword contained rep repeat require set
syn keyword txr_keyword contained skip some text throw
syn keyword txr_keyword contained trailer try until var
syn match txr_error "\(@[ \t]*\)[*]\?[\t ]*."
syn match txr_atat "\(@[ \t]*\)@"
syn match txr_comment "\(@[ \t]*\)[#;].*"
syn match txr_contin "\(@[ \t]*\)\\$"
syn match txr_char "\(@[ \t]*\)\\."
syn match txr_error "\(@[ \t]*\)\\[xo]"
syn match txr_char "\(@[ \t]*\)\\x[0-9A-Fa-f]\+;\?"
syn match txr_char "\(@[ \t]*\)\\[0-7]\+;\?"
syn match txr_regdir "\(@[ \t]*\)/\(\\/\|[^/]\|\\\n\)*/"
syn match txr_hashbang "^#!.*"
syn match txr_nested_error "[^\t ]\+" contained
syn match txr_variable "\(@[ \t]*\)[*]\?[ \t]*[A-Za-z_][A-Za-z_0-9]*"
syn match txr_splicevar "@[ \t,*@]*[A-Za-z_][A-Za-z_0-9]*"
syn match txr_metanum "@\+[0-9]\+"
syn match txr_badesc "\\." contained
syn match txr_escat "\\@" contained
syn match txr_stresc "\\[abtnvfre\\ \n"`']" contained
syn match txr_numesc "\\x[0-9A-Fa-f]\+;\?" contained
syn match txr_numesc "\\[0-7]\+;\?" contained
syn match txr_regesc "\\[abtnvfre\\ \n/sSdDwW()\|.*?+~&%\[\]\-]" contained

syn match txr_chr "#\\x[0-9A-Fa-f]\+" contained
syn match txr_chr "#\\o[0-7]\+" contained
syn match txr_chr "#\\[^ \t\nA-Za-z_0-9]" contained
syn match txr_chr "#\\[A-Za-z_0-9]\+" contained
syn match txr_ncomment ";.*" contained

syn match txr_dot "\." contained
syn match txr_num "#x[+\-]\?[0-9A-Fa-f]\+" contained
syn match txr_num "#o[+\-]\?[0-7]\+" contained
syn match txr_num "#b[+\-]\?[01]\+" contained
syn match txr_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~]*[A-Za-z_!$%&*+\-<=>?\\_~^][A-Za-z_0-9!$%&*+\-<=>?\\_~^]*" contained
syn match txl_ident "[:@][A-Za-z_0-9!$%&*+\-<=>?\\_~^/]\+" contained
syn match txr_braced_ident "[:][A-Za-z_0-9!$%&*+\-<=>?\\_~^/]\+" contained
syn match txl_ident "[A-Za-z_0-9!$%&*+\-<=>?\\_~/]*[A-Za-z_!$%&*+\-<=>?\\_~^/#][A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]*" contained
syn match txr_num "[+\-]\?[0-9]\+\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1 contained
syn match txr_badnum "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?[A-Za-z_!$%&*+\-<=>?\\_~^/#]\+" contained
syn match txr_num "[+\-]\?[0-9]*[.][0-9]\+\([eE][+\-]\?[0-9]\+\)\?\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1 contained
syn match txr_num "[+\-]\?[0-9]\+\([eE][+\-]\?[0-9]\+\)\([^A-Za-z_0-9!$%&*+\-<=>?\\_~^/#]\|\n\)"me=e-1 contained
syn match txl_ident ":" contained
syn match txl_splice "[ \t,]\|,[*]" contained

syn match txr_unquote "," contained
syn match txr_splice ",\*" contained
syn match txr_quote "'" contained
syn match txr_quote "\^" contained
syn match txr_dotdot "\.\." contained
syn match txr_metaat "@" contained

syn region txr_bracevar matchgroup=Delimiter start="@[ \t]*[*]\?{" matchgroup=Delimiter end="}" contains=txr_num,txl_ident,txl_splice,txl_metanum,txr_metaat,txr_braced_ident,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_regex,txr_quasilit,txr_chr,txl_splice,txr_nested_error
syn region txr_directive matchgroup=Delimiter start="@[ \t]*(" matchgroup=Delimiter end=")" contains=txr_keyword,txr_string,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_num,txr_badnum,txl_ident,txl_regex,txr_string,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_ncomment,txr_nested_error
syn region txr_list contained matchgroup=Delimiter start="#\?H\?(" matchgroup=Delimiter end=")" contains=txl_keyword,txr_string,txl_regex,txr_num,txr_badnum,txl_ident,txr_metanum,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_ncomment,txr_nested_error
syn region txr_bracket contained matchgroup=Delimiter start="\[" matchgroup=Delimiter end="\]" contains=txl_keyword,txr_string,txl_regex,txr_num,txr_badnum,txl_ident,txr_metanum,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_ncomment,txr_nested_error
syn region txr_mlist contained matchgroup=Delimiter start="@[ \t^',]*(" matchgroup=Delimiter end=")" contains=txl_keyword,txr_string,txl_regex,txr_num,txr_badnum,txl_ident,txr_metanum,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_ncomment,txr_nested_error
syn region txr_mbracket matchgroup=Delimiter start="@[ \t^',]*\[" matchgroup=Delimiter end="\]" contains=txl_keyword,txr_string,txl_regex,txr_num,txr_badnum,txl_ident,txr_metanum,txr_list,txr_bracket,txr_mlist,txr_mbracket,txr_quasilit,txr_chr,txr_quote,txr_unquote,txr_splice,txr_dot,txr_dotdot,txr_metaat,txr_ncomment,txr_nested_error
syn region txr_string contained start=+#\?\*\?"+ end=+["\n]+ contains=txr_stresc,txr_numesc,txr_badesc
syn region txr_quasilit contained start=+#\?\*\?`+ end=+[`\n]+ contains=txr_splicevar,txr_metanum,txr_bracevar,txr_mlist,txr_mbracket,txr_escat,txr_stresc,txr_numesc,txr_badesc
syn region txr_regex contained start="/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc
syn region txl_regex contained start="#/" end="[/\n]" contains=txr_regesc,txr_numesc,txr_badesc

hi def link txr_at Special
hi def link txr_atstar Special
hi def link txr_atat Special
hi def link txr_comment Comment
hi def link txr_ncomment Comment
hi def link txr_hashbang Preproc
hi def link txr_contin Preproc
hi def link txr_char String
hi def link txr_keyword Keyword
hi def link txl_keyword Type
hi def link txr_string String
hi def link txr_chr String
hi def link txr_quasilit String
hi def link txr_regex String
hi def link txl_regex String
hi def link txr_regdir String
hi def link txr_variable Identifier
hi def link txr_splicevar Identifier
hi def link txr_metanum Identifier
hi def link txr_escat Special
hi def link txr_stresc Special
hi def link txr_numesc Special
hi def link txr_regesc Special
hi def link txr_badesc Error
hi def link txr_ident Identifier
hi def link txl_ident Identifier
hi def link txr_num Number
hi def link txr_badnum Error
hi def link txr_quote Special
hi def link txr_unquote Special
hi def link txr_splice Special
hi def link txr_dot Special
hi def link txr_dotdot Special
hi def link txr_metaat Special
hi def link txr_munqspl Special
hi def link txl_splice Special
hi def link txr_error Error
hi def link txr_nested_error Error

let b:current_syntax = "lisp"