diff --git a/package.json b/package.json index 1d17c45..706c41e 100644 --- a/package.json +++ b/package.json @@ -59,14 +59,19 @@ ".vv", "v.mod" ], - "configuration": "./language-configuration.json" + "configuration": "language-configuration.json" } ], "grammars": [ { "language": "v", "scopeName": "source.v", - "path": "./syntaxes/v.tmLanguage.json" + "path": "syntaxes/v.tmLanguage.json" + }, + { + "language": "v.mod", + "scopeName": "v.mod", + "path": "syntaxes/v.mod.tmLanguage.json" } ], "configuration": { diff --git a/syntaxes/v.mod.tmLanguage.json b/syntaxes/v.mod.tmLanguage.json new file mode 100644 index 0000000..b415c2a --- /dev/null +++ b/syntaxes/v.mod.tmLanguage.json @@ -0,0 +1,69 @@ +{ + "scopeName": "v.mod", + "patterns": [ + { + "include": "#module-decl" + }, + { + "include": "#brackets" + }, + { + "include": "#field" + }, + { + "include": "#string-placeholder" + } + ], + "repository": { + "module-decl": { + "name": "keyword.module.v.mod", + "match": "(\\bModule)" + }, + "brackets": { + "patterns": [ + { + "begin": "{", + "beginCaptures": { + "0": { + "name": "punctuation.definition.bracket.curly.begin.v.mod" + } + }, + "end": "}", + "endCaptures": { + "0": { + "name": "punctuation.definition.bracket.curly.end.v.mod" + } + } + } + ] + }, + "field": { + "name": "meta.definition.field.$1.v.mod", + "match": "\\b'([\\w]+)':\\s*'([\\w]*)'\\s*" + }, + "string": { + "name": "meta.definition.string.v.mod", + "begin": "'", + "beginCaptures":{ + "0": { + "name": "storage.type.string.v.mod" + } + }, + "end": "'", + "endCaptures": { + "0": { + "name": "storage.type.string.v.mod" + } + }, + "patterns": [ + { + "include": "#string-placeholder" + } + ] + }, + "string-placeholder": { + "match": "%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGsp]", + "name": "constant.other.placeholder.v.mod" + } + } +} \ No newline at end of file diff --git a/syntaxes/v.tmLanguage.json b/syntaxes/v.tmLanguage.json index 378a992..1dde0a9 100644 --- a/syntaxes/v.tmLanguage.json +++ b/syntaxes/v.tmLanguage.json @@ -1,7 +1,6 @@ { "name": "V", "scopeName": "source.v", - "fileTypes": [".v", ".vh", ".vsh", ".vv", "v.mod"], "patterns": [ { "include": "#comments"