forked from aniani/vim
		
	
		
			
	
	
		
			111 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			111 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:	   SPYCE | ||
|  | " Maintainer:	 Rimon Barr <rimon AT acm DOT org> | ||
|  | " URL:		     http://spyce.sourceforge.net | ||
|  | " Last Change: 2003 May 11 | ||
|  | 
 | ||
|  | " For version 5.x: Clear all syntax items | ||
|  | " For version 6.x: Quit when a syntax file was already loaded | ||
|  | if version < 600 | ||
|  |   syntax clear | ||
|  | elseif exists("b:current_syntax") | ||
|  |   finish | ||
|  | endif | ||
|  | 
 | ||
|  | " we define it here so that included files can test for it | ||
|  | if !exists("main_syntax") | ||
|  |   let main_syntax='spyce' | ||
|  | endif | ||
|  | 
 | ||
|  | " Read the HTML syntax to start with | ||
|  | let b:did_indent = 1	     " don't perform HTML indentation! | ||
|  | let html_no_rendering = 1    " do not render <b>,<i>, etc... | ||
|  | if version < 600 | ||
|  |   so <sfile>:p:h/html.vim | ||
|  | else | ||
|  |   runtime! syntax/html.vim | ||
|  |   unlet b:current_syntax | ||
|  | endif | ||
|  | 
 | ||
|  | " include python | ||
|  | syn include @Python <sfile>:p:h/python.vim | ||
|  | syn include @Html <sfile>:p:h/html.vim | ||
|  | 
 | ||
|  | " spyce definitions | ||
|  | syn keyword spyceDirectiveKeyword include compact module import contained | ||
|  | syn keyword spyceDirectiveArg name names file contained | ||
|  | syn region  spyceDirectiveString start=+"+ end=+"+ contained | ||
|  | syn match   spyceDirectiveValue "=[\t ]*[^'", \t>][^, \t>]*"hs=s+1 contained | ||
|  | 
 | ||
|  | syn match spyceBeginErrorS  ,\[\[, | ||
|  | syn match spyceBeginErrorA  ,<%, | ||
|  | syn cluster spyceBeginError contains=spyceBeginErrorS,spyceBeginErrorA | ||
|  | syn match spyceEndErrorS    ,\]\], | ||
|  | syn match spyceEndErrorA    ,%>, | ||
|  | syn cluster spyceEndError contains=spyceEndErrorS,spyceEndErrorA | ||
|  | 
 | ||
|  | syn match spyceEscBeginS       ,\\\[\[, | ||
|  | syn match spyceEscBeginA       ,\\<%, | ||
|  | syn cluster spyceEscBegin contains=spyceEscBeginS,spyceEscBeginA | ||
|  | syn match spyceEscEndS	       ,\\\]\], | ||
|  | syn match spyceEscEndA	       ,\\%>, | ||
|  | syn cluster spyceEscEnd contains=spyceEscEndS,spyceEscEndA | ||
|  | syn match spyceEscEndCommentS  ,--\\\]\], | ||
|  | syn match spyceEscEndCommentA  ,--\\%>, | ||
|  | syn cluster spyceEscEndComment contains=spyceEscEndCommentS,spyceEscEndCommentA | ||
|  | 
 | ||
|  | syn region spyceStmtS      matchgroup=spyceStmtDelim start=,\[\[, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend | ||
|  | syn region spyceStmtA      matchgroup=spyceStmtDelim start=,<%, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend | ||
|  | syn region spyceChunkS     matchgroup=spyceChunkDelim start=,\[\[\\, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend | ||
|  | syn region spyceChunkA     matchgroup=spyceChunkDelim start=,<%\\, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend | ||
|  | syn region spyceEvalS      matchgroup=spyceEvalDelim start=,\[\[=, end=,\]\], contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend | ||
|  | syn region spyceEvalA      matchgroup=spyceEvalDelim start=,<%=, end=,%>, contains=@Python,spyceLambdaS,spyceLambdaA,spyceBeginError keepend | ||
|  | syn region spyceDirectiveS matchgroup=spyceDelim start=,\[\[\., end=,\]\], contains=spyceBeginError,spyceDirectiveKeyword,spyceDirectiveArg,spyceDirectiveValue,spyceDirectiveString keepend | ||
|  | syn region spyceDirectiveA matchgroup=spyceDelim start=,<%@, end=,%>, contains=spyceBeginError,spyceDirectiveKeyword,spyceDirectiveArg,spyceDirectiveValue,spyceDirectiveString keepend | ||
|  | syn region spyceCommentS   matchgroup=spyceCommentDelim start=,\[\[--, end=,--\]\], | ||
|  | syn region spyceCommentA   matchgroup=spyceCommentDelim start=,<%--, end=,--%>, | ||
|  | syn region spyceLambdaS    matchgroup=spyceLambdaDelim start=,\[\[spy!\?, end=,\]\], contains=@Html,@spyce extend | ||
|  | syn region spyceLambdaA    matchgroup=spyceLambdaDelim start=,<%spy!\?, end=,%>, contains=@Html,@spyce extend | ||
|  | 
 | ||
|  | syn cluster spyce contains=spyceStmtS,spyceStmtA,spyceChunkS,spyceChunkA,spyceEvalS,spyceEvalA,spyceCommentS,spyceCommentA,spyceDirectiveS,spyceDirectiveA | ||
|  | 
 | ||
|  | syn cluster htmlPreproc contains=@spyce | ||
|  | 
 | ||
|  | hi link spyceDirectiveKeyword	Special | ||
|  | hi link spyceDirectiveArg	Type | ||
|  | hi link spyceDirectiveString	String | ||
|  | hi link spyceDirectiveValue	String | ||
|  | 
 | ||
|  | hi link spyceDelim		Special | ||
|  | hi link spyceStmtDelim		spyceDelim | ||
|  | hi link spyceChunkDelim		spyceDelim | ||
|  | hi link spyceEvalDelim		spyceDelim | ||
|  | hi link spyceLambdaDelim	spyceDelim | ||
|  | hi link spyceCommentDelim	Comment | ||
|  | 
 | ||
|  | hi link spyceBeginErrorS	Error | ||
|  | hi link spyceBeginErrorA	Error | ||
|  | hi link spyceEndErrorS		Error | ||
|  | hi link spyceEndErrorA		Error | ||
|  | 
 | ||
|  | hi link spyceStmtS		spyce | ||
|  | hi link spyceStmtA		spyce | ||
|  | hi link spyceChunkS		spyce | ||
|  | hi link spyceChunkA		spyce | ||
|  | hi link spyceEvalS		spyce | ||
|  | hi link spyceEvalA		spyce | ||
|  | hi link spyceDirectiveS		spyce | ||
|  | hi link spyceDirectiveA		spyce | ||
|  | hi link spyceCommentS		Comment | ||
|  | hi link spyceCommentA		Comment | ||
|  | hi link spyceLambdaS		Normal | ||
|  | hi link spyceLambdaA		Normal | ||
|  | 
 | ||
|  | hi link spyce			Statement | ||
|  | 
 | ||
|  | let b:current_syntax = "spyce" | ||
|  | if main_syntax == 'spyce' | ||
|  |   unlet main_syntax | ||
|  | endif | ||
|  | 
 |