{
    "comments": {
        "lineComment": "//",
        "blockComment": ["/*", "*/"]
    },
    "brackets": [
        ["{", "}"],
        ["[", "]"],
        ["(", ")"],
        ["begin", "end"],
        ["randcase", "endcase"],
        ["casex", "endcase"],
        ["casez", "endcase"],
        ["case", "endcase"],
        ["checker", "endchecker"],
        ["class", "endclass"],
        ["clocking", "endclocking"],
        ["config", "endconfig"],
        ["coverage", "endcoverage"],
        ["covergroup", "endgroup"],
        ["fork", "join"],
        ["fork", "join_any"],
        ["fork", "join_none"],
        ["function", "endfunction"],
        ["generate", "endgenerate"],
        ["interface", "endinterface"],
        ["macromodule", "endmodule"],
        ["module", "endmodule"],
        ["package", "endpackage"],
        ["primitive", "endprimitive"],
        ["program", "endprogram"],
        ["property", "endproperty"],
        ["specify", "endspecify"],
        ["sequence", "endsequence"],
        ["table", "endtable"],
        ["task", "endtask"]
    ],
    "autoClosingPairs": [
        { "open": "(", "close": ")" },
        { "open": "[", "close": "]" },
        { "open": "{", "close": "}" },
        { "open": "\"", "close": "\"", "notIn": ["string"] }
    ],
    "surroundingPairs": [
        ["{", "}"],
        ["[", "]"],
        ["(", ")"],
        ["'", "'"],
        ["\"", "\""]
    ],
    "folding": {
        "markers": {
            "start": "^[ \\t\\n]*(?://[ \\t\\n]*#?region|`(?:ifdef|ifndef|elsif|else)\\b|\\b(?:(?:macro)?module|class)\\b)",
            "end": "^[ \\t\\n]*(?://[ \\t\\n]*#?endregion|`(?:elsif|else|endif)\\b|\\b(?:endmodule|endclass)\\b)"
        }
    }
}
