1" Vim syntax file 2" Language: Dracula 3" Maintainer: Scott Bordelon <[email protected]> 4" Last change: Wed Apr 25 18:50:01 PDT 2001 5" Extensions: drac.*,*.drac,*.drc,*.lvs,*.lpe 6" Comment: Dracula is an industry-standard language created by CADENCE (a 7" company specializing in Electronics Design Automation), for 8" the purposes of Design Rule Checking, Layout vs. Schematic 9" verification, and Layout Parameter Extraction. 10 11" For version 5.x: Clear all syntax items 12" For version 6.x: Quit when a syntax file was already loaded 13if version < 600 14 syntax clear 15elseif exists("b:current_syntax") 16 finish 17endif 18 19" Ignore case 20syn case ignore 21 22" A bunch of useful Dracula keywords 23 24"syn match draculaIdentifier 25 26syn keyword draculaStatement indisk primary outdisk printfile system 27syn keyword draculaStatement mode scale resolution listerror keepdata 28syn keyword draculaStatement datatype by lt gt output label range touch 29syn keyword draculaStatement inside outside within overlap outlib 30syn keyword draculaStatement schematic model unit parset 31syn match draculaStatement "flag-\(non45\|acuteangle\|offgrid\)" 32syn match draculaStatement "text-pri-only" 33syn match draculaStatement "[=&]" 34syn match draculaStatement "\[[^,]*\]" 35syn match draculastatement "^ *\(sel\|width\|ext\|enc\|area\|shrink\|grow\|length\)" 36syn match draculastatement "^ *\(or\|not\|and\|select\|size\|connect\|sconnect\|int\)" 37syn match draculastatement "^ *\(softchk\|stamp\|element\|parasitic cap\|attribute cap\)" 38syn match draculastatement "^ *\(flagnon45\|lextract\|equation\|lpeselect\|lpechk\|attach\)" 39syn match draculaStatement "\(temporary\|connect\)-layer" 40syn match draculaStatement "program-dir" 41syn match draculaStatement "status-command" 42syn match draculaStatement "batch-queue" 43syn match draculaStatement "cnames-csen" 44syn match draculaStatement "filter-lay-opt" 45syn match draculaStatement "filter-sch-opt" 46syn match draculaStatement "power-node" 47syn match draculaStatement "ground-node" 48syn match draculaStatement "subckt-name" 49 50syn match draculaType "\*description" 51syn match draculaType "\*input-layer" 52syn match draculaType "\*operation" 53syn match draculaType "\*end" 54 55syn match draculaComment ";.*" 56 57syn match draculaPreProc "^#.*" 58 59"Modify the following as needed. The trade-off is performance versus 60"functionality. 61syn sync lines=50 62 63" Define the default highlighting. 64" For version 5.7 and earlier: only when not done already 65" For version 5.8 and later: only when an item doesn't have highlighting yet 66if version >= 508 || !exists("did_dracula_syn_inits") 67 if version < 508 68 let did_dracula_syn_inits = 1 69 command -nargs=+ HiLink hi link <args> 70 else 71 command -nargs=+ HiLink hi def link <args> 72 endif 73 74 HiLink draculaIdentifier Identifier 75 HiLink draculaStatement Statement 76 HiLink draculaType Type 77 HiLink draculaComment Comment 78 HiLink draculaPreProc PreProc 79 80 delcommand HiLink 81endif 82 83let b:current_syntax = "dracula" 84 85" vim: ts=8 86