Родитель
f99fd366af
Коммит
ae05fdc332
|
@ -29,6 +29,7 @@ const dirs = [
|
||||||
'extensions/import',
|
'extensions/import',
|
||||||
'extensions/integration-tests',
|
'extensions/integration-tests',
|
||||||
'extensions/ipynb',
|
'extensions/ipynb',
|
||||||
|
'extensions/javascript',
|
||||||
'extensions/json-language-features',
|
'extensions/json-language-features',
|
||||||
'extensions/json-language-features/server',
|
'extensions/json-language-features/server',
|
||||||
'extensions/kusto',
|
'extensions/kusto',
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
test/**
|
||||||
|
src/**/*.ts
|
||||||
|
syntaxes/Readme.md
|
||||||
|
tsconfig.json
|
||||||
|
cgmanifest.json
|
|
@ -0,0 +1,45 @@
|
||||||
|
{
|
||||||
|
"registrations": [
|
||||||
|
{
|
||||||
|
"component": {
|
||||||
|
"type": "git",
|
||||||
|
"git": {
|
||||||
|
"name": "microsoft/TypeScript-TmLanguage",
|
||||||
|
"repositoryUrl": "https://github.com/microsoft/TypeScript-TmLanguage",
|
||||||
|
"commitHash": "3133e3d914db9a2bb8812119f9273727a305f16b"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"license": "MIT",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"description": "The file syntaxes/JavaScript.tmLanguage.json was derived from TypeScriptReact.tmLanguage in https://github.com/microsoft/TypeScript-TmLanguage."
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"component": {
|
||||||
|
"type": "git",
|
||||||
|
"git": {
|
||||||
|
"name": "textmate/javascript.tmbundle",
|
||||||
|
"repositoryUrl": "https://github.com/textmate/javascript.tmbundle",
|
||||||
|
"commitHash": "fccf0af0c95430a42e1bf98f0c7a4723a53283e7"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"licenseDetail": [
|
||||||
|
"Copyright (c) textmate-javascript.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
|
||||||
|
}
|
|
@ -0,0 +1,193 @@
|
||||||
|
{
|
||||||
|
// Note that this file should stay in sync with 'typescript-language-basics/language-configuration.json'
|
||||||
|
"comments": {
|
||||||
|
"lineComment": "//",
|
||||||
|
"blockComment": [
|
||||||
|
"/*",
|
||||||
|
"*/"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"brackets": [
|
||||||
|
[
|
||||||
|
"${",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"{",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"[",
|
||||||
|
"]"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
")"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"autoClosingPairs": [
|
||||||
|
{
|
||||||
|
"open": "{",
|
||||||
|
"close": "}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"open": "[",
|
||||||
|
"close": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"open": "(",
|
||||||
|
"close": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"open": "'",
|
||||||
|
"close": "'",
|
||||||
|
"notIn": [
|
||||||
|
"string",
|
||||||
|
"comment"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"open": "\"",
|
||||||
|
"close": "\"",
|
||||||
|
"notIn": [
|
||||||
|
"string"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"open": "`",
|
||||||
|
"close": "`",
|
||||||
|
"notIn": [
|
||||||
|
"string",
|
||||||
|
"comment"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"open": "/**",
|
||||||
|
"close": " */",
|
||||||
|
"notIn": [
|
||||||
|
"string"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"surroundingPairs": [
|
||||||
|
[
|
||||||
|
"{",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"[",
|
||||||
|
"]"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
")"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"'"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"\""
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"`",
|
||||||
|
"`"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
">"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"autoCloseBefore": ";:.,=}])>` \n\t",
|
||||||
|
"folding": {
|
||||||
|
"markers": {
|
||||||
|
"start": "^\\s*//\\s*#?region\\b",
|
||||||
|
"end": "^\\s*//\\s*#?endregion\\b"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"wordPattern": {
|
||||||
|
"pattern": "(-?\\d*\\.\\d\\w*)|([^\\`\\~\\@\\!\\%\\^\\&\\*\\(\\)\\-\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:\\'\\\"\\,\\.\\<\\>/\\?\\s]+)",
|
||||||
|
},
|
||||||
|
"indentationRules": {
|
||||||
|
"decreaseIndentPattern": {
|
||||||
|
"pattern": "^((?!.*?/\\*).*\\*\/)?\\s*[\\}\\]].*$"
|
||||||
|
},
|
||||||
|
"increaseIndentPattern": {
|
||||||
|
"pattern": "^((?!//).)*(\\{([^}\"'`/]*|(\\t|[ ])*//.*)|\\([^)\"'`/]*|\\[[^\\]\"'`/]*)$"
|
||||||
|
},
|
||||||
|
// e.g. * ...| or */| or *-----*/|
|
||||||
|
"unIndentedLinePattern": {
|
||||||
|
"pattern": "^(\\t|[ ])*[ ]\\*[^/]*\\*/\\s*$|^(\\t|[ ])*[ ]\\*/\\s*$|^(\\t|[ ])*[ ]\\*([ ]([^\\*]|\\*(?!/))*)?$"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onEnterRules": [
|
||||||
|
{
|
||||||
|
// e.g. /** | */
|
||||||
|
"beforeText": {
|
||||||
|
"pattern": "^\\s*/\\*\\*(?!/)([^\\*]|\\*(?!/))*$"
|
||||||
|
},
|
||||||
|
"afterText": {
|
||||||
|
"pattern": "^\\s*\\*/$"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"indent": "indentOutdent",
|
||||||
|
"appendText": " * "
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// e.g. /** ...|
|
||||||
|
"beforeText": {
|
||||||
|
"pattern": "^\\s*/\\*\\*(?!/)([^\\*]|\\*(?!/))*$"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"indent": "none",
|
||||||
|
"appendText": " * "
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// e.g. * ...|
|
||||||
|
"beforeText": {
|
||||||
|
"pattern": "^(\\t|[ ])*[ ]\\*([ ]([^\\*]|\\*(?!/))*)?$"
|
||||||
|
},
|
||||||
|
"previousLineText": {
|
||||||
|
"pattern": "(?=^(\\s*(/\\*\\*|\\*)).*)(?=(?!(\\s*\\*/)))"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"indent": "none",
|
||||||
|
"appendText": "* "
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// e.g. */|
|
||||||
|
"beforeText": {
|
||||||
|
"pattern": "^(\\t|[ ])*[ ]\\*/\\s*$"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"indent": "none",
|
||||||
|
"removeText": 1
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// e.g. *-----*/|
|
||||||
|
"beforeText": {
|
||||||
|
"pattern": "^(\\t|[ ])*[ ]\\*[^/]*\\*/\\s*$"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"indent": "none",
|
||||||
|
"removeText": 1
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"beforeText": {
|
||||||
|
"pattern": "^\\s*(\\bcase\\s.+:|\\bdefault:)$"
|
||||||
|
},
|
||||||
|
"afterText": {
|
||||||
|
"pattern": "^(?!\\s*(\\bcase\\b|\\bdefault\\b))"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"indent": "indent"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,180 @@
|
||||||
|
{
|
||||||
|
"name": "javascript",
|
||||||
|
"displayName": "%displayName%",
|
||||||
|
"description": "%description%",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"publisher": "vscode",
|
||||||
|
"license": "MIT",
|
||||||
|
"engines": {
|
||||||
|
"vscode": "*"
|
||||||
|
},
|
||||||
|
"contributes": {
|
||||||
|
"configurationDefaults": {
|
||||||
|
"[javascript]": {
|
||||||
|
"editor.maxTokenizationLineLength": 2500
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"languages": [
|
||||||
|
{
|
||||||
|
"id": "javascriptreact",
|
||||||
|
"aliases": [
|
||||||
|
"JavaScript JSX",
|
||||||
|
"JavaScript React",
|
||||||
|
"jsx"
|
||||||
|
],
|
||||||
|
"extensions": [
|
||||||
|
".jsx"
|
||||||
|
],
|
||||||
|
"configuration": "./javascript-language-configuration.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "javascript",
|
||||||
|
"aliases": [
|
||||||
|
"JavaScript",
|
||||||
|
"javascript",
|
||||||
|
"js"
|
||||||
|
],
|
||||||
|
"extensions": [
|
||||||
|
".js",
|
||||||
|
".es6",
|
||||||
|
".mjs",
|
||||||
|
".cjs",
|
||||||
|
".pac"
|
||||||
|
],
|
||||||
|
"filenames": [
|
||||||
|
"jakefile"
|
||||||
|
],
|
||||||
|
"firstLine": "^#!.*\\bnode",
|
||||||
|
"mimetypes": [
|
||||||
|
"text/javascript"
|
||||||
|
],
|
||||||
|
"configuration": "./javascript-language-configuration.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "jsx-tags",
|
||||||
|
"aliases": [],
|
||||||
|
"configuration": "./tags-language-configuration.json"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"grammars": [
|
||||||
|
{
|
||||||
|
"language": "javascriptreact",
|
||||||
|
"scopeName": "source.js.jsx",
|
||||||
|
"path": "./syntaxes/JavaScriptReact.tmLanguage.json",
|
||||||
|
"embeddedLanguages": {
|
||||||
|
"meta.tag.js": "jsx-tags",
|
||||||
|
"meta.tag.without-attributes.js": "jsx-tags",
|
||||||
|
"meta.tag.attributes.js.jsx": "javascriptreact",
|
||||||
|
"meta.embedded.expression.js": "javascriptreact"
|
||||||
|
},
|
||||||
|
"tokenTypes": {
|
||||||
|
"meta.template.expression": "other",
|
||||||
|
"meta.template.expression string": "string",
|
||||||
|
"meta.template.expression comment": "comment",
|
||||||
|
"entity.name.type.instance.jsdoc": "other",
|
||||||
|
"entity.name.function.tagged-template": "other",
|
||||||
|
"meta.import string.quoted": "other",
|
||||||
|
"variable.other.jsdoc": "other"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"language": "javascript",
|
||||||
|
"scopeName": "source.js",
|
||||||
|
"path": "./syntaxes/JavaScript.tmLanguage.json",
|
||||||
|
"embeddedLanguages": {
|
||||||
|
"meta.tag.js": "jsx-tags",
|
||||||
|
"meta.tag.without-attributes.js": "jsx-tags",
|
||||||
|
"meta.tag.attributes.js": "javascript",
|
||||||
|
"meta.embedded.expression.js": "javascript"
|
||||||
|
},
|
||||||
|
"tokenTypes": {
|
||||||
|
"meta.template.expression": "other",
|
||||||
|
"meta.template.expression string": "string",
|
||||||
|
"meta.template.expression comment": "comment",
|
||||||
|
"entity.name.type.instance.jsdoc": "other",
|
||||||
|
"entity.name.function.tagged-template": "other",
|
||||||
|
"meta.import string.quoted": "other",
|
||||||
|
"variable.other.jsdoc": "other"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"scopeName": "source.js.regexp",
|
||||||
|
"path": "./syntaxes/Regular Expressions (JavaScript).tmLanguage"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"semanticTokenScopes": [
|
||||||
|
{
|
||||||
|
"language": "javascript",
|
||||||
|
"scopes": {
|
||||||
|
"property": [
|
||||||
|
"variable.other.property.js"
|
||||||
|
],
|
||||||
|
"property.readonly": [
|
||||||
|
"variable.other.constant.property.js"
|
||||||
|
],
|
||||||
|
"variable": [
|
||||||
|
"variable.other.readwrite.js"
|
||||||
|
],
|
||||||
|
"variable.readonly": [
|
||||||
|
"variable.other.constant.object.js"
|
||||||
|
],
|
||||||
|
"function": [
|
||||||
|
"entity.name.function.js"
|
||||||
|
],
|
||||||
|
"namespace": [
|
||||||
|
"entity.name.type.module.js"
|
||||||
|
],
|
||||||
|
"variable.defaultLibrary": [
|
||||||
|
"support.variable.js"
|
||||||
|
],
|
||||||
|
"function.defaultLibrary": [
|
||||||
|
"support.function.js"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"language": "javascriptreact",
|
||||||
|
"scopes": {
|
||||||
|
"property": [
|
||||||
|
"variable.other.property.jsx"
|
||||||
|
],
|
||||||
|
"property.readonly": [
|
||||||
|
"variable.other.constant.property.jsx"
|
||||||
|
],
|
||||||
|
"variable": [
|
||||||
|
"variable.other.readwrite.jsx"
|
||||||
|
],
|
||||||
|
"variable.readonly": [
|
||||||
|
"variable.other.constant.object.jsx"
|
||||||
|
],
|
||||||
|
"function": [
|
||||||
|
"entity.name.function.jsx"
|
||||||
|
],
|
||||||
|
"namespace": [
|
||||||
|
"entity.name.type.module.jsx"
|
||||||
|
],
|
||||||
|
"variable.defaultLibrary": [
|
||||||
|
"support.variable.js"
|
||||||
|
],
|
||||||
|
"function.defaultLibrary": [
|
||||||
|
"support.function.js"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"snippets": [
|
||||||
|
{
|
||||||
|
"language": "javascript",
|
||||||
|
"path": "./snippets/javascript.code-snippets"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"language": "javascriptreact",
|
||||||
|
"path": "./snippets/javascript.code-snippets"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/microsoft/vscode.git"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
{
|
||||||
|
"displayName": "JavaScript Language Basics",
|
||||||
|
"description": "Provides snippets, syntax highlighting, bracket matching and folding in JavaScript files."
|
||||||
|
}
|
|
@ -0,0 +1,203 @@
|
||||||
|
{
|
||||||
|
"define module": {
|
||||||
|
"prefix": "define",
|
||||||
|
"body": [
|
||||||
|
"define([",
|
||||||
|
"\t'require',",
|
||||||
|
"\t'${1:dependency}'",
|
||||||
|
"], function(require, ${2:factory}) {",
|
||||||
|
"\t'use strict';",
|
||||||
|
"\t$0",
|
||||||
|
"});"
|
||||||
|
],
|
||||||
|
"description": "define module"
|
||||||
|
},
|
||||||
|
"For Loop": {
|
||||||
|
"prefix": "for",
|
||||||
|
"body": [
|
||||||
|
"for (let ${1:index} = 0; ${1:index} < ${2:array}.length; ${1:index}++) {",
|
||||||
|
"\tconst ${3:element} = ${2:array}[${1:index}];",
|
||||||
|
"\t$TM_SELECTED_TEXT$0",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "For Loop"
|
||||||
|
},
|
||||||
|
"For-Each Loop": {
|
||||||
|
"prefix": "foreach",
|
||||||
|
"body": [
|
||||||
|
"${1:array}.forEach(${2:element} => {",
|
||||||
|
"\t$TM_SELECTED_TEXT$0",
|
||||||
|
"});"
|
||||||
|
],
|
||||||
|
"description": "For-Each Loop"
|
||||||
|
},
|
||||||
|
"For-In Loop": {
|
||||||
|
"prefix": "forin",
|
||||||
|
"body": [
|
||||||
|
"for (const ${1:key} in ${2:object}) {",
|
||||||
|
"\tif (Object.hasOwnProperty.call(${2:object}, ${1:key})) {",
|
||||||
|
"\t\tconst ${3:element} = ${2:object}[${1:key}];",
|
||||||
|
"\t\t$TM_SELECTED_TEXT$0",
|
||||||
|
"\t}",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "For-In Loop"
|
||||||
|
},
|
||||||
|
"For-Of Loop": {
|
||||||
|
"prefix": "forof",
|
||||||
|
"body": [
|
||||||
|
"for (const ${1:iterator} of ${2:object}) {",
|
||||||
|
"\t$TM_SELECTED_TEXT$0",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "For-Of Loop"
|
||||||
|
},
|
||||||
|
"Function Statement": {
|
||||||
|
"prefix": "function",
|
||||||
|
"body": [
|
||||||
|
"function ${1:name}(${2:params}) {",
|
||||||
|
"\t$TM_SELECTED_TEXT$0",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "Function Statement"
|
||||||
|
},
|
||||||
|
"If Statement": {
|
||||||
|
"prefix": "if",
|
||||||
|
"body": [
|
||||||
|
"if (${1:condition}) {",
|
||||||
|
"\t$TM_SELECTED_TEXT$0",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "If Statement"
|
||||||
|
},
|
||||||
|
"If-Else Statement": {
|
||||||
|
"prefix": "ifelse",
|
||||||
|
"body": [
|
||||||
|
"if (${1:condition}) {",
|
||||||
|
"\t$TM_SELECTED_TEXT$0",
|
||||||
|
"} else {",
|
||||||
|
"\t",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "If-Else Statement"
|
||||||
|
},
|
||||||
|
"New Statement": {
|
||||||
|
"prefix": "new",
|
||||||
|
"body": [
|
||||||
|
"const ${1:name} = new ${2:type}(${3:arguments});$0"
|
||||||
|
],
|
||||||
|
"description": "New Statement"
|
||||||
|
},
|
||||||
|
"Switch Statement": {
|
||||||
|
"prefix": "switch",
|
||||||
|
"body": [
|
||||||
|
"switch (${1:key}) {",
|
||||||
|
"\tcase ${2:value}:",
|
||||||
|
"\t\t$0",
|
||||||
|
"\t\tbreak;",
|
||||||
|
"",
|
||||||
|
"\tdefault:",
|
||||||
|
"\t\tbreak;",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "Switch Statement"
|
||||||
|
},
|
||||||
|
"While Statement": {
|
||||||
|
"prefix": "while",
|
||||||
|
"body": [
|
||||||
|
"while (${1:condition}) {",
|
||||||
|
"\t$TM_SELECTED_TEXT$0",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "While Statement"
|
||||||
|
},
|
||||||
|
"Do-While Statement": {
|
||||||
|
"prefix": "dowhile",
|
||||||
|
"body": [
|
||||||
|
"do {",
|
||||||
|
"\t$TM_SELECTED_TEXT$0",
|
||||||
|
"} while (${1:condition});"
|
||||||
|
],
|
||||||
|
"description": "Do-While Statement"
|
||||||
|
},
|
||||||
|
"Try-Catch Statement": {
|
||||||
|
"prefix": "trycatch",
|
||||||
|
"body": [
|
||||||
|
"try {",
|
||||||
|
"\t$TM_SELECTED_TEXT$0",
|
||||||
|
"} catch (${1:error}) {",
|
||||||
|
"\t",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
"description": "Try-Catch Statement"
|
||||||
|
},
|
||||||
|
"Set Timeout Function": {
|
||||||
|
"prefix": "settimeout",
|
||||||
|
"body": [
|
||||||
|
"setTimeout(() => {",
|
||||||
|
"\t$TM_SELECTED_TEXT$0",
|
||||||
|
"}, ${1:timeout});"
|
||||||
|
],
|
||||||
|
"description": "Set Timeout Function"
|
||||||
|
},
|
||||||
|
"Set Interval Function": {
|
||||||
|
"prefix": "setinterval",
|
||||||
|
"body": [
|
||||||
|
"setInterval(() => {",
|
||||||
|
"\t$TM_SELECTED_TEXT$0",
|
||||||
|
"}, ${1:interval});"
|
||||||
|
],
|
||||||
|
"description": "Set Interval Function"
|
||||||
|
},
|
||||||
|
"Import Statement": {
|
||||||
|
"prefix": "import",
|
||||||
|
"body": [
|
||||||
|
"import { $0 } from \"${1:module}\";"
|
||||||
|
],
|
||||||
|
"description": "Import external module"
|
||||||
|
},
|
||||||
|
"Region Start": {
|
||||||
|
"prefix": "#region",
|
||||||
|
"body": [
|
||||||
|
"//#region $0"
|
||||||
|
],
|
||||||
|
"description": "Folding Region Start"
|
||||||
|
},
|
||||||
|
"Region End": {
|
||||||
|
"prefix": "#endregion",
|
||||||
|
"body": [
|
||||||
|
"//#endregion"
|
||||||
|
],
|
||||||
|
"description": "Folding Region End"
|
||||||
|
},
|
||||||
|
"Log to the console": {
|
||||||
|
"prefix": "log",
|
||||||
|
"body": [
|
||||||
|
"console.log($1);"
|
||||||
|
],
|
||||||
|
"description": "Log to the console"
|
||||||
|
},
|
||||||
|
"Log warning to console": {
|
||||||
|
"prefix": "warn",
|
||||||
|
"body": [
|
||||||
|
"console.warn($1);"
|
||||||
|
],
|
||||||
|
"description": "Log warning to the console"
|
||||||
|
},
|
||||||
|
"Log error to console": {
|
||||||
|
"prefix": "error",
|
||||||
|
"body": [
|
||||||
|
"console.error($1);"
|
||||||
|
],
|
||||||
|
"description": "Log error to the console"
|
||||||
|
},
|
||||||
|
"new Promise": {
|
||||||
|
"prefix": "newpromise",
|
||||||
|
"body": [
|
||||||
|
"new Promise((resolve, reject) => {",
|
||||||
|
"\t$TM_SELECTED_TEXT$0",
|
||||||
|
"})"
|
||||||
|
],
|
||||||
|
"description": "Create a new Promise"
|
||||||
|
}
|
||||||
|
}
|
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
Различия файлов скрыты, потому что одна или несколько строк слишком длинны
|
@ -0,0 +1,10 @@
|
||||||
|
The file `JavaScript.tmLanguage.json` is derived from [TypeScriptReact.tmLanguage](https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage).
|
||||||
|
|
||||||
|
To update to the latest version:
|
||||||
|
- `cd extensions/typescript` and run `npm run update-grammars`
|
||||||
|
- don't forget to run the integration tests at `./scripts/test-integration.sh`
|
||||||
|
|
||||||
|
The script does the following changes:
|
||||||
|
- fileTypes .tsx -> .js & .jsx
|
||||||
|
- scopeName scope.tsx -> scope.js
|
||||||
|
- update all rule names .tsx -> .js
|
|
@ -0,0 +1,237 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>fileTypes</key>
|
||||||
|
<array/>
|
||||||
|
<key>hideFromUser</key>
|
||||||
|
<true/>
|
||||||
|
<key>name</key>
|
||||||
|
<string>Regular Expressions (JavaScript)</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#regexp</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
<key>repository</key>
|
||||||
|
<dict>
|
||||||
|
<key>regex-character-class</key>
|
||||||
|
<dict>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\\[wWsSdD]|\.</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.character-class.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\\([0-7]{3}|x\h\h|u\h\h\h\h)</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.numeric.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\\c[A-Z]</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.control.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\\.</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.escape.backslash.regexp</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<key>regexp</key>
|
||||||
|
<dict>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\\[bB]|\^|\$</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.control.anchor.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\\[1-9]\d*</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.other.back-reference.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>[?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\??</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.quantifier.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>\|</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.or.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>(\()((\?=)|(\?!))</string>
|
||||||
|
<key>beginCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.group.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<key>3</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.assertion.look-ahead.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<key>4</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.assertion.negative-look-ahead.regexp</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>(\))</string>
|
||||||
|
<key>endCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.group.regexp</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.group.assertion.regexp</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#regexp</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>\((\?:)?</string>
|
||||||
|
<key>beginCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.group.regexp</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>\)</string>
|
||||||
|
<key>endCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>0</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.group.regexp</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>meta.group.regexp</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#regexp</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>begin</key>
|
||||||
|
<string>(\[)(\^)?</string>
|
||||||
|
<key>beginCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.character-class.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>keyword.operator.negation.regexp</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>end</key>
|
||||||
|
<string>(\])</string>
|
||||||
|
<key>endCaptures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>punctuation.definition.character-class.regexp</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.other.character-class.set.regexp</string>
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
<dict>
|
||||||
|
<key>captures</key>
|
||||||
|
<dict>
|
||||||
|
<key>1</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.numeric.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<key>2</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.control.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<key>3</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.escape.backslash.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<key>4</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.numeric.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<key>5</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.control.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<key>6</key>
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.character.escape.backslash.regexp</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>match</key>
|
||||||
|
<string>(?:.|(\\(?:[0-7]{3}|x\h\h|u\h\h\h\h))|(\\c[A-Z])|(\\.))\-(?:[^\]\\]|(\\(?:[0-7]{3}|x\h\h|u\h\h\h\h))|(\\c[A-Z])|(\\.))</string>
|
||||||
|
<key>name</key>
|
||||||
|
<string>constant.other.character-class.range.regexp</string>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#regex-character-class</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
<dict>
|
||||||
|
<key>include</key>
|
||||||
|
<string>#regex-character-class</string>
|
||||||
|
</dict>
|
||||||
|
</array>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>scopeName</key>
|
||||||
|
<string>source.js.regexp</string>
|
||||||
|
<key>uuid</key>
|
||||||
|
<string>AC8679DE-3AC7-4056-84F9-69A7ADC29DDD</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
|
@ -0,0 +1,152 @@
|
||||||
|
{
|
||||||
|
"comments": {
|
||||||
|
"blockComment": [
|
||||||
|
"{/*",
|
||||||
|
"*/}"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"brackets": [
|
||||||
|
[
|
||||||
|
"{",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"[",
|
||||||
|
"]"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
")"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
">"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"colorizedBracketPairs": [
|
||||||
|
[
|
||||||
|
"{",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"[",
|
||||||
|
"]"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
")"
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"autoClosingPairs": [
|
||||||
|
{
|
||||||
|
"open": "{",
|
||||||
|
"close": "}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"open": "[",
|
||||||
|
"close": "]"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"open": "(",
|
||||||
|
"close": ")"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"open": "'",
|
||||||
|
"close": "'",
|
||||||
|
"notIn": [
|
||||||
|
"string",
|
||||||
|
"comment"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"open": "\"",
|
||||||
|
"close": "\"",
|
||||||
|
"notIn": [
|
||||||
|
"string"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"open": "/**",
|
||||||
|
"close": " */",
|
||||||
|
"notIn": [
|
||||||
|
"string"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"surroundingPairs": [
|
||||||
|
[
|
||||||
|
"{",
|
||||||
|
"}"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"[",
|
||||||
|
"]"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"(",
|
||||||
|
")"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"<",
|
||||||
|
">"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"'",
|
||||||
|
"'"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
"\"",
|
||||||
|
"\""
|
||||||
|
]
|
||||||
|
],
|
||||||
|
"wordPattern": {
|
||||||
|
"pattern": "(-?\\d*\\.\\d\\w*)|([^\\`\\~\\!\\@\\$\\^\\&\\*\\(\\)\\=\\+\\[\\{\\]\\}\\\\\\|\\;\\:'\"\\,\\.\\<\\>\\/\\s]+)"
|
||||||
|
},
|
||||||
|
"onEnterRules": [
|
||||||
|
{
|
||||||
|
"beforeText": {
|
||||||
|
"pattern": "<(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr))([_:\\w][_:\\w\\-.\\d]*)([^/>]*(?!/)>)[^<]*$",
|
||||||
|
"flags": "i"
|
||||||
|
},
|
||||||
|
"afterText": {
|
||||||
|
"pattern": "^<\\/([_:\\w][_:\\w-.\\d]*)\\s*>$",
|
||||||
|
"flags": "i"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"indent": "indentOutdent"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"beforeText": {
|
||||||
|
"pattern": "<(?!(?:area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr))([_:\\w][_:\\w\\-.\\d]*)([^/>]*(?!/)>)[^<]*$",
|
||||||
|
"flags": "i"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"indent": "indent"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
// `beforeText` only applies to tokens of a given language. Since we are dealing with jsx-tags,
|
||||||
|
// make sure we apply to the closing `>` of a tag so that mixed language spans
|
||||||
|
// such as `<div onclick={1}>` are handled properly.
|
||||||
|
"beforeText": {
|
||||||
|
"pattern": "^>$"
|
||||||
|
},
|
||||||
|
"afterText": {
|
||||||
|
"pattern": "^<\\/([_:\\w][_:\\w-.\\d]*)\\s*>$",
|
||||||
|
"flags": "i"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"indent": "indentOutdent"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"beforeText": {
|
||||||
|
"pattern": "^>$"
|
||||||
|
},
|
||||||
|
"action": {
|
||||||
|
"indent": "indent"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||||
|
# yarn lockfile v1
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче