comparison runtime/syntax/lisp.vim @ 557:862863033fdd v7.0158

updated for version 7.0158
author vimboss
date Wed, 23 Nov 2005 21:25:05 +0000
parents f9eaf0a9872d
children 96cd8222a819
comparison
equal deleted inserted replaced
556:f9eaf0a9872d 557:862863033fdd
1 " Vim syntax file 1 " Vim syntax file
2 " Language: Lisp 2 " Language: Lisp
3 " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz> 3 " Maintainer: Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
4 " Last Change: Oct 12, 2005 4 " Last Change: Oct 12, 2005
5 " Version: 16 5 " Version: 17a
6 " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax 6 " URL: http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
7 " 7 "
8 " Thanks to F Xavier Noria for a list of 978 Common Lisp symbols 8 " Thanks to F Xavier Noria for a list of 978 Common Lisp symbols
9 " taken from the HyperSpec 9 " taken from the HyperSpec
10 " 10
11 " Options: 11 " ---------------------------------------------------------------------
12 " g:lisp_instring : if it exists, then "(...") strings are highlighted
13 " as if the contents were lisp. Useful for AutoLisp.
14 " Put
15 " let g:lisp_instring=1
16 " into your <.vimrc> if you want this option.
17
18 " Load Once: {{{1 12 " Load Once: {{{1
19 " For vim-version 5.x: Clear all syntax items 13 " For vim-version 5.x: Clear all syntax items
20 " For vim-version 6.x: Quit when a syntax file was already loaded 14 " For vim-version 6.x: Quit when a syntax file was already loaded
21 if version < 600 15 if version < 600
22 syntax clear 16 syntax clear
28 setlocal iskeyword=42,43,45,47-58,60-62,64-90,97-122,_ 22 setlocal iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
29 else 23 else
30 set 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,_
31 endif 25 endif
32 26
27 " ---------------------------------------------------------------------
33 " Clusters: {{{1 28 " Clusters: {{{1
34 syn cluster lispAtomCluster contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite 29 syn cluster lispAtomCluster contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite
35 syn cluster lispBaseListCluster contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite 30 syn cluster lispBaseListCluster contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite
36 if exists("g:lisp_instring") 31 if exists("g:lisp_instring")
37 syn cluster lispListCluster contains=@lispBaseListCluster,lispString,lispInString,lispInStringString 32 syn cluster lispListCluster contains=@lispBaseListCluster,lispString,lispInString,lispInStringString
38 else 33 else
39 syn cluster lispListCluster contains=@lispBaseListCluster,lispString 34 syn cluster lispListCluster contains=@lispBaseListCluster,lispString
40 endif 35 endif
41 36
37 " ---------------------------------------------------------------------
42 " Lists: {{{1 38 " Lists: {{{1
43 syn match lispSymbol contained ![^()'`,"; \t]\+! 39 syn match lispSymbol contained ![^()'`,"; \t]\+!
44 syn match lispBarSymbol contained !|..\{-}|! 40 syn match lispBarSymbol contained !|..\{-}|!
45 if exists("g:lisp_rainbow") && g:lisp_rainbow != 0 41 if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
46 syn region lispParen0 matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen1 42 syn region lispParen0 matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen1
56 else 52 else
57 syn region lispList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=@lispListCluster 53 syn region lispList matchgroup=Delimiter start="(" skip="|.\{-}|" matchgroup=Delimiter end=")" contains=@lispListCluster
58 syn region lispBQList matchgroup=PreProc start="`(" skip="|.\{-}|" matchgroup=PreProc end=")" contains=@lispListCluster 54 syn region lispBQList matchgroup=PreProc start="`(" skip="|.\{-}|" matchgroup=PreProc end=")" contains=@lispListCluster
59 endif 55 endif
60 56
57 " ---------------------------------------------------------------------
61 " Atoms: {{{1 58 " Atoms: {{{1
62 syn match lispAtomMark "'" 59 syn match lispAtomMark "'"
63 syn match lispAtom "'("me=e-1 contains=lispAtomMark nextgroup=lispAtomList 60 syn match lispAtom "'("me=e-1 contains=lispAtomMark nextgroup=lispAtomList
64 syn match lispAtom "'[^ \t()]\+" contains=lispAtomMark 61 syn match lispAtom "'[^ \t()]\+" contains=lispAtomMark
65 syn match lispAtomBarSymbol !'|..\{-}|! contains=lispAtomMark 62 syn match lispAtomBarSymbol !'|..\{-}|! contains=lispAtomMark
66 syn region lispAtom start=+'"+ skip=+\\"+ end=+"+ 63 syn region lispAtom start=+'"+ skip=+\\"+ end=+"+
67 syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString 64 syn region lispAtomList contained matchgroup=Special start="(" skip="|.\{-}|" matchgroup=Special end=")" contains=@lispAtomCluster,lispString
68 syn match lispAtomNmbr contained "\<\d\+" 65 syn match lispAtomNmbr contained "\<\d\+"
69 syn match lispLeadWhite contained "^\s\+" 66 syn match lispLeadWhite contained "^\s\+"
70 67
68 " ---------------------------------------------------------------------
71 " Standard Lisp Functions and Macros: {{{1 69 " Standard Lisp Functions and Macros: {{{1
72 syn keyword lispFunc * find-method pprint-indent 70 syn keyword lispFunc * find-method pprint-indent
73 syn keyword lispFunc ** find-package pprint-linear 71 syn keyword lispFunc ** find-package pprint-linear
74 syn keyword lispFunc *** find-restart pprint-logical-block 72 syn keyword lispFunc *** find-restart pprint-logical-block
75 syn keyword lispFunc + find-symbol pprint-newline 73 syn keyword lispFunc + find-symbol pprint-newline
384 syn keyword lispFunc find-if pprint-exit-if-list-exhausted zerop 382 syn keyword lispFunc find-if pprint-exit-if-list-exhausted zerop
385 syn keyword lispFunc find-if-not pprint-fill 383 syn keyword lispFunc find-if-not pprint-fill
386 384
387 syn match lispFunc "\<c[ad]\+r\>" 385 syn match lispFunc "\<c[ad]\+r\>"
388 386
387 " ---------------------------------------------------------------------
389 " Lisp Keywords (modifiers): {{{1 388 " Lisp Keywords (modifiers): {{{1
390 syn keyword lispKey :abort :from-end :overwrite 389 syn keyword lispKey :abort :from-end :overwrite
391 syn keyword lispKey :adjustable :gensym :predicate 390 syn keyword lispKey :adjustable :gensym :predicate
392 syn keyword lispKey :append :host :preserve-whitespace 391 syn keyword lispKey :append :host :preserve-whitespace
393 syn keyword lispKey :array :if-does-not-exist :pretty 392 syn keyword lispKey :array :if-does-not-exist :pretty
412 syn keyword lispKey :end2 :nicknames :use 411 syn keyword lispKey :end2 :nicknames :use
413 syn keyword lispKey :error :output :verbose 412 syn keyword lispKey :error :output :verbose
414 syn keyword lispKey :escape :output-file :version 413 syn keyword lispKey :escape :output-file :version
415 syn keyword lispKey :external 414 syn keyword lispKey :external
416 415
416 " ---------------------------------------------------------------------
417 " Standard Lisp Variables: {{{1 417 " Standard Lisp Variables: {{{1
418 syn keyword lispVar *applyhook* *load-pathname* *print-pprint-dispatch* 418 syn keyword lispVar *applyhook* *load-pathname* *print-pprint-dispatch*
419 syn keyword lispVar *break-on-signals* *load-print* *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* 420 syn keyword lispVar *break-on-signals* *load-truename* *print-pretty*
421 syn keyword lispVar *break-on-warnings* *load-verbose* *print-radix* 421 syn keyword lispVar *break-on-warnings* *load-verbose* *print-radix*
432 syn keyword lispVar *error-output* *print-level* *standard-input* 432 syn keyword lispVar *error-output* *print-level* *standard-input*
433 syn keyword lispVar *evalhook* *print-lines* *standard-output* 433 syn keyword lispVar *evalhook* *print-lines* *standard-output*
434 syn keyword lispVar *features* *print-miser-width* *terminal-io* 434 syn keyword lispVar *features* *print-miser-width* *terminal-io*
435 syn keyword lispVar *gensym-counter* *print-miser-width* *trace-output* 435 syn keyword lispVar *gensym-counter* *print-miser-width* *trace-output*
436 436
437 " ---------------------------------------------------------------------
437 " Strings: {{{1 438 " Strings: {{{1
438 syn region lispString start=+"+ skip=+\\\\\|\\"+ end=+"+ 439 syn region lispString start=+"+ skip=+\\\\\|\\"+ end=+"+
439 if exists("g:lisp_instring") 440 if exists("g:lisp_instring")
440 syn region lispInString keepend matchgroup=Delimiter start=+"(+rs=s+1 skip=+|.\{-}|+ matchgroup=Delimiter end=+)"+ contains=@lispBaseListCluster,lispInStringString 441 syn region lispInString keepend matchgroup=Delimiter start=+"(+rs=s+1 skip=+|.\{-}|+ matchgroup=Delimiter end=+)"+ contains=@lispBaseListCluster,lispInStringString
441 syn region lispInStringString start=+\\"+ skip=+\\\\+ end=+\\"+ contained 442 syn region lispInStringString start=+\\"+ skip=+\\\\+ end=+\\"+ contained
442 endif 443 endif
443 444
445 " ---------------------------------------------------------------------
444 " Shared with Xlisp, Declarations, Macros, Functions: {{{1 446 " Shared with Xlisp, Declarations, Macros, Functions: {{{1
445 syn keyword lispDecl defmacro do-all-symbols labels 447 syn keyword lispDecl defmacro do-all-symbols labels
446 syn keyword lispDecl defsetf do-external-symbols let 448 syn keyword lispDecl defsetf do-external-symbols let
447 syn keyword lispDecl deftype do-symbols locally 449 syn keyword lispDecl deftype do-symbols locally
448 syn keyword lispDecl defun dotimes macrolet 450 syn keyword lispDecl defun dotimes macrolet
449 syn keyword lispDecl do* flet multiple-value-bind 451 syn keyword lispDecl do* flet multiple-value-bind
450 452
453 " ---------------------------------------------------------------------
451 " Numbers: supporting integers and floating point numbers {{{1 454 " Numbers: supporting integers and floating point numbers {{{1
452 syn match lispNumber "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\=" 455 syn match lispNumber "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\="
453 456
454 syn match lispSpecial "\*[a-zA-Z_][a-zA-Z_0-9-]*\*" 457 syn match lispSpecial "\*[a-zA-Z_][a-zA-Z_0-9-]*\*"
455 syn match lispSpecial !#|[^()'`,"; \t]\+|#! 458 syn match lispSpecial !#|[^()'`,"; \t]\+|#!
461 syn match lispSpecial !#([^()'`,"; \t]\+)! 464 syn match lispSpecial !#([^()'`,"; \t]\+)!
462 465
463 syn match lispConcat "\s\.\s" 466 syn match lispConcat "\s\.\s"
464 syn match lispParenError ")" 467 syn match lispParenError ")"
465 468
469 " ---------------------------------------------------------------------
466 " Comments: {{{1 470 " Comments: {{{1
467 syn cluster lispCommentGroup contains=lispTodo,@Spell 471 syn cluster lispCommentGroup contains=lispTodo,@Spell
468 syn match lispComment ";.*$" contains=@lispCommentGroup 472 syn match lispComment ";.*$" contains=@lispCommentGroup
469 syn region lispCommentRegion start="#|" end="|#" contains=lispCommentRegion,@lispCommentGroup 473 syn region lispCommentRegion start="#|" end="|#" contains=lispCommentRegion,@lispCommentGroup
470 syn case ignore 474 syn case ignore
471 syn keyword lispTodo contained combak combak: todo todo: 475 syn keyword lispTodo contained combak combak: todo todo:
472 syn case match 476 syn case match
473 477
478 " ---------------------------------------------------------------------
474 " Synchronization: {{{1 479 " Synchronization: {{{1
475 syn sync lines=100 480 syn sync lines=100
476 481
482 " ---------------------------------------------------------------------
477 " Define Highlighting: {{{1 483 " Define Highlighting: {{{1
478 " For version 5.7 and earlier: only when not done already 484 " For version 5.7 and earlier: only when not done already
479 " For version 5.8 and later: only when an item doesn't have highlighting yet 485 " For version 5.8 and later: only when an item doesn't have highlighting yet
480 if version >= 508 || !exists("did_lisp_syntax_inits") 486 if version >= 508
481 if version < 508 487 command -nargs=+ HiLink hi def link <args>
482 let did_lisp_syntax_inits = 1
483 command -nargs=+ HiLink hi link <args>
484 else
485 command -nargs=+ HiLink hi def link <args>
486 endif
487 488
488 HiLink lispCommentRegion lispComment 489 HiLink lispCommentRegion lispComment
489 HiLink lispAtomNmbr lispNumber 490 HiLink lispAtomNmbr lispNumber
490 HiLink lispAtomMark lispMark 491 HiLink lispAtomMark lispMark
491 HiLink lispInStringString lispString 492 HiLink lispInStringString lispString
506 HiLink lispTodo Todo 507 HiLink lispTodo Todo
507 HiLink lispVar Statement 508 HiLink lispVar Statement
508 509
509 if exists("g:lisp_rainbow") && g:lisp_rainbow != 0 510 if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
510 if &bg == "dark" 511 if &bg == "dark"
511 hi hlLevel0 ctermfg=red guifg=red1 512 hi def hlLevel0 ctermfg=red guifg=red1
512 hi hlLevel1 ctermfg=yellow guifg=orange1 513 hi def hlLevel1 ctermfg=yellow guifg=orange1
513 hi hlLevel2 ctermfg=green guifg=yellow1 514 hi def hlLevel2 ctermfg=green guifg=yellow1
514 hi hlLevel3 ctermfg=cyan guifg=greenyellow 515 hi def hlLevel3 ctermfg=cyan guifg=greenyellow
515 hi hlLevel4 ctermfg=magenta guifg=green1 516 hi def hlLevel4 ctermfg=magenta guifg=green1
516 hi hlLevel5 ctermfg=red guifg=springgreen1 517 hi def hlLevel5 ctermfg=red guifg=springgreen1
517 hi hlLevel6 ctermfg=yellow guifg=cyan1 518 hi def hlLevel6 ctermfg=yellow guifg=cyan1
518 hi hlLevel7 ctermfg=green guifg=slateblue1 519 hi def hlLevel7 ctermfg=green guifg=slateblue1
519 hi hlLevel8 ctermfg=cyan guifg=magenta1 520 hi def hlLevel8 ctermfg=cyan guifg=magenta1
520 hi hlLevel9 ctermfg=magenta guifg=purple1 521 hi def hlLevel9 ctermfg=magenta guifg=purple1
521 else 522 else
522 hi hlLevel0 ctermfg=red guifg=red3 523 hi def hlLevel0 ctermfg=red guifg=red3
523 hi hlLevel1 ctermfg=darkyellow guifg=orangered3 524 hi def hlLevel1 ctermfg=darkyellow guifg=orangered3
524 hi hlLevel2 ctermfg=darkgreen guifg=orange2 525 hi def hlLevel2 ctermfg=darkgreen guifg=orange2
525 hi hlLevel3 ctermfg=blue guifg=yellow3 526 hi def hlLevel3 ctermfg=blue guifg=yellow3
526 hi hlLevel4 ctermfg=darkmagenta guifg=olivedrab4 527 hi def hlLevel4 ctermfg=darkmagenta guifg=olivedrab4
527 hi hlLevel5 ctermfg=red guifg=green4 528 hi def hlLevel5 ctermfg=red guifg=green4
528 hi hlLevel6 ctermfg=darkyellow guifg=paleturquoise3 529 hi def hlLevel6 ctermfg=darkyellow guifg=paleturquoise3
529 hi hlLevel7 ctermfg=darkgreen guifg=deepskyblue4 530 hi def hlLevel7 ctermfg=darkgreen guifg=deepskyblue4
530 hi hlLevel8 ctermfg=blue guifg=darkslateblue 531 hi def hlLevel8 ctermfg=blue guifg=darkslateblue
531 hi hlLevel9 ctermfg=darkmagenta guifg=darkviolet 532 hi def hlLevel9 ctermfg=darkmagenta guifg=darkviolet
532 endif 533 endif
533 endif 534 endif
534 535
535 delcommand HiLink 536 delcommand HiLink
536 endif 537 endif
537 538
538 let b:current_syntax = "lisp" 539 let b:current_syntax = "lisp"
539 540
541 " ---------------------------------------------------------------------
540 " vim: ts=8 nowrap fdm=marker 542 " vim: ts=8 nowrap fdm=marker