neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

spice.vim (2243B)


      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
     11 if exists("b:current_syntax")
     12  finish
     13 endif
     14 
     15 " spice syntax is case INsensitive
     16 syn case ignore
     17 
     18 syn keyword	spiceTodo	contained TODO
     19 
     20 syn match spiceComment  "^ \=\*.*$" contains=@Spell
     21 syn match spiceComment  "\$.*$" contains=@Spell
     22 
     23 " Numbers, all with engineering suffixes and optional units
     24 "==========================================================
     25 "floating point number, with dot, optional exponent
     26 syn match spiceNumber  "\<[0-9]\+\.[0-9]*\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\="
     27 "floating point number, starting with a dot, optional exponent
     28 syn match spiceNumber  "\.[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\="
     29 "integer number with optional exponent
     30 syn match spiceNumber  "\<[0-9]\+\(e[-+]\=[0-9]\+\)\=\(meg\=\|[afpnumkg]\)\="
     31 
     32 " Misc
     33 "=====
     34 syn match   spiceWrapLineOperator       "\\$"
     35 syn match   spiceWrapLineOperator       "^+"
     36 
     37 syn match   spiceStatement      "^ \=\.\I\+"
     38 
     39 " Matching pairs of parentheses
     40 "==========================================
     41 syn region  spiceParen transparent matchgroup=spiceOperator start="(" end=")" contains=ALLBUT,spiceParenError
     42 syn region  spiceSinglequote matchgroup=spiceOperator start=+'+ end=+'+
     43 
     44 " Errors
     45 "=======
     46 syn match spiceParenError ")"
     47 
     48 " Syncs
     49 " =====
     50 syn sync minlines=50
     51 
     52 " Define the default highlighting.
     53 " Only when an item doesn't have highlighting yet
     54 
     55 hi def link spiceTodo		Todo
     56 hi def link spiceWrapLineOperator	spiceOperator
     57 hi def link spiceSinglequote	spiceExpr
     58 hi def link spiceExpr		Function
     59 hi def link spiceParenError	Error
     60 hi def link spiceStatement		Statement
     61 hi def link spiceNumber		Number
     62 hi def link spiceComment		Comment
     63 hi def link spiceOperator		Operator
     64 
     65 
     66 let 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