forked from aniani/vim
		
	
		
			
	
	
		
			88 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
		
		
			
		
	
	
			88 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
|   | " Vim syntax file | ||
|  | " Language:	Spice circuit simulator input netlist | ||
|  | " Maintainer:	Noam Halevy <Noam.Halevy.motorola.com> | ||
|  | " Last Change:	12/08/99 | ||
|  | " | ||
|  | " This is based on sh.vim by Lennart Schultz | ||
|  | " but greatly simplified | ||
|  | 
 | ||
|  | " 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 | ||
|  | 
 | ||
|  | " spice syntax is case INsensitive | ||
|  | syn case ignore | ||
|  | 
 | ||
|  | syn keyword	spiceTodo	contained TODO | ||
|  | 
 | ||
|  | syn match spiceComment  "^ \=\*.*$" | ||
|  | syn match spiceComment  "\$.*$" | ||
|  | 
 | ||
|  | " Numbers, all with engineering suffixes and optional units | ||
|  | "========================================================== | ||
|  | "floating point number, with dot, optional exponent | ||
|  | syn match spiceNumber  "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\=" | ||
|  | "floating point number, starting with a dot, optional exponent | ||
|  | syn match spiceNumber  "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\=" | ||
|  | "integer number with optional exponent | ||
|  | syn match spiceNumber  "\<[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\=" | ||
|  | 
 | ||
|  | " Misc | ||
|  | "===== | ||
|  | syn match   spiceWrapLineOperator       "\\$" | ||
|  | syn match   spiceWrapLineOperator       "^+" | ||
|  | 
 | ||
|  | syn match   spiceStatement      "^ \=\.\I\+" | ||
|  | 
 | ||
|  | " Matching pairs of parentheses | ||
|  | "========================================== | ||
|  | syn region  spiceParen transparent matchgroup=spiceOperator start="(" end=")" contains=ALLBUT,spiceParenError | ||
|  | syn region  spiceSinglequote matchgroup=spiceOperator start=+'+ end=+'+ | ||
|  | 
 | ||
|  | " Errors | ||
|  | "======= | ||
|  | syn match spiceParenError ")" | ||
|  | 
 | ||
|  | " Syncs | ||
|  | " ===== | ||
|  | syn sync minlines=50 | ||
|  | 
 | ||
|  | " 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_spice_syntax_inits") | ||
|  |   if version < 508 | ||
|  |     let did_spice_syntax_inits = 1 | ||
|  |     command -nargs=+ HiLink hi link <args> | ||
|  |   else | ||
|  |     command -nargs=+ HiLink hi def link <args> | ||
|  |   endif | ||
|  | 
 | ||
|  |   HiLink spiceTodo		Todo | ||
|  |   HiLink spiceWrapLineOperator	spiceOperator | ||
|  |   HiLink spiceSinglequote	spiceExpr | ||
|  |   HiLink spiceExpr		Function | ||
|  |   HiLink spiceParenError	Error | ||
|  |   HiLink spiceStatement		Statement | ||
|  |   HiLink spiceNumber		Number | ||
|  |   HiLink spiceComment		Comment | ||
|  |   HiLink spiceOperator		Operator | ||
|  | 
 | ||
|  |   delcommand HiLink | ||
|  | endif | ||
|  | 
 | ||
|  | let b:current_syntax = "spice" | ||
|  | 
 | ||
|  | " insert the following to $VIM/syntax/scripts.vim | ||
|  | " to autodetect HSpice netlists and text listing output: | ||
|  | " | ||
|  | " " Spice netlists and text listings | ||
|  | " elseif getline(1) =~ 'spice\>' || getline("$") =~ '^\.end' | ||
|  | "   so <sfile>:p:h/spice.vim | ||
|  | 
 | ||
|  | " vim: ts=8 |