diff --git a/package.json b/package.json index 5304ad5ddd1..8486172a967 100644 --- a/package.json +++ b/package.json @@ -899,7 +899,22 @@ "default": true } } - } + }, + "languages": [ + { + "id": "vimrc", + "extensions": [ + ".vimrc" + ] + } + ], + "grammars": [ + { + "language": "vimrc", + "scopeName": "source.vimrc", + "path": "./syntaxes/vimrc.tmLanguage.json" + } + ] }, "scripts": { "vscode:prepublish": "gulp build", diff --git a/syntaxes/vimrc.tmLanguage.json b/syntaxes/vimrc.tmLanguage.json new file mode 100644 index 00000000000..4d9ac7bef5b --- /dev/null +++ b/syntaxes/vimrc.tmLanguage.json @@ -0,0 +1,32 @@ +{ + "$schema": "https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json", + "name": "vimrc", + "fileTypes": [".vimrc"], + "scopeName": "source.vimrc", + "patterns": [ + { + "name": "comment.line", + "match": "\".*$" + }, + { + "name": "entity.name.function", + "match": "^(map|nmap|vmap|smap|xmap|omap|map!|imap|lmap|cmap)" + }, + { + "name": "entity.name.function", + "match": "^(noremap|nnoremap|vnoremap|snoremap|xnoremap|onoremap|noremap!|inoremap|lnoremap|cnoremap)" + }, + { + "name": "entity.name.function", + "match": "^(unmap|nunmap|vunmap|sunmap|xunmap|ounmap|unmap!|iunmap|lunmap|cunmap)" + }, + { + "name": "entity.name.function", + "match": "^set" + }, + { + "name": "string.unquoted", + "match": ".*$" + } + ] +}