blob: 57ff05f807a1a057a95becefa0b94a5c86b66670 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Spice circuit simulator input netlist
3" Maintainer: Noam Halevy <Noam.Halevy.motorola.com>
Bram Moolenaarc8734422012-06-01 22:38:45 +02004" Last Change: 2012 Jun 01
5" (Dominique Pelle added @Spell)
Bram Moolenaar071d4272004-06-13 20:20:40 +00006"
7" This is based on sh.vim by Lennart Schultz
8" but greatly simplified
9
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020010" quit when a syntax file was already loaded
11if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000012 finish
13endif
14
15" spice syntax is case INsensitive
16syn case ignore
17
18syn keyword spiceTodo contained TODO
19
Bram Moolenaarc8734422012-06-01 22:38:45 +020020syn match spiceComment "^ \=\*.*$" contains=@Spell
21syn match spiceComment "\$.*$" contains=@Spell
Bram Moolenaar071d4272004-06-13 20:20:40 +000022
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.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020053" Only when an item doesn't have highlighting yet
54command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000055
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020056HiLink spiceTodo Todo
57HiLink spiceWrapLineOperator spiceOperator
58HiLink spiceSinglequote spiceExpr
59HiLink spiceExpr Function
60HiLink spiceParenError Error
61HiLink spiceStatement Statement
62HiLink spiceNumber Number
63HiLink spiceComment Comment
64HiLink spiceOperator Operator
Bram Moolenaar071d4272004-06-13 20:20:40 +000065
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020066delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000067
68let b:current_syntax = "spice"
69
70" insert the following to $VIM/syntax/scripts.vim
71" to autodetect HSpice netlists and text listing output:
72"
73" " Spice netlists and text listings
74" elseif getline(1) =~ 'spice\>' || getline("$") =~ '^\.end'
75" so <sfile>:p:h/spice.vim
76
77" vim: ts=8