3 " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
4 " Last Change: Oct 12, 2005
6 " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
8 " Thanks to F Xavier Noria for a list of 978 Common Lisp symbols
9 " taken from the HyperSpec
11 " ---------------------------------------------------------------------
13 " For vim-version 5.x: Clear all syntax items
14 " For vim-version 6.x: Quit when a syntax file was already loaded
17 elseif exists("b:current_syntax")
22 setlocal iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
24 set iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
27 " ---------------------------------------------------------------------
29 syn cluster lispAtomCluster contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite
30 syn cluster lispBaseListCluster contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite
31 if exists("g:lisp_instring")
32 syn cluster lispListCluster contains=@lispBaseListCluster,lispString,lispInString,lispInStringString
34 syn cluster lispListCluster contains=@lispBaseListCluster,lispString
37 " ---------------------------------------------------------------------
39 syn match lispSymbol contained ![^()'`,"; \t]\+!
40 syn match lispBarSymbol contained !|..\{-}|!
41 if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
42 syn region lispParen0 matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen1
43 syn region lispParen1 contained matchgroup=hlLevel1 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen2
44 syn region lispParen2 contained matchgroup=hlLevel2 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen3
45 syn region lispParen3 contained matchgroup=hlLevel3 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen4
46 syn region lispParen4 contained matchgroup=hlLevel4 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen5
47 syn region lispParen5 contained matchgroup=hlLevel5 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen6
48 syn region lispParen6 contained matchgroup=hlLevel6 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen7
49 syn region lispParen7 contained matchgroup=hlLevel7 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen8
50 syn region lispParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen9
51 syn region lispParen9 contained matchgroup=hlLevel9 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen0
53 syn region lispList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=@lispListCluster
54 syn region lispBQList matchgroup=PreProc start="`(" skip="|.\{-}|" matchgroup=PreProc end=")" contains=@lispListCluster
57 " ---------------------------------------------------------------------
59 syn match lispAtomMark "'"
60 syn match lispAtom "'("me=e-1 contains=lispAtomMark nextgroup=lispAtomList
61 syn match lispAtom "'[^ \t()]\+" contains=lispAtomMark
62 syn match lispAtomBarSymbol !'|..\{-}|! contains=lispAtomMark
63 syn region lispAtom start=+'"+ skip=+\\"+ end=+"+
64 syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString
65 syn match lispAtomNmbr contained "\<\d\+"
66 syn match lispLeadWhite contained "^\s\+"
68 " ---------------------------------------------------------------------
69 " Standard Lisp Functions and Macros: {{{1
70 syn keyword lispFunc * find-method pprint-indent
71 syn keyword lispFunc ** find-package pprint-linear
72 syn keyword lispFunc *** find-restart pprint-logical-block
73 syn keyword lispFunc + find-symbol pprint-newline
74 syn keyword lispFunc ++ finish-output pprint-pop
75 syn keyword lispFunc +++ first pprint-tab
76 syn keyword lispFunc - fixnum pprint-tabular
77 syn keyword lispFunc / flet prin1
78 syn keyword lispFunc // float prin1-to-string
79 syn keyword lispFunc /// float-digits princ
80 syn keyword lispFunc /= float-precision princ-to-string
81 syn keyword lispFunc 1+ float-radix print
82 syn keyword lispFunc 1- float-sign print-not-readable
83 syn keyword lispFunc < floating-point-inexact print-not-readable-object
84 syn keyword lispFunc <= floating-point-invalid-operation print-object
85 syn keyword lispFunc = floating-point-overflow print-unreadable-object
86 syn keyword lispFunc > floating-point-underflow probe-file
87 syn keyword lispFunc >= floatp proclaim
88 syn keyword lispFunc abort floor prog
89 syn keyword lispFunc abs fmakunbound prog*
90 syn keyword lispFunc access force-output prog1
91 syn keyword lispFunc acons format prog2
92 syn keyword lispFunc acos formatter progn
93 syn keyword lispFunc acosh fourth program-error
94 syn keyword lispFunc add-method fresh-line progv
95 syn keyword lispFunc adjoin fround provide
96 syn keyword lispFunc adjust-array ftruncate psetf
97 syn keyword lispFunc adjustable-array-p ftype psetq
98 syn keyword lispFunc allocate-instance funcall push
99 syn keyword lispFunc alpha-char-p function pushnew
100 syn keyword lispFunc alphanumericp function-keywords putprop
101 syn keyword lispFunc and function-lambda-expression quote
102 syn keyword lispFunc append functionp random
103 syn keyword lispFunc apply gbitp random-state
104 syn keyword lispFunc applyhook gcd random-state-p
105 syn keyword lispFunc apropos generic-function rassoc
106 syn keyword lispFunc apropos-list gensym rassoc-if
107 syn keyword lispFunc aref gentemp rassoc-if-not
108 syn keyword lispFunc arithmetic-error get ratio
109 syn keyword lispFunc arithmetic-error-operands get-decoded-time rational
110 syn keyword lispFunc arithmetic-error-operation get-dispatch-macro-character rationalize
111 syn keyword lispFunc array get-internal-real-time rationalp
112 syn keyword lispFunc array-dimension get-internal-run-time read
113 syn keyword lispFunc array-dimension-limit get-macro-character read-byte
114 syn keyword lispFunc array-dimensions get-output-stream-string read-char
115 syn keyword lispFunc array-displacement get-properties read-char-no-hang
116 syn keyword lispFunc array-element-type get-setf-expansion read-delimited-list
117 syn keyword lispFunc array-has-fill-pointer-p get-setf-method read-eval-print
118 syn keyword lispFunc array-in-bounds-p get-universal-time read-from-string
119 syn keyword lispFunc array-rank getf read-line
120 syn keyword lispFunc array-rank-limit gethash read-preserving-whitespace
121 syn keyword lispFunc array-row-major-index go read-sequence
122 syn keyword lispFunc array-total-size graphic-char-p reader-error
123 syn keyword lispFunc array-total-size-limit handler-bind readtable
124 syn keyword lispFunc arrayp handler-case readtable-case
125 syn keyword lispFunc ash hash-table readtablep
126 syn keyword lispFunc asin hash-table-count real
127 syn keyword lispFunc asinh hash-table-p realp
128 syn keyword lispFunc assert hash-table-rehash-size realpart
129 syn keyword lispFunc assoc hash-table-rehash-threshold reduce
130 syn keyword lispFunc assoc-if hash-table-size reinitialize-instance
131 syn keyword lispFunc assoc-if-not hash-table-test rem
132 syn keyword lispFunc atan host-namestring remf
133 syn keyword lispFunc atanh identity remhash
134 syn keyword lispFunc atom if remove
135 syn keyword lispFunc base-char if-exists remove-duplicates
136 syn keyword lispFunc base-string ignorable remove-if
137 syn keyword lispFunc bignum ignore remove-if-not
138 syn keyword lispFunc bit ignore-errors remove-method
139 syn keyword lispFunc bit-and imagpart remprop
140 syn keyword lispFunc bit-andc1 import rename-file
141 syn keyword lispFunc bit-andc2 in-package rename-package
142 syn keyword lispFunc bit-eqv in-package replace
143 syn keyword lispFunc bit-ior incf require
144 syn keyword lispFunc bit-nand initialize-instance rest
145 syn keyword lispFunc bit-nor inline restart
146 syn keyword lispFunc bit-not input-stream-p restart-bind
147 syn keyword lispFunc bit-orc1 inspect restart-case
148 syn keyword lispFunc bit-orc2 int-char restart-name
149 syn keyword lispFunc bit-vector integer return
150 syn keyword lispFunc bit-vector-p integer-decode-float return-from
151 syn keyword lispFunc bit-xor integer-length revappend
152 syn keyword lispFunc block integerp reverse
153 syn keyword lispFunc boole interactive-stream-p room
154 syn keyword lispFunc boole-1 intern rotatef
155 syn keyword lispFunc boole-2 internal-time-units-per-second round
156 syn keyword lispFunc boole-and intersection row-major-aref
157 syn keyword lispFunc boole-andc1 invalid-method-error rplaca
158 syn keyword lispFunc boole-andc2 invoke-debugger rplacd
159 syn keyword lispFunc boole-c1 invoke-restart safety
160 syn keyword lispFunc boole-c2 invoke-restart-interactively satisfies
161 syn keyword lispFunc boole-clr isqrt sbit
162 syn keyword lispFunc boole-eqv keyword scale-float
163 syn keyword lispFunc boole-ior keywordp schar
164 syn keyword lispFunc boole-nand labels search
165 syn keyword lispFunc boole-nor lambda second
166 syn keyword lispFunc boole-orc1 lambda-list-keywords sequence
167 syn keyword lispFunc boole-orc2 lambda-parameters-limit serious-condition
168 syn keyword lispFunc boole-set last set
169 syn keyword lispFunc boole-xor lcm set-char-bit
170 syn keyword lispFunc boolean ldb set-difference
171 syn keyword lispFunc both-case-p ldb-test set-dispatch-macro-character
172 syn keyword lispFunc boundp ldiff set-exclusive-or
173 syn keyword lispFunc break least-negative-double-float set-macro-character
174 syn keyword lispFunc broadcast-stream least-negative-long-float set-pprint-dispatch
175 syn keyword lispFunc broadcast-stream-streams least-negative-normalized-double-float set-syntax-from-char
176 syn keyword lispFunc built-in-class least-negative-normalized-long-float setf
177 syn keyword lispFunc butlast least-negative-normalized-short-float setq
178 syn keyword lispFunc byte least-negative-normalized-single-float seventh
179 syn keyword lispFunc byte-position least-negative-short-float shadow
180 syn keyword lispFunc byte-size least-negative-single-float shadowing-import
181 syn keyword lispFunc call-arguments-limit least-positive-double-float shared-initialize
182 syn keyword lispFunc call-method least-positive-long-float shiftf
183 syn keyword lispFunc call-next-method least-positive-normalized-double-float short-float
184 syn keyword lispFunc capitalize least-positive-normalized-long-float short-float-epsilon
185 syn keyword lispFunc car least-positive-normalized-short-float short-float-negative-epsilon
186 syn keyword lispFunc case least-positive-normalized-single-float short-site-name
187 syn keyword lispFunc catch least-positive-short-float signal
188 syn keyword lispFunc ccase least-positive-single-float signed-byte
189 syn keyword lispFunc cdr length signum
190 syn keyword lispFunc ceiling let simle-condition
191 syn keyword lispFunc cell-error let* simple-array
192 syn keyword lispFunc cell-error-name lisp simple-base-string
193 syn keyword lispFunc cerror lisp-implementation-type simple-bit-vector
194 syn keyword lispFunc change-class lisp-implementation-version simple-bit-vector-p
195 syn keyword lispFunc char list simple-condition-format-arguments
196 syn keyword lispFunc char-bit list* simple-condition-format-control
197 syn keyword lispFunc char-bits list-all-packages simple-error
198 syn keyword lispFunc char-bits-limit list-length simple-string
199 syn keyword lispFunc char-code listen simple-string-p
200 syn keyword lispFunc char-code-limit listp simple-type-error
201 syn keyword lispFunc char-control-bit load simple-vector
202 syn keyword lispFunc char-downcase load-logical-pathname-translations simple-vector-p
203 syn keyword lispFunc char-equal load-time-value simple-warning
204 syn keyword lispFunc char-font locally sin
205 syn keyword lispFunc char-font-limit log single-flaot-epsilon
206 syn keyword lispFunc char-greaterp logand single-float
207 syn keyword lispFunc char-hyper-bit logandc1 single-float-epsilon
208 syn keyword lispFunc char-int logandc2 single-float-negative-epsilon
209 syn keyword lispFunc char-lessp logbitp sinh
210 syn keyword lispFunc char-meta-bit logcount sixth
211 syn keyword lispFunc char-name logeqv sleep
212 syn keyword lispFunc char-not-equal logical-pathname slot-boundp
213 syn keyword lispFunc char-not-greaterp logical-pathname-translations slot-exists-p
214 syn keyword lispFunc char-not-lessp logior slot-makunbound
215 syn keyword lispFunc char-super-bit lognand slot-missing
216 syn keyword lispFunc char-upcase lognor slot-unbound
217 syn keyword lispFunc char/= lognot slot-value
218 syn keyword lispFunc char< logorc1 software-type
219 syn keyword lispFunc char<= logorc2 software-version
220 syn keyword lispFunc char= logtest some
221 syn keyword lispFunc char> logxor sort
222 syn keyword lispFunc char>= long-float space
223 syn keyword lispFunc character long-float-epsilon special
224 syn keyword lispFunc characterp long-float-negative-epsilon special-form-p
225 syn keyword lispFunc check-type long-site-name special-operator-p
226 syn keyword lispFunc cis loop speed
227 syn keyword lispFunc class loop-finish sqrt
228 syn keyword lispFunc class-name lower-case-p stable-sort
229 syn keyword lispFunc class-of machine-instance standard
230 syn keyword lispFunc clear-input machine-type standard-char
231 syn keyword lispFunc clear-output machine-version standard-char-p
232 syn keyword lispFunc close macro-function standard-class
233 syn keyword lispFunc clrhash macroexpand standard-generic-function
234 syn keyword lispFunc code-char macroexpand-1 standard-method
235 syn keyword lispFunc coerce macroexpand-l standard-object
236 syn keyword lispFunc commonp macrolet step
237 syn keyword lispFunc compilation-speed make-array storage-condition
238 syn keyword lispFunc compile make-array store-value
239 syn keyword lispFunc compile-file make-broadcast-stream stream
240 syn keyword lispFunc compile-file-pathname make-char stream-element-type
241 syn keyword lispFunc compiled-function make-concatenated-stream stream-error
242 syn keyword lispFunc compiled-function-p make-condition stream-error-stream
243 syn keyword lispFunc compiler-let make-dispatch-macro-character stream-external-format
244 syn keyword lispFunc compiler-macro make-echo-stream streamp
245 syn keyword lispFunc compiler-macro-function make-hash-table streamup
246 syn keyword lispFunc complement make-instance string
247 syn keyword lispFunc complex make-instances-obsolete string-capitalize
248 syn keyword lispFunc complexp make-list string-char
249 syn keyword lispFunc compute-applicable-methods make-load-form string-char-p
250 syn keyword lispFunc compute-restarts make-load-form-saving-slots string-downcase
251 syn keyword lispFunc concatenate make-method string-equal
252 syn keyword lispFunc concatenated-stream make-package string-greaterp
253 syn keyword lispFunc concatenated-stream-streams make-pathname string-left-trim
254 syn keyword lispFunc cond make-random-state string-lessp
255 syn keyword lispFunc condition make-sequence string-not-equal
256 syn keyword lispFunc conjugate make-string string-not-greaterp
257 syn keyword lispFunc cons make-string-input-stream string-not-lessp
258 syn keyword lispFunc consp make-string-output-stream string-right-strim
259 syn keyword lispFunc constantly make-symbol string-right-trim
260 syn keyword lispFunc constantp make-synonym-stream string-stream
261 syn keyword lispFunc continue make-two-way-stream string-trim
262 syn keyword lispFunc control-error makunbound string-upcase
263 syn keyword lispFunc copy-alist map string/=
264 syn keyword lispFunc copy-list map-into string<
265 syn keyword lispFunc copy-pprint-dispatch mapc string<=
266 syn keyword lispFunc copy-readtable mapcan string=
267 syn keyword lispFunc copy-seq mapcar string>
268 syn keyword lispFunc copy-structure mapcon string>=
269 syn keyword lispFunc copy-symbol maphash stringp
270 syn keyword lispFunc copy-tree mapl structure
271 syn keyword lispFunc cos maplist structure-class
272 syn keyword lispFunc cosh mask-field structure-object
273 syn keyword lispFunc count max style-warning
274 syn keyword lispFunc count-if member sublim
275 syn keyword lispFunc count-if-not member-if sublis
276 syn keyword lispFunc ctypecase member-if-not subseq
277 syn keyword lispFunc debug merge subsetp
278 syn keyword lispFunc decf merge-pathname subst
279 syn keyword lispFunc declaim merge-pathnames subst-if
280 syn keyword lispFunc declaration method subst-if-not
281 syn keyword lispFunc declare method-combination substitute
282 syn keyword lispFunc decode-float method-combination-error substitute-if
283 syn keyword lispFunc decode-universal-time method-qualifiers substitute-if-not
284 syn keyword lispFunc defclass min subtypep
285 syn keyword lispFunc defconstant minusp svref
286 syn keyword lispFunc defgeneric mismatch sxhash
287 syn keyword lispFunc define-compiler-macro mod symbol
288 syn keyword lispFunc define-condition most-negative-double-float symbol-function
289 syn keyword lispFunc define-method-combination most-negative-fixnum symbol-macrolet
290 syn keyword lispFunc define-modify-macro most-negative-long-float symbol-name
291 syn keyword lispFunc define-setf-expander most-negative-short-float symbol-package
292 syn keyword lispFunc define-setf-method most-negative-single-float symbol-plist
293 syn keyword lispFunc define-symbol-macro most-positive-double-float symbol-value
294 syn keyword lispFunc defmacro most-positive-fixnum symbolp
295 syn keyword lispFunc defmethod most-positive-long-float synonym-stream
296 syn keyword lispFunc defpackage most-positive-short-float synonym-stream-symbol
297 syn keyword lispFunc defparameter most-positive-single-float sys
298 syn keyword lispFunc defsetf muffle-warning system
299 syn keyword lispFunc defstruct multiple-value-bind t
300 syn keyword lispFunc deftype multiple-value-call tagbody
301 syn keyword lispFunc defun multiple-value-list tailp
302 syn keyword lispFunc defvar multiple-value-prog1 tan
303 syn keyword lispFunc delete multiple-value-seteq tanh
304 syn keyword lispFunc delete-duplicates multiple-value-setq tenth
305 syn keyword lispFunc delete-file multiple-values-limit terpri
306 syn keyword lispFunc delete-if name-char the
307 syn keyword lispFunc delete-if-not namestring third
308 syn keyword lispFunc delete-package nbutlast throw
309 syn keyword lispFunc denominator nconc time
310 syn keyword lispFunc deposit-field next-method-p trace
311 syn keyword lispFunc describe nil translate-logical-pathname
312 syn keyword lispFunc describe-object nintersection translate-pathname
313 syn keyword lispFunc destructuring-bind ninth tree-equal
314 syn keyword lispFunc digit-char no-applicable-method truename
315 syn keyword lispFunc digit-char-p no-next-method truncase
316 syn keyword lispFunc directory not truncate
317 syn keyword lispFunc directory-namestring notany two-way-stream
318 syn keyword lispFunc disassemble notevery two-way-stream-input-stream
319 syn keyword lispFunc division-by-zero notinline two-way-stream-output-stream
320 syn keyword lispFunc do nreconc type
321 syn keyword lispFunc do* nreverse type-error
322 syn keyword lispFunc do-all-symbols nset-difference type-error-datum
323 syn keyword lispFunc do-exeternal-symbols nset-exclusive-or type-error-expected-type
324 syn keyword lispFunc do-external-symbols nstring type-of
325 syn keyword lispFunc do-symbols nstring-capitalize typecase
326 syn keyword lispFunc documentation nstring-downcase typep
327 syn keyword lispFunc dolist nstring-upcase unbound-slot
328 syn keyword lispFunc dotimes nsublis unbound-slot-instance
329 syn keyword lispFunc double-float nsubst unbound-variable
330 syn keyword lispFunc double-float-epsilon nsubst-if undefined-function
331 syn keyword lispFunc double-float-negative-epsilon nsubst-if-not unexport
332 syn keyword lispFunc dpb nsubstitute unintern
333 syn keyword lispFunc dribble nsubstitute-if union
334 syn keyword lispFunc dynamic-extent nsubstitute-if-not unless
335 syn keyword lispFunc ecase nth unread
336 syn keyword lispFunc echo-stream nth-value unread-char
337 syn keyword lispFunc echo-stream-input-stream nthcdr unsigned-byte
338 syn keyword lispFunc echo-stream-output-stream null untrace
339 syn keyword lispFunc ed number unuse-package
340 syn keyword lispFunc eighth numberp unwind-protect
341 syn keyword lispFunc elt numerator update-instance-for-different-class
342 syn keyword lispFunc encode-universal-time nunion update-instance-for-redefined-class
343 syn keyword lispFunc end-of-file oddp upgraded-array-element-type
344 syn keyword lispFunc endp open upgraded-complex-part-type
345 syn keyword lispFunc enough-namestring open-stream-p upper-case-p
346 syn keyword lispFunc ensure-directories-exist optimize use-package
347 syn keyword lispFunc ensure-generic-function or use-value
348 syn keyword lispFunc eq otherwise user
349 syn keyword lispFunc eql output-stream-p user-homedir-pathname
350 syn keyword lispFunc equal package values
351 syn keyword lispFunc equalp package-error values-list
352 syn keyword lispFunc error package-error-package vector
353 syn keyword lispFunc etypecase package-name vector-pop
354 syn keyword lispFunc eval package-nicknames vector-push
355 syn keyword lispFunc eval-when package-shadowing-symbols vector-push-extend
356 syn keyword lispFunc evalhook package-use-list vectorp
357 syn keyword lispFunc evenp package-used-by-list warn
358 syn keyword lispFunc every packagep warning
359 syn keyword lispFunc exp pairlis when
360 syn keyword lispFunc export parse-error wild-pathname-p
361 syn keyword lispFunc expt parse-integer with-accessors
362 syn keyword lispFunc extended-char parse-namestring with-compilation-unit
363 syn keyword lispFunc fboundp pathname with-condition-restarts
364 syn keyword lispFunc fceiling pathname-device with-hash-table-iterator
365 syn keyword lispFunc fdefinition pathname-directory with-input-from-string
366 syn keyword lispFunc ffloor pathname-host with-open-file
367 syn keyword lispFunc fifth pathname-match-p with-open-stream
368 syn keyword lispFunc file-author pathname-name with-output-to-string
369 syn keyword lispFunc file-error pathname-type with-package-iterator
370 syn keyword lispFunc file-error-pathname pathname-version with-simple-restart
371 syn keyword lispFunc file-length pathnamep with-slots
372 syn keyword lispFunc file-namestring peek-char with-standard-io-syntax
373 syn keyword lispFunc file-position phase write
374 syn keyword lispFunc file-stream pi write-byte
375 syn keyword lispFunc file-string-length plusp write-char
376 syn keyword lispFunc file-write-date pop write-line
377 syn keyword lispFunc fill position write-sequence
378 syn keyword lispFunc fill-pointer position-if write-string
379 syn keyword lispFunc find position-if-not write-to-string
380 syn keyword lispFunc find-all-symbols pprint y-or-n-p
381 syn keyword lispFunc find-class pprint-dispatch yes-or-no-p
382 syn keyword lispFunc find-if pprint-exit-if-list-exhausted zerop
383 syn keyword lispFunc find-if-not pprint-fill
385 syn match lispFunc "\<c[ad]\+r\>"
387 " ---------------------------------------------------------------------
388 " Lisp Keywords (modifiers): {{{1
389 syn keyword lispKey :abort :from-end :overwrite
390 syn keyword lispKey :adjustable :gensym :predicate
391 syn keyword lispKey :append :host :preserve-whitespace
392 syn keyword lispKey :array :if-does-not-exist :pretty
393 syn keyword lispKey :base :if-exists :print
394 syn keyword lispKey :case :include :print-function
395 syn keyword lispKey :circle :index :probe
396 syn keyword lispKey :conc-name :inherited :radix
397 syn keyword lispKey :constructor :initial-contents :read-only
398 syn keyword lispKey :copier :initial-element :rehash-size
399 syn keyword lispKey :count :initial-offset :rehash-threshold
400 syn keyword lispKey :create :initial-value :rename
401 syn keyword lispKey :default :input :rename-and-delete
402 syn keyword lispKey :defaults :internal :size
403 syn keyword lispKey :device :io :start
404 syn keyword lispKey :direction :junk-allowed :start1
405 syn keyword lispKey :directory :key :start2
406 syn keyword lispKey :displaced-index-offset :length :stream
407 syn keyword lispKey :displaced-to :level :supersede
408 syn keyword lispKey :element-type :name :test
409 syn keyword lispKey :end :named :test-not
410 syn keyword lispKey :end1 :new-version :type
411 syn keyword lispKey :end2 :nicknames :use
412 syn keyword lispKey :error :output :verbose
413 syn keyword lispKey :escape :output-file :version
414 syn keyword lispKey :external
416 " ---------------------------------------------------------------------
417 " Standard Lisp Variables: {{{1
418 syn keyword lispVar *applyhook* *load-pathname* *print-pprint-dispatch*
419 syn keyword lispVar *break-on-signals* *load-print* *print-pprint-dispatch*
420 syn keyword lispVar *break-on-signals* *load-truename* *print-pretty*
421 syn keyword lispVar *break-on-warnings* *load-verbose* *print-radix*
422 syn keyword lispVar *compile-file-pathname* *macroexpand-hook* *print-readably*
423 syn keyword lispVar *compile-file-pathname* *modules* *print-right-margin*
424 syn keyword lispVar *compile-file-truename* *package* *print-right-margin*
425 syn keyword lispVar *compile-file-truename* *print-array* *query-io*
426 syn keyword lispVar *compile-print* *print-base* *random-state*
427 syn keyword lispVar *compile-verbose* *print-case* *read-base*
428 syn keyword lispVar *compile-verbose* *print-circle* *read-default-float-format*
429 syn keyword lispVar *debug-io* *print-escape* *read-eval*
430 syn keyword lispVar *debugger-hook* *print-gensym* *read-suppress*
431 syn keyword lispVar *default-pathname-defaults* *print-length* *readtable*
432 syn keyword lispVar *error-output* *print-level* *standard-input*
433 syn keyword lispVar *evalhook* *print-lines* *standard-output*
434 syn keyword lispVar *features* *print-miser-width* *terminal-io*
435 syn keyword lispVar *gensym-counter* *print-miser-width* *trace-output*
437 " ---------------------------------------------------------------------
439 syn region lispString start=+"+ skip=+\\\\\|\\"+ end=+"+
440 if exists("g:lisp_instring")
441 syn region lispInString keepend matchgroup=Delimiter start=+"(+rs=s+1 skip=+|.\{-}|+ matchgroup=Delimiter end=+)"+ contains=@lispBaseListCluster,lispInStringString
442 syn region lispInStringString start=+\\"+ skip=+\\\\+ end=+\\"+ contained
445 " ---------------------------------------------------------------------
446 " Shared with Xlisp, Declarations, Macros, Functions: {{{1
447 syn keyword lispDecl defmacro do-all-symbols labels
448 syn keyword lispDecl defsetf do-external-symbols let
449 syn keyword lispDecl deftype do-symbols locally
450 syn keyword lispDecl defun dotimes macrolet
451 syn keyword lispDecl do* flet multiple-value-bind
453 " ---------------------------------------------------------------------
454 " Numbers: supporting integers and floating point numbers {{{1
455 syn match lispNumber "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\="
457 syn match lispSpecial "\*[a-zA-Z_][a-zA-Z_0-9-]*\*"
458 syn match lispSpecial !#|[^()'`,"; \t]\+|#!
459 syn match lispSpecial !#x[0-9a-fA-F]\+!
460 syn match lispSpecial !#o[0-7]\+!
461 syn match lispSpecial !#b[01]\+!
462 syn match lispSpecial !#\\[ -\~]!
463 syn match lispSpecial !#[':][^()'`,"; \t]\+!
464 syn match lispSpecial !#([^()'`,"; \t]\+)!
466 syn match lispConcat "\s\.\s"
467 syn match lispParenError ")"
469 " ---------------------------------------------------------------------
471 syn cluster lispCommentGroup contains=lispTodo,@Spell
472 syn match lispComment ";.*$" contains=@lispCommentGroup
473 syn region lispCommentRegion start="#|" end="|#" contains=lispCommentRegion,@lispCommentGroup
475 syn keyword lispTodo contained combak combak: todo todo:
478 " ---------------------------------------------------------------------
479 " Synchronization: {{{1
482 " ---------------------------------------------------------------------
483 " Define Highlighting: {{{1
484 " For version 5.7 and earlier: only when not done already
485 " For version 5.8 and later: only when an item doesn't have highlighting yet
487 command -nargs=+ HiLink hi def link <args>
489 HiLink lispCommentRegion lispComment
490 HiLink lispAtomNmbr lispNumber
491 HiLink lispAtomMark lispMark
492 HiLink lispInStringString lispString
494 HiLink lispAtom Identifier
495 HiLink lispAtomBarSymbol Special
496 HiLink lispBarSymbol Special
497 HiLink lispComment Comment
498 HiLink lispConcat Statement
499 HiLink lispDecl Statement
500 HiLink lispFunc Statement
502 HiLink lispMark Delimiter
503 HiLink lispNumber Number
504 HiLink lispParenError Error
505 HiLink lispSpecial Type
506 HiLink lispString String
508 HiLink lispVar Statement
510 if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
512 hi def hlLevel0 ctermfg=red guifg=red1
513 hi def hlLevel1 ctermfg=blue guifg=orange1
514 hi def hlLevel2 ctermfg=green guifg=yellow1
515 hi def hlLevel3 ctermfg=cyan guifg=greenyellow
516 hi def hlLevel4 ctermfg=magenta guifg=green1
517 hi def hlLevel5 ctermfg=red guifg=springgreen1
518 hi def hlLevel6 ctermfg=yellow guifg=cyan1
519 hi def hlLevel7 ctermfg=green guifg=slateblue1
520 hi def hlLevel8 ctermfg=cyan guifg=magenta1
521 hi def hlLevel9 ctermfg=magenta guifg=purple1
523 hi def hlLevel0 ctermfg=red guifg=red3
524 hi def hlLevel1 ctermfg=darkyellow guifg=orangered3
525 hi def hlLevel2 ctermfg=darkgreen guifg=orange2
526 hi def hlLevel3 ctermfg=blue guifg=yellow3
527 hi def hlLevel4 ctermfg=darkmagenta guifg=olivedrab4
528 hi def hlLevel5 ctermfg=red guifg=green4
529 hi def hlLevel6 ctermfg=darkyellow guifg=paleturquoise3
530 hi def hlLevel7 ctermfg=darkgreen guifg=deepskyblue4
531 hi def hlLevel8 ctermfg=blue guifg=darkslateblue
532 hi def hlLevel9 ctermfg=darkmagenta guifg=darkviolet
539 let b:current_syntax = "lisp"
541 " ---------------------------------------------------------------------
542 " vim: ts=8 nowrap fdm=marker