blob: 57ff05f807a1a057a95becefa0b94a5c86b66670 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
" Vim syntax file
" Language: Spice circuit simulator input netlist
" Maintainer: Noam Halevy <Noam.Halevy.motorola.com>
" Last Change: 2012 Jun 01
" (Dominique Pelle added @Spell)
"
" This is based on sh.vim by Lennart Schultz
" but greatly simplified
" quit when a syntax file was already loaded
if exists("b:current_syntax")
finish
endif
" spice syntax is case INsensitive
syn case ignore
syn keyword spiceTodo contained TODO
syn match spiceComment "^ \=\*.*$" contains=@Spell
syn match spiceComment "\$.*$" contains=@Spell
" 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.
" Only when an item doesn't have highlighting yet
command -nargs=+ HiLink hi def link <args>
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
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
|