未验证 提交 3b03189a 编写于 作者: J João Moreno 提交者: GitHub

Restore extensions in core (#114921)

* bring back grammar extensions

* fix hygiene

* Revert "pull themes from the marketplace"

This reverts commit 0738f76d.
上级 5fcd9f74
......@@ -202,7 +202,7 @@ function createGitIndexVinyls(paths) {
}
cp.exec(
`git show :${relativePath}`,
`git show ':${relativePath}'`,
{ maxBuffer: 2000 * 1024, encoding: 'buffer' },
(err, out) => {
if (err) {
......
test/**
cgmanifest.json
{
"registrations": [
{
"component": {
"type": "git",
"git": {
"name": "mmims/language-batchfile",
"repositoryUrl": "https://github.com/mmims/language-batchfile",
"commitHash": "95ea8c699f7a8296b15767069868532d52631c46"
}
},
"license": "MIT",
"version": "0.7.5"
}
],
"version": 1
}
\ No newline at end of file
{
"comments": {
"lineComment": "@REM"
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"autoClosingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
{ "open": "\"", "close": "\"", "notIn": ["string"] }
],
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["%", "%"],
["\"", "\""]
],
"folding": {
"markers": {
"start": "^\\s*(::|REM|@REM)\\s*#region",
"end": "^\\s*(::|REM|@REM)\\s*#endregion"
}
}
}
{
"name": "bat",
"displayName": "%displayName%",
"description": "%description%",
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
"engines": { "vscode": "*" },
"scripts": {
"update-grammar": "node ../../build/npm/update-grammar.js mmims/language-batchfile grammars/batchfile.cson ./syntaxes/batchfile.tmLanguage.json"
},
"contributes": {
"languages": [{
"id": "bat",
"extensions": [ ".bat", ".cmd"],
"aliases": [ "Batch", "bat" ],
"configuration": "./language-configuration.json"
}],
"grammars": [{
"language": "bat",
"scopeName": "source.batchfile",
"path": "./syntaxes/batchfile.tmLanguage.json"
}],
"snippets": [{
"language": "bat",
"path": "./snippets/batchfile.code-snippets"
}]
}
}
{
"displayName": "Windows Bat Language Basics",
"description": "Provides snippets, syntax highlighting, bracket matching and folding in Windows batch files."
}
\ No newline at end of file
{
"Region Start": {
"prefix": "#region",
"body": [
"::#region"
],
"description": "Folding Region Start"
},
"Region End": {
"prefix": "#endregion",
"body": [
"::#endregion"
],
"description": "Folding Region End"
}
}
{
"information_for_contributors": [
"This file has been converted from https://github.com/mmims/language-batchfile/blob/master/grammars/batchfile.cson",
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
"Once accepted there, we are happy to receive an update request."
],
"version": "https://github.com/mmims/language-batchfile/commit/95ea8c699f7a8296b15767069868532d52631c46",
"name": "Batch File",
"scopeName": "source.batchfile",
"patterns": [
{
"include": "#commands"
},
{
"include": "#comments"
},
{
"include": "#constants"
},
{
"include": "#controls"
},
{
"include": "#escaped_characters"
},
{
"include": "#labels"
},
{
"include": "#numbers"
},
{
"include": "#operators"
},
{
"include": "#parens"
},
{
"include": "#strings"
},
{
"include": "#variables"
}
],
"repository": {
"commands": {
"patterns": [
{
"match": "(?<=^|[\\s@])(?i:adprep|append|arp|assoc|at|atmadm|attrib|auditpol|autochk|autoconv|autofmt|bcdboot|bcdedit|bdehdcfg|bitsadmin|bootcfg|brea|cacls|cd|certreq|certutil|change|chcp|chdir|chglogon|chgport|chgusr|chkdsk|chkntfs|choice|cipher|clip|cls|clscluadmin|cluster|cmd|cmdkey|cmstp|color|comp|compact|convert|copy|cprofile|cscript|csvde|date|dcdiag|dcgpofix|dcpromo|defra|del|dfscmd|dfsdiag|dfsrmig|diantz|dir|dirquota|diskcomp|diskcopy|diskpart|diskperf|diskraid|diskshadow|dispdiag|doin|dnscmd|doskey|driverquery|dsacls|dsadd|dsamain|dsdbutil|dsget|dsmgmt|dsmod|dsmove|dsquery|dsrm|edit|endlocal|eraseesentutl|eventcreate|eventquery|eventtriggers|evntcmd|expand|extract|fc|filescrn|find|findstr|finger|flattemp|fonde|forfiles|format|freedisk|fsutil|ftp|ftype|fveupdate|getmac|gettype|gpfixup|gpresult|gpupdate|graftabl|hashgen|hep|helpctr|hostname|icacls|iisreset|inuse|ipconfig|ipxroute|irftp|ismserv|jetpack|klist|ksetup|ktmutil|ktpass|label|ldifd|ldp|lodctr|logman|logoff|lpq|lpr|macfile|makecab|manage-bde|mapadmin|md|mkdir|mklink|mmc|mode|more|mount|mountvol|move|mqbup|mqsvc|mqtgsvc|msdt|msg|msiexec|msinfo32|mstsc|nbtstat|net computer|net group|net localgroup|net print|net session|net share|net start|net stop|net use|net user|net view|net|netcfg|netdiag|netdom|netsh|netstat|nfsadmin|nfsshare|nfsstat|nlb|nlbmgr|nltest|nslookup|ntackup|ntcmdprompt|ntdsutil|ntfrsutl|openfiles|pagefileconfig|path|pathping|pause|pbadmin|pentnt|perfmon|ping|pnpunatten|pnputil|popd|powercfg|powershell|powershell_ise|print|prncnfg|prndrvr|prnjobs|prnmngr|prnport|prnqctl|prompt|pubprn|pushd|pushprinterconnections|pwlauncher|qappsrv|qprocess|query|quser|qwinsta|rasdial|rcp|rd|rdpsign|regentc|recover|redircmp|redirusr|reg|regini|regsvr32|relog|ren|rename|rendom|repadmin|repair-bde|replace|reset session|rxec|risetup|rmdir|robocopy|route|rpcinfo|rpcping|rsh|runas|rundll32|rwinsta|scp|sc|schtasks|scwcmd|secedit|serverceipoptin|servrmanagercmd|serverweroptin|setspn|setx|sfc|shadow|shift|showmount|shutdown|sort|ssh|start|storrept|subst|sxstrace|ysocmgr|systeminfo|takeown|tapicfg|taskkill|tasklist|tcmsetup|telnet|tftp|time|timeout|title|tlntadmn|tpmvscmgr|tpmvscmgr|tacerpt|tracert|tree|tscon|tsdiscon|tsecimp|tskill|tsprof|type|typeperf|tzutil|uddiconfig|umount|unlodctr|ver|verifier|verif|vol|vssadmin|w32tm|waitfor|wbadmin|wdsutil|wecutil|wevtutil|where|whoami|winnt|winnt32|winpop|winrm|winrs|winsat|wlbs|mic|wscript|xcopy)(?=$|\\s)",
"name": "keyword.command.batchfile"
},
{
"begin": "(?i)(?<=^|[\\s@])(echo)(?:(?=$|\\.|:)|\\s+(?:(on|off)(?=\\s*$))?)",
"beginCaptures": {
"1": {
"name": "keyword.command.batchfile"
},
"2": {
"name": "keyword.other.special-method.batchfile"
}
},
"end": "(?=$\\n|[&|><)])",
"patterns": [
{
"include": "#escaped_characters"
},
{
"include": "#variables"
},
{
"include": "#numbers"
},
{
"include": "#strings"
}
]
},
{
"match": "(?i)(?<=^|[\\s@])(setlocal)(?:\\s*$|\\s+(EnableExtensions|DisableExtensions|EnableDelayedExpansion|DisableDelayedExpansion)(?=\\s*$))",
"captures": {
"1": {
"name": "keyword.command.batchfile"
},
"2": {
"name": "keyword.other.special-method.batchfile"
}
}
},
{
"include": "#command_set"
}
]
},
"command_set": {
"patterns": [
{
"begin": "(?<=^|[\\s@])(?i:SET)(?=$|\\s)",
"beginCaptures": {
"0": {
"name": "keyword.command.batchfile"
}
},
"end": "(?=$\\n|[&|><)])",
"patterns": [
{
"include": "#command_set_inside"
}
]
}
]
},
"command_set_inside": {
"patterns": [
{
"include": "#escaped_characters"
},
{
"include": "#variables"
},
{
"include": "#numbers"
},
{
"include": "#parens"
},
{
"include": "#command_set_strings"
},
{
"include": "#strings"
},
{
"begin": "([^ ][^=]*)(=)",
"beginCaptures": {
"1": {
"name": "variable.other.readwrite.batchfile"
},
"2": {
"name": "keyword.operator.assignment.batchfile"
}
},
"end": "(?=$\\n|[&|><)])",
"patterns": [
{
"include": "#escaped_characters"
},
{
"include": "#variables"
},
{
"include": "#numbers"
},
{
"include": "#parens"
},
{
"include": "#strings"
}
]
},
{
"begin": "\\s+/[aA]\\s+",
"end": "(?=$\\n|[&|><)])",
"name": "meta.expression.set.batchfile",
"patterns": [
{
"begin": "\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.batchfile"
}
},
"end": "\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.batchfile"
}
},
"name": "string.quoted.double.batchfile",
"patterns": [
{
"include": "#command_set_inside_arithmetic"
},
{
"include": "#command_set_group"
},
{
"include": "#variables"
}
]
},
{
"include": "#command_set_inside_arithmetic"
},
{
"include": "#command_set_group"
}
]
},
{
"begin": "\\s+/[pP]\\s+",
"end": "(?=$\\n|[&|><)])",
"patterns": [
{
"include": "#command_set_strings"
},
{
"begin": "([^ ][^=]*)(=)",
"beginCaptures": {
"1": {
"name": "variable.other.readwrite.batchfile"
},
"2": {
"name": "keyword.operator.assignment.batchfile"
}
},
"end": "(?=$\\n|[&|><)])",
"name": "meta.prompt.set.batchfile",
"patterns": [
{
"include": "#strings"
}
]
}
]
}
]
},
"command_set_group": {
"patterns": [
{
"begin": "\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.group.begin.batchfile"
}
},
"end": "\\)",
"endCaptures": {
"0": {
"name": "punctuation.section.group.end.batchfile"
}
},
"patterns": [
{
"include": "#command_set_inside_arithmetic"
}
]
}
]
},
"command_set_inside_arithmetic": {
"patterns": [
{
"include": "#command_set_operators"
},
{
"include": "#numbers"
},
{
"match": ",",
"name": "punctuation.separator.batchfile"
}
]
},
"command_set_operators": {
"patterns": [
{
"match": "([^ ]*)(\\+\\=|\\-\\=|\\*\\=|\\/\\=|%%\\=|&\\=|\\|\\=|\\^\\=|<<\\=|>>\\=)",
"captures": {
"1": {
"name": "variable.other.readwrite.batchfile"
},
"2": {
"name": "keyword.operator.assignment.augmented.batchfile"
}
}
},
{
"match": "\\+|\\-|/|\\*|%%|\\||&|\\^|<<|>>|~",
"name": "keyword.operator.arithmetic.batchfile"
},
{
"match": "!",
"name": "keyword.operator.logical.batchfile"
},
{
"match": "([^ ][^=]*)(=)",
"captures": {
"1": {
"name": "variable.other.readwrite.batchfile"
},
"2": {
"name": "keyword.operator.assignment.batchfile"
}
}
}
]
},
"command_set_strings": {
"patterns": [
{
"begin": "(\")\\s*([^ ][^=]*)(=)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.batchfile"
},
"2": {
"name": "variable.other.readwrite.batchfile"
},
"3": {
"name": "keyword.operator.assignment.batchfile"
}
},
"end": "\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.batchfile"
}
},
"name": "string.quoted.double.batchfile",
"patterns": [
{
"include": "#variables"
},
{
"include": "#numbers"
},
{
"include": "#escaped_characters"
}
]
}
]
},
"comments": {
"patterns": [
{
"begin": "(?:^|(&))\\s*(?=((?::[+=,;: ])))",
"beginCaptures": {
"1": {
"name": "keyword.operator.conditional.batchfile"
}
},
"end": "\\n",
"patterns": [
{
"begin": "((?::[+=,;: ]))",
"beginCaptures": {
"1": {
"name": "punctuation.definition.comment.batchfile"
}
},
"end": "(?=\\n)",
"name": "comment.line.colon.batchfile"
}
]
},
{
"begin": "(?<=^|[\\s@])(?i)(REM)(\\.)",
"beginCaptures": {
"1": {
"name": "keyword.command.rem.batchfile"
},
"2": {
"name": "punctuation.separator.batchfile"
}
},
"end": "(?=$\\n|[&|><)])",
"name": "comment.line.rem.batchfile"
},
{
"begin": "(?<=^|[\\s@])(?i:rem)\\b",
"beginCaptures": {
"0": {
"name": "keyword.command.rem.batchfile"
}
},
"end": "\\n",
"name": "comment.line.rem.batchfile",
"patterns": [
{
"match": "[><|]",
"name": "invalid.illegal.unexpected-character.batchfile"
}
]
}
]
},
"constants": {
"patterns": [
{
"match": "\\b(?i:NUL)\\b",
"name": "constant.language.batchfile"
}
]
},
"controls": {
"patterns": [
{
"match": "(?i)(?<=^|\\s)(?:call|exit(?=$|\\s)|goto(?=$|\\s|:))",
"name": "keyword.control.statement.batchfile"
},
{
"match": "(?<=^|\\s)(?i)(if)\\s+(?:(not)\\s+)?(exist|defined|errorlevel|cmdextversion)(?=\\s)",
"captures": {
"1": {
"name": "keyword.control.conditional.batchfile"
},
"2": {
"name": "keyword.operator.logical.batchfile"
},
"3": {
"name": "keyword.other.special-method.batchfile"
}
}
},
{
"match": "(?<=^|\\s)(?i)(?:if|else)(?=$|\\s)",
"name": "keyword.control.conditional.batchfile"
},
{
"match": "(?<=^|\\s)(?i)for(?=\\s)",
"name": "keyword.control.repeat.batchfile"
}
]
},
"escaped_characters": {
"patterns": [
{
"match": "%%|\\^\\^!|\\^(?=.)|\\^\\n",
"name": "constant.character.escape.batchfile"
}
]
},
"labels": {
"patterns": [
{
"match": "(?i)(?:^\\s*|(?<=goto)\\s*)(:)([^+=,;:\\s].*)$",
"captures": {
"1": {
"name": "punctuation.separator.batchfile"
},
"2": {
"name": "keyword.other.special-method.batchfile"
}
}
}
]
},
"numbers": {
"patterns": [
{
"match": "(?<=^|\\s|=)(0[xX][0-9A-Fa-f]*|[+-]?\\d+)(?=$|\\s|<|>)",
"name": "constant.numeric.batchfile"
}
]
},
"operators": {
"patterns": [
{
"match": "@(?=\\S)",
"name": "keyword.operator.at.batchfile"
},
{
"match": "(?<=\\s)(?i:EQU|NEQ|LSS|LEQ|GTR|GEQ)(?=\\s)|==",
"name": "keyword.operator.comparison.batchfile"
},
{
"match": "(?<=\\s)(?i)(NOT)(?=\\s)",
"name": "keyword.operator.logical.batchfile"
},
{
"match": "(?<!\\^)&&?|\\|\\|",
"name": "keyword.operator.conditional.batchfile"
},
{
"match": "(?<!\\^)\\|",
"name": "keyword.operator.pipe.batchfile"
},
{
"match": "<&?|>[&>]?",
"name": "keyword.operator.redirection.batchfile"
}
]
},
"parens": {
"patterns": [
{
"begin": "\\(",
"beginCaptures": {
"0": {
"name": "punctuation.section.group.begin.batchfile"
}
},
"end": "\\)",
"endCaptures": {
"0": {
"name": "punctuation.section.group.end.batchfile"
}
},
"name": "meta.group.batchfile",
"patterns": [
{
"match": ",|;",
"name": "punctuation.separator.batchfile"
},
{
"include": "$self"
}
]
}
]
},
"strings": {
"patterns": [
{
"begin": "\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.string.begin.batchfile"
}
},
"end": "(\")|(\\n)",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.batchfile"
},
"2": {
"name": "invalid.illegal.newline.batchfile"
}
},
"name": "string.quoted.double.batchfile",
"patterns": [
{
"match": "%%",
"name": "constant.character.escape.batchfile"
},
{
"include": "#variables"
}
]
}
]
},
"variables": {
"patterns": [
{
"match": "(%)((~([fdpnxsatz]|\\$PATH:)*)?\\d|\\*)",
"captures": {
"1": {
"name": "punctuation.definition.variable.batchfile"
},
"2": {
"name": "variable.parameter.batchfile"
}
}
},
{
"include": "#variable"
},
{
"include": "#variable_delayed_expansion"
}
]
},
"variable": {
"patterns": [
{
"begin": "%(?=[^%]+%)",
"beginCaptures": {
"0": {
"name": "punctuation.definition.variable.begin.batchfile"
}
},
"end": "(%)|\\n",
"endCaptures": {
"1": {
"name": "punctuation.definition.variable.end.batchfile"
}
},
"name": "variable.other.readwrite.batchfile",
"patterns": [
{
"begin": ":~",
"beginCaptures": {
"0": {
"name": "punctuation.separator.batchfile"
}
},
"end": "(?=%|\\n)",
"name": "meta.variable.substring.batchfile",
"patterns": [
{
"include": "#variable_substring"
}
]
},
{
"begin": ":",
"beginCaptures": {
"0": {
"name": "punctuation.separator.batchfile"
}
},
"end": "(?=%|\\n)",
"name": "meta.variable.substitution.batchfile",
"patterns": [
{
"include": "#variable_replace"
},
{
"begin": "=",
"beginCaptures": {
"0": {
"name": "punctuation.separator.batchfile"
}
},
"end": "(?=%|\\n)",
"patterns": [
{
"include": "#variable_delayed_expansion"
},
{
"match": "[^%]+",
"name": "string.unquoted.batchfile"
}
]
}
]
}
]
}
]
},
"variable_delayed_expansion": {
"patterns": [
{
"begin": "!(?=[^!]+!)",
"beginCaptures": {
"0": {
"name": "punctuation.definition.variable.begin.batchfile"
}
},
"end": "(!)|\\n",
"endCaptures": {
"1": {
"name": "punctuation.definition.variable.end.batchfile"
}
},
"name": "variable.other.readwrite.batchfile",
"patterns": [
{
"begin": ":~",
"beginCaptures": {
"0": {
"name": "punctuation.separator.batchfile"
}
},
"end": "(?=!|\\n)",
"name": "meta.variable.substring.batchfile",
"patterns": [
{
"include": "#variable_substring"
}
]
},
{
"begin": ":",
"beginCaptures": {
"0": {
"name": "punctuation.separator.batchfile"
}
},
"end": "(?=!|\\n)",
"name": "meta.variable.substitution.batchfile",
"patterns": [
{
"include": "#escaped_characters"
},
{
"include": "#variable_replace"
},
{
"include": "#variable"
},
{
"begin": "=",
"beginCaptures": {
"0": {
"name": "punctuation.separator.batchfile"
}
},
"end": "(?=!|\\n)",
"patterns": [
{
"include": "#variable"
},
{
"match": "[^!]+",
"name": "string.unquoted.batchfile"
}
]
}
]
}
]
}
]
},
"variable_replace": {
"patterns": [
{
"match": "[^=%!\\n]+",
"name": "string.unquoted.batchfile"
}
]
},
"variable_substring": {
"patterns": [
{
"match": "([+-]?\\d+)(?:(,)([+-]?\\d+))?",
"captures": {
"1": {
"name": "constant.numeric.batchfile"
},
"2": {
"name": "punctuation.separator.batchfile"
},
"3": {
"name": "constant.numeric.batchfile"
}
}
}
]
}
}
}
\ No newline at end of file
{
"registrations": [
{
"component": {
"type": "git",
"git": {
"name": "atom/language-clojure",
"repositoryUrl": "https://github.com/atom/language-clojure",
"commitHash": "de877502aa4a77ccdc2c7f0c9180436aea3effff"
}
},
"license": "MIT",
"version": "0.22.7",
"description": "The file syntaxes/clojure.tmLanguage.json was derived from the Atom package https://github.com/atom/language-clojure which was originally converted from the TextMate bundle https://github.com/mmcgrana/textmate-clojure."
}
],
"version": 1
}
\ No newline at end of file
{
"comments": {
"lineComment": ";"
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"autoClosingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
{ "open": "\"", "close": "\"", "notIn": ["string"] }
],
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""]
],
"folding": {
"offSide": true
}
}
{
"name": "clojure",
"displayName": "%displayName%",
"description": "%description%",
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
"engines": { "vscode": "*" },
"scripts": {
"update-grammar": "node ../../build/npm/update-grammar.js atom/language-clojure grammars/clojure.cson ./syntaxes/clojure.tmLanguage.json"
},
"contributes": {
"languages": [{
"id": "clojure",
"aliases": ["Clojure", "clojure"],
"extensions": [".clj", ".cljs", ".cljc", ".cljx", ".clojure", ".edn"],
"configuration": "./language-configuration.json"
}],
"grammars": [{
"language": "clojure",
"scopeName": "source.clojure",
"path": "./syntaxes/clojure.tmLanguage.json"
}]
}
}
\ No newline at end of file
{
"displayName": "Clojure Language Basics",
"description": "Provides syntax highlighting and bracket matching in Clojure files."
}
\ No newline at end of file
{
"information_for_contributors": [
"This file has been converted from https://github.com/atom/language-clojure/blob/master/grammars/clojure.cson",
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
"Once accepted there, we are happy to receive an update request."
],
"version": "https://github.com/atom/language-clojure/commit/de877502aa4a77ccdc2c7f0c9180436aea3effff",
"name": "Clojure",
"scopeName": "source.clojure",
"patterns": [
{
"include": "#comment"
},
{
"include": "#shebang-comment"
},
{
"include": "#quoted-sexp"
},
{
"include": "#sexp"
},
{
"include": "#keyfn"
},
{
"include": "#string"
},
{
"include": "#vector"
},
{
"include": "#set"
},
{
"include": "#map"
},
{
"include": "#regexp"
},
{
"include": "#var"
},
{
"include": "#constants"
},
{
"include": "#dynamic-variables"
},
{
"include": "#metadata"
},
{
"include": "#namespace-symbol"
},
{
"include": "#symbol"
}
],
"repository": {
"comment": {
"begin": "(?<!\\\\);",
"beginCaptures": {
"0": {
"name": "punctuation.definition.comment.clojure"
}
},
"end": "$",
"name": "comment.line.semicolon.clojure"
},
"constants": {
"patterns": [
{
"match": "(nil)(?=(\\s|\\)|\\]|\\}))",
"name": "constant.language.nil.clojure"
},
{
"match": "(true|false)",
"name": "constant.language.boolean.clojure"
},
{
"match": "(-?\\d+/\\d+)",
"name": "constant.numeric.ratio.clojure"
},
{
"match": "(-?\\d+[rR]\\w+)",
"name": "constant.numeric.arbitrary-radix.clojure"
},
{
"match": "(-?0[xX][0-9a-fA-F]+)",
"name": "constant.numeric.hexadecimal.clojure"
},
{
"match": "(-?0\\d+)",
"name": "constant.numeric.octal.clojure"
},
{
"match": "(-?\\d+\\.\\d+([eE][+-]?\\d+)?M)",
"name": "constant.numeric.bigdecimal.clojure"
},
{
"match": "(-?\\d+\\.\\d+([eE][+-]?\\d+)?)",
"name": "constant.numeric.double.clojure"
},
{
"match": "(-?\\d+N)",
"name": "constant.numeric.bigint.clojure"
},
{
"match": "(-?\\d+)",
"name": "constant.numeric.long.clojure"
},
{
"include": "#keyword"
}
]
},
"keyword": {
"match": "(?<=(\\s|\\(|\\[|\\{)):[\\w\\#\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}|\\,))",
"name": "constant.keyword.clojure"
},
"keyfn": {
"patterns": [
{
"match": "(?<=(\\s|\\(|\\[|\\{))(if(-[-\\p{Ll}\\?]*)?|when(-[-\\p{Ll}]*)?|for(-[-\\p{Ll}]*)?|cond|do|let(-[-\\p{Ll}\\?]*)?|binding|loop|recur|fn|throw[\\p{Ll}\\-]*|try|catch|finally|([\\p{Ll}]*case))(?=(\\s|\\)|\\]|\\}))",
"name": "storage.control.clojure"
},
{
"match": "(?<=(\\s|\\(|\\[|\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[\\p{Ll}\\-]*))(?=(\\s|\\)|\\]|\\}))",
"name": "keyword.control.clojure"
}
]
},
"dynamic-variables": {
"match": "\\*[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\d]+\\*",
"name": "meta.symbol.dynamic.clojure"
},
"map": {
"begin": "(\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.section.map.begin.clojure"
}
},
"end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",
"endCaptures": {
"1": {
"name": "punctuation.section.map.end.trailing.clojure"
},
"2": {
"name": "punctuation.section.map.end.clojure"
}
},
"name": "meta.map.clojure",
"patterns": [
{
"include": "$self"
}
]
},
"metadata": {
"patterns": [
{
"begin": "(\\^\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.section.metadata.map.begin.clojure"
}
},
"end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",
"endCaptures": {
"1": {
"name": "punctuation.section.metadata.map.end.trailing.clojure"
},
"2": {
"name": "punctuation.section.metadata.map.end.clojure"
}
},
"name": "meta.metadata.map.clojure",
"patterns": [
{
"include": "$self"
}
]
},
{
"begin": "(\\^)",
"end": "(\\s)",
"name": "meta.metadata.simple.clojure",
"patterns": [
{
"include": "#keyword"
},
{
"include": "$self"
}
]
}
]
},
"quoted-sexp": {
"begin": "(['``]\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.expression.begin.clojure"
}
},
"end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.expression.end.trailing.clojure"
},
"2": {
"name": "punctuation.section.expression.end.trailing.clojure"
},
"3": {
"name": "punctuation.section.expression.end.clojure"
}
},
"name": "meta.quoted-expression.clojure",
"patterns": [
{
"include": "$self"
}
]
},
"regexp": {
"begin": "#\"",
"beginCaptures": {
"0": {
"name": "punctuation.definition.regexp.begin.clojure"
}
},
"end": "\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.regexp.end.clojure"
}
},
"name": "string.regexp.clojure",
"patterns": [
{
"include": "#regexp_escaped_char"
}
]
},
"regexp_escaped_char": {
"match": "\\\\.",
"name": "constant.character.escape.clojure"
},
"set": {
"begin": "(\\#\\{)",
"beginCaptures": {
"1": {
"name": "punctuation.section.set.begin.clojure"
}
},
"end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})",
"endCaptures": {
"1": {
"name": "punctuation.section.set.end.trailing.clojure"
},
"2": {
"name": "punctuation.section.set.end.clojure"
}
},
"name": "meta.set.clojure",
"patterns": [
{
"include": "$self"
}
]
},
"sexp": {
"begin": "(\\()",
"beginCaptures": {
"1": {
"name": "punctuation.section.expression.begin.clojure"
}
},
"end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))",
"endCaptures": {
"1": {
"name": "punctuation.section.expression.end.trailing.clojure"
},
"2": {
"name": "punctuation.section.expression.end.trailing.clojure"
},
"3": {
"name": "punctuation.section.expression.end.clojure"
}
},
"name": "meta.expression.clojure",
"patterns": [
{
"begin": "(?<=\\()(ns|declare|def[\\w\\d._:+=><!?*-]*|[\\w._:+=><!?*-][\\w\\d._:+=><!?*-]*/def[\\w\\d._:+=><!?*-]*)\\s+",
"beginCaptures": {
"1": {
"name": "keyword.control.clojure"
}
},
"end": "(?=\\))",
"name": "meta.definition.global.clojure",
"patterns": [
{
"include": "#metadata"
},
{
"include": "#dynamic-variables"
},
{
"match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)",
"name": "entity.global.clojure"
},
{
"include": "$self"
}
]
},
{
"include": "#keyfn"
},
{
"include": "#constants"
},
{
"include": "#vector"
},
{
"include": "#map"
},
{
"include": "#set"
},
{
"include": "#sexp"
},
{
"match": "(?<=\\()(.+?)(?=\\s|\\))",
"captures": {
"1": {
"name": "entity.name.function.clojure"
}
},
"patterns": [
{
"include": "$self"
}
]
},
{
"include": "$self"
}
]
},
"shebang-comment": {
"begin": "^(#!)",
"beginCaptures": {
"1": {
"name": "punctuation.definition.comment.shebang.clojure"
}
},
"end": "$",
"name": "comment.line.shebang.clojure"
},
"string": {
"begin": "(?<!\\\\)(\")",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.clojure"
}
},
"end": "(\")",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.clojure"
}
},
"name": "string.quoted.double.clojure",
"patterns": [
{
"match": "\\\\.",
"name": "constant.character.escape.clojure"
}
]
},
"namespace-symbol": {
"patterns": [
{
"match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)/",
"captures": {
"1": {
"name": "meta.symbol.namespace.clojure"
}
}
}
]
},
"symbol": {
"patterns": [
{
"match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)",
"name": "meta.symbol.clojure"
}
]
},
"var": {
"match": "(?<=(\\s|\\(|\\[|\\{)\\#)'[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))",
"name": "meta.var.clojure"
},
"vector": {
"begin": "(\\[)",
"beginCaptures": {
"1": {
"name": "punctuation.section.vector.begin.clojure"
}
},
"end": "(\\](?=[\\}\\]\\)\\s]*(?:;|$)))|(\\])",
"endCaptures": {
"1": {
"name": "punctuation.section.vector.end.trailing.clojure"
},
"2": {
"name": "punctuation.section.vector.end.clojure"
}
},
"name": "meta.vector.clojure",
"patterns": [
{
"include": "$self"
}
]
}
}
}
\ No newline at end of file
{
"registrations": [
{
"component": {
"type": "git",
"git": {
"name": "atom/language-coffee-script",
"repositoryUrl": "https://github.com/atom/language-coffee-script",
"commitHash": "0f6db9143663e18b1ad00667820f46747dba495e"
}
},
"license": "MIT",
"description": "The file syntaxes/coffeescript.tmLanguage.json was derived from the Atom package https://github.com/atom/language-coffee-script which was originally converted from the TextMate bundle https://github.com/jashkenas/coffee-script-tmbundle.",
"version": "0.49.3"
}
],
"version": 1
}
\ No newline at end of file
{
"comments": {
"lineComment": "#",
"blockComment": [ "###", "###" ]
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"autoClosingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
{ "open": "\"", "close": "\"", "notIn": ["string"] },
{ "open": "'", "close": "'", "notIn": ["string"] }
],
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"],
[" ", " "]
],
"folding": {
"offSide": true,
"markers": {
"start": "^\\s*#region\\b",
"end": "^\\s*#endregion\\b"
}
}
}
{
"name": "coffeescript",
"displayName": "%displayName%",
"description": "%description%",
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
"engines": { "vscode": "*" },
"scripts": {
"update-grammar": "node ../../build/npm/update-grammar.js atom/language-coffee-script grammars/coffeescript.cson ./syntaxes/coffeescript.tmLanguage.json"
},
"contributes": {
"languages": [{
"id": "coffeescript",
"extensions": [ ".coffee", ".cson", ".iced" ],
"aliases": [ "CoffeeScript", "coffeescript", "coffee" ],
"configuration": "./language-configuration.json"
}],
"grammars": [{
"language": "coffeescript",
"scopeName": "source.coffee",
"path": "./syntaxes/coffeescript.tmLanguage.json"
}],
"breakpoints": [
{
"language": "coffeescript"
}
],
"snippets": [{
"language": "coffeescript",
"path": "./snippets/coffeescript.code-snippets"
}]
}
}
{
"displayName": "CoffeeScript Language Basics",
"description": "Provides snippets, syntax highlighting, bracket matching and folding in CoffeeScript files."
}
{
"Region Start": {
"prefix": "#region",
"body": [
"#region"
],
"description": "Folding Region Start"
},
"Region End": {
"prefix": "#endregion",
"body": [
"#endregion"
],
"description": "Folding Region End"
}
}
build/**
test/**
cgmanifest.json
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
var updateGrammar = require('../../../build/npm/update-grammar');
updateGrammar.update('jeff-hykin/cpp-textmate-grammar', 'syntaxes/c.tmLanguage.json', './syntaxes/c.tmLanguage.json', undefined, 'master', 'source/languages/cpp/');
updateGrammar.update('jeff-hykin/cpp-textmate-grammar', 'syntaxes/cpp.tmLanguage.json', './syntaxes/cpp.tmLanguage.json', undefined, 'master', 'source/languages/cpp/');
updateGrammar.update('jeff-hykin/cpp-textmate-grammar', 'syntaxes/cpp.embedded.macro.tmLanguage.json', './syntaxes/cpp.embedded.macro.tmLanguage.json', undefined, 'master', 'source/languages/cpp/');
// `source.c.platform` which is still included by other grammars
updateGrammar.update('textmate/c.tmbundle', 'Syntaxes/Platform.tmLanguage', './syntaxes/platform.tmLanguage.json');
{
"registrations": [
{
"component": {
"type": "git",
"git": {
"name": "jeff-hykin/cpp-textmate-grammar",
"repositoryUrl": "https://github.com/jeff-hykin/cpp-textmate-grammar",
"commitHash": "f074a48ae0b7ba313af3faf3d8bfda8537864bd1"
}
},
"license": "MIT",
"version": "1.15.5",
"description": "The files syntaxes/c.json and syntaxes/c++.json were derived from https://github.com/atom/language-c which was originally converted from the C TextMate bundle https://github.com/textmate/c.tmbundle."
},
{
"component": {
"type": "git",
"git": {
"name": "textmate/c.tmbundle",
"repositoryUrl": "https://github.com/textmate/c.tmbundle",
"commitHash": "60daf83b9d45329524f7847a75e9298b3aae5805"
}
},
"licenseDetail": [
"Copyright (c) textmate-c.tmbundle authors",
"",
"If not otherwise specified (see below), files in this repository fall under the following license:",
"",
"Permission to copy, use, modify, sell and distribute this",
"software is granted. This software is provided \"as is\" without",
"express or implied warranty, and with no claim as to its",
"suitability for any purpose.",
"",
"An exception is made for files in readable text which contain their own license information,",
"or files where an accompanying file exists (in the same directory) with a \"-license\" suffix added",
"to the base-name name of the original file, and an extension of txt, html, or similar. For example",
"\"tidy\" is accompanied by \"tidy-license.txt\"."
],
"license": "TextMate Bundle License",
"version": "0.0.0"
}
],
"version": 1
}
\ No newline at end of file
{
"comments": {
"lineComment": "//",
"blockComment": ["/*", "*/"]
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"autoClosingPairs": [
{ "open": "[", "close": "]" },
{ "open": "{", "close": "}" },
{ "open": "(", "close": ")" },
{ "open": "'", "close": "'", "notIn": ["string", "comment"] },
{ "open": "\"", "close": "\"", "notIn": ["string"] }
],
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"],
["<", ">"]
],
"folding": {
"markers": {
"start": "^\\s*#pragma\\s+region\\b",
"end": "^\\s*#pragma\\s+endregion\\b"
}
}
}
{
"name": "cpp",
"displayName": "%displayName%",
"description": "%description%",
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
"engines": {
"vscode": "*"
},
"scripts": {
"update-grammar": "node ./build/update-grammars.js"
},
"contributes": {
"languages": [
{
"id": "c",
"extensions": [
".c",
".i"
],
"aliases": [
"C",
"c"
],
"configuration": "./language-configuration.json"
},
{
"id": "cpp",
"extensions": [
".cpp",
".cc",
".cxx",
".c++",
".hpp",
".hh",
".hxx",
".h++",
".h",
".ii",
".ino",
".inl",
".ipp",
".hpp.in",
".h.in"
],
"aliases": [
"C++",
"Cpp",
"cpp"
],
"configuration": "./language-configuration.json"
}
],
"grammars": [
{
"language": "c",
"scopeName": "source.c",
"path": "./syntaxes/c.tmLanguage.json"
},
{
"language": "cpp",
"scopeName": "source.cpp.embedded.macro",
"path": "./syntaxes/cpp.embedded.macro.tmLanguage.json"
},
{
"language": "cpp",
"scopeName": "source.cpp",
"path": "./syntaxes/cpp.tmLanguage.json"
},
{
"scopeName": "source.c.platform",
"path": "./syntaxes/platform.tmLanguage.json"
}
],
"snippets": [
{
"language": "c",
"path": "./snippets/c.code-snippets"
},
{
"language": "cpp",
"path": "./snippets/cpp.code-snippets"
}
]
}
}
{
"displayName": "C/C++ Language Basics",
"description": "Provides snippets, syntax highlighting, bracket matching and folding in C/C++ files."
}
\ No newline at end of file
{
"Region Start": {
"prefix": "#region",
"body": [
"#pragma region $0"
],
"description": "Folding Region Start"
},
"Region End": {
"prefix": "#endregion",
"body": [
"#pragma endregion"
],
"description": "Folding Region End"
}
}
{
"Region Start": {
"prefix": "#region",
"body": [
"#pragma region $0"
],
"description": "Folding Region Start"
},
"Region End": {
"prefix": "#endregion",
"body": [
"#pragma endregion"
],
"description": "Folding Region End"
}
}
此差异已折叠。
此差异已折叠。
此差异已折叠。
{
"registrations": [
{
"component": {
"type": "git",
"git": {
"name": "dotnet/csharp-tmLanguage",
"repositoryUrl": "https://github.com/dotnet/csharp-tmLanguage",
"commitHash": "572697a2c2267430010b3534281f73337144e94f"
}
},
"license": "MIT",
"version": "0.1.0",
"description": "The file syntaxes/csharp.tmLanguage.json was derived from https://github.com/dotnet/csharp-tmLanguage"
}
],
"version": 1
}
\ No newline at end of file
{
"comments": {
"lineComment": "//",
"blockComment": ["/*", "*/"]
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"autoClosingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
{ "open": "'", "close": "'", "notIn": ["string", "comment"] },
{ "open": "\"", "close": "\"", "notIn": ["string", "comment"] }
],
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["<", ">"],
["'", "'"],
["\"", "\""]
],
"folding": {
"markers": {
"start": "^\\s*#region\\b",
"end": "^\\s*#endregion\\b"
}
}
}
{
"name": "csharp",
"displayName": "%displayName%",
"description": "%description%",
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
"engines": {
"vscode": "0.10.x"
},
"scripts": {
"update-grammar": "node ../../build/npm/update-grammar.js dotnet/csharp-tmLanguage grammars/csharp.tmLanguage ./syntaxes/csharp.tmLanguage.json"
},
"contributes": {
"languages": [
{
"id": "csharp",
"extensions": [
".cs",
".csx",
".cake"
],
"aliases": [
"C#",
"csharp"
],
"configuration": "./language-configuration.json"
}
],
"grammars": [
{
"language": "csharp",
"scopeName": "source.cs",
"path": "./syntaxes/csharp.tmLanguage.json"
}
],
"snippets": [{
"language": "csharp",
"path": "./snippets/csharp.code-snippets"
}]
}
}
{
"displayName": "C# Language Basics",
"description": "Provides snippets, syntax highlighting, bracket matching and folding in C# files."
}
\ No newline at end of file
{
"Region Start": {
"prefix": "#region",
"body": [
"#region $0"
],
"description": "Folding Region Start"
},
"Region End": {
"prefix": "#endregion",
"body": [
"#endregion"
],
"description": "Folding Region End"
}
}
此差异已折叠。
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Grammar",
"type": "extensionHost",
"request": "launch",
"runtimeExecutable": "${execPath}",
"args": [
"--extensionDevelopmentPath=${workspaceRoot}"
]
}
]
}
test/**
cgmanifest.json
.vscode
\ No newline at end of file
{
"registrations": [
{
"component": {
"type": "git",
"git": {
"name": "octref/language-css",
"repositoryUrl": "https://github.com/octref/language-css",
"commitHash": "dcdc1cb4403266f4ebdb1a4f526f8b6d09fd39d6"
}
},
"license": "MIT",
"description": "The file syntaxes/css.tmLanguage.json was derived from https://github.com/octref/language-css which was derived from the Atom package https://github.com/atom/language-css which was originally converted from the TextMate bundle https://github.com/textmate/css.tmbundle.",
"version": "0.42.11"
}
],
"version": 1
}
\ No newline at end of file
{
"comments": {
"blockComment": ["/*", "*/"]
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"autoClosingPairs": [
{ "open": "{", "close": "}", "notIn": ["string", "comment"] },
{ "open": "[", "close": "]", "notIn": ["string", "comment"] },
{ "open": "(", "close": ")", "notIn": ["string", "comment"] },
{ "open": "\"", "close": "\"", "notIn": ["string", "comment"] },
{ "open": "'", "close": "'", "notIn": ["string", "comment"] }
],
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"]
],
"folding": {
"markers": {
"start": "^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/",
"end": "^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/"
}
}
}
{
"name": "css",
"displayName": "%displayName%",
"description": "%description%",
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
"engines": {
"vscode": "0.10.x"
},
"scripts": {
"update-grammar": "node ../../build/npm/update-grammar.js octref/language-css grammars/css.cson ./syntaxes/css.tmLanguage.json"
},
"contributes": {
"languages": [
{
"id": "css",
"aliases": [
"CSS",
"css"
],
"extensions": [
".css"
],
"mimetypes": [
"text/css"
],
"configuration": "./language-configuration.json"
}
],
"grammars": [
{
"language": "css",
"scopeName": "source.css",
"path": "./syntaxes/css.tmLanguage.json",
"tokenTypes": {
"meta.function.url string.quoted": "other"
}
}
]
}
}
{
"displayName": "CSS Language Basics",
"description": "Provides syntax highlighting and bracket matching for CSS, LESS and SCSS files."
}
\ No newline at end of file
此差异已折叠。
{
"registrations": [
{
"component": {
"type": "git",
"git": {
"name": "language-docker",
"repositoryUrl": "https://github.com/moby/moby",
"commitHash": "abd39744c6f3ed854500e423f5fabf952165161f"
}
},
"license": "Apache2",
"description": "The file syntaxes/docker.tmLanguage was included from https://github.com/moby/moby/blob/master/contrib/syntax/textmate/Docker.tmbundle/Syntaxes/Dockerfile.tmLanguage.",
"version": "0.0.0"
}
],
"version": 1
}
\ No newline at end of file
{
"comments": {
"lineComment": "#"
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"autoClosingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"]
],
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"]
]
}
\ No newline at end of file
{
"name": "docker",
"displayName": "%displayName%",
"description": "%description%",
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
"engines": { "vscode": "*" },
"scripts": {
"update-grammar": "node ../../build/npm/update-grammar.js moby/moby contrib/syntax/textmate/Docker.tmbundle/Syntaxes/Dockerfile.tmLanguage ./syntaxes/docker.tmLanguage.json"
},
"contributes": {
"languages": [{
"id": "dockerfile",
"extensions": [ ".dockerfile", ".containerfile" ],
"filenames": [ "Dockerfile", "Containerfile" ],
"filenamePatterns": [ "Dockerfile.*", "Containerfile.*" ],
"aliases": [ "Docker", "Dockerfile", "Containerfile" ],
"configuration": "./language-configuration.json"
}],
"grammars": [{
"language": "dockerfile",
"scopeName": "source.dockerfile",
"path": "./syntaxes/docker.tmLanguage.json"
}],
"configurationDefaults": {
"[dockerfile]": {
"editor.quickSuggestions": {
"strings": true
}
}
}
}
}
{
"displayName": "Docker Language Basics",
"description": "Provides syntax highlighting and bracket matching in Docker files."
}
\ No newline at end of file
{
"information_for_contributors": [
"This file has been converted from https://github.com/moby/moby/blob/master/contrib/syntax/textmate/Docker.tmbundle/Syntaxes/Dockerfile.tmLanguage",
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
"Once accepted there, we are happy to receive an update request."
],
"version": "https://github.com/moby/moby/commit/abd39744c6f3ed854500e423f5fabf952165161f",
"name": "Dockerfile",
"scopeName": "source.dockerfile",
"patterns": [
{
"captures": {
"1": {
"name": "keyword.other.special-method.dockerfile"
},
"2": {
"name": "keyword.other.special-method.dockerfile"
}
},
"match": "^\\s*\\b(?i:(FROM))\\b.*?\\b(?i:(AS))\\b"
},
{
"captures": {
"1": {
"name": "keyword.control.dockerfile"
},
"2": {
"name": "keyword.other.special-method.dockerfile"
}
},
"match": "^\\s*(?i:(ONBUILD)\\s+)?(?i:(ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR))\\s"
},
{
"captures": {
"1": {
"name": "keyword.operator.dockerfile"
},
"2": {
"name": "keyword.other.special-method.dockerfile"
}
},
"match": "^\\s*(?i:(ONBUILD)\\s+)?(?i:(CMD|ENTRYPOINT))\\s"
},
{
"begin": "\"",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.dockerfile"
}
},
"end": "\"",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.dockerfile"
}
},
"name": "string.quoted.double.dockerfile",
"patterns": [
{
"match": "\\\\.",
"name": "constant.character.escaped.dockerfile"
}
]
},
{
"begin": "'",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.dockerfile"
}
},
"end": "'",
"endCaptures": {
"1": {
"name": "punctuation.definition.string.end.dockerfile"
}
},
"name": "string.quoted.single.dockerfile",
"patterns": [
{
"match": "\\\\.",
"name": "constant.character.escaped.dockerfile"
}
]
},
{
"captures": {
"1": {
"name": "punctuation.whitespace.comment.leading.dockerfile"
},
"2": {
"name": "comment.line.number-sign.dockerfile"
},
"3": {
"name": "punctuation.definition.comment.dockerfile"
}
},
"comment": "comment.line",
"match": "^(\\s*)((#).*$\\n?)"
}
]
}
\ No newline at end of file
{
"registrations": [
{
"component": {
"type": "git",
"git": {
"name": "ionide/ionide-fsgrammar",
"repositoryUrl": "https://github.com/ionide/ionide-fsgrammar",
"commitHash": "fc4cac6d9bc1787f54ce48bbc77bcbb1de8160ff"
}
},
"license": "MIT",
"description": "The file syntaxes/fsharp.json was included from https://github.com/ionide/ionide-fsgrammar/blob/master/grammar/fsharp.json.",
"version": "0.0.0"
}
],
"version": 1
}
\ No newline at end of file
{
"comments": {
"lineComment": "//",
"blockComment": [ "(*", "*)" ]
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"autoClosingPairs": [
{ "open": "{", "close": "}" },
{ "open": "[", "close": "]" },
{ "open": "(", "close": ")" },
{ "open": "\"", "close": "\"", "notIn": ["string"] }
],
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"]
],
"folding": {
"offSide": true,
"markers": {
"start": "^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)",
"end": "^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)"
}
}
}
{
"name": "fsharp",
"displayName": "%displayName%",
"description": "%description%",
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
"engines": { "vscode": "*" },
"scripts": {
"update-grammar": "node ../../build/npm/update-grammar.js ionide/ionide-fsgrammar grammars/fsharp.json ./syntaxes/fsharp.tmLanguage.json"
},
"contributes": {
"languages": [{
"id": "fsharp",
"extensions": [ ".fs", ".fsi", ".fsx", ".fsscript" ],
"aliases": [ "F#", "FSharp", "fsharp" ],
"configuration": "./language-configuration.json"
}],
"grammars": [{
"language": "fsharp",
"scopeName": "source.fsharp",
"path": "./syntaxes/fsharp.tmLanguage.json"
}],
"snippets": [{
"language": "fsharp",
"path": "./snippets/fsharp.code-snippets"
}]
}
}
{
"displayName": "F# Language Basics",
"description": "Provides snippets, syntax highlighting, bracket matching and folding in F# files."
}
\ No newline at end of file
{
"Region Start": {
"prefix": "#region",
"body": [
"//#region $0"
],
"description": "Folding Region Start"
},
"Region End": {
"prefix": "#endregion",
"body": [
"//#endregion"
],
"description": "Folding Region End"
}
}
此差异已折叠。
test/**
cgmanifest.json
{
"registrations": [
{
"component": {
"type": "git",
"git": {
"name": "better-go-syntax",
"repositoryUrl": "https://github.com/jeff-hykin/better-go-syntax/ ",
"commitHash": "54ff898316f8647d77ffcf83880a9556445326f1"
}
},
"license": "MIT",
"description": "The file syntaxes/go.tmLanguage.json is from https://github.com/jeff-hykin/better-go-syntax/ .",
"version": "1.0.0"
}
],
"version": 1
}
\ No newline at end of file
{
"comments": {
"lineComment": "//",
"blockComment": [ "/*", "*/" ]
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"autoClosingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
{ "open": "`", "close": "`", "notIn": ["string"]},
{ "open": "\"", "close": "\"", "notIn": ["string"]},
{ "open": "'", "close": "'", "notIn": ["string", "comment"]}
],
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"],
["`", "`"]
],
"indentationRules": {
"increaseIndentPattern": "^.*(\\bcase\\b.*:|\\bdefault\\b:|(\\b(func|if|else|switch|select|for|struct)\\b.*)?{[^}\"'`]*|\\([^)\"'`]*)$",
"decreaseIndentPattern": "^\\s*(\\bcase\\b.*:|\\bdefault\\b:|}[)}]*[),]?|\\)[,]?)$"
},
"folding": {
"markers": {
"start": "^\\s*//\\s*#?region\\b",
"end": "^\\s*//\\s*#?endregion\\b"
}
}
}
\ No newline at end of file
{
"name": "go",
"displayName": "%displayName%",
"description": "%description%",
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
"engines": {
"vscode": "*"
},
"scripts": {
"update-grammar": "node ../../build/npm/update-grammar.js jeff-hykin/better-go-syntax export/generated.tmLanguage.json ./syntaxes/go.tmLanguage.json"
},
"contributes": {
"languages": [
{
"id": "go",
"extensions": [
".go"
],
"aliases": [
"Go"
],
"configuration": "./language-configuration.json"
}
],
"grammars": [
{
"language": "go",
"scopeName": "source.go",
"path": "./syntaxes/go.tmLanguage.json"
}
],
"configurationDefaults": {
"[go]": {
"editor.insertSpaces": false
}
}
}
}
{
"displayName": "Go Language Basics",
"description": "Provides syntax highlighting and bracket matching in Go files."
}
\ No newline at end of file
此差异已折叠。
{
"registrations": [
{
"component": {
"type": "git",
"git": {
"name": "textmate/groovy.tmbundle",
"repositoryUrl": "https://github.com/textmate/groovy.tmbundle",
"commitHash": "85d8f7c97ae473ccb9473f6c8d27e4ec957f4be1"
}
},
"licenseDetail": [
"Copyright (c) textmate-groovy.tmbundle project authors",
"",
"If not otherwise specified (see below), files in this repository fall under the following license:",
"",
"Permission to copy, use, modify, sell and distribute this",
"software is granted. This software is provided \"as is\" without",
"express or implied warranty, and with no claim as to its",
"suitability for any purpose.",
"",
"An exception is made for files in readable text which contain their own license information,",
"or files where an accompanying file exists (in the same directory) with a \"-license\" suffix added",
"to the base-name name of the original file, and an extension of txt, html, or similar. For example",
"\"tidy\" is accompanied by \"tidy-license.txt\"."
],
"license": "TextMate Bundle License",
"version": "0.0.0"
}
],
"version": 1
}
\ No newline at end of file
{
"comments": {
"lineComment": "//",
"blockComment": [ "/*", "*/" ]
},
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"autoClosingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
{ "open": "\"", "close": "\"", "notIn": ["string"] },
{ "open": "'", "close": "'", "notIn": ["string"] }
],
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""],
["'", "'"]
]
}
{
"name": "groovy",
"displayName": "%displayName%",
"description": "%description%",
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
"engines": { "vscode": "*" },
"scripts": {
"update-grammar": "node ../../build/npm/update-grammar.js textmate/groovy.tmbundle Syntaxes/Groovy.tmLanguage ./syntaxes/groovy.tmLanguage.json"
},
"contributes": {
"languages": [{
"id": "groovy",
"aliases": ["Groovy", "groovy"],
"extensions": [".groovy", ".gvy", ".gradle", ".jenkinsfile", ".nf"],
"filenames": [ "Jenkinsfile" ],
"filenamePatterns": ["Jenkinsfile.*"],
"firstLine": "^#!.*\\bgroovy\\b",
"configuration": "./language-configuration.json"
}],
"grammars": [{
"language": "groovy",
"scopeName": "source.groovy",
"path": "./syntaxes/groovy.tmLanguage.json"
}],
"snippets": [{
"language": "groovy",
"path": "./snippets/groovy.code-snippets"
}]
}
}
{
"displayName": "Groovy Language Basics",
"description": "Provides snippets, syntax highlighting and bracket matching in Groovy files."
}
\ No newline at end of file
{
"replace(dir: …, includes: …, token: …, value: …)": {
"prefix": "replace",
"body": "replace(dir:\"${1:dirName}\", includes:\"${2:*.*}\", token:\"${3:tokenName}\", value:\"\\${${4:value}}\")$0",
"description": "Replace(...)"
},
"Doc Block": {
"prefix": "doc",
"body": [
"/**",
" * $0",
" */"
],
"description": "Doc block comment"
},
"key: \"value\" (Hash Pair)": {
"prefix": "key",
"body": "${1:key}: ${2:\"${3:value}\"}"
},
"Thread.start { … }": {
"prefix": "thread",
"body": [
"Thread.start {",
"\t$0",
"}"
],
"description": "Thread.start { ... }"
},
"Thread.startDaemon { … }": {
"prefix": "thread",
"body": [
"Thread.startDaemon {",
"\t$0",
"}"
],
"description": "Thread.startDaemon { ... }"
},
"case … break": {
"prefix": "case",
"body": [
"case ${1:CASE_NAME}:",
"\t$2",
"break$0"
],
"description": "case ... break"
},
"instance … (Singleton)": {
"prefix": "instance",
"body": [
"private static $1 instance",
"",
"static $1 getInstance(${2:args}) { ",
"\tif (!instance) instance = new $1(${2:args})",
"\treturn instance",
"}"
],
"description": "Singleton instance + Getter"
},
"class … extends GroovyTestCase { … }": {
"prefix": "tc",
"body": [
"class $1 extends GroovyTestCase {",
"",
"\t$0",
"}"
],
"description": "GroovyTestCase class"
},
"copy(file: …, tofile: …) ": {
"prefix": "copy",
"body": "copy(file:\"${1:sourceFile}\", tofile:\"${2:targetFile}\")",
"description": "Copy file"
},
"copy(todir: …) { fileset(dir: …) { include … exclude }": {
"prefix": "copy",
"body": [
"copy(todir:\"${1:targetDir}\") {",
"\tfileset(dir:\"${2:sourceDir}\") {",
"\t\tinclude(name:\"${3:includeName}\")",
"\t\texclude(name:\"${4:excludeName}\")",
"\t}",
"}"
],
"description": "Copy fileset todir w/ include/exclude"
},
"copy(todir: …) { fileset:dir …) }": {
"prefix": "copy",
"body": [
"copy(todir:\"${1:targetDir}\") {",
"\tfileset(dir:\"${2:sourceDir}\")",
"}"
],
"description": "Copy fileset todir"
},
"closure = { … } ": {
"prefix": "cv",
"body": [
"def ${1:closureName} = { ${2:args} ->",
"\t$0",
"}"
],
"description": "Closure block"
},
"for(… in …) { … }": {
"prefix": "forin",
"body": [
"for (${1:element} in ${2:collection}) {",
"\t$0",
"}"
],
"description": "For-loop"
},
"mkdir(dir: …)": {
"prefix": "mkdir",
"body": "mkdir(dir:\"${1:dirName}\")",
"description": "mkdir"
},
"print": {
"prefix": "p",
"body": "print $0",
"description": "print"
},
"println ": {
"prefix": "pl",
"body": "println $0",
"description": "println"
},
"runAfter() { … }": {
"prefix": "runa",
"body": [
"runAfter(${1:delay}) {",
"\t$0",
"}"
],
"description": "runAfter() { ... }"
},
"setUp() { … }": {
"prefix": "setup",
"body": [
"void setUp() {",
"\t$0",
"}"
],
"description": "setup() { ... }"
},
"sleep(secs) { … // on interrupt do }": {
"prefix": "sleep",
"body": [
"sleep(${1:secs}) {",
"\t${2:// on interrupt do}",
"}"
],
"description": "sleep with interrupt"
},
"sleep(secs)": {
"prefix": "sleep",
"body": "sleep(${1:secs})",
"description": "sleep"
},
"sort { … }": {
"prefix": "sort",
"body": [
"sort { ",
"\t$0",
"}"
],
"description": "sort"
},
"static main() { … }": {
"prefix": "main",
"body": [
"static main(args) {",
"\t$0",
"}"
],
"description": "main method"
},
"switch … case": {
"prefix": "switch",
"body": [
"switch(${1:value}) {",
"\tcase ${2:CASE}:",
"\t\t$3",
"\tbreak$0",
"}"
],
"description": "Switch-Case block"
},
"switch … case … default": {
"prefix": "switch",
"body": [
"switch(${1:value}) {",
"\tcase ${3:CASE}:",
"\t\t$4",
"\tbreak$0",
"\tdefault:",
"\t\t$2",
"\tbreak",
"}"
],
"description": "Switch-Case-Default block"
},
"tearDown() { … }": {
"prefix": "tear",
"body": [
"void tearDown() {",
"\t$0",
"}"
],
"description": "tearDown() { ... }"
},
"test()": {
"prefix": "t",
"body": [
"void test$1() {",
"\t$0",
"}"
],
"description": "test method"
},
"var": {
"prefix": "v",
"body": "${1:def} ${2:var}${3: = ${0:null}}",
"description": "var"
}
}
\ No newline at end of file
此差异已折叠。
此差异已折叠。
{
"comments": {
"blockComment": [ "{{!--", "--}}" ]
},
"brackets": [
["<!--", "-->"],
["<", ">"],
["{{", "}}"],
["{{{", "}}}"],
["{", "}"],
["(", ")"]
],
"autoClosingPairs": [
{ "open": "{", "close": "}"},
{ "open": "[", "close": "]"},
{ "open": "(", "close": ")" },
{ "open": "'", "close": "'" },
{ "open": "\"", "close": "\"" }
],
"surroundingPairs": [
{ "open": "'", "close": "'" },
{ "open": "\"", "close": "\"" },
{ "open": "<", "close": ">" },
{ "open": "{", "close": "}" }
]
}
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册