{ "fileTypes": ["sql", "ddl", "dml"], "foldingStartMarker": "(?i)^\\s*(begin|if|loop)\\b", "foldingStopMarker": "(?i)^\\s*(end)\\b", "keyEquivalent": "^~S", "name": "PL/pgSQL (Postgres)", "patterns": [ { "begin": "/\\*", "end": "\\*/", "name": "comment.block.postgres" }, { "match": "--.*$", "name": "comment.line.double-dash.postgres" }, { "captures": { "1": { "name": "keyword.other.postgres" }, "2": { "name": "keyword.other.postgres" } }, "match": "(?i)^\\s*(create)(\\s+or\\s+replace)?\\s+", "name": "meta.create.postgres" }, { "captures": { "1": { "name": "keyword.other.postgres" }, "2": { "name": "keyword.other.postgres" }, "3": { "name": "entity.name.type.postgres" } }, "match": "(?i)\\b(package)(\\s+body)?\\s+(\\S+)", "name": "meta.package.postgres" }, { "captures": { "1": { "name": "keyword.other.postgres" }, "2": { "name": "entity.name.type.postgres" } }, "match": "(?i)\\b(type)\\s+\"([^\"]+)\"", "name": "meta.type.postgres" }, { "captures": { "1": { "name": "keyword.other.postgres" }, "2": { "name": "entity.name.function.postgres" } }, "match": "(?i)\\s*(function|procedure)\\s+([-a-z0-9_.]+)", "name": "meta.procedure.postgres" }, { "match": "[!<>:]?=|<>|<|>|\\+|(?