Mercurial > vim
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 |