xref: /vim-8.2.3635/runtime/syntax/spice.vim (revision f37506f6)
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