verilog.vim 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. " Vim syntax file
  2. " Language: Verilog
  3. " Maintainer: Mun Johl <Mun.Johl@emulex.com>
  4. " Last Update: Wed Jul 20 16:04:19 PDT 2011
  5. " quit when a syntax file was already loaded
  6. if exists("b:current_syntax")
  7. finish
  8. endif
  9. " Set the local value of the 'iskeyword' option.
  10. " NOTE: '?' was added so that verilogNumber would be processed correctly when
  11. " '?' is the last character of the number.
  12. setlocal iskeyword=@,48-57,63,_,192-255
  13. " A bunch of useful Verilog keywords
  14. syn keyword verilogStatement always and assign automatic buf
  15. syn keyword verilogStatement bufif0 bufif1 cell cmos
  16. syn keyword verilogStatement config deassign defparam design
  17. syn keyword verilogStatement disable edge endconfig
  18. syn keyword verilogStatement endfunction endgenerate endmodule
  19. syn keyword verilogStatement endprimitive endspecify endtable endtask
  20. syn keyword verilogStatement event force function
  21. syn keyword verilogStatement generate genvar highz0 highz1 ifnone
  22. syn keyword verilogStatement incdir include initial inout input
  23. syn keyword verilogStatement instance integer large liblist
  24. syn keyword verilogStatement library localparam macromodule medium
  25. syn keyword verilogStatement module nand negedge nmos nor
  26. syn keyword verilogStatement noshowcancelled not notif0 notif1 or
  27. syn keyword verilogStatement output parameter pmos posedge primitive
  28. syn keyword verilogStatement pull0 pull1 pulldown pullup
  29. syn keyword verilogStatement pulsestyle_onevent pulsestyle_ondetect
  30. syn keyword verilogStatement rcmos real realtime reg release
  31. syn keyword verilogStatement rnmos rpmos rtran rtranif0 rtranif1
  32. syn keyword verilogStatement scalared showcancelled signed small
  33. syn keyword verilogStatement specify specparam strong0 strong1
  34. syn keyword verilogStatement supply0 supply1 table task time tran
  35. syn keyword verilogStatement tranif0 tranif1 tri tri0 tri1 triand
  36. syn keyword verilogStatement trior trireg unsigned use vectored wait
  37. syn keyword verilogStatement wand weak0 weak1 wire wor xnor xor
  38. syn keyword verilogLabel begin end fork join
  39. syn keyword verilogConditional if else case casex casez default endcase
  40. syn keyword verilogRepeat forever repeat while for
  41. syn keyword verilogTodo contained TODO FIXME
  42. syn match verilogOperator "[&|~><!)(*#%@+/=?:;}{,.\^\-\[\]]"
  43. syn region verilogComment start="/\*" end="\*/" contains=verilogTodo,@Spell
  44. syn match verilogComment "//.*" contains=verilogTodo,@Spell
  45. "syn match verilogGlobal "`[a-zA-Z0-9_]\+\>"
  46. syn match verilogGlobal "`celldefine"
  47. syn match verilogGlobal "`default_nettype"
  48. syn match verilogGlobal "`define"
  49. syn match verilogGlobal "`else"
  50. syn match verilogGlobal "`elsif"
  51. syn match verilogGlobal "`endcelldefine"
  52. syn match verilogGlobal "`endif"
  53. syn match verilogGlobal "`ifdef"
  54. syn match verilogGlobal "`ifndef"
  55. syn match verilogGlobal "`include"
  56. syn match verilogGlobal "`line"
  57. syn match verilogGlobal "`nounconnected_drive"
  58. syn match verilogGlobal "`resetall"
  59. syn match verilogGlobal "`timescale"
  60. syn match verilogGlobal "`unconnected_drive"
  61. syn match verilogGlobal "`undef"
  62. syn match verilogGlobal "$[a-zA-Z0-9_]\+\>"
  63. syn match verilogConstant "\<[A-Z][A-Z0-9_]\+\>"
  64. syn match verilogNumber "\(\<\d\+\|\)'[sS]\?[bB]\s*[0-1_xXzZ?]\+\>"
  65. syn match verilogNumber "\(\<\d\+\|\)'[sS]\?[oO]\s*[0-7_xXzZ?]\+\>"
  66. syn match verilogNumber "\(\<\d\+\|\)'[sS]\?[dD]\s*[0-9_xXzZ?]\+\>"
  67. syn match verilogNumber "\(\<\d\+\|\)'[sS]\?[hH]\s*[0-9a-fA-F_xXzZ?]\+\>"
  68. syn match verilogNumber "\<[+-]\=[0-9_]\+\(\.[0-9_]*\|\)\(e[0-9_]*\|\)\>"
  69. syn region verilogString start=+"+ skip=+\\"+ end=+"+ contains=verilogEscape,@Spell
  70. syn match verilogEscape +\\[nt"\\]+ contained
  71. syn match verilogEscape "\\\o\o\=\o\=" contained
  72. " Directives
  73. syn match verilogDirective "//\s*synopsys\>.*$"
  74. syn region verilogDirective start="/\*\s*synopsys\>" end="\*/"
  75. syn region verilogDirective start="//\s*synopsys dc_script_begin\>" end="//\s*synopsys dc_script_end\>"
  76. syn match verilogDirective "//\s*\$s\>.*$"
  77. syn region verilogDirective start="/\*\s*\$s\>" end="\*/"
  78. syn region verilogDirective start="//\s*\$s dc_script_begin\>" end="//\s*\$s dc_script_end\>"
  79. "Modify the following as needed. The trade-off is performance versus
  80. "functionality.
  81. syn sync minlines=50
  82. " Define the default highlighting.
  83. " Only when an item doesn't have highlighting yet
  84. " The default highlighting.
  85. hi def link verilogCharacter Character
  86. hi def link verilogConditional Conditional
  87. hi def link verilogRepeat Repeat
  88. hi def link verilogString String
  89. hi def link verilogTodo Todo
  90. hi def link verilogComment Comment
  91. hi def link verilogConstant Constant
  92. hi def link verilogLabel Label
  93. hi def link verilogNumber Number
  94. hi def link verilogOperator Special
  95. hi def link verilogStatement Statement
  96. hi def link verilogGlobal Define
  97. hi def link verilogDirective SpecialComment
  98. hi def link verilogEscape Special
  99. let b:current_syntax = "verilog"
  100. " vim: ts=8