blob: 6a3806028eb1e172b4a2ab0019ea30e42472a65e [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: Dracula
3" Maintainer: Scott Bordelon <slb@artisan.com>
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