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