mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			123 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			123 lines
		
	
	
		
			4.0 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>
 | 
						|
 | 
						|
 | 
						|
" quit when a syntax file was already loaded
 | 
						|
if 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.
 | 
						|
" Only when an item doesn't have highlighting yet
 | 
						|
 | 
						|
hi def link laceTopStruct			PreProc
 | 
						|
 | 
						|
hi def link laceOptionClause		Statement
 | 
						|
hi def link laceOptionMark			Constant
 | 
						|
hi def link laceClusterProp		Label
 | 
						|
hi def link laceAdaptClassName		Label
 | 
						|
hi def link laceExternal			Statement
 | 
						|
hi def link laceCluster			ModeMsg
 | 
						|
 | 
						|
hi def link laceEscape				Special
 | 
						|
 | 
						|
hi def link laceBool				Boolean
 | 
						|
hi def link laceString				String
 | 
						|
hi def link laceCharacter			Character
 | 
						|
hi def link laceClassName			Type
 | 
						|
hi def link laceNumber				Number
 | 
						|
 | 
						|
hi def link laceOperator			Special
 | 
						|
hi def link laceArray				Special
 | 
						|
hi def link laceExport				Special
 | 
						|
hi def link laceCreation			Special
 | 
						|
hi def link laceBrackets			Special
 | 
						|
hi def link laceConstraint			Special
 | 
						|
 | 
						|
hi def link laceComment			Comment
 | 
						|
 | 
						|
hi def link laceError				Error
 | 
						|
hi def link laceStringError		Error
 | 
						|
hi def link laceParenError			Error
 | 
						|
hi def link laceBracketError		Error
 | 
						|
hi def link laceTodo				Todo
 | 
						|
 | 
						|
 | 
						|
let b:current_syntax = "lace"
 | 
						|
 | 
						|
" vim: ts=4
 |