mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
	
	
		
			136 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			136 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:		lace | ||
|  | " Maintainer:	Jocelyn Fiat <utilities@eiffel.com> | ||
|  | " Last Change:	2001 May 09 | ||
|  | 
 | ||
|  | " Copyright Interactive Software Engineering, 1998 | ||
|  | " You are free to use this file as you please, but | ||
|  | " if you make a change or improvement you must send | ||
|  | " it to the maintainer at <utilities@eiffel.com> | ||
|  | 
 | ||
|  | 
 | ||
|  | " 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 | ||
|  | 
 | ||
|  | " LACE is case insensitive, but the style guide lines are not. | ||
|  | 
 | ||
|  | if !exists("lace_case_insensitive") | ||
|  | 	syn case match | ||
|  | else | ||
|  | 	syn case ignore | ||
|  | endif | ||
|  | 
 | ||
|  | " A bunch of useful LACE keywords | ||
|  | syn keyword laceTopStruct		system root default option visible cluster | ||
|  | syn keyword laceTopStruct		external generate end | ||
|  | syn keyword laceOptionClause	collect assertion debug optimize trace | ||
|  | syn keyword laceOptionClause	profile inline precompiled multithreaded | ||
|  | syn keyword laceOptionClause	exception_trace dead_code_removal | ||
|  | syn keyword laceOptionClause	array_optimization | ||
|  | syn keyword laceOptionClause	inlining_size inlining | ||
|  | syn keyword laceOptionClause	console_application dynamic_runtime | ||
|  | syn keyword laceOptionClause	line_generation | ||
|  | syn keyword laceOptionMark		yes no all | ||
|  | syn keyword laceOptionMark		require ensure invariant loop check | ||
|  | syn keyword laceClusterProp		use include exclude | ||
|  | syn keyword laceAdaptClassName	adapt ignore rename as | ||
|  | syn keyword laceAdaptClassName	creation export visible | ||
|  | syn keyword laceExternal		include_path object makefile | ||
|  | 
 | ||
|  | " Operators | ||
|  | syn match   laceOperator		"\$" | ||
|  | syn match   laceBrackets		"[[\]]" | ||
|  | syn match   laceExport			"[{}]" | ||
|  | 
 | ||
|  | " Constants | ||
|  | syn keyword laceBool		true false | ||
|  | syn keyword laceBool		True False | ||
|  | syn region  laceString		start=+"+ skip=+%"+ end=+"+ contains=laceEscape,laceStringError | ||
|  | syn match   laceEscape		contained "%[^/]" | ||
|  | syn match   laceEscape		contained "%/\d\+/" | ||
|  | syn match   laceEscape		contained "^[ \t]*%" | ||
|  | syn match   laceEscape		contained "%[ \t]*$" | ||
|  | syn match   laceStringError	contained "%/[^0-9]" | ||
|  | syn match   laceStringError	contained "%/\d\+[^0-9/]" | ||
|  | syn match   laceStringError	"'\(%[^/]\|%/\d\+/\|[^'%]\)\+'" | ||
|  | syn match   laceCharacter	"'\(%[^/]\|%/\d\+/\|[^'%]\)'" contains=laceEscape | ||
|  | syn match   laceNumber		"-\=\<\d\+\(_\d\+\)*\>" | ||
|  | syn match   laceNumber		"\<[01]\+[bB]\>" | ||
|  | syn match   laceNumber		"-\=\<\d\+\(_\d\+\)*\.\(\d\+\(_\d\+\)*\)\=\([eE][-+]\=\d\+\(_\d\+\)*\)\=" | ||
|  | syn match   laceNumber		"-\=\.\d\+\(_\d\+\)*\([eE][-+]\=\d\+\(_\d\+\)*\)\=" | ||
|  | syn match   laceComment		"--.*" contains=laceTodo | ||
|  | 
 | ||
|  | 
 | ||
|  | syn case match | ||
|  | 
 | ||
|  | " Case sensitive stuff | ||
|  | 
 | ||
|  | syn keyword laceTodo		TODO XXX FIXME | ||
|  | syn match	laceClassName	"\<[A-Z][A-Z0-9_]*\>" | ||
|  | syn match	laceCluster		"[a-zA-Z][a-zA-Z0-9_]*\s*:" | ||
|  | syn match	laceCluster		"[a-zA-Z][a-zA-Z0-9_]*\s*(\s*[a-zA-Z][a-zA-Z0-9_]*\s*)\s*:" | ||
|  | 
 | ||
|  | " Catch mismatched parentheses | ||
|  | syn match laceParenError	")" | ||
|  | syn match laceBracketError	"\]" | ||
|  | syn region laceGeneric		transparent matchgroup=laceBrackets start="\[" end="\]" contains=ALLBUT,laceBracketError | ||
|  | syn region laceParen		transparent start="(" end=")" contains=ALLBUT,laceParenError | ||
|  | 
 | ||
|  | " Should suffice for even very long strings and expressions | ||
|  | syn sync lines=40 | ||
|  | 
 | ||
|  | " Define the default highlighting. | ||
|  | " 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_lace_syntax_inits") | ||
|  |   if version < 508 | ||
|  |     let did_lace_syntax_inits = 1 | ||
|  |     command -nargs=+ HiLink hi link <args> | ||
|  |   else | ||
|  |     command -nargs=+ HiLink hi def link <args> | ||
|  |   endif | ||
|  | 
 | ||
|  |   HiLink laceTopStruct			PreProc | ||
|  | 
 | ||
|  |   HiLink laceOptionClause		Statement | ||
|  |   HiLink laceOptionMark			Constant | ||
|  |   HiLink laceClusterProp		Label | ||
|  |   HiLink laceAdaptClassName		Label | ||
|  |   HiLink laceExternal			Statement | ||
|  |   HiLink laceCluster			ModeMsg | ||
|  | 
 | ||
|  |   HiLink laceEscape				Special | ||
|  | 
 | ||
|  |   HiLink laceBool				Boolean | ||
|  |   HiLink laceString				String | ||
|  |   HiLink laceCharacter			Character | ||
|  |   HiLink laceClassName			Type | ||
|  |   HiLink laceNumber				Number | ||
|  | 
 | ||
|  |   HiLink laceOperator			Special | ||
|  |   HiLink laceArray				Special | ||
|  |   HiLink laceExport				Special | ||
|  |   HiLink laceCreation			Special | ||
|  |   HiLink laceBrackets			Special | ||
|  |   HiLink laceConstraint			Special | ||
|  | 
 | ||
|  |   HiLink laceComment			Comment | ||
|  | 
 | ||
|  |   HiLink laceError				Error | ||
|  |   HiLink laceStringError		Error | ||
|  |   HiLink laceParenError			Error | ||
|  |   HiLink laceBracketError		Error | ||
|  |   HiLink laceTodo				Todo | ||
|  | 
 | ||
|  |   delcommand HiLink | ||
|  | endif | ||
|  | 
 | ||
|  | let b:current_syntax = "lace" | ||
|  | 
 | ||
|  | " vim: ts=4 |