diff runtime/syntax/lisp.vim @ 556:f9eaf0a9872d v7.0157

updated for version 7.0157
author vimboss
date Wed, 12 Oct 2005 21:01:44 +0000
parents a1059cda45f2
children 862863033fdd
line wrap: on
line diff
--- a/runtime/syntax/lisp.vim
+++ b/runtime/syntax/lisp.vim
@@ -1,21 +1,23 @@
 " Vim syntax file
 " Language:    Lisp
 " Maintainer:  Dr. Charles E. Campbell, Jr. <NdrOchipS@PcampbellAfamily.Mbiz>
-" Last Change: Sep 06, 2005
-" Version:     15
+" Last Change: Oct 12, 2005
+" Version:     16
 " URL:	       http://mysite.verizon.net/astronaut/vim/index.html#vimlinks_syntax
 "
 "  Thanks to F Xavier Noria for a list of 978 Common Lisp symbols
 "  taken from the HyperSpec
 "
 "  Options:
-"    lisp_instring : if it exists, then "(...") strings are highlighted
-"		     as if the contents were lisp.  Useful for AutoLisp.
-"		     Put    let lisp_instring=1   into your <.vimrc> if
-"		     you want this option.
+"    g:lisp_instring : if it exists, then "(...") strings are highlighted
+"		       as if the contents were lisp.  Useful for AutoLisp.
+"		       Put
+"		         let g:lisp_instring=1
+"		       into your <.vimrc> if you want this option.
 
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
+"  Load Once: {{{1
+" For vim-version 5.x: Clear all syntax items
+" For vim-version 6.x: Quit when a syntax file was already loaded
 if version < 600
   syntax clear
 elseif exists("b:current_syntax")
@@ -28,21 +30,35 @@ else
  set iskeyword=42,43,45,47-58,60-62,64-90,97-122,_
 endif
 
-" Clusters
+" Clusters: {{{1
 syn cluster			 lispAtomCluster		  contains=lispAtomBarSymbol,lispAtomList,lispAtomNmbr0,lispComment,lispDecl,lispFunc,lispLeadWhite
-syn cluster			 lispListCluster		  contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite
+syn cluster			 lispBaseListCluster		  contains=lispAtom,lispAtomBarSymbol,lispAtomMark,lispBQList,lispBarSymbol,lispComment,lispConcat,lispDecl,lispFunc,lispKey,lispList,lispNumber,lispSpecial,lispSymbol,lispVar,lispLeadWhite
+if exists("g:lisp_instring")
+ syn cluster			 lispListCluster		  contains=@lispBaseListCluster,lispString,lispInString,lispInStringString
+else
+ syn cluster			 lispListCluster		  contains=@lispBaseListCluster,lispString
+endif
 
-" Lists
+" Lists: {{{1
 syn match			 lispSymbol			  contained			   ![^()'`,"; \t]\+!
 syn match			 lispBarSymbol			  contained			   !|..\{-}|!
-if exists("lisp_instring")
- syn region			 lispList			  matchgroup=Delimiter start="(" skip="|.\{-}|"			    matchgroup=Delimiter end=")" contains=@lispListCluster,lispString,lispInString,lispInStringString
- syn region			 lispBQList			  matchgroup=PreProc   start="`("  skip="|.\{-}|"		    matchgroup=PreProc   end=")" contains=@lispListCluster,lispString,lispInString,lispInStringString
+if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
+ syn region lispParen0           matchgroup=hlLevel0 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen1 
+ syn region lispParen1 contained matchgroup=hlLevel1 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen2 
+ syn region lispParen2 contained matchgroup=hlLevel2 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen3 
+ syn region lispParen3 contained matchgroup=hlLevel3 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen4 
+ syn region lispParen4 contained matchgroup=hlLevel4 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen5 
+ syn region lispParen5 contained matchgroup=hlLevel5 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen6 
+ syn region lispParen6 contained matchgroup=hlLevel6 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen7 
+ syn region lispParen7 contained matchgroup=hlLevel7 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen8 
+ syn region lispParen8 contained matchgroup=hlLevel8 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen9 
+ syn region lispParen9 contained matchgroup=hlLevel9 start="`\=(" end=")" skip="|.\{-}|" contains=@lispListCluster,lispParen0
 else
- syn region			 lispList			  matchgroup=Delimiter start="(" skip="|.\{-}|"			    matchgroup=Delimiter end=")" contains=@lispListCluster,lispString
- syn region			 lispBQList			  matchgroup=PreProc   start="`("  skip="|.\{-}|"		    matchgroup=PreProc   end=")" contains=@lispListCluster,lispString
+ syn region			 lispList			  matchgroup=Delimiter start="("   skip="|.\{-}|"			    matchgroup=Delimiter end=")"	contains=@lispListCluster
+ syn region			 lispBQList			  matchgroup=PreProc   start="`("  skip="|.\{-}|"		    matchgroup=PreProc   end=")"		contains=@lispListCluster
 endif
-" Atoms
+
+" Atoms: {{{1
 syn match			 lispAtomMark			  "'"
 syn match			 lispAtom			  "'("me=e-1			   contains=lispAtomMark	    nextgroup=lispAtomList
 syn match			 lispAtom			  "'[^ \t()]\+"			   contains=lispAtomMark
@@ -52,7 +68,7 @@ syn region			 lispAtomList			  contained
 syn match			 lispAtomNmbr			  contained			   "\<\d\+"
 syn match			 lispLeadWhite			  contained			   "^\s\+"
 
-" Standard Lisp Functions and Macros
+" Standard Lisp Functions and Macros: {{{1
 syn keyword lispFunc		 *				  find-method			   pprint-indent
 syn keyword lispFunc		 **				  find-package			   pprint-linear
 syn keyword lispFunc		 ***				  find-restart			   pprint-logical-block
@@ -370,8 +386,7 @@ syn keyword lispFunc		 find-if-not			  p
 
 syn match   lispFunc		 "\<c[ad]\+r\>"
 
-
-" Lisp Keywords (modifiers)
+" Lisp Keywords (modifiers): {{{1
 syn keyword lispKey		 :abort				  :from-end			   :overwrite
 syn keyword lispKey		 :adjustable			  :gensym			   :predicate
 syn keyword lispKey		 :append			  :host				   :preserve-whitespace
@@ -399,7 +414,7 @@ syn keyword lispKey		 :error				  :outpu
 syn keyword lispKey		 :escape			  :output-file			   :version
 syn keyword lispKey		 :external
 
-" Standard Lisp Variables
+" Standard Lisp Variables: {{{1
 syn keyword lispVar		 *applyhook*			  *load-pathname*		   *print-pprint-dispatch*
 syn keyword lispVar		 *break-on-signals*		  *load-print*			   *print-pprint-dispatch*
 syn keyword lispVar		 *break-on-signals*		  *load-truename*		   *print-pretty*
@@ -419,21 +434,21 @@ syn keyword lispVar		 *evalhook*			  *pr
 syn keyword lispVar		 *features*			  *print-miser-width*		   *terminal-io*
 syn keyword lispVar		 *gensym-counter*		  *print-miser-width*		   *trace-output*
 
-" Strings
+" Strings: {{{1
 syn region			 lispString			  start=+"+ skip=+\\\\\|\\"+ end=+"+
-if exists("lisp_instring")
- syn region			 lispInString			  keepend matchgroup=Delimiter start=+"(+rs=s+1 skip=+|.\{-}|+ matchgroup=Delimiter end=+)"+ contains=@lispListCluster,lispInStringString
+if exists("g:lisp_instring")
+ syn region			 lispInString			  keepend matchgroup=Delimiter start=+"(+rs=s+1 skip=+|.\{-}|+ matchgroup=Delimiter end=+)"+ contains=@lispBaseListCluster,lispInStringString
  syn region			 lispInStringString		  start=+\\"+ skip=+\\\\+ end=+\\"+ contained
 endif
 
-" Shared with Xlisp, Declarations, Macros, Functions
+" Shared with Xlisp, Declarations, Macros, Functions: {{{1
 syn keyword lispDecl		 defmacro			  do-all-symbols		   labels
 syn keyword lispDecl		 defsetf			  do-external-symbols		   let
 syn keyword lispDecl		 deftype			  do-symbols			   locally
 syn keyword lispDecl		 defun				  dotimes			   macrolet
 syn keyword lispDecl		 do*				  flet				   multiple-value-bind
 
-" Numbers: supporting integers and floating point numbers
+" Numbers: supporting integers and floating point numbers {{{1
 syn match lispNumber		 "-\=\(\.\d\+\|\d\+\(\.\d*\)\=\)\(e[-+]\=\d\+\)\="
 
 syn match lispSpecial		 "\*[a-zA-Z_][a-zA-Z_0-9-]*\*"
@@ -448,7 +463,7 @@ syn match lispSpecial		 !#([^()'`,"; \t]
 syn match lispConcat		 "\s\.\s"
 syn match lispParenError	 ")"
 
-" Comments
+" Comments: {{{1
 syn cluster lispCommentGroup	 contains=lispTodo,@Spell
 syn match   lispComment		 ";.*$"				  contains=@lispCommentGroup
 syn region  lispCommentRegion	 start="#|" end="|#"		  contains=lispCommentRegion,@lispCommentGroup
@@ -456,10 +471,10 @@ syn case ignore
 syn keyword lispTodo		 contained			  combak			   combak:			    todo			     todo:
 syn case match
 
-" synchronization
+" Synchronization: {{{1
 syn sync lines=100
 
-" Define the default highlighting.
+" Define Highlighting: {{{1
 " For version 5.7 and earlier: only when not done already
 " For version 5.8 and later: only when an item doesn't have highlighting yet
 if version >= 508 || !exists("did_lisp_syntax_inits")
@@ -491,9 +506,35 @@ if version >= 508 || !exists("did_lisp_s
   HiLink lispTodo		 Todo
   HiLink lispVar		 Statement
 
+  if exists("g:lisp_rainbow") && g:lisp_rainbow != 0
+   if &bg == "dark"
+    hi   hlLevel0 ctermfg=red         guifg=red1
+    hi   hlLevel1 ctermfg=yellow      guifg=orange1      
+    hi   hlLevel2 ctermfg=green       guifg=yellow1      
+    hi   hlLevel3 ctermfg=cyan        guifg=greenyellow  
+    hi   hlLevel4 ctermfg=magenta     guifg=green1       
+    hi   hlLevel5 ctermfg=red         guifg=springgreen1 
+    hi   hlLevel6 ctermfg=yellow      guifg=cyan1        
+    hi   hlLevel7 ctermfg=green       guifg=slateblue1   
+    hi   hlLevel8 ctermfg=cyan        guifg=magenta1     
+    hi   hlLevel9 ctermfg=magenta     guifg=purple1
+   else
+    hi   hlLevel0 ctermfg=red         guifg=red3
+    hi   hlLevel1 ctermfg=darkyellow  guifg=orangered3
+    hi   hlLevel2 ctermfg=darkgreen   guifg=orange2
+    hi   hlLevel3 ctermfg=blue        guifg=yellow3
+    hi   hlLevel4 ctermfg=darkmagenta guifg=olivedrab4
+    hi   hlLevel5 ctermfg=red         guifg=green4
+    hi   hlLevel6 ctermfg=darkyellow  guifg=paleturquoise3
+    hi   hlLevel7 ctermfg=darkgreen   guifg=deepskyblue4
+    hi   hlLevel8 ctermfg=blue        guifg=darkslateblue
+    hi   hlLevel9 ctermfg=darkmagenta guifg=darkviolet
+   endif
+  endif
+
   delcommand HiLink
 endif
 
 let b:current_syntax = "lisp"
 
-" vim: ts=8 nowrap
+" vim: ts=8 nowrap fdm=marker