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