tm-grammars
Version:
Collecton of TextMate grammars in JSON
306 lines (305 loc) • 9.08 kB
JSON
{
"displayName": "Verilog",
"fileTypes": [
"v",
"vh"
],
"name": "verilog",
"patterns": [
{
"include": "#comments"
},
{
"include": "#module_pattern"
},
{
"include": "#keywords"
},
{
"include": "#constants"
},
{
"include": "#strings"
},
{
"include": "#operators"
}
],
"repository": {
"comments": {
"patterns": [
{
"begin": "(^[\\t ]+)?(?=//)",
"beginCaptures": {
"1": {
"name": "punctuation.whitespace.comment.leading.verilog"
}
},
"end": "(?!\\G)",
"patterns": [
{
"begin": "//",
"beginCaptures": {
"0": {
"name": "punctuation.definition.comment.verilog"
}
},
"end": "\\n",
"name": "comment.line.double-slash.verilog"
}
]
},
{
"begin": "/\\*",
"end": "\\*/",
"name": "comment.block.c-style.verilog"
}
]
},
"constants": {
"patterns": [
{
"match": "`(?!(celldefine|endcelldefine|default_nettype|define|undef|ifdef|ifndef|else|endif|include|resetall|timescale|unconnected_drive|nounconnected_drive))[A-Z_a-z][$0-9A-Z_a-z]*",
"name": "variable.other.constant.verilog"
},
{
"match": "[0-9]*'[BDHObdho][XZ_xz\\h]+\\b",
"name": "constant.numeric.sized_integer.verilog"
},
{
"captures": {
"1": {
"name": "constant.numeric.integer.verilog"
},
"2": {
"name": "punctuation.separator.range.verilog"
},
"3": {
"name": "constant.numeric.integer.verilog"
}
},
"match": "\\b(\\d+)(:)(\\d+)\\b",
"name": "meta.block.numeric.range.verilog"
},
{
"match": "\\b\\d[_\\d]*(?i:e\\d+)?\\b",
"name": "constant.numeric.integer.verilog"
},
{
"match": "\\b\\d+\\.\\d+(?i:e\\d+)?\\b",
"name": "constant.numeric.real.verilog"
},
{
"match": "#\\d+",
"name": "constant.numeric.delay.verilog"
},
{
"match": "\\b[01XZxz]+\\b",
"name": "constant.numeric.logic.verilog"
}
]
},
"instantiation_patterns": {
"patterns": [
{
"include": "#keywords"
},
{
"begin": "^\\s*(?!always|and|assign|output|input|inout|wire|module)([A-Za-z][0-9A-Z_a-z]*)\\s+([A-Za-z][0-9A-Z_a-z]*)(?