1" Vim syntax file 2" Language: Spice circuit simulator input netlist 3" Maintainer: Noam Halevy <Noam.Halevy.motorola.com> 4" Last Change: 2012 Jun 01 5" (Dominique Pelle added @Spell) 6" 7" This is based on sh.vim by Lennart Schultz 8" but greatly simplified 9 10" quit when a syntax file was already loaded 11if exists("b:current_syntax") 12 finish 13endif 14 15" spice syntax is case INsensitive 16syn case ignore 17 18syn keyword spiceTodo contained TODO 19 20syn match spiceComment "^ \=\*.*$" contains=@Spell 21syn match spiceComment "\$.*$" contains=@Spell 22 23" Numbers, all with engineering suffixes and optional units 24"========================================================== 25"floating point number, with dot, optional exponent 26syn match spiceNumber "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\=" 27"floating point number, starting with a dot, optional exponent 28syn match spiceNumber "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\=" 29"integer number with optional exponent 30syn match spiceNumber "\<[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\=" 31 32" Misc 33"===== 34syn match spiceWrapLineOperator "\\$" 35syn match spiceWrapLineOperator "^+" 36 37syn match spiceStatement "^ \=\.\I\+" 38 39" Matching pairs of parentheses 40"========================================== 41syn region spiceParen transparent matchgroup=spiceOperator start="(" end=")" contains=ALLBUT,spiceParenError 42syn region spiceSinglequote matchgroup=spiceOperator start=+'+ end=+'+ 43 44" Errors 45"======= 46syn match spiceParenError ")" 47 48" Syncs 49" ===== 50syn sync minlines=50 51 52" Define the default highlighting. 53" Only when an item doesn't have highlighting yet 54 55hi def link spiceTodo Todo 56hi def link spiceWrapLineOperator spiceOperator 57hi def link spiceSinglequote spiceExpr 58hi def link spiceExpr Function 59hi def link spiceParenError Error 60hi def link spiceStatement Statement 61hi def link spiceNumber Number 62hi def link spiceComment Comment 63hi def link spiceOperator Operator 64 65 66let b:current_syntax = "spice" 67 68" insert the following to $VIM/syntax/scripts.vim 69" to autodetect HSpice netlists and text listing output: 70" 71" " Spice netlists and text listings 72" elseif getline(1) =~ 'spice\>' || getline("$") =~ '^\.end' 73" so <sfile>:p:h/spice.vim 74 75" vim: ts=8 76