xref: /vim-8.2.3635/runtime/syntax/spice.vim (revision f37506f6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Spice circuit simulator input netlist
3071d4279SBram Moolenaar" Maintainer:	Noam Halevy <Noam.Halevy.motorola.com>
4c873442bSBram Moolenaar" Last Change:	2012 Jun 01
5c873442bSBram Moolenaar" 		(Dominique Pelle added @Spell)
6071d4279SBram Moolenaar"
7071d4279SBram Moolenaar" This is based on sh.vim by Lennart Schultz
8071d4279SBram Moolenaar" but greatly simplified
9071d4279SBram Moolenaar
1089bcfda6SBram Moolenaar" quit when a syntax file was already loaded
1189bcfda6SBram Moolenaarif exists("b:current_syntax")
12071d4279SBram Moolenaar  finish
13071d4279SBram Moolenaarendif
14071d4279SBram Moolenaar
15071d4279SBram Moolenaar" spice syntax is case INsensitive
16071d4279SBram Moolenaarsyn case ignore
17071d4279SBram Moolenaar
18071d4279SBram Moolenaarsyn keyword	spiceTodo	contained TODO
19071d4279SBram Moolenaar
20c873442bSBram Moolenaarsyn match spiceComment  "^ \=\*.*$" contains=@Spell
21c873442bSBram Moolenaarsyn match spiceComment  "\$.*$" contains=@Spell
22071d4279SBram Moolenaar
23071d4279SBram Moolenaar" Numbers, all with engineering suffixes and optional units
24071d4279SBram Moolenaar"==========================================================
25071d4279SBram Moolenaar"floating point number, with dot, optional exponent
26071d4279SBram Moolenaarsyn match spiceNumber  "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\="
27071d4279SBram Moolenaar"floating point number, starting with a dot, optional exponent
28071d4279SBram Moolenaarsyn match spiceNumber  "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\="
29071d4279SBram Moolenaar"integer number with optional exponent
30071d4279SBram Moolenaarsyn match spiceNumber  "\<[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\="
31071d4279SBram Moolenaar
32071d4279SBram Moolenaar" Misc
33071d4279SBram Moolenaar"=====
34071d4279SBram Moolenaarsyn match   spiceWrapLineOperator       "\\$"
35071d4279SBram Moolenaarsyn match   spiceWrapLineOperator       "^+"
36071d4279SBram Moolenaar
37071d4279SBram Moolenaarsyn match   spiceStatement      "^ \=\.\I\+"
38071d4279SBram Moolenaar
39071d4279SBram Moolenaar" Matching pairs of parentheses
40071d4279SBram Moolenaar"==========================================
41071d4279SBram Moolenaarsyn region  spiceParen transparent matchgroup=spiceOperator start="(" end=")" contains=ALLBUT,spiceParenError
42071d4279SBram Moolenaarsyn region  spiceSinglequote matchgroup=spiceOperator start=+'+ end=+'+
43071d4279SBram Moolenaar
44071d4279SBram Moolenaar" Errors
45071d4279SBram Moolenaar"=======
46071d4279SBram Moolenaarsyn match spiceParenError ")"
47071d4279SBram Moolenaar
48071d4279SBram Moolenaar" Syncs
49071d4279SBram Moolenaar" =====
50071d4279SBram Moolenaarsyn sync minlines=50
51071d4279SBram Moolenaar
52071d4279SBram Moolenaar" Define the default highlighting.
5389bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
54071d4279SBram Moolenaar
55*f37506f6SBram Moolenaarhi def link spiceTodo		Todo
56*f37506f6SBram Moolenaarhi def link spiceWrapLineOperator	spiceOperator
57*f37506f6SBram Moolenaarhi def link spiceSinglequote	spiceExpr
58*f37506f6SBram Moolenaarhi def link spiceExpr		Function
59*f37506f6SBram Moolenaarhi def link spiceParenError	Error
60*f37506f6SBram Moolenaarhi def link spiceStatement		Statement
61*f37506f6SBram Moolenaarhi def link spiceNumber		Number
62*f37506f6SBram Moolenaarhi def link spiceComment		Comment
63*f37506f6SBram Moolenaarhi def link spiceOperator		Operator
64071d4279SBram Moolenaar
65071d4279SBram Moolenaar
66071d4279SBram Moolenaarlet b:current_syntax = "spice"
67071d4279SBram Moolenaar
68071d4279SBram Moolenaar" insert the following to $VIM/syntax/scripts.vim
69071d4279SBram Moolenaar" to autodetect HSpice netlists and text listing output:
70071d4279SBram Moolenaar"
71071d4279SBram Moolenaar" " Spice netlists and text listings
72071d4279SBram Moolenaar" elseif getline(1) =~ 'spice\>' || getline("$") =~ '^\.end'
73071d4279SBram Moolenaar"   so <sfile>:p:h/spice.vim
74071d4279SBram Moolenaar
75071d4279SBram Moolenaar" vim: ts=8
76