diff --git a/.yarnrc b/.yarnrc
index beab9f70b95..7e63643de04 100644
--- a/.yarnrc
+++ b/.yarnrc
@@ -1,3 +1,3 @@
disturl "https://atom.io/download/electron"
-target "3.1.8"
+target "4.2.3"
runtime "electron"
diff --git a/build/azure-pipelines/common/symbols.ts b/build/azure-pipelines/common/symbols.ts
index 1a5125295f3..a42342ce7f7 100644
--- a/build/azure-pipelines/common/symbols.ts
+++ b/build/azure-pipelines/common/symbols.ts
@@ -36,7 +36,6 @@ export interface IVersionAccessor extends IApplicationAccessor {
enum Platform {
WIN_32 = 'win32-ia32',
WIN_64 = 'win32-x64',
- LINUX_32 = 'linux-ia32',
LINUX_64 = 'linux-x64',
MAC_OS = 'darwin-x64'
}
@@ -191,7 +190,7 @@ if (process.platform === 'darwin') {
} else if (process.platform === 'win32') {
platform = is64 ? Platform.WIN_64 : Platform.WIN_32;
} else {
- platform = is64 ? Platform.LINUX_64 : Platform.LINUX_32;
+ platform = Platform.LINUX_64;
}
// Create version and upload symbols in HockeyApp
diff --git a/build/azure-pipelines/linux/product-build-linux.yml b/build/azure-pipelines/linux/product-build-linux.yml
index 5ea5de8ade1..c1386b93f71 100644
--- a/build/azure-pipelines/linux/product-build-linux.yml
+++ b/build/azure-pipelines/linux/product-build-linux.yml
@@ -16,9 +16,6 @@ steps:
- script: |
set -e
export npm_config_arch="$(VSCODE_ARCH)"
- if [[ "$(VSCODE_ARCH)" == "ia32" ]]; then
- export PKG_CONFIG_PATH="/usr/lib/i386-linux-gnu/pkgconfig"
- fi
cat << EOF > ~/.netrc
machine monacotools.visualstudio.com
diff --git a/build/azure-pipelines/linux/publish.sh b/build/azure-pipelines/linux/publish.sh
index 0f864600bd3..a6b48389d58 100755
--- a/build/azure-pipelines/linux/publish.sh
+++ b/build/azure-pipelines/linux/publish.sh
@@ -5,8 +5,6 @@ ROOT="$REPO/.."
# Publish tarball
PLATFORM_LINUX="linux-$VSCODE_ARCH"
-[[ "$VSCODE_ARCH" == "ia32" ]] && DEB_ARCH="i386" || DEB_ARCH="amd64"
-[[ "$VSCODE_ARCH" == "ia32" ]] && RPM_ARCH="i386" || RPM_ARCH="x86_64"
BUILDNAME="VSCode-$PLATFORM_LINUX"
BUILD="$ROOT/$BUILDNAME"
BUILD_VERSION="$(date +%s)"
@@ -39,7 +37,7 @@ node build/azure-pipelines/common/symbols.js "$VSCODE_MIXIN_PASSWORD" "$VSCODE_H
# Publish DEB
yarn gulp "vscode-linux-$VSCODE_ARCH-build-deb"
PLATFORM_DEB="linux-deb-$VSCODE_ARCH"
-[[ "$VSCODE_ARCH" == "ia32" ]] && DEB_ARCH="i386" || DEB_ARCH="amd64"
+DEB_ARCH="amd64"
DEB_FILENAME="$(ls $REPO/.build/linux/deb/$DEB_ARCH/deb/)"
DEB_PATH="$REPO/.build/linux/deb/$DEB_ARCH/deb/$DEB_FILENAME"
@@ -48,7 +46,7 @@ node build/azure-pipelines/common/publish.js "$VSCODE_QUALITY" "$PLATFORM_DEB" p
# Publish RPM
yarn gulp "vscode-linux-$VSCODE_ARCH-build-rpm"
PLATFORM_RPM="linux-rpm-$VSCODE_ARCH"
-[[ "$VSCODE_ARCH" == "ia32" ]] && RPM_ARCH="i386" || RPM_ARCH="x86_64"
+RPM_ARCH="x86_64"
RPM_FILENAME="$(ls $REPO/.build/linux/rpm/$RPM_ARCH/ | grep .rpm)"
RPM_PATH="$REPO/.build/linux/rpm/$RPM_ARCH/$RPM_FILENAME"
diff --git a/build/azure-pipelines/product-build.yml b/build/azure-pipelines/product-build.yml
index 8b013cb9211..ac9ce03b593 100644
--- a/build/azure-pipelines/product-build.yml
+++ b/build/azure-pipelines/product-build.yml
@@ -3,9 +3,6 @@ resources:
- container: vscode-x64
image: vscodehub.azurecr.io/vscode-linux-build-agent:x64
endpoint: VSCodeHub
- - container: vscode-ia32
- image: vscodehub.azurecr.io/vscode-linux-build-agent:ia32
- endpoint: VSCodeHub
- container: snapcraft
image: snapcore/snapcraft
@@ -49,16 +46,6 @@ jobs:
steps:
- template: linux/snap-build-linux.yml
-- job: Linux32
- condition: eq(variables['VSCODE_BUILD_LINUX_32BIT'], 'true')
- pool:
- vmImage: 'Ubuntu-16.04'
- variables:
- VSCODE_ARCH: ia32
- container: vscode-ia32
- steps:
- - template: linux/product-build-linux.yml
-
- job: LinuxArmhf
condition: eq(variables['VSCODE_BUILD_LINUX_ARMHF'], 'true')
pool:
@@ -84,7 +71,6 @@ jobs:
- Windows32
- Linux
- LinuxSnap
- - Linux32
- LinuxArmhf
- macOS
steps:
diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js
index 9b0abd18d9a..a718cfb0082 100644
--- a/build/gulpfile.vscode.linux.js
+++ b/build/gulpfile.vscode.linux.js
@@ -23,7 +23,7 @@ const commit = util.getVersion(root);
const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
function getDebPackageArch(arch) {
- return { x64: 'amd64', ia32: 'i386', arm: 'armhf', arm64: "arm64" }[arch];
+ return { x64: 'amd64', arm: 'armhf', arm64: "arm64" }[arch];
}
function prepareDebPackage(arch) {
@@ -114,7 +114,7 @@ function getRpmBuildPath(rpmArch) {
}
function getRpmPackageArch(arch) {
- return { x64: 'x86_64', ia32: 'i386', arm: 'armhf', arm64: "arm64" }[arch];
+ return { x64: 'x86_64', arm: 'armhf', arm64: "arm64" }[arch];
}
function prepareRpmPackage(arch) {
@@ -238,7 +238,6 @@ function buildSnapPackage(arch) {
}
const BUILD_TARGETS = [
- { arch: 'ia32' },
{ arch: 'x64' },
{ arch: 'arm' },
{ arch: 'arm64' },
diff --git a/build/lib/electron.js b/build/lib/electron.js
index 6387133675b..63e867a98fe 100644
--- a/build/lib/electron.js
+++ b/build/lib/electron.js
@@ -24,7 +24,7 @@ module.exports.getElectronVersion = getElectronVersion;
if (require.main === module) {
const version = getElectronVersion();
const versionFile = path.join(root, '.build', 'electron', 'version');
- const isUpToDate = fs.existsSync(versionFile) && fs.readFileSync(versionFile, 'utf8') === `v${version}`;
+ const isUpToDate = fs.existsSync(versionFile) && fs.readFileSync(versionFile, 'utf8') === `${version}`;
process.exit(isUpToDate ? 0 : 1);
}
diff --git a/build/lib/i18n.resources.json b/build/lib/i18n.resources.json
index 22d3d165c3c..32b0e6fb4c7 100644
--- a/build/lib/i18n.resources.json
+++ b/build/lib/i18n.resources.json
@@ -38,10 +38,6 @@
"name": "vs/workbench/contrib/codeEditor",
"project": "vscode-workbench"
},
- {
- "name": "vs/workbench/contrib/codeinset",
- "project": "vscode-workbench"
- },
{
"name": "vs/workbench/contrib/callHierarchy",
"project": "vscode-workbench"
diff --git a/build/lib/i18n.ts b/build/lib/i18n.ts
index ee75ac1ec01..9f53df17bad 100644
--- a/build/lib/i18n.ts
+++ b/build/lib/i18n.ts
@@ -25,7 +25,7 @@ function log(message: any, ...rest: any[]): void {
export interface Language {
id: string; // language id, e.g. zh-tw, de
- translationId?: string; // language id used in translation tools, e.g zh-hant, de (optional, if not set, the id is used)
+ translationId?: string; // language id used in translation tools, e.g. zh-hant, de (optional, if not set, the id is used)
folderName?: string; // language specific folder name, e.g. cht, deu (optional, if not set, the id is used)
}
diff --git a/build/package.json b/build/package.json
index 49495b1c1e5..373323408b8 100644
--- a/build/package.json
+++ b/build/package.json
@@ -39,7 +39,7 @@
"minimist": "^1.2.0",
"request": "^2.85.0",
"tslint": "^5.9.1",
- "typescript": "3.4.5",
+ "typescript": "3.5.1",
"vsce": "1.48.0",
"xml2js": "^0.4.17"
},
diff --git a/build/yarn.lock b/build/yarn.lock
index 3d6f612789b..da572cd1465 100644
--- a/build/yarn.lock
+++ b/build/yarn.lock
@@ -1894,10 +1894,10 @@ typed-rest-client@^0.9.0:
tunnel "0.0.4"
underscore "1.8.3"
-typescript@3.4.5:
- version "3.4.5"
- resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.4.5.tgz#2d2618d10bb566572b8d7aad5180d84257d70a99"
- integrity sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw==
+typescript@3.5.1:
+ version "3.5.1"
+ resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.5.1.tgz#ba72a6a600b2158139c5dd8850f700e231464202"
+ integrity sha512-64HkdiRv1yYZsSe4xC1WVgamNigVYjlssIoaH2HcZF0+ijsk5YK2g0G34w9wJkze8+5ow4STd22AynfO6ZYYLw==
uc.micro@^1.0.1, uc.micro@^1.0.5:
version "1.0.5"
diff --git a/cgmanifest.json b/cgmanifest.json
index 406060f8a7a..6cebbffd6b9 100644
--- a/cgmanifest.json
+++ b/cgmanifest.json
@@ -6,7 +6,7 @@
"git": {
"name": "chromium",
"repositoryUrl": "https://chromium.googlesource.com/chromium/src",
- "commitHash": "164c37e3f235134c88e80fac2a182cfba3f07f00"
+ "commitHash": "c6a08e5368de4352903e702cde750b33239a50ab"
}
},
"licenseDetail": [
@@ -40,20 +40,7 @@
"SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
],
"isOnlyProductionDependency": true,
- "version": "66.0.3359.181"
- },
- {
- "component": {
- "type": "git",
- "git": {
- "name": "libchromiumcontent",
- "repositoryUrl": "https://github.com/electron/libchromiumcontent",
- "commitHash": "7ea271f92018b1eeb8e70ec6de8c29f9758a0c05"
- }
- },
- "isOnlyProductionDependency": true,
- "license": "MIT",
- "version": "66.0.3359.181"
+ "version": "69.0.3497.128"
},
{
"component": {
@@ -61,11 +48,11 @@
"git": {
"name": "nodejs",
"repositoryUrl": "https://github.com/nodejs/node",
- "commitHash": "5cbb905c1af7cea2d709932d59827d7c6d03ef4a"
+ "commitHash": "8c70b2084ce5f76ea1e3b3c4ccdeee4483fe338b"
}
},
"isOnlyProductionDependency": true,
- "version": "10.2.0"
+ "version": "10.11.0"
},
{
"component": {
@@ -73,12 +60,12 @@
"git": {
"name": "electron",
"repositoryUrl": "https://github.com/electron/electron",
- "commitHash": "e84a6860e35e14b4031b88bb9b49841cdb89a305"
+ "commitHash": "c1b5a1cfc8a14a337540193daecfa5d0f50dd7bb"
}
},
"isOnlyProductionDependency": true,
"license": "MIT",
- "version": "3.1.8"
+ "version": "4.2.3"
},
{
"component": {
diff --git a/extensions/configuration-editing/package.json b/extensions/configuration-editing/package.json
index e9f9e255f33..448d7481646 100644
--- a/extensions/configuration-editing/package.json
+++ b/extensions/configuration-editing/package.json
@@ -108,6 +108,6 @@
]
},
"devDependencies": {
- "@types/node": "^10.12.21"
+ "@types/node": "^10.14.8"
}
}
diff --git a/extensions/configuration-editing/yarn.lock b/extensions/configuration-editing/yarn.lock
index 49c47166066..ce653f097a9 100644
--- a/extensions/configuration-editing/yarn.lock
+++ b/extensions/configuration-editing/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
jsonc-parser@2.0.2:
version "2.0.2"
diff --git a/extensions/cpp/cgmanifest.json b/extensions/cpp/cgmanifest.json
index dcbf1f65e2f..f67719029ef 100644
--- a/extensions/cpp/cgmanifest.json
+++ b/extensions/cpp/cgmanifest.json
@@ -6,11 +6,11 @@
"git": {
"name": "jeff-hykin/cpp-textmate-grammar",
"repositoryUrl": "https://github.com/jeff-hykin/cpp-textmate-grammar",
- "commitHash": "e33a317ccd0babba4b07ffc042ab9796e6412ddc"
+ "commitHash": "85ef67461698ec3c0b64411a53705daa0b68fc13"
}
},
"license": "MIT",
- "version": "1.8.15",
+ "version": "1.11.3",
"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."
},
{
diff --git a/extensions/cpp/syntaxes/c.tmLanguage.json b/extensions/cpp/syntaxes/c.tmLanguage.json
index 925c7bb92ac..ae463d31f62 100644
--- a/extensions/cpp/syntaxes/c.tmLanguage.json
+++ b/extensions/cpp/syntaxes/c.tmLanguage.json
@@ -4,7 +4,7 @@
"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/jeff-hykin/cpp-textmate-grammar/commit/e33a317ccd0babba4b07ffc042ab9796e6412ddc",
+ "version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/f88ac364a66b447bc16b966a66af52ae8b31795c",
"name": "C",
"scopeName": "source.c",
"patterns": [
@@ -17,6 +17,9 @@
{
"include": "#preprocessor-rule-conditional"
},
+ {
+ "include": "#predefined_macros"
+ },
{
"include": "#comments"
},
@@ -559,10 +562,6 @@
},
"name": "comment.block.c"
},
- {
- "match": "\\*/.*\\n",
- "name": "invalid.illegal.stray-comment-end.c"
- },
{
"captures": {
"1": {
@@ -2124,12 +2123,12 @@
"name": "keyword.control.switch.c"
}
},
- "end": "(?:(?<=\\})|(?=[;>\\[\\]=]))",
+ "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"patterns": [
{
"name": "meta.head.switch.c",
"begin": "\\G ?",
- "end": "((?:\\{|(?=;)))",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.switch.c"
@@ -2140,14 +2139,14 @@
"include": "#switch_conditional_parentheses"
},
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
{
"name": "meta.body.switch.c",
- "begin": "(?<=\\{)",
- "end": "(\\})",
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.switch.c"
@@ -2161,7 +2160,7 @@
"include": "#case_statement"
},
{
- "include": "$base"
+ "include": "#root_context"
},
{
"include": "#block_innards"
@@ -2170,11 +2169,11 @@
},
{
"name": "meta.tail.switch.c",
- "begin": "(?<=})[\\s\\n]*",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
}
@@ -2236,7 +2235,7 @@
]
},
{
- "include": "#function_call_context_c"
+ "include": "#function_call_context"
}
]
},
@@ -2292,7 +2291,7 @@
}
},
"method_access": {
- "contentName": "meta.function-call.member",
+ "contentName": "meta.function-call.member.c",
"begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",
"beginCaptures": {
"1": {
@@ -2347,6 +2346,1026 @@
}
]
},
+ "predefined_macros": {
+ "patterns": [
+ {
+ "match": "\\b__cplusplus\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__cplusplus.c"
+ },
+ {
+ "match": "\\b__DATE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__DATE__.c"
+ },
+ {
+ "match": "\\b__FILE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FILE__.c"
+ },
+ {
+ "match": "\\b__LINE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__LINE__.c"
+ },
+ {
+ "match": "\\b__STDC__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__STDC__.c"
+ },
+ {
+ "match": "\\b__STDC_HOSTED__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__STDC_HOSTED__.c"
+ },
+ {
+ "match": "\\b__STDC_NO_COMPLEX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__STDC_NO_COMPLEX__.c"
+ },
+ {
+ "match": "\\b__STDC_VERSION__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__STDC_VERSION__.c"
+ },
+ {
+ "match": "\\b__STDCPP_THREADS__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__STDCPP_THREADS__.c"
+ },
+ {
+ "match": "\\b__TIME__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__TIME__.c"
+ },
+ {
+ "match": "\\bNDEBUG\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.NDEBUG.c"
+ },
+ {
+ "match": "\\b__OBJC__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__OBJC__.c"
+ },
+ {
+ "match": "\\b__ASSEMBLER__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__ASSEMBLER__.c"
+ },
+ {
+ "match": "\\b__ATOM__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__ATOM__.c"
+ },
+ {
+ "match": "\\b__AVX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__AVX__.c"
+ },
+ {
+ "match": "\\b__AVX2__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__AVX2__.c"
+ },
+ {
+ "match": "\\b_CHAR_UNSIGNED\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._CHAR_UNSIGNED.c"
+ },
+ {
+ "match": "\\b__CLR_VER\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__CLR_VER.c"
+ },
+ {
+ "match": "\\b_CONTROL_FLOW_GUARD\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._CONTROL_FLOW_GUARD.c"
+ },
+ {
+ "match": "\\b__COUNTER__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__COUNTER__.c"
+ },
+ {
+ "match": "\\b__cplusplus_cli\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__cplusplus_cli.c"
+ },
+ {
+ "match": "\\b__cplusplus_winrt\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__cplusplus_winrt.c"
+ },
+ {
+ "match": "\\b_CPPRTTI\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._CPPRTTI.c"
+ },
+ {
+ "match": "\\b_CPPUNWIND\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._CPPUNWIND.c"
+ },
+ {
+ "match": "\\b_DEBUG\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._DEBUG.c"
+ },
+ {
+ "match": "\\b_DLL\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._DLL.c"
+ },
+ {
+ "match": "\\b__FUNCDNAME__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FUNCDNAME__.c"
+ },
+ {
+ "match": "\\b__FUNCSIG__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FUNCSIG__.c"
+ },
+ {
+ "match": "\\b__FUNCTION__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FUNCTION__.c"
+ },
+ {
+ "match": "\\b_INTEGRAL_MAX_BITS\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._INTEGRAL_MAX_BITS.c"
+ },
+ {
+ "match": "\\b__INTELLISENSE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INTELLISENSE__.c"
+ },
+ {
+ "match": "\\b_ISO_VOLATILE\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._ISO_VOLATILE.c"
+ },
+ {
+ "match": "\\b_KERNEL_MODE\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._KERNEL_MODE.c"
+ },
+ {
+ "match": "\\b_M_AMD64\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_AMD64.c"
+ },
+ {
+ "match": "\\b_M_ARM\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_ARM.c"
+ },
+ {
+ "match": "\\b_M_ARM_ARMV7VE\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_ARM_ARMV7VE.c"
+ },
+ {
+ "match": "\\b_M_ARM_FP\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_ARM_FP.c"
+ },
+ {
+ "match": "\\b_M_ARM64\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_ARM64.c"
+ },
+ {
+ "match": "\\b_M_CEE\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_CEE.c"
+ },
+ {
+ "match": "\\b_M_CEE_PURE\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_CEE_PURE.c"
+ },
+ {
+ "match": "\\b_M_CEE_SAFE\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_CEE_SAFE.c"
+ },
+ {
+ "match": "\\b_M_FP_EXCEPT\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_FP_EXCEPT.c"
+ },
+ {
+ "match": "\\b_M_FP_FAST\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_FP_FAST.c"
+ },
+ {
+ "match": "\\b_M_FP_PRECISE\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_FP_PRECISE.c"
+ },
+ {
+ "match": "\\b_M_FP_STRICT\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_FP_STRICT.c"
+ },
+ {
+ "match": "\\b_M_IX86\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_IX86.c"
+ },
+ {
+ "match": "\\b_M_IX86_FP\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_IX86_FP.c"
+ },
+ {
+ "match": "\\b_M_X64\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._M_X64.c"
+ },
+ {
+ "match": "\\b_MANAGED\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._MANAGED.c"
+ },
+ {
+ "match": "\\b_MSC_BUILD\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._MSC_BUILD.c"
+ },
+ {
+ "match": "\\b_MSC_EXTENSIONS\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._MSC_EXTENSIONS.c"
+ },
+ {
+ "match": "\\b_MSC_FULL_VER\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._MSC_FULL_VER.c"
+ },
+ {
+ "match": "\\b_MSC_VER\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._MSC_VER.c"
+ },
+ {
+ "match": "\\b_MSVC_LANG\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._MSVC_LANG.c"
+ },
+ {
+ "match": "\\b__MSVC_RUNTIME_CHECKS\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__MSVC_RUNTIME_CHECKS.c"
+ },
+ {
+ "match": "\\b_MT\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._MT.c"
+ },
+ {
+ "match": "\\b_NATIVE_WCHAR_T_DEFINED\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._NATIVE_WCHAR_T_DEFINED.c"
+ },
+ {
+ "match": "\\b_OPENMP\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._OPENMP.c"
+ },
+ {
+ "match": "\\b_PREFAST\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._PREFAST.c"
+ },
+ {
+ "match": "\\b__TIMESTAMP__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__TIMESTAMP__.c"
+ },
+ {
+ "match": "\\b_VC_NO_DEFAULTLIB\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._VC_NO_DEFAULTLIB.c"
+ },
+ {
+ "match": "\\b_WCHAR_T_DEFINED\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._WCHAR_T_DEFINED.c"
+ },
+ {
+ "match": "\\b_WIN32\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._WIN32.c"
+ },
+ {
+ "match": "\\b_WIN64\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._WIN64.c"
+ },
+ {
+ "match": "\\b_WINRT_DLL\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._WINRT_DLL.c"
+ },
+ {
+ "match": "\\b_ATL_VER\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._ATL_VER.c"
+ },
+ {
+ "match": "\\b_MFC_VER\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._MFC_VER.c"
+ },
+ {
+ "match": "\\b__GFORTRAN__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GFORTRAN__.c"
+ },
+ {
+ "match": "\\b__GNUC__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GNUC__.c"
+ },
+ {
+ "match": "\\b__GNUC_MINOR__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GNUC_MINOR__.c"
+ },
+ {
+ "match": "\\b__GNUC_PATCHLEVEL__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GNUC_PATCHLEVEL__.c"
+ },
+ {
+ "match": "\\b__GNUG__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GNUG__.c"
+ },
+ {
+ "match": "\\b__STRICT_ANSI__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__STRICT_ANSI__.c"
+ },
+ {
+ "match": "\\b__BASE_FILE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__BASE_FILE__.c"
+ },
+ {
+ "match": "\\b__INCLUDE_LEVEL__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INCLUDE_LEVEL__.c"
+ },
+ {
+ "match": "\\b__ELF__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__ELF__.c"
+ },
+ {
+ "match": "\\b__VERSION__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__VERSION__.c"
+ },
+ {
+ "match": "\\b__OPTIMIZE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__OPTIMIZE__.c"
+ },
+ {
+ "match": "\\b__OPTIMIZE_SIZE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__OPTIMIZE_SIZE__.c"
+ },
+ {
+ "match": "\\b__NO_INLINE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__NO_INLINE__.c"
+ },
+ {
+ "match": "\\b__GNUC_STDC_INLINE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GNUC_STDC_INLINE__.c"
+ },
+ {
+ "match": "\\b__CHAR_UNSIGNED__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__CHAR_UNSIGNED__.c"
+ },
+ {
+ "match": "\\b__WCHAR_UNSIGNED__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__WCHAR_UNSIGNED__.c"
+ },
+ {
+ "match": "\\b__REGISTER_PREFIX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__REGISTER_PREFIX__.c"
+ },
+ {
+ "match": "\\b__REGISTER_PREFIX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__REGISTER_PREFIX__.c"
+ },
+ {
+ "match": "\\b__SIZE_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZE_TYPE__.c"
+ },
+ {
+ "match": "\\b__PTRDIFF_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__PTRDIFF_TYPE__.c"
+ },
+ {
+ "match": "\\b__WCHAR_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__WCHAR_TYPE__.c"
+ },
+ {
+ "match": "\\b__WINT_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__WINT_TYPE__.c"
+ },
+ {
+ "match": "\\b__INTMAX_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INTMAX_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINTMAX_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINTMAX_TYPE__.c"
+ },
+ {
+ "match": "\\b__SIG_ATOMIC_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIG_ATOMIC_TYPE__.c"
+ },
+ {
+ "match": "\\b__INT8_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT8_TYPE__.c"
+ },
+ {
+ "match": "\\b__INT16_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT16_TYPE__.c"
+ },
+ {
+ "match": "\\b__INT32_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT32_TYPE__.c"
+ },
+ {
+ "match": "\\b__INT64_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT64_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINT8_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT8_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINT16_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT16_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINT32_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT32_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINT64_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT64_TYPE__.c"
+ },
+ {
+ "match": "\\b__INT_LEAST8_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST8_TYPE__.c"
+ },
+ {
+ "match": "\\b__INT_LEAST16_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST16_TYPE__.c"
+ },
+ {
+ "match": "\\b__INT_LEAST32_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST32_TYPE__.c"
+ },
+ {
+ "match": "\\b__INT_LEAST64_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST64_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINT_LEAST8_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST8_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINT_LEAST16_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST16_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINT_LEAST32_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST32_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINT_LEAST64_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST64_TYPE__.c"
+ },
+ {
+ "match": "\\b__INT_FAST8_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST8_TYPE__.c"
+ },
+ {
+ "match": "\\b__INT_FAST16_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST16_TYPE__.c"
+ },
+ {
+ "match": "\\b__INT_FAST32_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST32_TYPE__.c"
+ },
+ {
+ "match": "\\b__INT_FAST64_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST64_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINT_FAST8_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST8_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINT_FAST16_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST16_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINT_FAST32_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST32_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINT_FAST64_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST64_TYPE__.c"
+ },
+ {
+ "match": "\\b__INTPTR_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INTPTR_TYPE__.c"
+ },
+ {
+ "match": "\\b__UINTPTR_TYPE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINTPTR_TYPE__.c"
+ },
+ {
+ "match": "\\b__CHAR_BIT__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__CHAR_BIT__.c"
+ },
+ {
+ "match": "\\b__SCHAR_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SCHAR_MAX__.c"
+ },
+ {
+ "match": "\\b__WCHAR_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__WCHAR_MAX__.c"
+ },
+ {
+ "match": "\\b__SHRT_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SHRT_MAX__.c"
+ },
+ {
+ "match": "\\b__INT_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_MAX__.c"
+ },
+ {
+ "match": "\\b__LONG_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__LONG_MAX__.c"
+ },
+ {
+ "match": "\\b__LONG_LONG_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__LONG_LONG_MAX__.c"
+ },
+ {
+ "match": "\\b__WINT_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__WINT_MAX__.c"
+ },
+ {
+ "match": "\\b__SIZE_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZE_MAX__.c"
+ },
+ {
+ "match": "\\b__PTRDIFF_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__PTRDIFF_MAX__.c"
+ },
+ {
+ "match": "\\b__INTMAX_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INTMAX_MAX__.c"
+ },
+ {
+ "match": "\\b__UINTMAX_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINTMAX_MAX__.c"
+ },
+ {
+ "match": "\\b__SIG_ATOMIC_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIG_ATOMIC_MAX__.c"
+ },
+ {
+ "match": "\\b__INT8_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT8_MAX__.c"
+ },
+ {
+ "match": "\\b__INT16_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT16_MAX__.c"
+ },
+ {
+ "match": "\\b__INT32_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT32_MAX__.c"
+ },
+ {
+ "match": "\\b__INT64_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT64_MAX__.c"
+ },
+ {
+ "match": "\\b__UINT8_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT8_MAX__.c"
+ },
+ {
+ "match": "\\b__UINT16_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT16_MAX__.c"
+ },
+ {
+ "match": "\\b__UINT32_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT32_MAX__.c"
+ },
+ {
+ "match": "\\b__UINT64_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT64_MAX__.c"
+ },
+ {
+ "match": "\\b__INT_LEAST8_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST8_MAX__.c"
+ },
+ {
+ "match": "\\b__INT_LEAST16_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST16_MAX__.c"
+ },
+ {
+ "match": "\\b__INT_LEAST32_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST32_MAX__.c"
+ },
+ {
+ "match": "\\b__INT_LEAST64_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST64_MAX__.c"
+ },
+ {
+ "match": "\\b__UINT_LEAST8_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST8_MAX__.c"
+ },
+ {
+ "match": "\\b__UINT_LEAST16_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST16_MAX__.c"
+ },
+ {
+ "match": "\\b__UINT_LEAST32_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST32_MAX__.c"
+ },
+ {
+ "match": "\\b__UINT_LEAST64_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_LEAST64_MAX__.c"
+ },
+ {
+ "match": "\\b__INT_FAST8_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST8_MAX__.c"
+ },
+ {
+ "match": "\\b__INT_FAST16_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST16_MAX__.c"
+ },
+ {
+ "match": "\\b__INT_FAST32_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST32_MAX__.c"
+ },
+ {
+ "match": "\\b__INT_FAST64_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST64_MAX__.c"
+ },
+ {
+ "match": "\\b__UINT_FAST8_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST8_MAX__.c"
+ },
+ {
+ "match": "\\b__UINT_FAST16_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST16_MAX__.c"
+ },
+ {
+ "match": "\\b__UINT_FAST32_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST32_MAX__.c"
+ },
+ {
+ "match": "\\b__UINT_FAST64_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINT_FAST64_MAX__.c"
+ },
+ {
+ "match": "\\b__INTPTR_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INTPTR_MAX__.c"
+ },
+ {
+ "match": "\\b__UINTPTR_MAX__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__UINTPTR_MAX__.c"
+ },
+ {
+ "match": "\\b__WCHAR_MIN__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__WCHAR_MIN__.c"
+ },
+ {
+ "match": "\\b__WINT_MIN__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__WINT_MIN__.c"
+ },
+ {
+ "match": "\\b__SIG_ATOMIC_MIN__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIG_ATOMIC_MIN__.c"
+ },
+ {
+ "match": "\\b__SCHAR_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SCHAR_WIDTH__.c"
+ },
+ {
+ "match": "\\b__SHRT_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SHRT_WIDTH__.c"
+ },
+ {
+ "match": "\\b__INT_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_WIDTH__.c"
+ },
+ {
+ "match": "\\b__LONG_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__LONG_WIDTH__.c"
+ },
+ {
+ "match": "\\b__LONG_LONG_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__LONG_LONG_WIDTH__.c"
+ },
+ {
+ "match": "\\b__PTRDIFF_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__PTRDIFF_WIDTH__.c"
+ },
+ {
+ "match": "\\b__SIG_ATOMIC_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIG_ATOMIC_WIDTH__.c"
+ },
+ {
+ "match": "\\b__SIZE_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZE_WIDTH__.c"
+ },
+ {
+ "match": "\\b__WCHAR_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__WCHAR_WIDTH__.c"
+ },
+ {
+ "match": "\\b__WINT_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__WINT_WIDTH__.c"
+ },
+ {
+ "match": "\\b__INT_LEAST8_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST8_WIDTH__.c"
+ },
+ {
+ "match": "\\b__INT_LEAST16_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST16_WIDTH__.c"
+ },
+ {
+ "match": "\\b__INT_LEAST32_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST32_WIDTH__.c"
+ },
+ {
+ "match": "\\b__INT_LEAST64_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_LEAST64_WIDTH__.c"
+ },
+ {
+ "match": "\\b__INT_FAST8_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST8_WIDTH__.c"
+ },
+ {
+ "match": "\\b__INT_FAST16_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST16_WIDTH__.c"
+ },
+ {
+ "match": "\\b__INT_FAST32_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST32_WIDTH__.c"
+ },
+ {
+ "match": "\\b__INT_FAST64_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INT_FAST64_WIDTH__.c"
+ },
+ {
+ "match": "\\b__INTPTR_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INTPTR_WIDTH__.c"
+ },
+ {
+ "match": "\\b__INTMAX_WIDTH__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__INTMAX_WIDTH__.c"
+ },
+ {
+ "match": "\\b__SIZEOF_INT__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_INT__.c"
+ },
+ {
+ "match": "\\b__SIZEOF_LONG__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_LONG__.c"
+ },
+ {
+ "match": "\\b__SIZEOF_LONG_LONG__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_LONG_LONG__.c"
+ },
+ {
+ "match": "\\b__SIZEOF_SHORT__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_SHORT__.c"
+ },
+ {
+ "match": "\\b__SIZEOF_POINTER__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_POINTER__.c"
+ },
+ {
+ "match": "\\b__SIZEOF_FLOAT__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_FLOAT__.c"
+ },
+ {
+ "match": "\\b__SIZEOF_DOUBLE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_DOUBLE__.c"
+ },
+ {
+ "match": "\\b__SIZEOF_LONG_DOUBLE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_LONG_DOUBLE__.c"
+ },
+ {
+ "match": "\\b__SIZEOF_SIZE_T__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_SIZE_T__.c"
+ },
+ {
+ "match": "\\b__SIZEOF_WCHAR_T__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_WCHAR_T__.c"
+ },
+ {
+ "match": "\\b__SIZEOF_WINT_T__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_WINT_T__.c"
+ },
+ {
+ "match": "\\b__SIZEOF_PTRDIFF_T__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SIZEOF_PTRDIFF_T__.c"
+ },
+ {
+ "match": "\\b__BYTE_ORDER__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__BYTE_ORDER__.c"
+ },
+ {
+ "match": "\\b__ORDER_LITTLE_ENDIAN__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__ORDER_LITTLE_ENDIAN__.c"
+ },
+ {
+ "match": "\\b__ORDER_BIG_ENDIAN__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__ORDER_BIG_ENDIAN__.c"
+ },
+ {
+ "match": "\\b__ORDER_PDP_ENDIAN__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__ORDER_PDP_ENDIAN__.c"
+ },
+ {
+ "match": "\\b__FLOAT_WORD_ORDER__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FLOAT_WORD_ORDER__.c"
+ },
+ {
+ "match": "\\b__DEPRECATED\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__DEPRECATED.c"
+ },
+ {
+ "match": "\\b__EXCEPTIONS\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__EXCEPTIONS.c"
+ },
+ {
+ "match": "\\b__GXX_RTTI\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GXX_RTTI.c"
+ },
+ {
+ "match": "\\b__USING_SJLJ_EXCEPTIONS__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__USING_SJLJ_EXCEPTIONS__.c"
+ },
+ {
+ "match": "\\b__GXX_EXPERIMENTAL_CXX0X__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GXX_EXPERIMENTAL_CXX0X__.c"
+ },
+ {
+ "match": "\\b__GXX_WEAK__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GXX_WEAK__.c"
+ },
+ {
+ "match": "\\b__NEXT_RUNTIME__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__NEXT_RUNTIME__.c"
+ },
+ {
+ "match": "\\b__LP64__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__LP64__.c"
+ },
+ {
+ "match": "\\b_LP64\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._LP64.c"
+ },
+ {
+ "match": "\\b__SSP__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SSP__.c"
+ },
+ {
+ "match": "\\b__SSP_ALL__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SSP_ALL__.c"
+ },
+ {
+ "match": "\\b__SSP_STRONG__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SSP_STRONG__.c"
+ },
+ {
+ "match": "\\b__SSP_EXPLICIT__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SSP_EXPLICIT__.c"
+ },
+ {
+ "match": "\\b__SANITIZE_ADDRESS__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SANITIZE_ADDRESS__.c"
+ },
+ {
+ "match": "\\b__SANITIZE_THREAD__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__SANITIZE_THREAD__.c"
+ },
+ {
+ "match": "\\b__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1.c"
+ },
+ {
+ "match": "\\b__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2.c"
+ },
+ {
+ "match": "\\b__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4.c"
+ },
+ {
+ "match": "\\b__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8.c"
+ },
+ {
+ "match": "\\b__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16.c"
+ },
+ {
+ "match": "\\b__HAVE_SPECULATION_SAFE_VALUE\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__HAVE_SPECULATION_SAFE_VALUE.c"
+ },
+ {
+ "match": "\\b__GCC_HAVE_DWARF2_CFI_ASM\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GCC_HAVE_DWARF2_CFI_ASM.c"
+ },
+ {
+ "match": "\\b__FP_FAST_FMA\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMA.c"
+ },
+ {
+ "match": "\\b__FP_FAST_FMAF\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF.c"
+ },
+ {
+ "match": "\\b__FP_FAST_FMAL\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAL.c"
+ },
+ {
+ "match": "\\b__FP_FAST_FMAF16\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF16.c"
+ },
+ {
+ "match": "\\b__FP_FAST_FMAF32\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF32.c"
+ },
+ {
+ "match": "\\b__FP_FAST_FMAF64\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF64.c"
+ },
+ {
+ "match": "\\b__FP_FAST_FMAF128\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF128.c"
+ },
+ {
+ "match": "\\b__FP_FAST_FMAF32X\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF32X.c"
+ },
+ {
+ "match": "\\b__FP_FAST_FMAF64X\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF64X.c"
+ },
+ {
+ "match": "\\b__FP_FAST_FMAF128X\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FP_FAST_FMAF128X.c"
+ },
+ {
+ "match": "\\b__GCC_IEC_559\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GCC_IEC_559.c"
+ },
+ {
+ "match": "\\b__GCC_IEC_559_COMPLEX\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__GCC_IEC_559_COMPLEX.c"
+ },
+ {
+ "match": "\\b__NO_MATH_ERRNO__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__NO_MATH_ERRNO__.c"
+ },
+ {
+ "match": "\\b__has_builtin\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__has_builtin.c"
+ },
+ {
+ "match": "\\b__has_feature\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__has_feature.c"
+ },
+ {
+ "match": "\\b__has_extension\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__has_extension.c"
+ },
+ {
+ "match": "\\b__has_cpp_attribute\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__has_cpp_attribute.c"
+ },
+ {
+ "match": "\\b__has_c_attribute\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__has_c_attribute.c"
+ },
+ {
+ "match": "\\b__has_attribute\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__has_attribute.c"
+ },
+ {
+ "match": "\\b__has_declspec_attribute\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__has_declspec_attribute.c"
+ },
+ {
+ "match": "\\b__is_identifier\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__is_identifier.c"
+ },
+ {
+ "match": "\\b__has_include\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__has_include.c"
+ },
+ {
+ "match": "\\b__has_include_next\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__has_include_next.c"
+ },
+ {
+ "match": "\\b__has_warning\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__has_warning.c"
+ },
+ {
+ "match": "\\b__BASE_FILE__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__BASE_FILE__.c"
+ },
+ {
+ "match": "\\b__FILE_NAME__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__FILE_NAME__.c"
+ },
+ {
+ "match": "\\b__clang__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__clang__.c"
+ },
+ {
+ "match": "\\b__clang_major__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__clang_major__.c"
+ },
+ {
+ "match": "\\b__clang_minor__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__clang_minor__.c"
+ },
+ {
+ "match": "\\b__clang_patchlevel__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__clang_patchlevel__.c"
+ },
+ {
+ "match": "\\b__clang_version__\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__clang_version__.c"
+ },
+ {
+ "match": "\\b__fp16\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined.__fp16.c"
+ },
+ {
+ "match": "\\b_Float16\\b",
+ "name": "entity.name.other.preprocessor.macro.predefined._Float16.c"
+ },
+ {
+ "match": "(\\b__([A-Z_])__\\b)",
+ "captures": {
+ "1": {
+ "name": "entity.name.other.preprocessor.macro.predefined.probably.$2.c"
+ }
+ }
+ }
+ ]
+ },
"numbers": {
"begin": "(?\\[\\]=]))",
+ "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"patterns": [
{
"name": "meta.head.switch.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|(?=;)))",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.switch.cpp"
@@ -803,14 +1108,14 @@
"include": "#switch_conditional_parentheses"
},
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
{
"name": "meta.body.switch.cpp",
- "begin": "(?<=\\{)",
- "end": "(\\})",
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.switch.cpp"
@@ -824,7 +1129,7 @@
"include": "#case_statement"
},
{
- "include": "$base"
+ "include": "#root_context"
},
{
"include": "#block_innards"
@@ -833,11 +1138,11 @@
},
{
"name": "meta.tail.switch.cpp",
- "begin": "(?<=})[\\s\\n]*",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
}
@@ -874,13 +1179,13 @@
]
},
{
- "match": "(using)\\s+((?:,\\w])*>\\s*",
+ "match": "(?]*|[^>]*+<[^>]*+>)++>\\s*",
"captures": {
"0": {
"name": "meta.template.call.cpp",
"patterns": [
{
- "include": "#template_call_context"
+ "include": "#template_call_range"
}
]
}
@@ -1197,7 +1502,7 @@
]
},
"template_argument_defaulted": {
- "match": "(?<=<|,)\\s*((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*\\s+)*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)\\s*([=])",
+ "match": "(?<=<|,)\\s*((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s+)*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*([=])",
"captures": {
"1": {
"name": "storage.type.template.cpp"
@@ -1211,7 +1516,7 @@
}
},
"template_definition_argument": {
- "match": "(?:(?:\\s*((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*\\s+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)\\s*(\\.\\.\\.)\\s*((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*))\\s*(?:(,)|(?=>|$))",
+ "match": "(?:(?:\\s*((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(\\.\\.\\.)\\s*((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*))\\s*(?:(,)|(?=>|$))",
"captures": {
"1": {
"name": "storage.type.template.argument.$1.cpp"
@@ -1237,37 +1542,352 @@
}
},
"scope_resolution": {
- "match": "((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*\\s*(?:(?-mix:(?:(?:,\\w])*>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)\\s*(?:((?:,\\w])*>\\s*))?(::)",
+ "match": "(?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_inner_generated"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_inner_generated": {
+ "match": "((?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)",
"captures": {
"1": {
"patterns": [
{
- "include": "#scope_resolution"
+ "include": "#scope_resolution_inner_generated"
}
]
},
"2": {
- "name": "entity.name.type.namespace.scope-resolution.cpp"
+ "name": "entity.name.scope-resolution.cpp"
},
"3": {
"name": "meta.template.call.cpp",
"patterns": [
{
- "include": "#template_call_context"
+ "include": "#template_call_range"
}
]
},
"4": {
- "name": "punctuation.separator.namespace.access.cpp"
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
}
- },
- "name": "meta.scope-resolution.cpp"
+ }
},
- "qualified_type": {
- "match": "\\s*(?:,\\w])*>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)\\s*(?:((?:,\\w])*>\\s*))?(::)))?\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*(?:(?-mix:(?:(?:,\\w])*>\\s*)))?(?![\\w<:.])",
+ "scope_resolution_template_call": {
+ "match": "(?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*",
"captures": {
"0": {
- "name": "entity.name.type.cpp meta.qualified_type.cpp",
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_call_inner_generated"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_template_call_inner_generated": {
+ "match": "((?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_call_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "entity.name.scope-resolution.template.call.cpp"
+ },
+ "3": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp"
+ }
+ }
+ },
+ "scope_resolution_template_definition": {
+ "match": "(?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_definition_inner_generated"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_template_definition_inner_generated": {
+ "match": "((?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_template_definition_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "entity.name.scope-resolution.template.definition.cpp"
+ },
+ "3": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp"
+ }
+ }
+ },
+ "scope_resolution_function_call": {
+ "match": "(?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_call_inner_generated"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_call_inner_generated": {
+ "match": "((?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_call_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "entity.name.scope-resolution.function.call.cpp"
+ },
+ "3": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp"
+ }
+ }
+ },
+ "scope_resolution_function_definition": {
+ "match": "(?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_inner_generated"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_definition_inner_generated": {
+ "match": "((?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "entity.name.scope-resolution.function.definition.cpp"
+ },
+ "3": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp"
+ }
+ }
+ },
+ "scope_resolution_namespace_alias": {
+ "match": "(?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_alias_inner_generated"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_namespace_alias_inner_generated": {
+ "match": "((?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_alias_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "entity.name.scope-resolution.namespace.alias.cpp"
+ },
+ "3": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp"
+ }
+ }
+ },
+ "scope_resolution_namespace_using": {
+ "match": "(?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_using_inner_generated"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_namespace_using_inner_generated": {
+ "match": "((?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_using_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "entity.name.scope-resolution.namespace.using.cpp"
+ },
+ "3": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp"
+ }
+ }
+ },
+ "scope_resolution_namespace_block": {
+ "match": "(?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_block_inner_generated"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_namespace_block_inner_generated": {
+ "match": "((?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_namespace_block_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "entity.name.scope-resolution.namespace.block.cpp"
+ },
+ "3": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp"
+ }
+ }
+ },
+ "scope_resolution_function_definition_operator_overload": {
+ "match": "(?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*",
+ "captures": {
+ "0": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_operator_overload_inner_generated"
+ }
+ ]
+ }
+ }
+ },
+ "scope_resolution_function_definition_operator_overload_inner_generated": {
+ "match": "((?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution_function_definition_operator_overload_inner_generated"
+ }
+ ]
+ },
+ "2": {
+ "name": "entity.name.scope-resolution.function.definition.operator-overload.cpp"
+ },
+ "3": {
+ "name": "meta.template.call.cpp",
+ "patterns": [
+ {
+ "include": "#template_call_range"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp"
+ }
+ }
+ },
+ "qualified_type": {
+ "match": "\\s*(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)))?\\s*((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?(?![\\w<:.])",
+ "captures": {
+ "0": {
+ "name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?:class|struct|union|enum)",
@@ -1287,6 +1907,16 @@
},
{
"include": "#comma"
+ },
+ {
+ "include": "#scope_resolution_inner_generated"
+ },
+ {
+ "include": "#template_call_range"
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*",
+ "name": "entity.name.type.cpp"
}
]
},
@@ -1300,40 +1930,40 @@
}
]
},
- "2": {
- "name": "meta.scope-resolution.cpp"
- },
"3": {
"patterns": [
{
- "include": "#scope_resolution"
+ "include": "#scope_resolution_inner_generated"
}
]
},
"4": {
- "name": "entity.name.type.namespace.scope-resolution.cpp"
+ "name": "entity.name.scope-resolution.cpp"
},
"5": {
"name": "meta.template.call.cpp",
"patterns": [
{
- "include": "#template_call_context"
+ "include": "#template_call_range"
}
]
},
"6": {
- "name": "punctuation.separator.namespace.access.cpp"
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
+ },
+ "7": {
+ "name": "entity.name.type.cpp"
}
}
},
"type_alias": {
- "match": "(using)\\s*(?!namespace)(\\s*(?:,\\w])*>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)\\s*(?:((?:,\\w])*>\\s*))?(::)))?\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*(?:(?-mix:(?:(?:,\\w])*>\\s*)))?(?![\\w<:.]))\\s*(\\=)\\s*(typename)?\\s*((?:(?-mix:(?:(?:,\\w])*>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)\\s*(?:((?:,\\w])*>\\s*))?(::)))?\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*(?:(?-mix:(?:(?:,\\w])*>\\s*)))?(?![\\w<:.]))|(.+(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)))?\\s*((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?(?![\\w<:.]))\\s*(\\=)\\s*(typename)?\\s*((?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)))?\\s*((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?(?![\\w<:.]))|(.+(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)))?\\s*((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?(?![\\w<:.]))(?:\\s+|(\\s*((?:\\*\\s*)*)((?:&\\s*){0,2})\\s*))((?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)(?|\\?\\?>)|(?=[;>\\[\\]=]))",
"patterns": [
{
- "include": "#parameter_struct"
+ "name": "meta.head.function.definition.cpp",
+ "begin": "\\G ?",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "contentName": "meta.function.definition.parameters.cpp",
+ "begin": "(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.section.parameters.begin.bracket.round.cpp"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.parameters.end.bracket.round.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function_parameter_context"
+ },
+ {
+ "include": "#function_call_context"
+ }
+ ]
+ },
+ {
+ "include": "#comments_context"
+ },
+ {
+ "include": "#root_context"
+ }
+ ]
},
{
- "include": "#function_context_c"
+ "name": "meta.body.function.definition.cpp",
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "(\\}|%>|\\?\\?>)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.end.bracket.curly.function.definition.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function_body_context"
+ }
+ ]
+ },
+ {
+ "name": "meta.tail.function.definition.cpp",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
+ "end": "[\\s\\n]*(?=;)",
+ "patterns": [
+ {
+ "include": "#root_context"
+ }
+ ]
}
]
},
@@ -1583,17 +2382,17 @@
]
},
{
- "include": "#function_call_context_c"
+ "include": "#function_call_context"
}
]
},
"function_call": {
- "begin": "(?:,\\w])*>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)\\s*(?:((?:,\\w])*>\\s*))?(\\()",
+ "begin": "(?!\\s)(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(\\()",
"beginCaptures": {
"1": {
"patterns": [
{
- "include": "#scope_resolution"
+ "include": "#scope_resolution_function_call_inner_generated"
}
]
},
@@ -1604,49 +2403,23 @@
"name": "meta.template.call.cpp",
"patterns": [
{
- "include": "#template_call_context"
+ "include": "#template_call_range"
}
]
},
"4": {
- "name": "punctuation.section.arguments.begin.bracket.round.cpp"
+ "name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp"
}
},
"end": "(\\))",
"endCaptures": {
"1": {
- "name": "punctuation.section.arguments.end.bracket.round.cpp"
+ "name": "punctuation.section.arguments.end.bracket.round.function.call.cpp"
}
},
"patterns": [
{
- "include": "#function_call_context_c"
- }
- ]
- },
- "legacy_function_definition": {
- "name": "meta.function.definition.parameters.cpp",
- "begin": "(?!(?:(?:::|\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\.|\\->|\\+\\+|\\-\\-|\\+|\\-|!|not|~|compl|\\*|&|sizeof|sizeof\\.\\.\\.|new|new\\[\\]|delete|delete\\[\\]|\\.\\*|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|not_eq|&|bitand|\\^|xor|\\||bitor|&&|and|\\|\\||or|\\?:|throw|=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|and_eq|\\^=|xor_eq|\\|=|or_eq|,|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast)|(?:throw|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default))\\s*\\()((?:(?-mix:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*|::)++|(?<=operator)(?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|new|new\\[\\]|delete|delete\\[\\]|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,)))\\s*(\\()",
- "beginCaptures": {
- "1": {
- "name": "entity.name.function.cpp"
- },
- "2": {
- "name": "punctuation.section.parameters.begin.bracket.round.cpp"
- }
- },
- "end": "(\\)|:)",
- "endCaptures": {
- "1": {
- "name": "punctuation.section.parameters.end.bracket.round.cpp"
- }
- },
- "patterns": [
- {
- "include": "#probably_a_parameter"
- },
- {
- "include": "#function_context_c"
+ "include": "#function_call_context"
}
]
},
@@ -1664,13 +2437,6 @@
{
"include": "#typeid_operator"
},
- {
- "include": "#decltype_specifier"
- },
- {
- "match": "(?:,\\w])*>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)\\s*(?:((?:,\\w])*>\\s*))?(::)))?\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*(?:(?-mix:(?:(?:,\\w])*>\\s*)))?(?![\\w<:.]))\\s*(((?:\\*\\s*)*)((?:\\&\\s*?){0,2})\\s*)(\\()(\\*)\\s*((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)?\\s*(?:(\\[)(\\w*)(\\])\\s*)*(\\))\\s*(\\()",
+ "begin": "(\\s*(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)))?\\s*((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?(?![\\w<:.]))\\s*(\\s*((?:\\*\\s*)*)((?:&\\s*){0,2})\\s*)(\\()(\\*)\\s*((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)?\\s*(?:(\\[)(\\w*)(\\])\\s*)*(\\))\\s*(\\()",
"beginCaptures": {
"1": {
- "name": "entity.name.type.cpp meta.qualified_type.cpp",
+ "name": "meta.qualified_type.cpp",
"patterns": [
{
"match": "(?:class|struct|union|enum)",
@@ -1778,6 +2544,16 @@
},
{
"include": "#comma"
+ },
+ {
+ "include": "#scope_resolution_inner_generated"
+ },
+ {
+ "include": "#template_call_range"
+ },
+ {
+ "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*",
+ "name": "entity.name.type.cpp"
}
]
},
@@ -1791,62 +2567,62 @@
}
]
},
- "3": {
- "name": "meta.scope-resolution.cpp"
- },
"4": {
"patterns": [
{
- "include": "#scope_resolution"
+ "include": "#scope_resolution_inner_generated"
}
]
},
"5": {
- "name": "entity.name.type.namespace.scope-resolution.cpp"
+ "name": "entity.name.scope-resolution.cpp"
},
"6": {
"name": "meta.template.call.cpp",
"patterns": [
{
- "include": "#template_call_context"
+ "include": "#template_call_range"
}
]
},
"7": {
- "name": "punctuation.separator.namespace.access.cpp"
+ "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp"
},
- "9": {
- "name": "storage.modifier.pointer.cpp"
+ "8": {
+ "name": "entity.name.type.cpp"
},
"10": {
- "name": "storage.modifier.reference.cpp"
+ "name": "storage.modifier.pointer.cpp"
},
"11": {
- "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
+ "name": "storage.modifier.reference.cpp"
},
"12": {
- "name": "punctuation.definition.function.pointer.dereference.cpp"
+ "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp"
},
"13": {
- "name": "variable.other.definition.pointer.function.cpp"
+ "name": "punctuation.definition.function.pointer.dereference.cpp"
},
"14": {
- "name": "punctuation.definition.begin.bracket.square.cpp"
+ "name": "variable.other.definition.pointer.function.cpp"
},
"15": {
+ "name": "punctuation.definition.begin.bracket.square.cpp"
+ },
+ "16": {
"patterns": [
{
"include": "#evaluation_context"
}
]
},
- "16": {
+ "17": {
"name": "punctuation.definition.end.bracket.square.cpp"
},
- "17": {
+ "18": {
"name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp"
},
- "18": {
+ "19": {
"name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp"
}
},
@@ -1858,18 +2634,12 @@
},
"patterns": [
{
- "include": "#parameter_struct"
- },
- {
- "include": "#probably_a_parameter"
- },
- {
- "include": "#function_context_c"
+ "include": "#function_parameter_context"
}
]
},
"probably_a_parameter": {
- "match": "(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*\\s*(?==))|((?<=\\w |\\*\\/|[&*>\\]\\)]|\\.\\.\\.)\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))))",
+ "match": "(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?==))|((?<=\\w |\\*\\/|[&*>\\]\\)]|\\.\\.\\.)\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))))",
"captures": {
"1": {
"name": "variable.parameter.defaulted.cpp"
@@ -1881,7 +2651,7 @@
},
"operator_overload": {
"name": "meta.function.definition.parameters.operator-overload.cpp",
- "begin": "(operator)((?:\\s*(?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,)|\\s+(?:(?:new|new\\[\\]|delete|delete\\[\\])|(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*\\s*(?:(?-mix:(?:(?:,\\w])*>\\s*)))?::)*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*\\s*(?:&)?)))\\s*(\\()",
+ "begin": "(operator)((?:\\s*(?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,)|\\s+(?:(?:new|new\\[\\]|delete|delete\\[\\])|(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:&)?)))\\s*(\\()",
"beginCaptures": {
"1": {
"name": "keyword.other.operator.overload.cpp"
@@ -1890,7 +2660,7 @@
"name": "entity.name.operator.overloadee.cpp",
"patterns": [
{
- "include": "#scope_resolution"
+ "include": "#scope_resolution_function_definition_operator_overload_inner_generated"
}
]
},
@@ -1906,15 +2676,12 @@
},
"patterns": [
{
- "include": "#probably_a_parameter"
- },
- {
- "include": "#function_context_c"
+ "include": "#function_parameter_context"
}
]
},
"member_access": {
- "match": "(?:((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!auto[^(?-mix:\\w)]|void[^(?-mix:\\w)]|char[^(?-mix:\\w)]|short[^(?-mix:\\w)]|int[^(?-mix:\\w)]|signed[^(?-mix:\\w)]|unsigned[^(?-mix:\\w)]|long[^(?-mix:\\w)]|float[^(?-mix:\\w)]|double[^(?-mix:\\w)]|bool[^(?-mix:\\w)]|wchar_t[^(?-mix:\\w)]|u_char[^(?-mix:\\w)]|u_short[^(?-mix:\\w)]|u_int[^(?-mix:\\w)]|u_long[^(?-mix:\\w)]|ushort[^(?-mix:\\w)]|uint[^(?-mix:\\w)]|u_quad_t[^(?-mix:\\w)]|quad_t[^(?-mix:\\w)]|qaddr_t[^(?-mix:\\w)]|caddr_t[^(?-mix:\\w)]|daddr_t[^(?-mix:\\w)]|div_t[^(?-mix:\\w)]|dev_t[^(?-mix:\\w)]|fixpt_t[^(?-mix:\\w)]|blkcnt_t[^(?-mix:\\w)]|blksize_t[^(?-mix:\\w)]|gid_t[^(?-mix:\\w)]|in_addr_t[^(?-mix:\\w)]|in_port_t[^(?-mix:\\w)]|ino_t[^(?-mix:\\w)]|key_t[^(?-mix:\\w)]|mode_t[^(?-mix:\\w)]|nlink_t[^(?-mix:\\w)]|id_t[^(?-mix:\\w)]|pid_t[^(?-mix:\\w)]|off_t[^(?-mix:\\w)]|segsz_t[^(?-mix:\\w)]|swblk_t[^(?-mix:\\w)]|uid_t[^(?-mix:\\w)]|id_t[^(?-mix:\\w)]|clock_t[^(?-mix:\\w)]|size_t[^(?-mix:\\w)]|ssize_t[^(?-mix:\\w)]|time_t[^(?-mix:\\w)]|useconds_t[^(?-mix:\\w)]|suseconds_t[^(?-mix:\\w)]|int8_t[^(?-mix:\\w)]|int16_t[^(?-mix:\\w)]|int32_t[^(?-mix:\\w)]|int64_t[^(?-mix:\\w)]|uint8_t[^(?-mix:\\w)]|uint16_t[^(?-mix:\\w)]|uint32_t[^(?-mix:\\w)]|uint64_t[^(?-mix:\\w)]|int_least8_t[^(?-mix:\\w)]|int_least16_t[^(?-mix:\\w)]|int_least32_t[^(?-mix:\\w)]|int_least64_t[^(?-mix:\\w)]|uint_least8_t[^(?-mix:\\w)]|uint_least16_t[^(?-mix:\\w)]|uint_least32_t[^(?-mix:\\w)]|uint_least64_t[^(?-mix:\\w)]|int_fast8_t[^(?-mix:\\w)]|int_fast16_t[^(?-mix:\\w)]|int_fast32_t[^(?-mix:\\w)]|int_fast64_t[^(?-mix:\\w)]|uint_fast8_t[^(?-mix:\\w)]|uint_fast16_t[^(?-mix:\\w)]|uint_fast32_t[^(?-mix:\\w)]|uint_fast64_t[^(?-mix:\\w)]|intptr_t[^(?-mix:\\w)]|uintptr_t[^(?-mix:\\w)]|intmax_t[^(?-mix:\\w)]|intmax_t[^(?-mix:\\w)]|uintmax_t[^(?-mix:\\w)]|uintmax_t[^(?-mix:\\w)])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*\\b(?!\\())",
+ "match": "(?:((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!auto[^(?-mix:\\w)]|void[^(?-mix:\\w)]|char[^(?-mix:\\w)]|short[^(?-mix:\\w)]|int[^(?-mix:\\w)]|signed[^(?-mix:\\w)]|unsigned[^(?-mix:\\w)]|long[^(?-mix:\\w)]|float[^(?-mix:\\w)]|double[^(?-mix:\\w)]|bool[^(?-mix:\\w)]|wchar_t[^(?-mix:\\w)]|u_char[^(?-mix:\\w)]|u_short[^(?-mix:\\w)]|u_int[^(?-mix:\\w)]|u_long[^(?-mix:\\w)]|ushort[^(?-mix:\\w)]|uint[^(?-mix:\\w)]|u_quad_t[^(?-mix:\\w)]|quad_t[^(?-mix:\\w)]|qaddr_t[^(?-mix:\\w)]|caddr_t[^(?-mix:\\w)]|daddr_t[^(?-mix:\\w)]|div_t[^(?-mix:\\w)]|dev_t[^(?-mix:\\w)]|fixpt_t[^(?-mix:\\w)]|blkcnt_t[^(?-mix:\\w)]|blksize_t[^(?-mix:\\w)]|gid_t[^(?-mix:\\w)]|in_addr_t[^(?-mix:\\w)]|in_port_t[^(?-mix:\\w)]|ino_t[^(?-mix:\\w)]|key_t[^(?-mix:\\w)]|mode_t[^(?-mix:\\w)]|nlink_t[^(?-mix:\\w)]|id_t[^(?-mix:\\w)]|pid_t[^(?-mix:\\w)]|off_t[^(?-mix:\\w)]|segsz_t[^(?-mix:\\w)]|swblk_t[^(?-mix:\\w)]|uid_t[^(?-mix:\\w)]|id_t[^(?-mix:\\w)]|clock_t[^(?-mix:\\w)]|size_t[^(?-mix:\\w)]|ssize_t[^(?-mix:\\w)]|time_t[^(?-mix:\\w)]|useconds_t[^(?-mix:\\w)]|suseconds_t[^(?-mix:\\w)]|int8_t[^(?-mix:\\w)]|int16_t[^(?-mix:\\w)]|int32_t[^(?-mix:\\w)]|int64_t[^(?-mix:\\w)]|uint8_t[^(?-mix:\\w)]|uint16_t[^(?-mix:\\w)]|uint32_t[^(?-mix:\\w)]|uint64_t[^(?-mix:\\w)]|int_least8_t[^(?-mix:\\w)]|int_least16_t[^(?-mix:\\w)]|int_least32_t[^(?-mix:\\w)]|int_least64_t[^(?-mix:\\w)]|uint_least8_t[^(?-mix:\\w)]|uint_least16_t[^(?-mix:\\w)]|uint_least32_t[^(?-mix:\\w)]|uint_least64_t[^(?-mix:\\w)]|int_fast8_t[^(?-mix:\\w)]|int_fast16_t[^(?-mix:\\w)]|int_fast32_t[^(?-mix:\\w)]|int_fast64_t[^(?-mix:\\w)]|uint_fast8_t[^(?-mix:\\w)]|uint_fast16_t[^(?-mix:\\w)]|uint_fast32_t[^(?-mix:\\w)]|uint_fast64_t[^(?-mix:\\w)]|intptr_t[^(?-mix:\\w)]|uintptr_t[^(?-mix:\\w)]|intmax_t[^(?-mix:\\w)]|intmax_t[^(?-mix:\\w)]|uintmax_t[^(?-mix:\\w)]|uintmax_t[^(?-mix:\\w)])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\b(?!\\())",
"captures": {
"1": {
"name": "variable.language.this.cpp"
@@ -1931,11 +2698,24 @@
"5": {
"patterns": [
{
- "match": "(?<=(?:\\.\\*|\\.|->|->\\*))\\s*(?-mix:(?:(?:(?\\*|->))))",
- "name": "variable.other.object.property.cpp"
+ "match": "(?<=(?:\\.\\*|\\.|->|->\\*))\\s*(?:((?\\*|->)))",
+ "captures": {
+ "1": {
+ "name": "variable.language.this.cpp"
+ },
+ "2": {
+ "name": "variable.other.object.property.cpp"
+ },
+ "3": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "4": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ }
+ }
},
{
- "match": "(?:((?\\*|->)))",
+ "match": "(?:((?\\*|->)))",
"captures": {
"1": {
"name": "variable.language.this.cpp"
@@ -1965,8 +2745,7 @@
}
},
"method_access": {
- "contentName": "meta.function-call.member",
- "begin": "(?:((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)(\\()",
+ "begin": "(?:((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(\\()",
"beginCaptures": {
"1": {
"name": "variable.language.this.cpp"
@@ -1983,11 +2762,24 @@
"5": {
"patterns": [
{
- "match": "(?<=(?:\\.\\*|\\.|->|->\\*))\\s*(?-mix:(?:(?:(?\\*|->))))",
- "name": "variable.other.object.property.cpp"
+ "match": "(?<=(?:\\.\\*|\\.|->|->\\*))\\s*(?:((?\\*|->)))",
+ "captures": {
+ "1": {
+ "name": "variable.language.this.cpp"
+ },
+ "2": {
+ "name": "variable.other.object.property.cpp"
+ },
+ "3": {
+ "name": "punctuation.separator.dot-access.cpp"
+ },
+ "4": {
+ "name": "punctuation.separator.pointer-access.cpp"
+ }
+ }
},
{
- "match": "(?:((?\\*|->)))",
+ "match": "(?:((?\\*|->)))",
"captures": {
"1": {
"name": "variable.language.this.cpp"
@@ -2026,13 +2818,13 @@
},
"patterns": [
{
- "include": "#function_call_context_c"
+ "include": "#function_call_context"
}
]
},
"using_namespace": {
"name": "meta.using-namespace.cpp",
- "begin": "(?:,\\w])*>\\s*)))?::)*\\s*))?((?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*))?((?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)\\s*((?:,\\w])*>\\s*)))?::)*\\s*)\\s*(?:(?:((?\\[\\]=]))",
+ "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))",
"patterns": [
{
"name": "meta.head.namespace.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|(?=;)))",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.namespace.cpp"
}
- }
+ },
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "match": "((?:::)?(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*\\s*(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)\\s*((?|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.namespace.cpp"
@@ -2122,28 +2941,28 @@
},
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
{
"name": "meta.tail.namespace.cpp",
- "begin": "(?<=})[\\s\\n]*",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
}
]
},
"macro_argument": {
- "match": "##(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*(?!\\w)",
+ "match": "##(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*(?!\\w)",
"name": "variable.other.macro.argument.cpp"
},
"lambdas": {
- "begin": "((?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))\\s*(\\[(?!\\[))((?:.*\\[.*?\\].*?)*.*?)(\\]))",
"beginCaptures": {
"2": {
"name": "punctuation.definition.capture.begin.lambda.cpp"
@@ -2152,10 +2971,7 @@
"name": "meta.lambda.capture.cpp",
"patterns": [
{
- "include": "#probably_a_parameter"
- },
- {
- "include": "#function_context_c"
+ "include": "#function_parameter_context"
}
]
},
@@ -2181,10 +2997,7 @@
},
"patterns": [
{
- "include": "#probably_a_parameter"
- },
- {
- "include": "#function_context_c"
+ "include": "#function_parameter_context"
}
]
},
@@ -2219,7 +3032,7 @@
},
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
}
@@ -2227,14 +3040,1034 @@
},
"pthread_types": {
"match": "(?:,\\w])*>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)\\s*(?:((?:,\\w])*>\\s*))?(::)))?\\s*((?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:((?]*|[^>]*+<[^>]*+>)++>\\s*))?(::)))?\\s*((?\\[\\]=]))",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
@@ -2342,7 +4172,7 @@
{
"name": "meta.head.enum.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|(?=;)))",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.enum.cpp"
@@ -2350,14 +4180,14 @@
},
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
{
"name": "meta.body.enum.cpp",
- "begin": "(?<=\\{)",
- "end": "(\\})",
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.enum.cpp"
@@ -2380,11 +4210,11 @@
},
{
"name": "meta.tail.enum.cpp",
- "begin": "(?<=})[\\s\\n]*",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
}
@@ -2405,7 +4235,7 @@
"name": "storage.type.modifier.virtual.cpp"
},
{
- "match": "(?<=virtual|private|protected|public|,|:)\\s*(?!(?:(?:private|protected|public)|virtual))((?-mix:(?:\\s*(?:,\\w])*>\\s*)))?::)*\\s*)(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)\\s*(?:(?:(?:,\\w])*>\\s*))?(?:::)))?\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*(?:(?-mix:(?:(?:,\\w])*>\\s*)))?(?![\\w<:.]))))",
+ "match": "(?<=virtual|private|protected|public|,|:)\\s*(?!(?:(?:private|protected|public)|virtual))((?-mix:(?:\\s*(?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*))?(?:::)))?\\s*(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?(?![\\w<:.]))))",
"captures": {
"1": {
"name": "entity.name.type.inherited.cpp"
@@ -2416,7 +4246,7 @@
},
"class_block": {
"name": "meta.block.class.cpp",
- "begin": "((((?:,\\w])*>\\s*)))?::)*\\s*)(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)\\s*(?:(?:(?:,\\w])*>\\s*))?(?:::)))?\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*(?:(?-mix:(?:(?:,\\w])*>\\s*)))?(?![\\w<:.]))))+)*))?))",
+ "begin": "((((?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*))?(?:::)))?\\s*(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?(?![\\w<:.]))))+)*))?))",
"beginCaptures": {
"1": {
"name": "meta.head.class.cpp"
@@ -2461,7 +4291,7 @@
]
}
},
- "end": "(?:(?:(?<=})\\s*(;)|(;))|(?=[;>\\[\\]=]))",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
@@ -2474,7 +4304,7 @@
{
"name": "meta.head.class.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|(?=;)))",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.class.cpp"
@@ -2497,8 +4327,8 @@
},
{
"name": "meta.body.class.cpp",
- "begin": "(?<=\\{)",
- "end": "(\\})",
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.class.cpp"
@@ -2512,17 +4342,17 @@
"include": "#constructor_context"
},
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
{
"name": "meta.tail.class.cpp",
- "begin": "(?<=})[\\s\\n]*",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
}
@@ -2530,7 +4360,7 @@
},
"struct_block": {
"name": "meta.block.struct.cpp",
- "begin": "((((?:,\\w])*>\\s*)))?::)*\\s*)(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)\\s*(?:(?:(?:,\\w])*>\\s*))?(?:::)))?\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*(?:(?-mix:(?:(?:,\\w])*>\\s*)))?(?![\\w<:.]))))+)*))?))",
+ "begin": "((((?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*))?(?:::)))?\\s*(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?(?![\\w<:.]))))+)*))?))",
"beginCaptures": {
"1": {
"name": "meta.head.struct.cpp"
@@ -2575,7 +4405,7 @@
]
}
},
- "end": "(?:(?:(?<=})\\s*(;)|(;))|(?=[;>\\[\\]=]))",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
@@ -2588,7 +4418,7 @@
{
"name": "meta.head.struct.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|(?=;)))",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
@@ -2611,8 +4441,8 @@
},
{
"name": "meta.body.struct.cpp",
- "begin": "(?<=\\{)",
- "end": "(\\})",
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.struct.cpp"
@@ -2626,17 +4456,17 @@
"include": "#constructor_context"
},
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
{
"name": "meta.tail.struct.cpp",
- "begin": "(?<=})[\\s\\n]*",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
}
@@ -2644,7 +4474,7 @@
},
"union_block": {
"name": "meta.block.union.cpp",
- "begin": "((((?:,\\w])*>\\s*)))?::)*\\s*)(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*)\\s*(?:(?:(?:,\\w])*>\\s*))?(?:::)))?\\s*(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*(?:(?-mix:(?:(?:,\\w])*>\\s*)))?(?![\\w<:.]))))+)*))?))",
+ "begin": "((((?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*))?(?:::)))?\\s*(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?(?![\\w<:.]))))+)*))?))",
"beginCaptures": {
"1": {
"name": "meta.head.union.cpp"
@@ -2689,7 +4519,7 @@
]
}
},
- "end": "(?:(?:(?<=})\\s*(;)|(;))|(?=[;>\\[\\]=]))",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
@@ -2702,7 +4532,7 @@
{
"name": "meta.head.union.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|(?=;)))",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.union.cpp"
@@ -2725,8 +4555,8 @@
},
{
"name": "meta.body.union.cpp",
- "begin": "(?<=\\{)",
- "end": "(\\})",
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.union.cpp"
@@ -2740,17 +4570,17 @@
"include": "#constructor_context"
},
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
{
"name": "meta.tail.union.cpp",
- "begin": "(?<=})[\\s\\n]*",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
}
@@ -2767,7 +4597,7 @@
"name": "storage.type.extern.cpp"
}
},
- "end": "(?:(?:(?<=})\\s*(;)|(;))|(?=[;>\\[\\]=]))",
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.statement.cpp"
@@ -2780,7 +4610,7 @@
{
"name": "meta.head.extern.cpp",
"begin": "\\G ?",
- "end": "((?:\\{|(?=;)))",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
"endCaptures": {
"1": {
"name": "punctuation.section.block.begin.bracket.curly.extern.cpp"
@@ -2788,14 +4618,14 @@
},
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
{
"name": "meta.body.extern.cpp",
- "begin": "(?<=\\{)",
- "end": "(\\})",
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "(\\}|%>|\\?\\?>)",
"endCaptures": {
"1": {
"name": "punctuation.section.block.end.bracket.curly.extern.cpp"
@@ -2803,22 +4633,439 @@
},
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
{
"name": "meta.tail.extern.cpp",
- "begin": "(?<=})[\\s\\n]*",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
"end": "[\\s\\n]*(?=;)",
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
{
- "include": "$base"
+ "include": "#root_context"
+ }
+ ]
+ },
+ "typedef_class": {
+ "begin": "((?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*))?(?:::)))?\\s*(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?(?![\\w<:.]))))+)*))?))",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.head.class.cpp"
+ },
+ "3": {
+ "name": "storage.type.$3.cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "6": {
+ "name": "entity.name.type.$3.cpp"
+ },
+ "7": {
+ "name": "storage.type.modifier.final.cpp"
+ },
+ "8": {
+ "name": "colon.cpp punctuation.separator.inhertance.cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "include": "#inhertance_context"
+ }
+ ]
+ }
+ },
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "name": "meta.head.class.cpp",
+ "begin": "\\G ?",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.begin.bracket.curly.class.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#preprocessor_context"
+ },
+ {
+ "include": "#inhertance_context"
+ },
+ {
+ "include": "#template_call_range"
+ },
+ {
+ "include": "#comments_context"
+ }
+ ]
+ },
+ {
+ "name": "meta.body.class.cpp",
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "(\\}|%>|\\?\\?>)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.end.bracket.curly.class.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#constructor_context"
+ },
+ {
+ "include": "#root_context"
+ }
+ ]
+ },
+ {
+ "name": "meta.tail.class.cpp",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
+ "end": "[\\s\\n]*(?=;)",
+ "patterns": [
+ {
+ "match": "(\\s*((?:\\*\\s*)*)((?:&\\s*){0,2})\\s*)((?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*))?(?:::)))?\\s*(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?(?![\\w<:.]))))+)*))?))",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.head.struct.cpp"
+ },
+ "3": {
+ "name": "storage.type.$3.cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "6": {
+ "name": "entity.name.type.$3.cpp"
+ },
+ "7": {
+ "name": "storage.type.modifier.final.cpp"
+ },
+ "8": {
+ "name": "colon.cpp punctuation.separator.inhertance.cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "include": "#inhertance_context"
+ }
+ ]
+ }
+ },
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "name": "meta.head.struct.cpp",
+ "begin": "\\G ?",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.begin.bracket.curly.struct.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#preprocessor_context"
+ },
+ {
+ "include": "#inhertance_context"
+ },
+ {
+ "include": "#template_call_range"
+ },
+ {
+ "include": "#comments_context"
+ }
+ ]
+ },
+ {
+ "name": "meta.body.struct.cpp",
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "(\\}|%>|\\?\\?>)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.end.bracket.curly.struct.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#constructor_context"
+ },
+ {
+ "include": "#root_context"
+ }
+ ]
+ },
+ {
+ "name": "meta.tail.struct.cpp",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
+ "end": "[\\s\\n]*(?=;)",
+ "patterns": [
+ {
+ "match": "(\\s*((?:\\*\\s*)*)((?:&\\s*){0,2})\\s*)((?]*|[^>]*+<[^>]*+>)++>\\s*)))?::)*\\s*)(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)\\s*(?:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*))?(?:::)))?\\s*(?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)(?:(?-mix:(?:(?]*|[^>]*+<[^>]*+>)++>\\s*)))?(?![\\w<:.]))))+)*))?))",
+ "beginCaptures": {
+ "1": {
+ "name": "meta.head.union.cpp"
+ },
+ "3": {
+ "name": "storage.type.$3.cpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "5": {
+ "patterns": [
+ {
+ "include": "#attributes_context"
+ },
+ {
+ "include": "#number_literal"
+ }
+ ]
+ },
+ "6": {
+ "name": "entity.name.type.$3.cpp"
+ },
+ "7": {
+ "name": "storage.type.modifier.final.cpp"
+ },
+ "8": {
+ "name": "colon.cpp punctuation.separator.inhertance.cpp"
+ },
+ "9": {
+ "patterns": [
+ {
+ "include": "#inhertance_context"
+ }
+ ]
+ }
+ },
+ "end": "(?:(?:(?<=\\}|%>|\\?\\?>)\\s*(;)|(;))|(?=[;>\\[\\]=]))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.cpp"
+ },
+ "2": {
+ "name": "punctuation.terminator.statement.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "name": "meta.head.union.cpp",
+ "begin": "\\G ?",
+ "end": "((?:\\{|<%|\\?\\?<|(?=;)))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.begin.bracket.curly.union.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#preprocessor_context"
+ },
+ {
+ "include": "#inhertance_context"
+ },
+ {
+ "include": "#template_call_range"
+ },
+ {
+ "include": "#comments_context"
+ }
+ ]
+ },
+ {
+ "name": "meta.body.union.cpp",
+ "begin": "(?<=\\{|<%|\\?\\?<)",
+ "end": "(\\}|%>|\\?\\?>)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.end.bracket.curly.union.cpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function_pointer"
+ },
+ {
+ "include": "#constructor_context"
+ },
+ {
+ "include": "#root_context"
+ }
+ ]
+ },
+ {
+ "name": "meta.tail.union.cpp",
+ "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*",
+ "end": "[\\s\\n]*(?=;)",
+ "patterns": [
+ {
+ "match": "(\\s*((?:\\*\\s*)*)((?:&\\s*){0,2})\\s*)((?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*))\\s*::\\s*~\\2|~(?>(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*)))\\s*(\\()\\s*(\\))",
+ "captures": {
"1": {
- "name": "entity.name.function.destructor.cpp"
+ "name": "entity.name.function.destructor.cpp entity.name.function.special.destructor.cpp"
},
- "2": {
+ "3": {
"name": "punctuation.definition.parameters.begin.destructor.cpp"
- }
- },
- "end": "(?-mix:\\))",
- "endCaptures": {
- "0": {
+ },
+ "4": {
"name": "punctuation.definition.parameters.end.destructor.cpp"
}
},
- "patterns": [
- {
- "include": "$base"
- }
- ]
- },
- "destructor_prototype": {
- "name": "meta.function.destructor.prototype.cpp",
- "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?:,\\w])*>\\s*)))?)\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
- "end": "(?<=\\))(?!\\w)",
- "name": "meta.function-call.cpp",
- "patterns": [
- {
- "include": "#function_call_context_c"
+ "include": "#root_context"
}
]
},
@@ -3476,7 +5677,7 @@
},
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
@@ -3656,7 +5857,7 @@
]
},
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
@@ -3874,12 +6075,12 @@
]
},
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
{
- "contentName": "comment.block.preprocessor.if-branch",
+ "contentName": "comment.block.preprocessor.if-branch.cpp",
"begin": "\\n",
"end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
"patterns": [
@@ -3972,7 +6173,7 @@
]
},
{
- "contentName": "comment.block.preprocessor.if-branch.in-block",
+ "contentName": "comment.block.preprocessor.if-branch.in-block.cpp",
"begin": "\\n",
"end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
"patterns": [
@@ -4015,7 +6216,7 @@
"include": "#comments_context"
},
{
- "contentName": "comment.block.preprocessor.elif-branch",
+ "contentName": "comment.block.preprocessor.elif-branch.cpp",
"begin": "\\n",
"end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
"patterns": [
@@ -4072,7 +6273,7 @@
"include": "#comments_context"
},
{
- "contentName": "comment.block.preprocessor.else-branch",
+ "contentName": "comment.block.preprocessor.else-branch.cpp",
"begin": "^\\s*((#)\\s*else\\b)",
"beginCaptures": {
"0": {
@@ -4096,7 +6297,7 @@
]
},
{
- "contentName": "comment.block.preprocessor.if-branch",
+ "contentName": "comment.block.preprocessor.if-branch.cpp",
"begin": "^\\s*((#)\\s*elif\\b)",
"beginCaptures": {
"0": {
@@ -4124,7 +6325,7 @@
"end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))",
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
}
@@ -4170,7 +6371,7 @@
"include": "#comments_context"
},
{
- "contentName": "comment.block.preprocessor.else-branch.in-block",
+ "contentName": "comment.block.preprocessor.else-branch.in-block.cpp",
"begin": "^\\s*((#)\\s*else\\b)",
"beginCaptures": {
"0": {
@@ -4194,7 +6395,7 @@
]
},
{
- "contentName": "comment.block.preprocessor.if-branch.in-block",
+ "contentName": "comment.block.preprocessor.if-branch.in-block.cpp",
"begin": "^\\s*((#)\\s*elif\\b)",
"beginCaptures": {
"0": {
@@ -4261,7 +6462,7 @@
"end": "(?=^\\s*((#)\\s*(?:endif)\\b))",
"patterns": [
{
- "contentName": "comment.block.preprocessor.elif-branch",
+ "contentName": "comment.block.preprocessor.elif-branch.cpp",
"begin": "^\\s*((#)\\s*(else)\\b)",
"beginCaptures": {
"0": {
@@ -4285,7 +6486,7 @@
]
},
{
- "contentName": "comment.block.preprocessor.elif-branch",
+ "contentName": "comment.block.preprocessor.elif-branch.cpp",
"begin": "^\\s*((#)\\s*(elif)\\b)",
"beginCaptures": {
"0": {
@@ -4309,7 +6510,7 @@
]
},
{
- "include": "$base"
+ "include": "#root_context"
}
]
}
@@ -4348,7 +6549,7 @@
"end": "(?=^\\s*((#)\\s*(?:endif)\\b))",
"patterns": [
{
- "contentName": "comment.block.preprocessor.elif-branch.in-block",
+ "contentName": "comment.block.preprocessor.elif-branch.in-block.cpp",
"begin": "^\\s*((#)\\s*(else)\\b)",
"beginCaptures": {
"0": {
@@ -4372,7 +6573,7 @@
]
},
{
- "contentName": "comment.block.preprocessor.elif-branch",
+ "contentName": "comment.block.preprocessor.elif-branch.cpp",
"begin": "^\\s*((#)\\s*(elif)\\b)",
"beginCaptures": {
"0": {
@@ -4418,7 +6619,7 @@
"end": "(?=^\\s*((#)\\s*endif\\b))",
"patterns": [
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
@@ -4448,7 +6649,7 @@
"include": "#vararg_ellipses"
},
{
- "match": "(?-mix:##?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F]))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U000[0-9a-fA-F])))*(?!\\w))",
+ "match": "(?-mix:##?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})))*(?!\\w))",
"name": "variable.other.macro.argument.cpp"
},
{
@@ -4542,7 +6743,7 @@
"include": "#member_access"
},
{
- "include": "$base"
+ "include": "#root_context"
}
]
},
@@ -4641,123 +6842,124 @@
}
]
},
- "function_context_c": {
+ "function_call_context": {
"patterns": [
{
- "include": "#attributes_context"
+ "include": "#struct_declare"
+ },
+ {
+ "include": "#string_context"
+ },
+ {
+ "include": "#functional_specifiers_pre_parameters"
+ },
+ {
+ "include": "#qualifiers_and_specifiers_post_parameters"
+ },
+ {
+ "include": "#storage_specifiers"
+ },
+ {
+ "include": "#access_control_keywords"
+ },
+ {
+ "include": "#exception_keywords"
+ },
+ {
+ "include": "#static_assert"
+ },
+ {
+ "include": "#other_keywords"
+ },
+ {
+ "include": "#memory_operators"
+ },
+ {
+ "include": "#the_this_keyword"
+ },
+ {
+ "include": "#language_constants"
+ },
+ {
+ "include": "#misc_storage_modifiers_1"
+ },
+ {
+ "include": "#lambdas"
+ },
+ {
+ "include": "#preprocessor_context"
},
{
"include": "#comments_context"
},
{
- "include": "#storage_types"
+ "include": "#misc_storage_modifiers_2"
+ },
+ {
+ "include": "#number_literal"
+ },
+ {
+ "include": "#string_context_c"
+ },
+ {
+ "include": "#meta_preprocessor_macro"
+ },
+ {
+ "include": "#meta_preprocessor_diagnostic"
+ },
+ {
+ "include": "#meta_preprocessor_include"
+ },
+ {
+ "include": "#pragma_mark"
+ },
+ {
+ "include": "#meta_preprocessor_line"
+ },
+ {
+ "include": "#meta_preprocessor_undef"
+ },
+ {
+ "include": "#meta_preprocessor_pragma"
+ },
+ {
+ "include": "#predefined_macros"
},
{
"include": "#operators"
},
- {
- "include": "#vararg_ellipses"
- },
- {
- "include": "#legacy_function_definition"
- },
- {
- "begin": "\\(",
- "beginCaptures": {
- "0": {
- "name": "punctuation.section.parens.begin.bracket.round.cpp"
- }
- },
- "end": "\\)",
- "endCaptures": {
- "0": {
- "name": "punctuation.section.parens.end.bracket.round.cpp"
- }
- },
- "patterns": [
- {
- "include": "#function_context_c"
- }
- ]
- },
- {
- "include": "$base"
- }
- ]
- },
- "function_call_context_c": {
- "patterns": [
{
"include": "#attributes_context"
},
{
- "include": "#comments_context"
+ "include": "#parentheses"
},
{
- "include": "#storage_types"
- },
- {
- "include": "#method_access"
- },
- {
- "include": "#member_access"
- },
- {
- "include": "#operators"
- },
- {
- "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:new)\\s*((?-mix:(?:(?-mix:(?:(?:,\\w])*>\\s*)))?)) # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
- "beginCaptures": {
- "1": {
- "name": "keyword.operator.wordlike.cpp memory.cpp keyword.operator.new.cpp"
- },
- "2": {
- "patterns": [
- {
- "include": "#template_call_innards"
- }
- ]
- },
- "3": {
- "name": "punctuation.section.arguments.begin.bracket.round.cpp"
- }
- },
- "end": "\\)",
- "endCaptures": {
- "0": {
- "name": "punctuation.section.arguments.end.bracket.round.cpp"
- }
- },
- "patterns": [
- {
- "include": "#function_call_context_c"
- }
- ]
+ "include": "#type_casting_operators"
},
{
"include": "#function_call"
},
{
- "begin": "\\(",
- "beginCaptures": {
- "0": {
- "name": "punctuation.section.parens.begin.bracket.round.cpp"
- }
- },
- "end": "\\)",
- "endCaptures": {
- "0": {
- "name": "punctuation.section.parens.end.bracket.round.cpp"
- }
- },
- "patterns": [
- {
- "include": "#function_call_context_c"
- }
- ]
+ "include": "#scope_resolution_inner_generated"
},
{
- "include": "#block_context"
+ "include": "#storage_types"
+ },
+ {
+ "include": "#line_continuation_character"
+ },
+ {
+ "include": "#square_brackets"
+ },
+ {
+ "include": "#empty_square_brackets"
+ },
+ {
+ "include": "#semicolon"
+ },
+ {
+ "include": "#comma"
}
]
}
diff --git a/extensions/cpp/test/colorize-results/test-23630_cpp.json b/extensions/cpp/test/colorize-results/test-23630_cpp.json
index a58961ae945..55aec19d2cb 100644
--- a/extensions/cpp/test/colorize-results/test-23630_cpp.json
+++ b/extensions/cpp/test/colorize-results/test-23630_cpp.json
@@ -1,7 +1,7 @@
[
{
"c": "#",
- "t": "source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp punctuation.definition.directive.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -12,7 +12,7 @@
},
{
"c": "ifndef",
- "t": "source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -23,7 +23,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.preprocessor.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp",
"r": {
"dark_plus": "meta.preprocessor: #569CD6",
"light_plus": "meta.preprocessor: #0000FF",
@@ -34,7 +34,7 @@
},
{
"c": "_UCRT",
- "t": "source.cpp meta.preprocessor.cpp entity.name.function.preprocessor.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp entity.name.function.preprocessor.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -45,7 +45,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.preprocessor.macro.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.macro.cpp",
"r": {
"dark_plus": "meta.preprocessor: #569CD6",
"light_plus": "meta.preprocessor: #0000FF",
@@ -56,7 +56,7 @@
},
{
"c": "#",
- "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp punctuation.definition.directive.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -67,7 +67,7 @@
},
{
"c": "define",
- "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -78,7 +78,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.preprocessor.macro.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.macro.cpp",
"r": {
"dark_plus": "meta.preprocessor: #569CD6",
"light_plus": "meta.preprocessor: #0000FF",
@@ -89,7 +89,7 @@
},
{
"c": "_UCRT",
- "t": "source.cpp meta.preprocessor.macro.cpp entity.name.function.preprocessor.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.macro.cpp entity.name.function.preprocessor.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -100,7 +100,7 @@
},
{
"c": "#",
- "t": "source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp punctuation.definition.directive.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -111,7 +111,7 @@
},
{
"c": "endif",
- "t": "source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
diff --git a/extensions/cpp/test/colorize-results/test-23850_cpp.json b/extensions/cpp/test/colorize-results/test-23850_cpp.json
index 924bbc78243..dfcdfd6787a 100644
--- a/extensions/cpp/test/colorize-results/test-23850_cpp.json
+++ b/extensions/cpp/test/colorize-results/test-23850_cpp.json
@@ -1,7 +1,7 @@
[
{
"c": "#",
- "t": "source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp punctuation.definition.directive.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -12,7 +12,7 @@
},
{
"c": "ifndef",
- "t": "source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -23,7 +23,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.preprocessor.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp",
"r": {
"dark_plus": "meta.preprocessor: #569CD6",
"light_plus": "meta.preprocessor: #0000FF",
@@ -34,7 +34,7 @@
},
{
"c": "_UCRT",
- "t": "source.cpp meta.preprocessor.cpp entity.name.function.preprocessor.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp entity.name.function.preprocessor.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -45,7 +45,7 @@
},
{
"c": "#",
- "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp punctuation.definition.directive.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -56,7 +56,7 @@
},
{
"c": "define",
- "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -67,7 +67,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.preprocessor.macro.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.macro.cpp",
"r": {
"dark_plus": "meta.preprocessor: #569CD6",
"light_plus": "meta.preprocessor: #0000FF",
@@ -78,7 +78,7 @@
},
{
"c": "_UCRT",
- "t": "source.cpp meta.preprocessor.macro.cpp entity.name.function.preprocessor.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.macro.cpp entity.name.function.preprocessor.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -89,7 +89,7 @@
},
{
"c": "#",
- "t": "source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp punctuation.definition.directive.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -100,7 +100,7 @@
},
{
"c": "endif",
- "t": "source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
diff --git a/extensions/cpp/test/colorize-results/test_cc.json b/extensions/cpp/test/colorize-results/test_cc.json
index e53e3ede6e4..c96d57f2373 100644
--- a/extensions/cpp/test/colorize-results/test_cc.json
+++ b/extensions/cpp/test/colorize-results/test_cc.json
@@ -1,7 +1,7 @@
[
{
"c": "#",
- "t": "source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp punctuation.definition.directive.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -12,7 +12,7 @@
},
{
"c": "if",
- "t": "source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -23,7 +23,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.preprocessor.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp",
"r": {
"dark_plus": "meta.preprocessor: #569CD6",
"light_plus": "meta.preprocessor: #0000FF",
@@ -34,7 +34,7 @@
},
{
"c": "B4G_DEBUG_CHECK",
- "t": "source.cpp meta.preprocessor.cpp entity.name.function.preprocessor.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp entity.name.function.preprocessor.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -45,7 +45,7 @@
},
{
"c": " ",
- "t": "source.cpp",
+ "t": "source.cpp source.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -56,7 +56,7 @@
},
{
"c": "fprintf",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp entity.name.function.cpp",
+ "t": "source.cpp source.cpp entity.name.function.call.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -67,7 +67,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -78,7 +78,7 @@
},
{
"c": "stderr",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp",
+ "t": "source.cpp source.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -89,7 +89,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp comma.cpp punctuation.separator.delimiter.cpp",
+ "t": "source.cpp source.cpp comma.cpp punctuation.separator.delimiter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -100,7 +100,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
+ "t": "source.cpp source.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -111,7 +111,7 @@
},
{
"c": "num_candidate_ret=",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp string.quoted.double.cpp",
+ "t": "source.cpp source.cpp string.quoted.double.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -122,7 +122,7 @@
},
{
"c": "%d",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
+ "t": "source.cpp source.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -133,7 +133,7 @@
},
{
"c": ":",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp string.quoted.double.cpp",
+ "t": "source.cpp source.cpp string.quoted.double.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -144,7 +144,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
+ "t": "source.cpp source.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -155,7 +155,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp comma.cpp punctuation.separator.delimiter.cpp",
+ "t": "source.cpp source.cpp comma.cpp punctuation.separator.delimiter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -166,7 +166,7 @@
},
{
"c": " num_candidate",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp",
+ "t": "source.cpp source.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -177,7 +177,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -188,7 +188,7 @@
},
{
"c": ";",
- "t": "source.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -199,7 +199,7 @@
},
{
"c": " ",
- "t": "source.cpp",
+ "t": "source.cpp source.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -210,7 +210,7 @@
},
{
"c": "for",
- "t": "source.cpp keyword.control.for.cpp",
+ "t": "source.cpp source.cpp keyword.control.for.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -221,7 +221,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.parens.cpp punctuation.section.parens.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.parens.cpp punctuation.section.parens.begin.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -232,7 +232,7 @@
},
{
"c": "int",
- "t": "source.cpp meta.parens.cpp storage.type.primitive.cpp",
+ "t": "source.cpp source.cpp meta.parens.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -243,7 +243,7 @@
},
{
"c": " i",
- "t": "source.cpp meta.parens.cpp",
+ "t": "source.cpp source.cpp meta.parens.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -254,7 +254,7 @@
},
{
"c": "=",
- "t": "source.cpp meta.parens.cpp keyword.operator.assignment.cpp",
+ "t": "source.cpp source.cpp meta.parens.cpp keyword.operator.assignment.cpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -265,7 +265,7 @@
},
{
"c": "0",
- "t": "source.cpp meta.parens.cpp constant.numeric.decimal.cpp",
+ "t": "source.cpp source.cpp meta.parens.cpp constant.numeric.decimal.cpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -276,7 +276,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.parens.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.parens.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -287,7 +287,7 @@
},
{
"c": "i",
- "t": "source.cpp meta.parens.cpp",
+ "t": "source.cpp source.cpp meta.parens.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -298,7 +298,7 @@
},
{
"c": "<",
- "t": "source.cpp meta.parens.cpp keyword.operator.comparison.cpp",
+ "t": "source.cpp source.cpp meta.parens.cpp keyword.operator.comparison.cpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -309,7 +309,7 @@
},
{
"c": "num_candidate",
- "t": "source.cpp meta.parens.cpp",
+ "t": "source.cpp source.cpp meta.parens.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -320,7 +320,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.parens.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.parens.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -331,7 +331,7 @@
},
{
"c": "++",
- "t": "source.cpp meta.parens.cpp keyword.operator.increment.cpp",
+ "t": "source.cpp source.cpp meta.parens.cpp keyword.operator.increment.cpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -342,7 +342,7 @@
},
{
"c": "i",
- "t": "source.cpp meta.parens.cpp",
+ "t": "source.cpp source.cpp meta.parens.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -353,7 +353,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.parens.cpp punctuation.section.parens.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.parens.cpp punctuation.section.parens.end.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -364,7 +364,7 @@
},
{
"c": " ",
- "t": "source.cpp",
+ "t": "source.cpp source.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -375,7 +375,7 @@
},
{
"c": "fprintf",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp entity.name.function.cpp",
+ "t": "source.cpp source.cpp entity.name.function.call.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -386,7 +386,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -397,7 +397,7 @@
},
{
"c": "stderr",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp",
+ "t": "source.cpp source.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -408,7 +408,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp comma.cpp punctuation.separator.delimiter.cpp",
+ "t": "source.cpp source.cpp comma.cpp punctuation.separator.delimiter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -419,7 +419,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
+ "t": "source.cpp source.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -430,7 +430,7 @@
},
{
"c": "%d",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
+ "t": "source.cpp source.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -441,7 +441,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp string.quoted.double.cpp",
+ "t": "source.cpp source.cpp string.quoted.double.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -452,7 +452,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
+ "t": "source.cpp source.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -463,7 +463,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp comma.cpp punctuation.separator.delimiter.cpp",
+ "t": "source.cpp source.cpp comma.cpp punctuation.separator.delimiter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -474,7 +474,7 @@
},
{
"c": "user_candidate",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp meta.bracket.square.access.cpp variable.other.object.cpp",
+ "t": "source.cpp source.cpp meta.bracket.square.access.cpp variable.other.object.cpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -485,7 +485,7 @@
},
{
"c": "[",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp meta.bracket.square.access.cpp punctuation.definition.begin.bracket.square.cpp",
+ "t": "source.cpp source.cpp meta.bracket.square.access.cpp punctuation.definition.begin.bracket.square.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -496,7 +496,7 @@
},
{
"c": "i",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp meta.bracket.square.access.cpp",
+ "t": "source.cpp source.cpp meta.bracket.square.access.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -507,7 +507,7 @@
},
{
"c": "]",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp meta.bracket.square.access.cpp punctuation.definition.end.bracket.square.cpp",
+ "t": "source.cpp source.cpp meta.bracket.square.access.cpp punctuation.definition.end.bracket.square.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -518,7 +518,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -529,7 +529,7 @@
},
{
"c": ";",
- "t": "source.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -540,7 +540,7 @@
},
{
"c": " ",
- "t": "source.cpp",
+ "t": "source.cpp source.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -551,7 +551,7 @@
},
{
"c": "fprintf",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp entity.name.function.cpp",
+ "t": "source.cpp source.cpp entity.name.function.call.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -562,7 +562,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -573,7 +573,7 @@
},
{
"c": "stderr",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp",
+ "t": "source.cpp source.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -584,7 +584,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp comma.cpp punctuation.separator.delimiter.cpp",
+ "t": "source.cpp source.cpp comma.cpp punctuation.separator.delimiter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -595,7 +595,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
+ "t": "source.cpp source.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -606,7 +606,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp string.quoted.double.cpp",
+ "t": "source.cpp source.cpp string.quoted.double.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -617,7 +617,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
+ "t": "source.cpp source.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -628,7 +628,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -639,7 +639,7 @@
},
{
"c": ";",
- "t": "source.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -650,7 +650,7 @@
},
{
"c": "#",
- "t": "source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp punctuation.definition.directive.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -661,7 +661,7 @@
},
{
"c": "endif",
- "t": "source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.cpp keyword.control.directive.conditional.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -672,7 +672,7 @@
},
{
"c": " ",
- "t": "source.cpp",
+ "t": "source.cpp source.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -683,7 +683,7 @@
},
{
"c": "void",
- "t": "source.cpp storage.type.primitive.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -694,7 +694,7 @@
},
{
"c": " ",
- "t": "source.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -705,7 +705,7 @@
},
{
"c": "main",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp entity.name.function.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -716,7 +716,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -727,7 +727,7 @@
},
{
"c": "O ",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -738,7 +738,7 @@
},
{
"c": "obj",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp variable.parameter.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp variable.parameter.cpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -749,7 +749,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -760,7 +760,7 @@
},
{
"c": " ",
- "t": "source.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -771,7 +771,7 @@
},
{
"c": "{",
- "t": "source.cpp meta.block.cpp punctuation.section.block.begin.bracket.curly.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.block.begin.bracket.curly.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -782,7 +782,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -793,7 +793,7 @@
},
{
"c": "LOG_INFO",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp entity.name.function.call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -804,7 +804,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.section.arguments.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -815,7 +815,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -826,7 +826,7 @@
},
{
"c": "not hilighted as string",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -837,7 +837,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -848,7 +848,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.section.arguments.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -859,7 +859,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -870,7 +870,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -881,7 +881,7 @@
},
{
"c": "LOG_INFO",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp entity.name.function.call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -892,7 +892,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.section.arguments.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -903,7 +903,7 @@
},
{
"c": "obj ",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -914,7 +914,7 @@
},
{
"c": "<<",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp keyword.operator.bitwise.shift.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.bitwise.shift.cpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -925,7 +925,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -936,7 +936,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -947,7 +947,7 @@
},
{
"c": ", even worse; ",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -958,7 +958,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -969,7 +969,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -980,7 +980,7 @@
},
{
"c": "<<",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp keyword.operator.bitwise.shift.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.bitwise.shift.cpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -991,7 +991,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1002,7 +1002,7 @@
},
{
"c": "obj",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp variable.other.object.access.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp variable.other.object.access.cpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1013,7 +1013,7 @@
},
{
"c": ".",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.separator.dot-access.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.dot-access.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1024,7 +1024,7 @@
},
{
"c": "x",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp variable.other.property.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp variable.other.property.cpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1035,7 +1035,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1046,7 +1046,7 @@
},
{
"c": "<<",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp keyword.operator.bitwise.shift.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.bitwise.shift.cpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1057,7 +1057,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1068,7 +1068,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1079,7 +1079,7 @@
},
{
"c": " check this out.",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1090,7 +1090,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1101,7 +1101,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.section.arguments.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1112,7 +1112,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1123,7 +1123,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp punctuation.whitespace.comment.leading.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.whitespace.comment.leading.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1134,7 +1134,7 @@
},
{
"c": "//",
- "t": "source.cpp meta.block.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -1145,7 +1145,7 @@
},
{
"c": " everything from this point on is interpeted as a string literal...",
- "t": "source.cpp meta.block.cpp comment.line.double-slash.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -1156,7 +1156,7 @@
},
{
"c": " O x",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1167,7 +1167,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1178,7 +1178,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp meta.scope-resolution.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1189,18 +1189,18 @@
},
{
"c": "std",
- "t": "source.cpp meta.block.cpp meta.scope-resolution.cpp entity.name.type.namespace.scope-resolution.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.scope-resolution.cpp",
"r": {
- "dark_plus": "entity.name.type: #4EC9B0",
- "light_plus": "entity.name.type: #267F99",
+ "dark_plus": "entity.name.scope-resolution: #4EC9B0",
+ "light_plus": "entity.name.scope-resolution: #267F99",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
- "hc_black": "entity.name.type: #4EC9B0"
+ "hc_black": "entity.name.scope-resolution: #4EC9B0"
}
},
{
"c": "::",
- "t": "source.cpp meta.block.cpp meta.scope-resolution.cpp punctuation.separator.namespace.access.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1211,7 +1211,7 @@
},
{
"c": "unique_ptr",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1222,7 +1222,7 @@
},
{
"c": "<",
- "t": "source.cpp meta.block.cpp keyword.operator.comparison.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.comparison.cpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1233,7 +1233,7 @@
},
{
"c": "O",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1244,7 +1244,7 @@
},
{
"c": ">",
- "t": "source.cpp meta.block.cpp keyword.operator.comparison.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.comparison.cpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1255,7 +1255,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1266,7 +1266,7 @@
},
{
"c": "o",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp entity.name.function.call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -1277,7 +1277,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.section.arguments.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1288,18 +1288,18 @@
},
{
"c": "new",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp keyword.operator.wordlike.cpp alias.cpp keyword.operator.new.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.wordlike.cpp memory.cpp keyword.operator.new.cpp",
"r": {
- "dark_plus": "keyword.operator.new.cpp: #C586C0",
- "light_plus": "keyword.operator.new.cpp: #AF00DB",
+ "dark_plus": "source.cpp keyword.operator.new: #C586C0",
+ "light_plus": "source.cpp keyword.operator.new: #AF00DB",
"dark_vs": "keyword.operator.new: #569CD6",
"light_vs": "keyword.operator.new: #0000FF",
- "hc_black": "keyword.operator.new.cpp: #C586C0"
+ "hc_black": "source.cpp keyword.operator.new: #C586C0"
}
},
{
"c": " O",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1310,7 +1310,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.section.arguments.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1321,7 +1321,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1332,7 +1332,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp punctuation.whitespace.comment.leading.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.whitespace.comment.leading.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1343,7 +1343,7 @@
},
{
"c": "//",
- "t": "source.cpp meta.block.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -1354,7 +1354,7 @@
},
{
"c": " sadness.",
- "t": "source.cpp meta.block.cpp comment.line.double-slash.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -1365,7 +1365,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1376,7 +1376,7 @@
},
{
"c": "sprintf",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp entity.name.function.call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -1387,7 +1387,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.section.arguments.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1398,7 +1398,7 @@
},
{
"c": "options",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1409,7 +1409,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp comma.cpp punctuation.separator.delimiter.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comma.cpp punctuation.separator.delimiter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1420,7 +1420,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1431,7 +1431,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1442,7 +1442,7 @@
},
{
"c": "STYLE=Keramik;TITLE=",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1453,7 +1453,7 @@
},
{
"c": "%s",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1464,7 +1464,7 @@
},
{
"c": ";THEME=",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1475,7 +1475,7 @@
},
{
"c": "%s",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1486,7 +1486,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1497,7 +1497,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp comma.cpp punctuation.separator.delimiter.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comma.cpp punctuation.separator.delimiter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1508,7 +1508,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1519,7 +1519,7 @@
},
{
"c": "...",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.vararg-ellipses.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.vararg-ellipses.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1530,7 +1530,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.section.arguments.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1541,7 +1541,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1552,7 +1552,7 @@
},
{
"c": "}",
- "t": "source.cpp meta.block.cpp punctuation.section.block.end.bracket.curly.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.block.end.bracket.curly.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1563,7 +1563,7 @@
},
{
"c": "int",
- "t": "source.cpp storage.type.primitive.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -1574,7 +1574,7 @@
},
{
"c": " ",
- "t": "source.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1585,7 +1585,7 @@
},
{
"c": "main2",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp entity.name.function.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -1596,7 +1596,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1607,7 +1607,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1618,7 +1618,7 @@
},
{
"c": " ",
- "t": "source.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1629,7 +1629,7 @@
},
{
"c": "{",
- "t": "source.cpp meta.block.cpp punctuation.section.block.begin.bracket.curly.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.block.begin.bracket.curly.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1640,7 +1640,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1651,7 +1651,7 @@
},
{
"c": "printf",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp entity.name.function.call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -1662,7 +1662,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.section.arguments.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1673,7 +1673,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1684,7 +1684,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1695,7 +1695,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1706,7 +1706,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.section.arguments.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1717,7 +1717,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1728,7 +1728,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp punctuation.whitespace.comment.leading.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.whitespace.comment.leading.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1739,7 +1739,7 @@
},
{
"c": "//",
- "t": "source.cpp meta.block.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -1750,7 +1750,7 @@
},
{
"c": " the rest of",
- "t": "source.cpp meta.block.cpp comment.line.double-slash.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -1761,7 +1761,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1771,8 +1771,118 @@
}
},
{
- "c": "asm(\"movw $0x38, %ax; ltr %ax\");",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp",
+ "c": "asm",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp storage.type.asm.cpp",
+ "r": {
+ "dark_plus": "storage.type: #569CD6",
+ "light_plus": "storage.type: #0000FF",
+ "dark_vs": "storage.type: #569CD6",
+ "light_vs": "storage.type: #0000FF",
+ "hc_black": "storage.type: #569CD6"
+ }
+ },
+ {
+ "c": "(",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp punctuation.section.parens.begin.bracket.round.cpp",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "movw $0x38, ",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp string.quoted.double.cpp",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "%a",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "x; ltr ",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp string.quoted.double.cpp",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "%a",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp string.quoted.double.cpp constant.other.placeholder.cpp",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "x",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp string.quoted.double.cpp",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": "\"",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
+ "r": {
+ "dark_plus": "string: #CE9178",
+ "light_plus": "string: #A31515",
+ "dark_vs": "string: #CE9178",
+ "light_vs": "string: #A31515",
+ "hc_black": "string: #CE9178"
+ }
+ },
+ {
+ "c": ")",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp punctuation.section.parens.end.bracket.round.cpp",
+ "r": {
+ "dark_plus": "default: #D4D4D4",
+ "light_plus": "default: #000000",
+ "dark_vs": "default: #D4D4D4",
+ "light_vs": "default: #000000",
+ "hc_black": "default: #FFFFFF"
+ }
+ },
+ {
+ "c": ";",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1783,7 +1893,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1794,7 +1904,7 @@
},
{
"c": "fn",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp entity.name.function.call.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -1805,7 +1915,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.section.arguments.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1816,7 +1926,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1827,7 +1937,7 @@
},
{
"c": "{};",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1838,7 +1948,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1849,7 +1959,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.block.cpp meta.function-call.cpp punctuation.section.arguments.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1860,7 +1970,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1871,7 +1981,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp punctuation.whitespace.comment.leading.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.whitespace.comment.leading.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1882,7 +1992,7 @@
},
{
"c": "//",
- "t": "source.cpp meta.block.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -1893,7 +2003,7 @@
},
{
"c": " the rest of",
- "t": "source.cpp meta.block.cpp comment.line.double-slash.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -1904,7 +2014,7 @@
},
{
"c": "}",
- "t": "source.cpp meta.block.cpp punctuation.section.block.end.bracket.curly.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.block.end.bracket.curly.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
diff --git a/extensions/cpp/test/colorize-results/test_cpp.json b/extensions/cpp/test/colorize-results/test_cpp.json
index 9702dc50b0b..8d651f04f42 100644
--- a/extensions/cpp/test/colorize-results/test_cpp.json
+++ b/extensions/cpp/test/colorize-results/test_cpp.json
@@ -1,7 +1,7 @@
[
{
"c": "//",
- "t": "source.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp",
+ "t": "source.cpp source.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -12,7 +12,7 @@
},
{
"c": " classes example",
- "t": "source.cpp comment.line.double-slash.cpp",
+ "t": "source.cpp source.cpp comment.line.double-slash.cpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -23,7 +23,7 @@
},
{
"c": "#",
- "t": "source.cpp meta.preprocessor.include.cpp keyword.control.directive.include.cpp punctuation.definition.directive.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.include.cpp keyword.control.directive.include.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -34,7 +34,7 @@
},
{
"c": "include",
- "t": "source.cpp meta.preprocessor.include.cpp keyword.control.directive.include.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.include.cpp keyword.control.directive.include.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -45,7 +45,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.preprocessor.include.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.include.cpp",
"r": {
"dark_plus": "meta.preprocessor: #569CD6",
"light_plus": "meta.preprocessor: #0000FF",
@@ -56,7 +56,7 @@
},
{
"c": "<",
- "t": "source.cpp meta.preprocessor.include.cpp string.quoted.other.lt-gt.include.cpp punctuation.definition.string.begin.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.include.cpp string.quoted.other.lt-gt.include.cpp punctuation.definition.string.begin.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -67,7 +67,7 @@
},
{
"c": "iostream",
- "t": "source.cpp meta.preprocessor.include.cpp string.quoted.other.lt-gt.include.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.include.cpp string.quoted.other.lt-gt.include.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -78,7 +78,7 @@
},
{
"c": ">",
- "t": "source.cpp meta.preprocessor.include.cpp string.quoted.other.lt-gt.include.cpp punctuation.definition.string.end.cpp",
+ "t": "source.cpp source.cpp meta.preprocessor.include.cpp string.quoted.other.lt-gt.include.cpp punctuation.definition.string.end.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -89,7 +89,7 @@
},
{
"c": "using",
- "t": "source.cpp meta.using-namespace.cpp keyword.other.using.directive.cpp",
+ "t": "source.cpp source.cpp meta.using-namespace.cpp keyword.other.using.directive.cpp",
"r": {
"dark_plus": "keyword.other.using: #C586C0",
"light_plus": "keyword.other.using: #AF00DB",
@@ -100,7 +100,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.using-namespace.cpp",
+ "t": "source.cpp source.cpp meta.using-namespace.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -111,7 +111,7 @@
},
{
"c": "namespace",
- "t": "source.cpp meta.using-namespace.cpp keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp",
+ "t": "source.cpp source.cpp meta.using-namespace.cpp keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -122,7 +122,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.using-namespace.cpp",
+ "t": "source.cpp source.cpp meta.using-namespace.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -133,18 +133,18 @@
},
{
"c": "std",
- "t": "source.cpp meta.using-namespace.cpp entity.name.type.namespace.cpp",
+ "t": "source.cpp source.cpp meta.using-namespace.cpp entity.name.namespace.cpp",
"r": {
- "dark_plus": "entity.name.type: #4EC9B0",
- "light_plus": "entity.name.type: #267F99",
+ "dark_plus": "entity.name.namespace: #4EC9B0",
+ "light_plus": "entity.name.namespace: #267F99",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
- "hc_black": "entity.name.type: #4EC9B0"
+ "hc_black": "entity.name.namespace: #4EC9B0"
}
},
{
"c": ";",
- "t": "source.cpp meta.using-namespace.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.using-namespace.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -155,7 +155,7 @@
},
{
"c": "class",
- "t": "source.cpp meta.block.class.cpp meta.head.class.cpp storage.type.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.head.class.cpp storage.type.class.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -166,7 +166,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.class.cpp meta.head.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.head.class.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -177,7 +177,7 @@
},
{
"c": "Rectangle",
- "t": "source.cpp meta.block.class.cpp meta.head.class.cpp entity.name.type.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.head.class.cpp entity.name.type.class.cpp",
"r": {
"dark_plus": "entity.name.type: #4EC9B0",
"light_plus": "entity.name.type: #267F99",
@@ -188,7 +188,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.class.cpp meta.head.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.head.class.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -199,7 +199,7 @@
},
{
"c": "{",
- "t": "source.cpp meta.block.class.cpp meta.head.class.cpp punctuation.section.block.begin.bracket.curly.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.head.class.cpp punctuation.section.block.begin.bracket.curly.class.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -210,7 +210,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -221,7 +221,7 @@
},
{
"c": "int",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp storage.type.primitive.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -232,7 +232,7 @@
},
{
"c": " width",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -243,7 +243,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp comma.cpp punctuation.separator.delimiter.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp comma.cpp punctuation.separator.delimiter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -254,7 +254,7 @@
},
{
"c": " height",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -265,7 +265,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -276,7 +276,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -287,7 +287,7 @@
},
{
"c": "public",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp storage.type.modifier.access.control.public.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp storage.type.modifier.access.control.public.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -298,7 +298,7 @@
},
{
"c": ":",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp storage.type.modifier.access.control.public.cpp colon.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp storage.type.modifier.access.control.public.cpp colon.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -309,7 +309,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.qualified_type.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -320,7 +320,7 @@
},
{
"c": "void",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp storage.type.primitive.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -331,7 +331,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -342,7 +342,7 @@
},
{
"c": "set_values",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp entity.name.function.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -353,7 +353,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -364,7 +364,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -375,7 +375,7 @@
},
{
"c": "int",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp storage.type.primitive.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -386,7 +386,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp comma.cpp punctuation.separator.delimiter.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp comma.cpp punctuation.separator.delimiter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -397,7 +397,7 @@
},
{
"c": "int",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp storage.type.primitive.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -408,7 +408,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -419,7 +419,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -430,7 +430,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.qualified_type.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -441,7 +441,7 @@
},
{
"c": "int",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp storage.type.primitive.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -452,7 +452,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -463,7 +463,7 @@
},
{
"c": "area",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp entity.name.function.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -474,7 +474,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -485,7 +485,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -496,7 +496,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -507,7 +507,7 @@
},
{
"c": "{",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.block.cpp punctuation.section.block.begin.bracket.curly.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.block.begin.bracket.curly.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -518,7 +518,7 @@
},
{
"c": "return",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.block.cpp keyword.control.return.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.control.return.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -529,7 +529,7 @@
},
{
"c": " width",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -540,7 +540,7 @@
},
{
"c": "*",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.block.cpp keyword.operator.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.cpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -551,7 +551,7 @@
},
{
"c": "height",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -562,7 +562,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -573,7 +573,7 @@
},
{
"c": "}",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.block.cpp punctuation.section.block.end.bracket.curly.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.block.end.bracket.curly.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -584,7 +584,7 @@
},
{
"c": "}",
- "t": "source.cpp meta.block.class.cpp meta.body.class.cpp punctuation.section.block.end.bracket.curly.class.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp meta.body.class.cpp punctuation.section.block.end.bracket.curly.class.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -595,7 +595,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.class.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.block.class.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -606,7 +606,7 @@
},
{
"c": "void",
- "t": "source.cpp storage.type.primitive.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -617,7 +617,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.scope-resolution.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -628,18 +628,18 @@
},
{
"c": "Rectangle",
- "t": "source.cpp meta.scope-resolution.cpp entity.name.type.namespace.scope-resolution.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp entity.name.scope-resolution.function.definition.cpp",
"r": {
- "dark_plus": "entity.name.type: #4EC9B0",
- "light_plus": "entity.name.type: #267F99",
+ "dark_plus": "entity.name.scope-resolution: #4EC9B0",
+ "light_plus": "entity.name.scope-resolution: #267F99",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
- "hc_black": "entity.name.type: #4EC9B0"
+ "hc_black": "entity.name.scope-resolution: #4EC9B0"
}
},
{
"c": "::",
- "t": "source.cpp meta.scope-resolution.cpp punctuation.separator.namespace.access.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -650,7 +650,7 @@
},
{
"c": "set_values",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp entity.name.function.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -661,7 +661,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -672,7 +672,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -683,7 +683,7 @@
},
{
"c": "int",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp storage.type.primitive.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -694,7 +694,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -705,7 +705,7 @@
},
{
"c": "x",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp variable.parameter.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp variable.parameter.cpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -716,7 +716,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp comma.cpp punctuation.separator.delimiter.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp comma.cpp punctuation.separator.delimiter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -727,7 +727,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -738,7 +738,7 @@
},
{
"c": "int",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp storage.type.primitive.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -749,7 +749,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -760,7 +760,7 @@
},
{
"c": "y",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp variable.parameter.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters.cpp variable.parameter.cpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -771,7 +771,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -782,7 +782,7 @@
},
{
"c": " ",
- "t": "source.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -793,7 +793,7 @@
},
{
"c": "{",
- "t": "source.cpp meta.block.cpp punctuation.section.block.begin.bracket.curly.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.block.begin.bracket.curly.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -804,7 +804,7 @@
},
{
"c": " width ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -815,7 +815,7 @@
},
{
"c": "=",
- "t": "source.cpp meta.block.cpp keyword.operator.assignment.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.assignment.cpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -826,7 +826,7 @@
},
{
"c": " x",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -837,7 +837,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -848,7 +848,7 @@
},
{
"c": " height ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -859,7 +859,7 @@
},
{
"c": "=",
- "t": "source.cpp meta.block.cpp keyword.operator.assignment.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.assignment.cpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -870,7 +870,7 @@
},
{
"c": " y",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -881,7 +881,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -892,7 +892,7 @@
},
{
"c": "}",
- "t": "source.cpp meta.block.cpp punctuation.section.block.end.bracket.curly.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.block.end.bracket.curly.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -903,7 +903,7 @@
},
{
"c": "int",
- "t": "source.cpp storage.type.primitive.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -914,7 +914,7 @@
},
{
"c": " ",
- "t": "source.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -925,7 +925,7 @@
},
{
"c": "main",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp entity.name.function.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -936,7 +936,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -947,7 +947,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -958,7 +958,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.function.definition.parameters.cpp meta.function.definition.parameters.cpp punctuation.section.parameters.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -969,7 +969,7 @@
},
{
"c": " ",
- "t": "source.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -980,7 +980,7 @@
},
{
"c": "{",
- "t": "source.cpp meta.block.cpp punctuation.section.block.begin.bracket.curly.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.block.begin.bracket.curly.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -991,7 +991,7 @@
},
{
"c": " Rectangle rect",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1002,7 +1002,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1013,7 +1013,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1024,7 +1024,7 @@
},
{
"c": "rect",
- "t": "source.cpp meta.block.cpp variable.other.object.access.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp variable.other.object.access.cpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1035,7 +1035,7 @@
},
{
"c": ".",
- "t": "source.cpp meta.block.cpp punctuation.separator.dot-access.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.dot-access.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1046,18 +1046,18 @@
},
{
"c": "set_values",
- "t": "source.cpp meta.block.cpp variable.other.property.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.member.cpp",
"r": {
- "dark_plus": "variable: #9CDCFE",
- "light_plus": "variable: #001080",
+ "dark_plus": "entity.name.function: #DCDCAA",
+ "light_plus": "entity.name.function: #795E26",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
- "hc_black": "variable: #9CDCFE"
+ "hc_black": "entity.name.function: #DCDCAA"
}
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1068,7 +1068,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.block.cpp meta.parens.block.cpp punctuation.section.parens.begin.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.member.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1079,7 +1079,7 @@
},
{
"c": "3",
- "t": "source.cpp meta.block.cpp meta.parens.block.cpp constant.numeric.decimal.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.numeric.decimal.cpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1090,7 +1090,7 @@
},
{
"c": ",",
- "t": "source.cpp meta.block.cpp meta.parens.block.cpp comma.cpp punctuation.separator.delimiter.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comma.cpp punctuation.separator.delimiter.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1101,7 +1101,7 @@
},
{
"c": "4",
- "t": "source.cpp meta.block.cpp meta.parens.block.cpp constant.numeric.decimal.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.numeric.decimal.cpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1112,7 +1112,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.block.cpp meta.parens.block.cpp punctuation.section.parens.end.bracket.round.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.member.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1123,7 +1123,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1134,7 +1134,7 @@
},
{
"c": " cout ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1145,7 +1145,7 @@
},
{
"c": "<<",
- "t": "source.cpp meta.block.cpp keyword.operator.bitwise.shift.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.bitwise.shift.cpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1156,7 +1156,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1167,7 +1167,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1178,7 +1178,7 @@
},
{
"c": "area: ",
- "t": "source.cpp meta.block.cpp string.quoted.double.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1189,7 +1189,7 @@
},
{
"c": "\"",
- "t": "source.cpp meta.block.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1200,7 +1200,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1211,7 +1211,7 @@
},
{
"c": "<<",
- "t": "source.cpp meta.block.cpp keyword.operator.bitwise.shift.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.bitwise.shift.cpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1222,7 +1222,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1233,7 +1233,7 @@
},
{
"c": "rect",
- "t": "source.cpp meta.block.cpp variable.other.object.access.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp variable.other.object.access.cpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1244,7 +1244,7 @@
},
{
"c": ".",
- "t": "source.cpp meta.block.cpp punctuation.separator.dot-access.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.dot-access.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1255,7 +1255,7 @@
},
{
"c": "area",
- "t": "source.cpp meta.block.cpp entity.name.function.member.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.member.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -1266,7 +1266,7 @@
},
{
"c": "(",
- "t": "source.cpp meta.block.cpp punctuation.section.arguments.begin.bracket.round.function.member.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.member.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1277,7 +1277,7 @@
},
{
"c": ")",
- "t": "source.cpp meta.block.cpp punctuation.section.arguments.end.bracket.round.function.member.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.member.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1288,7 +1288,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1299,7 +1299,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1310,7 +1310,7 @@
},
{
"c": "return",
- "t": "source.cpp meta.block.cpp keyword.control.return.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.control.return.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -1321,7 +1321,7 @@
},
{
"c": " ",
- "t": "source.cpp meta.block.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1332,7 +1332,7 @@
},
{
"c": "0",
- "t": "source.cpp meta.block.cpp constant.numeric.decimal.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.numeric.decimal.cpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1343,7 +1343,7 @@
},
{
"c": ";",
- "t": "source.cpp meta.block.cpp punctuation.terminator.statement.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1354,7 +1354,7 @@
},
{
"c": "}",
- "t": "source.cpp meta.block.cpp punctuation.section.block.end.bracket.curly.cpp",
+ "t": "source.cpp source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.block.end.bracket.curly.function.definition.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
diff --git a/extensions/css-language-features/package.json b/extensions/css-language-features/package.json
index 0b2e83c1d8d..c0104987241 100644
--- a/extensions/css-language-features/package.json
+++ b/extensions/css-language-features/package.json
@@ -736,7 +736,7 @@
"vscode-nls": "^4.0.0"
},
"devDependencies": {
- "@types/node": "^10.12.21",
+ "@types/node": "^10.14.8",
"mocha": "^5.2.0"
}
}
diff --git a/extensions/css-language-features/server/package.json b/extensions/css-language-features/server/package.json
index bc363b1cdb2..05d800740ed 100644
--- a/extensions/css-language-features/server/package.json
+++ b/extensions/css-language-features/server/package.json
@@ -14,7 +14,7 @@
},
"devDependencies": {
"@types/mocha": "2.2.33",
- "@types/node": "^10.12.21",
+ "@types/node": "^10.14.8",
"glob": "^7.1.2",
"mocha": "^5.2.0",
"mocha-junit-reporter": "^1.17.0",
diff --git a/extensions/css-language-features/server/src/test/links.test.ts b/extensions/css-language-features/server/src/test/links.test.ts
new file mode 100644
index 00000000000..e8c5a068e10
--- /dev/null
+++ b/extensions/css-language-features/server/src/test/links.test.ts
@@ -0,0 +1,79 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+import 'mocha';
+import * as assert from 'assert';
+import Uri from 'vscode-uri';
+import { resolve } from 'path';
+import { TextDocument, DocumentLink } from 'vscode-languageserver-types';
+import { WorkspaceFolder } from 'vscode-languageserver-protocol';
+import { getCSSLanguageService } from 'vscode-css-languageservice';
+import { getDocumentContext } from '../utils/documentContext';
+
+export interface ItemDescription {
+ offset: number;
+ value: string;
+ target: string;
+}
+
+suite('Links', () => {
+ const cssLanguageService = getCSSLanguageService();
+
+ let assertLink = function (links: DocumentLink[], expected: ItemDescription, document: TextDocument) {
+ let matches = links.filter(link => {
+ return document.offsetAt(link.range.start) === expected.offset;
+ });
+
+ assert.equal(matches.length, 1, `${expected.offset} should only existing once: Actual: ${links.map(l => document.offsetAt(l.range.start)).join(', ')}`);
+ let match = matches[0];
+ assert.equal(document.getText(match.range), expected.value);
+ assert.equal(match.target, expected.target);
+ };
+
+ function assertLinks(value: string, expected: ItemDescription[], testUri: string, workspaceFolders?: WorkspaceFolder[], lang: string = 'css'): void {
+ const offset = value.indexOf('|');
+ value = value.substr(0, offset) + value.substr(offset + 1);
+
+ const document = TextDocument.create(testUri, lang, 0, value);
+
+ if (!workspaceFolders) {
+ workspaceFolders = [{ name: 'x', uri: testUri.substr(0, testUri.lastIndexOf('/')) }];
+ }
+
+ const context = getDocumentContext(testUri, workspaceFolders);
+
+ const stylesheet = cssLanguageService.parseStylesheet(document);
+ let links = cssLanguageService.findDocumentLinks(document, stylesheet, context)!;
+
+ assert.equal(links.length, expected.length);
+
+ for (let item of expected) {
+ assertLink(links, item, document);
+ }
+ }
+
+ function getTestResource(path: string) {
+ return Uri.file(resolve(__dirname, '../../test/linksTestFixtures', path)).toString();
+ }
+
+ test('url links', function () {
+
+ let testUri = getTestResource('about.css');
+ let folders = [{ name: 'x', uri: getTestResource('') }];
+
+ assertLinks('html { background-image: url("hello.html|")',
+ [{ offset: 29, value: '"hello.html"', target: getTestResource('hello.html') }], testUri, folders
+ );
+ });
+
+ // test('url links', function () {
+
+ // let testUri = getTestResource('about.css');
+ // let folders = [{ name: 'x', uri: getTestResource('') }];
+
+ // assertLinks('html { background-image: url("~foo/hello.html|")',
+ // [{ offset: 29, value: '"~foo/hello.html"', target: getTestResource('node_modules/foo/hello.html') }], testUri, folders
+ // );
+ // });
+});
\ No newline at end of file
diff --git a/extensions/css-language-features/server/src/utils/documentContext.ts b/extensions/css-language-features/server/src/utils/documentContext.ts
index 9858ca84367..41c29989f02 100644
--- a/extensions/css-language-features/server/src/utils/documentContext.ts
+++ b/extensions/css-language-features/server/src/utils/documentContext.ts
@@ -7,6 +7,27 @@ import { DocumentContext } from 'vscode-css-languageservice';
import { endsWith, startsWith } from '../utils/strings';
import * as url from 'url';
import { WorkspaceFolder } from 'vscode-languageserver';
+import URI from 'vscode-uri';
+import { join, dirname } from 'path';
+import { existsSync } from 'fs';
+
+function getModuleNameFromPath(path: string) {
+ // If a scoped module (starts with @) then get up until second instance of '/', otherwise get until first isntance of '/'
+ if (path[0] === '@') {
+ return path.substring(0, path.indexOf('/', path.indexOf('/') + 1));
+ }
+ return path.substring(0, path.indexOf('/'));
+}
+
+function resolvePathToModule(_moduleName: string, _relativeTo: string): string | undefined {
+ // resolve the module relative to the document. We can't use `require` here as the code is webpacked.
+ const documentFolder = dirname(URI.parse(_relativeTo).fsPath);
+ const packPath = join(documentFolder, 'node_modules', _moduleName, 'package.json');
+ if (existsSync(packPath)) {
+ return URI.file(packPath).toString();
+ }
+ return undefined;
+}
export function getDocumentContext(documentUri: string, workspaceFolders: WorkspaceFolder[]): DocumentContext {
function getRootFolder(): string | undefined {
@@ -32,6 +53,18 @@ export function getDocumentContext(documentUri: string, workspaceFolders: Worksp
}
}
}
+ // Following [css-loader](https://github.com/webpack-contrib/css-loader#url)
+ // and [sass-loader's](https://github.com/webpack-contrib/sass-loader#imports)
+ // convention, if an import path starts with ~ then use node module resolution
+ // *unless* it starts with "~/" as this refers to the user's home directory.
+ if (ref[0] === '~' && ref[1] !== '/' && startsWith(base, 'file://')) {
+ const moduleName = getModuleNameFromPath(ref.substring(1));
+ const modulePath = resolvePathToModule(moduleName, base);
+ if (modulePath) {
+ const pathWithinModule = ref.substring(moduleName.length + 2);
+ return url.resolve(modulePath, pathWithinModule);
+ }
+ }
return url.resolve(base, ref);
},
};
diff --git a/extensions/css-language-features/server/test/linksTestFixtures/.gitignore b/extensions/css-language-features/server/test/linksTestFixtures/.gitignore
new file mode 100644
index 00000000000..d591cdfd50a
--- /dev/null
+++ b/extensions/css-language-features/server/test/linksTestFixtures/.gitignore
@@ -0,0 +1 @@
+!/node_modules
\ No newline at end of file
diff --git a/extensions/css-language-features/server/test/linksTestFixtures/node_modules/foo/package.json b/extensions/css-language-features/server/test/linksTestFixtures/node_modules/foo/package.json
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/extensions/css-language-features/server/yarn.lock b/extensions/css-language-features/server/yarn.lock
index 126653c8612..d8f2b53b982 100644
--- a/extensions/css-language-features/server/yarn.lock
+++ b/extensions/css-language-features/server/yarn.lock
@@ -7,10 +7,10 @@
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.33.tgz#d79a0061ec270379f4d9e225f4096fb436669def"
integrity sha1-15oAYewnA3n02eIl9AlvtDZmne8=
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
ansi-regex@^3.0.0:
version "3.0.0"
diff --git a/extensions/css-language-features/yarn.lock b/extensions/css-language-features/yarn.lock
index 385d59738dd..6c3b551509a 100644
--- a/extensions/css-language-features/yarn.lock
+++ b/extensions/css-language-features/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
balanced-match@^1.0.0:
version "1.0.0"
diff --git a/extensions/debug-auto-launch/package.json b/extensions/debug-auto-launch/package.json
index 7b676cfbe60..3129c3477c5 100644
--- a/extensions/debug-auto-launch/package.json
+++ b/extensions/debug-auto-launch/package.json
@@ -49,6 +49,6 @@
"vscode-nls": "^4.0.0"
},
"devDependencies": {
- "@types/node": "8.0.33"
+ "@types/node": "^10.14.8"
}
}
diff --git a/extensions/debug-auto-launch/yarn.lock b/extensions/debug-auto-launch/yarn.lock
index 6767cb8d8c2..e6247e29255 100644
--- a/extensions/debug-auto-launch/yarn.lock
+++ b/extensions/debug-auto-launch/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@types/node@8.0.33":
- version "8.0.33"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.33.tgz#1126e94374014e54478092830704f6ea89df04cd"
- integrity sha512-vmCdO8Bm1ExT+FWfC9sd9r4jwqM7o97gGy2WBshkkXbf/2nLAJQUrZfIhw27yVOtLUev6kSZc4cav/46KbDd8A==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
vscode-nls@^4.0.0:
version "4.0.0"
diff --git a/extensions/debug-server-ready/package.json b/extensions/debug-server-ready/package.json
index ee66be8012d..cd006ce71e6 100644
--- a/extensions/debug-server-ready/package.json
+++ b/extensions/debug-server-ready/package.json
@@ -105,6 +105,6 @@
"vscode-nls": "^4.0.0"
},
"devDependencies": {
- "@types/node": "8.0.33"
+ "@types/node": "^10.14.8"
}
}
diff --git a/extensions/debug-server-ready/yarn.lock b/extensions/debug-server-ready/yarn.lock
index 6767cb8d8c2..e6247e29255 100644
--- a/extensions/debug-server-ready/yarn.lock
+++ b/extensions/debug-server-ready/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@types/node@8.0.33":
- version "8.0.33"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.33.tgz#1126e94374014e54478092830704f6ea89df04cd"
- integrity sha512-vmCdO8Bm1ExT+FWfC9sd9r4jwqM7o97gGy2WBshkkXbf/2nLAJQUrZfIhw27yVOtLUev6kSZc4cav/46KbDd8A==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
vscode-nls@^4.0.0:
version "4.0.0"
diff --git a/extensions/emmet/package.json b/extensions/emmet/package.json
index 9805a694c83..a4aa05180c3 100644
--- a/extensions/emmet/package.json
+++ b/extensions/emmet/package.json
@@ -439,7 +439,7 @@
"deps": "yarn add vscode-emmet-helper"
},
"devDependencies": {
- "@types/node": "8.0.33",
+ "@types/node": "^10.14.8",
"mocha-junit-reporter": "^1.17.0",
"mocha-multi-reporters": "^1.1.7",
"vscode": "1.0.1"
diff --git a/extensions/emmet/src/abbreviationActions.ts b/extensions/emmet/src/abbreviationActions.ts
index f332aff2e00..e548023487f 100644
--- a/extensions/emmet/src/abbreviationActions.ts
+++ b/extensions/emmet/src/abbreviationActions.ts
@@ -491,7 +491,7 @@ export function isValidLocationForEmmetAbbreviation(document: vscode.TextDocumen
}
let valid = true;
- let foundSpace = false; // If < is found before finding whitespace, then its valid abbreviation. Eg:
{
+}
+
+export async function activate(context: ExtensionContext): Promise
{
+ context.subscriptions.push(commands.registerCommand('git.credential', async (data: any) => {
+ try {
+ const { stdout, stderr } = await exec(`git credential ${data.command}`, {
+ stdin: data.stdin,
+ env: Object.assign(process.env, { GIT_TERMINAL_PROMPT: '0' })
+ });
+ return { stdout, stderr, code: 0 };
+ } catch ({ stdout, stderr, error }) {
+ const code = error.code || 0;
+ if (stderr.indexOf('terminal prompts disabled') !== -1) {
+ stderr = '';
+ }
+ return { stdout, stderr, code };
+ }
+ }));
+}
+
+export interface ExecResult {
+ error: Error | null;
+ stdout: string;
+ stderr: string;
+}
+
+
+export function exec(command: string, options: cp.ExecOptions & { stdin?: string } = {}) {
+ return new Promise((resolve, reject) => {
+ const child = cp.exec(command, options, (error, stdout, stderr) => {
+ (error ? reject : resolve)({ error, stdout, stderr });
+ });
+ if (options.stdin) {
+ child.stdin.write(options.stdin, (err: any) => {
+ if (err) {
+ reject(err);
+ return;
+ }
+ child.stdin.end((err: any) => {
+ if (err) {
+ reject(err);
+ }
+ });
+ });
+ }
+ });
+}
diff --git a/src/vs/workbench/api/electron-browser/extensionHost.contribution.ts b/extensions/git-ui/src/typings/refs.d.ts
similarity index 69%
rename from src/vs/workbench/api/electron-browser/extensionHost.contribution.ts
rename to extensions/git-ui/src/typings/refs.d.ts
index ff53f793d50..a933431220b 100644
--- a/src/vs/workbench/api/electron-browser/extensionHost.contribution.ts
+++ b/extensions/git-ui/src/typings/refs.d.ts
@@ -3,5 +3,6 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
-import '../browser/extensionHost.contribution.common';
-import './mainThreadWebview';
+///
+///
+///
\ No newline at end of file
diff --git a/extensions/git-ui/tsconfig.json b/extensions/git-ui/tsconfig.json
new file mode 100644
index 00000000000..27e9268b39b
--- /dev/null
+++ b/extensions/git-ui/tsconfig.json
@@ -0,0 +1,13 @@
+{
+ "extends": "../shared.tsconfig.json",
+ "compilerOptions": {
+ "outDir": "./out",
+ "experimentalDecorators": true,
+ "typeRoots": [
+ "./node_modules/@types"
+ ]
+ },
+ "include": [
+ "src/**/*"
+ ]
+}
\ No newline at end of file
diff --git a/extensions/git-ui/yarn.lock b/extensions/git-ui/yarn.lock
new file mode 100644
index 00000000000..b23b0ac0392
--- /dev/null
+++ b/extensions/git-ui/yarn.lock
@@ -0,0 +1,8 @@
+# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
+# yarn lockfile v1
+
+
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
diff --git a/extensions/git/package.json b/extensions/git/package.json
index a6cf112f69a..22b473fd41d 100644
--- a/extensions/git/package.json
+++ b/extensions/git/package.json
@@ -20,7 +20,8 @@
"scripts": {
"compile": "gulp compile-extension:git",
"watch": "gulp watch-extension:git",
- "update-grammar": "node ./build/update-grammars.js"
+ "update-grammar": "node ./build/update-grammars.js",
+ "test": "mocha"
},
"contributes": {
"commands": [
@@ -1458,13 +1459,14 @@
"jschardet": "^1.6.0",
"vscode-extension-telemetry": "0.1.1",
"vscode-nls": "^4.0.0",
+ "vscode-uri": "^2.0.0",
"which": "^1.3.0"
},
"devDependencies": {
"@types/byline": "4.2.31",
"@types/file-type": "^5.2.1",
"@types/mocha": "2.2.43",
- "@types/node": "^10.12.21",
+ "@types/node": "^10.14.8",
"@types/which": "^1.0.28",
"mocha": "^3.2.0"
}
diff --git a/extensions/git/src/git.ts b/extensions/git/src/git.ts
index aa6eb1e9a59..ea3e22eec82 100644
--- a/extensions/git/src/git.ts
+++ b/extensions/git/src/git.ts
@@ -12,7 +12,8 @@ import { EventEmitter } from 'events';
import iconv = require('iconv-lite');
import * as filetype from 'file-type';
import { assign, groupBy, denodeify, IDisposable, toDisposable, dispose, mkdirp, readBytes, detectUnicodeEncoding, Encoding, onceEvent } from './util';
-import { CancellationToken, Uri, workspace } from 'vscode';
+import { CancellationToken } from 'vscode';
+import { URI } from 'vscode-uri';
import { detectEncoding } from './encoding';
import { Ref, RefType, Branch, Remote, GitErrorCodes, LogOptions, Change, Status } from './api/git';
@@ -557,7 +558,7 @@ export function parseGitmodules(raw: string): Submodule[] {
return;
}
- const propertyMatch = /^\s*(\w+) = (.*)$/.exec(line);
+ const propertyMatch = /^\s*(\w+)\s+=\s+(.*)$/.exec(line);
if (!propertyMatch) {
return;
@@ -636,6 +637,7 @@ export interface CommitOptions {
export interface PullOptions {
unshallow?: boolean;
+ tags?: boolean;
}
export enum ForcePushMode {
@@ -995,7 +997,7 @@ export class Repository {
break;
}
- const originalUri = Uri.file(path.isAbsolute(resourcePath) ? resourcePath : path.join(this.repositoryRoot, resourcePath));
+ const originalUri = URI.file(path.isAbsolute(resourcePath) ? resourcePath : path.join(this.repositoryRoot, resourcePath));
let status: Status = Status.UNTRACKED;
// Copy or Rename status comes with a number, e.g. 'R100'. We don't need the number, so we use only first character of the status.
@@ -1023,7 +1025,7 @@ export class Repository {
break;
}
- const uri = Uri.file(path.isAbsolute(newPath) ? newPath : path.join(this.repositoryRoot, newPath));
+ const uri = URI.file(path.isAbsolute(newPath) ? newPath : path.join(this.repositoryRoot, newPath));
result.push({
uri,
renameUri: uri,
@@ -1363,9 +1365,8 @@ export class Repository {
async pull(rebase?: boolean, remote?: string, branch?: string, options: PullOptions = {}): Promise {
const args = ['pull'];
- const config = workspace.getConfiguration('git', Uri.file(this.root));
- if (config.get('pullTags')) {
+ if (options.tags) {
args.push('--tags');
}
diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts
index e81a3be3d4e..33106400301 100644
--- a/extensions/git/src/repository.ts
+++ b/extensions/git/src/repository.ts
@@ -984,11 +984,12 @@ export class Repository implements Disposable {
await this.maybeAutoStash(async () => {
const config = workspace.getConfiguration('git', Uri.file(this.root));
const fetchOnPull = config.get('fetchOnPull');
+ const tags = config.get('pullTags');
if (fetchOnPull) {
- await this.repository.pull(rebase, undefined, undefined, { unshallow });
+ await this.repository.pull(rebase, undefined, undefined, { unshallow, tags });
} else {
- await this.repository.pull(rebase, remote, branch, { unshallow });
+ await this.repository.pull(rebase, remote, branch, { unshallow, tags });
}
});
});
@@ -1044,11 +1045,12 @@ export class Repository implements Disposable {
await this.maybeAutoStash(async () => {
const config = workspace.getConfiguration('git', Uri.file(this.root));
const fetchOnPull = config.get('fetchOnPull');
+ const tags = config.get('pullTags');
if (fetchOnPull) {
- await this.repository.pull(rebase);
+ await this.repository.pull(rebase, undefined, undefined, { tags });
} else {
- await this.repository.pull(rebase, remoteName, pullBranch);
+ await this.repository.pull(rebase, remoteName, pullBranch, { tags });
}
const remote = this.remotes.find(r => r.name === remoteName);
diff --git a/extensions/git/src/test/git.test.ts b/extensions/git/src/test/git.test.ts
index e28cf10d192..f0444ce5795 100644
--- a/extensions/git/src/test/git.test.ts
+++ b/extensions/git/src/test/git.test.ts
@@ -172,6 +172,17 @@ suite('git', () => {
{ name: 'deps/spdlog4', path: 'deps/spdlog4', url: 'https://github.com/gabime/spdlog4.git' }
]);
});
+
+ test('whitespace #74844', () => {
+ const sample = `[submodule "deps/spdlog"]
+ path = deps/spdlog
+ url = https://github.com/gabime/spdlog.git
+`;
+
+ assert.deepEqual(parseGitmodules(sample), [
+ { name: 'deps/spdlog', path: 'deps/spdlog', url: 'https://github.com/gabime/spdlog.git' }
+ ]);
+ });
});
suite('parseGitCommit', () => {
diff --git a/extensions/git/yarn.lock b/extensions/git/yarn.lock
index f13ef93c34f..1f2ea8aed42 100644
--- a/extensions/git/yarn.lock
+++ b/extensions/git/yarn.lock
@@ -26,10 +26,10 @@
resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.51.tgz#b31d716fb8d58eeb95c068a039b9b6292817d5fb"
integrity sha512-El3+WJk2D/ppWNd2X05aiP5l2k4EwF7KwheknQZls+I26eSICoWRhRIJ56jGgw2dqNGQ5LtNajmBU2ajS28EvQ==
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
"@types/which@^1.0.28":
version "1.0.28"
@@ -325,6 +325,11 @@ vscode-nls@^4.0.0:
resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-4.0.0.tgz#4001c8a6caba5cedb23a9c5ce1090395c0e44002"
integrity sha512-qCfdzcH+0LgQnBpZA53bA32kzp9rpq/f66Som577ObeuDlFIrtbEJ+A/+CCxjIh4G8dpJYNCKIsxpRAHIfsbNw==
+vscode-uri@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.0.0.tgz#2df704222f72b8a71ff266ba0830ed6c51ac1542"
+ integrity sha512-lWXWofDSYD8r/TIyu64MdwB4FaSirQ608PP/TzUyslyOeHGwQ0eTHUZeJrK1ILOmwUHaJtV693m2JoUYroUDpw==
+
which@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a"
diff --git a/extensions/grunt/package.json b/extensions/grunt/package.json
index 74fa452028a..75957f87064 100644
--- a/extensions/grunt/package.json
+++ b/extensions/grunt/package.json
@@ -19,7 +19,7 @@
"vscode-nls": "^4.0.0"
},
"devDependencies": {
- "@types/node": "^10.12.21"
+ "@types/node": "^10.14.8"
},
"main": "./out/main",
"activationEvents": [
diff --git a/extensions/grunt/yarn.lock b/extensions/grunt/yarn.lock
index 1bcd757b8a1..e6247e29255 100644
--- a/extensions/grunt/yarn.lock
+++ b/extensions/grunt/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
vscode-nls@^4.0.0:
version "4.0.0"
diff --git a/extensions/gulp/package.json b/extensions/gulp/package.json
index a9139780f7a..7115e7e770f 100644
--- a/extensions/gulp/package.json
+++ b/extensions/gulp/package.json
@@ -19,7 +19,7 @@
"vscode-nls": "^4.0.0"
},
"devDependencies": {
- "@types/node": "^10.12.21"
+ "@types/node": "^10.14.8"
},
"main": "./out/main",
"activationEvents": [
diff --git a/extensions/gulp/yarn.lock b/extensions/gulp/yarn.lock
index 1bcd757b8a1..e6247e29255 100644
--- a/extensions/gulp/yarn.lock
+++ b/extensions/gulp/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
vscode-nls@^4.0.0:
version "4.0.0"
diff --git a/extensions/html-language-features/package.json b/extensions/html-language-features/package.json
index e44dc9f7102..d3d4db6dc15 100644
--- a/extensions/html-language-features/package.json
+++ b/extensions/html-language-features/package.json
@@ -180,6 +180,6 @@
"vscode-nls": "^4.0.0"
},
"devDependencies": {
- "@types/node": "^10.12.21"
+ "@types/node": "^10.14.8"
}
}
diff --git a/extensions/html-language-features/server/package.json b/extensions/html-language-features/server/package.json
index 7c90bfb52c9..dd930a80bb2 100644
--- a/extensions/html-language-features/server/package.json
+++ b/extensions/html-language-features/server/package.json
@@ -18,7 +18,7 @@
},
"devDependencies": {
"@types/mocha": "2.2.33",
- "@types/node": "^10.12.21",
+ "@types/node": "^10.14.8",
"glob": "^7.1.2",
"mocha": "^5.2.0",
"mocha-junit-reporter": "^1.17.0",
diff --git a/extensions/html-language-features/server/yarn.lock b/extensions/html-language-features/server/yarn.lock
index 6bdbac4e1a2..f3b5a845d2a 100644
--- a/extensions/html-language-features/server/yarn.lock
+++ b/extensions/html-language-features/server/yarn.lock
@@ -7,10 +7,10 @@
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.33.tgz#d79a0061ec270379f4d9e225f4096fb436669def"
integrity sha1-15oAYewnA3n02eIl9AlvtDZmne8=
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
ansi-regex@^3.0.0:
version "3.0.0"
diff --git a/extensions/html-language-features/yarn.lock b/extensions/html-language-features/yarn.lock
index a0667775d59..7665682bf37 100644
--- a/extensions/html-language-features/yarn.lock
+++ b/extensions/html-language-features/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
applicationinsights@1.0.8:
version "1.0.8"
diff --git a/extensions/ini/package.json b/extensions/ini/package.json
index abe1dbecc65..b439b4c6701 100644
--- a/extensions/ini/package.json
+++ b/extensions/ini/package.json
@@ -17,9 +17,9 @@
},
{
"id": "properties",
- "extensions": [ ".properties", ".cfg", ".conf", ".desktop", ".directory" ],
+ "extensions": [ ".properties", ".cfg", ".conf", ".directory" ],
"filenames": [ ".gitattributes", ".gitconfig", "gitconfig", ".editorconfig" ],
- "filenamePatterns": [ "**/.git/config" ],
+ "filenamePatterns": [ "**/.config/git/config", "**/.git/config" ],
"aliases": [ "Properties", "properties" ],
"configuration": "./properties.language-configuration.json"
}],
diff --git a/extensions/jake/package.json b/extensions/jake/package.json
index 30962bd7616..93bb838ed54 100644
--- a/extensions/jake/package.json
+++ b/extensions/jake/package.json
@@ -19,7 +19,7 @@
"vscode-nls": "^4.0.0"
},
"devDependencies": {
- "@types/node": "^10.12.21"
+ "@types/node": "^10.14.8"
},
"main": "./out/main",
"activationEvents": [
diff --git a/extensions/jake/yarn.lock b/extensions/jake/yarn.lock
index 1bcd757b8a1..e6247e29255 100644
--- a/extensions/jake/yarn.lock
+++ b/extensions/jake/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
vscode-nls@^4.0.0:
version "4.0.0"
diff --git a/extensions/json-language-features/package.json b/extensions/json-language-features/package.json
index 9dc4f87d9f0..2ee9f740947 100644
--- a/extensions/json-language-features/package.json
+++ b/extensions/json-language-features/package.json
@@ -107,6 +107,6 @@
"request-light": "^0.2.4"
},
"devDependencies": {
- "@types/node": "^10.12.21"
+ "@types/node": "^10.14.8"
}
}
diff --git a/extensions/json-language-features/server/package.json b/extensions/json-language-features/server/package.json
index 1f73cea2295..054c0fe0178 100644
--- a/extensions/json-language-features/server/package.json
+++ b/extensions/json-language-features/server/package.json
@@ -21,7 +21,7 @@
},
"devDependencies": {
"@types/mocha": "2.2.33",
- "@types/node": "^10.12.21"
+ "@types/node": "^10.14.8"
},
"scripts": {
"prepublishOnly": "npm run clean && npm run test",
diff --git a/extensions/json-language-features/server/yarn.lock b/extensions/json-language-features/server/yarn.lock
index 3f0383a8c4f..c7e54ce8845 100644
--- a/extensions/json-language-features/server/yarn.lock
+++ b/extensions/json-language-features/server/yarn.lock
@@ -7,10 +7,10 @@
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.33.tgz#d79a0061ec270379f4d9e225f4096fb436669def"
integrity sha1-15oAYewnA3n02eIl9AlvtDZmne8=
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
agent-base@4, agent-base@^4.1.0:
version "4.1.2"
diff --git a/extensions/json-language-features/yarn.lock b/extensions/json-language-features/yarn.lock
index 758f96fd511..0f11fa9d58d 100644
--- a/extensions/json-language-features/yarn.lock
+++ b/extensions/json-language-features/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
agent-base@4, agent-base@^4.1.0:
version "4.2.1"
diff --git a/extensions/markdown-language-features/package.json b/extensions/markdown-language-features/package.json
index 10431185034..5637b6061da 100644
--- a/extensions/markdown-language-features/package.json
+++ b/extensions/markdown-language-features/package.json
@@ -303,7 +303,7 @@
"build-preview": "webpack --mode development"
},
"dependencies": {
- "highlight.js": "9.13.1",
+ "highlight.js": "9.15.8",
"markdown-it": "^8.4.2",
"markdown-it-front-matter": "^0.1.2",
"vscode-extension-telemetry": "0.1.1",
@@ -313,7 +313,7 @@
"@types/highlight.js": "9.12.3",
"@types/lodash.throttle": "^4.1.3",
"@types/markdown-it": "0.0.2",
- "@types/node": "^10.12.21",
+ "@types/node": "^10.14.8",
"lodash.throttle": "^4.1.1",
"mocha-junit-reporter": "^1.17.0",
"mocha-multi-reporters": "^1.1.7",
diff --git a/extensions/markdown-language-features/yarn.lock b/extensions/markdown-language-features/yarn.lock
index e85ae950b3a..a1b876e7dc8 100644
--- a/extensions/markdown-language-features/yarn.lock
+++ b/extensions/markdown-language-features/yarn.lock
@@ -29,10 +29,10 @@
resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-0.0.2.tgz#5d9ad19e6e6508cdd2f2596df86fd0aade598660"
integrity sha1-XZrRnm5lCM3S8llt+G/Qqt5ZhmA=
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
abbrev@1:
version "1.1.1"
@@ -2933,10 +2933,10 @@ he@1.1.1:
resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd"
integrity sha1-k0EP0hsAlzUVH4howvJx80J+I/0=
-highlight.js@9.13.1:
- version "9.13.1"
- resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.13.1.tgz#054586d53a6863311168488a0f58d6c505ce641e"
- integrity sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==
+highlight.js@9.15.8:
+ version "9.15.8"
+ resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.15.8.tgz#f344fda123f36f1a65490e932cf90569e4999971"
+ integrity sha512-RrapkKQWwE+wKdF73VsOa2RQdIoO3mxwJ4P8mhbI6KYJUraUHRKM5w5zQQKXNk0xNL4UVRdulV9SBJcmzJNzVA==
hmac-drbg@^1.0.0:
version "1.0.1"
diff --git a/extensions/merge-conflict/package.json b/extensions/merge-conflict/package.json
index e017edebf7b..3485db0e65f 100644
--- a/extensions/merge-conflict/package.json
+++ b/extensions/merge-conflict/package.json
@@ -137,6 +137,6 @@
"vscode-nls": "^4.0.0"
},
"devDependencies": {
- "@types/node": "8.0.33"
+ "@types/node": "^10.14.8"
}
}
diff --git a/extensions/merge-conflict/yarn.lock b/extensions/merge-conflict/yarn.lock
index 6767cb8d8c2..e6247e29255 100644
--- a/extensions/merge-conflict/yarn.lock
+++ b/extensions/merge-conflict/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@types/node@8.0.33":
- version "8.0.33"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.33.tgz#1126e94374014e54478092830704f6ea89df04cd"
- integrity sha512-vmCdO8Bm1ExT+FWfC9sd9r4jwqM7o97gGy2WBshkkXbf/2nLAJQUrZfIhw27yVOtLUev6kSZc4cav/46KbDd8A==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
vscode-nls@^4.0.0:
version "4.0.0"
diff --git a/extensions/npm/package.json b/extensions/npm/package.json
index 43dc6a21557..7da5968737c 100644
--- a/extensions/npm/package.json
+++ b/extensions/npm/package.json
@@ -24,7 +24,7 @@
},
"devDependencies": {
"@types/minimatch": "^3.0.3",
- "@types/node": "^10.12.21"
+ "@types/node": "^10.14.8"
},
"main": "./out/main",
"activationEvents": [
diff --git a/extensions/npm/yarn.lock b/extensions/npm/yarn.lock
index ca339ed8150..e80a4ca5a2d 100644
--- a/extensions/npm/yarn.lock
+++ b/extensions/npm/yarn.lock
@@ -7,10 +7,10 @@
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
agent-base@4, agent-base@^4.1.0:
version "4.2.0"
diff --git a/extensions/objective-c/build/update-grammars.js b/extensions/objective-c/build/update-grammars.js
new file mode 100644
index 00000000000..52dd76e06a1
--- /dev/null
+++ b/extensions/objective-c/build/update-grammars.js
@@ -0,0 +1,11 @@
+/*---------------------------------------------------------------------------------------------
+ * 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/objc.tmLanguage.json', './syntaxes/objective-c.tmLanguage.json');
+updateGrammar.update('jeff-hykin/cpp-textmate-grammar', '/syntaxes/objcpp.tmLanguage.json', './syntaxes/objective-c++.tmLanguage.json');
+
diff --git a/extensions/objective-c/cgmanifest.json b/extensions/objective-c/cgmanifest.json
index a73bf659af5..fc610c254ee 100644
--- a/extensions/objective-c/cgmanifest.json
+++ b/extensions/objective-c/cgmanifest.json
@@ -4,27 +4,14 @@
"component": {
"type": "git",
"git": {
- "name": "atom/language-objective-c",
- "repositoryUrl": "https://github.com/atom/language-objective-c",
- "commitHash": "7fdf0c40ec1d592a902ed6a7cf5565bdf12e2ae8"
+ "name": "jeff-hykin/cpp-textmate-grammar",
+ "repositoryUrl": "https://github.com/jeff-hykin/cpp-textmate-grammar",
+ "commitHash": "efa8ce61762d0481a1b710fdbc12e284867cdc8f"
}
},
"license": "MIT",
- "description": "The files syntaxes/objective-c.tmLanguage.json and syntaxes/objective-c++.tmLanguage.json were derived from the Atom package https://github.com/atom/language-objective-c which was originally converted from the TextMate bundle https://github.com/textmate/objective-c.tmbundle.",
- "version": "0.15.0"
- },
- {
- "component": {
- "type": "git",
- "git": {
- "name": "atom/language-c",
- "repositoryUrl": "https://github.com/atom/language-c",
- "commitHash": "9c0c5f202741a5647025db8d5df5fefba47b036c"
- }
- },
- "license": "MIT",
- "version": "0.58.1",
- "description": "The files syntaxes/c.json and syntaxes/c++.json were derived from the Atom package https://atom.io/packages/language-c which was originally converted from the C TextMate bundle https://github.com/textmate/c.tmbundle."
+ "version": "1.11.0",
+ "description": "The files syntaxes/objective-c.tmLanguage.json and syntaxes/objective-c++.tmLanguage.json were derived from the language package https://github.com/jeff-hykin/cpp-textmate-grammar."
}
],
"version": 1
diff --git a/extensions/objective-c/package.json b/extensions/objective-c/package.json
index 944b68e0538..2fcbd2643ab 100644
--- a/extensions/objective-c/package.json
+++ b/extensions/objective-c/package.json
@@ -8,7 +8,7 @@
"vscode": "*"
},
"scripts": {
- "update-grammar": "node ../../build/npm/update-grammar.js atom/language-objective-c grammars/objective-c.cson ./syntaxes/objective-c.tmLanguage.json && node ../../build/npm/update-grammar.js atom/language-objective-c grammars/objective-c%2B%2B.cson ./syntaxes/objective-c++.tmLanguage.json"
+ "update-grammar": "node ./build/update-grammars.js"
},
"contributes": {
"languages": [
diff --git a/extensions/objective-c/syntaxes/cpp.tmLanguage.json b/extensions/objective-c/syntaxes/cpp.tmLanguage.json
deleted file mode 100644
index 059ce9442db..00000000000
--- a/extensions/objective-c/syntaxes/cpp.tmLanguage.json
+++ /dev/null
@@ -1,447 +0,0 @@
-{
- "information_for_contributors": [
- "This file has been converted from https://github.com/atom/language-c/blob/master/grammars/c%2B%2B.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-c/commit/3a269f88b12e512fb9495dc006a1dabf325d3d7f",
- "name": "C++",
- "scopeName": "source.cppold",
- "patterns": [
- {
- "include": "#special_block"
- },
- {
- "include": "#strings"
- },
- {
- "match": "\\b(friend|explicit|virtual|override|final|noexcept)\\b",
- "name": "storage.modifier.cpp"
- },
- {
- "match": "\\b(private:|protected:|public:)",
- "name": "storage.modifier.cpp"
- },
- {
- "match": "\\b(catch|operator|try|throw|using)\\b",
- "name": "keyword.control.cpp"
- },
- {
- "match": "\\bdelete\\b(\\s*\\[\\])?|\\bnew\\b(?!])",
- "name": "keyword.control.cpp"
- },
- {
- "match": "\\b(f|m)[A-Z]\\w*\\b",
- "name": "variable.other.readwrite.member.cpp"
- },
- {
- "match": "\\bthis\\b",
- "name": "variable.language.this.cpp"
- },
- {
- "match": "\\bnullptr\\b",
- "name": "constant.language.cpp"
- },
- {
- "match": "\\btemplate\\b\\s*",
- "name": "storage.type.template.cpp"
- },
- {
- "match": "\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*",
- "name": "keyword.operator.cast.cpp"
- },
- {
- "match": "::",
- "name": "punctuation.separator.namespace.access.cpp"
- },
- {
- "match": "\\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\b",
- "name": "keyword.operator.cpp"
- },
- {
- "match": "\\b(class|decltype|wchar_t|char16_t|char32_t)\\b",
- "name": "storage.type.cpp"
- },
- {
- "match": "\\b(constexpr|export|mutable|typename|thread_local)\\b",
- "name": "storage.modifier.cpp"
- },
- {
- "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?",
- "name": "meta.angle-brackets.cpp",
- "patterns": [
- {
- "include": "#angle_brackets"
- },
- {
- "include": "$base"
- }
- ]
- },
- "block": {
- "begin": "\\{",
- "beginCaptures": {
- "0": {
- "name": "punctuation.section.block.begin.bracket.curly.c"
- }
- },
- "end": "\\}",
- "endCaptures": {
- "0": {
- "name": "punctuation.section.block.end.bracket.curly.c"
- }
- },
- "name": "meta.block.cpp",
- "patterns": [
- {
- "captures": {
- "1": {
- "name": "support.function.any-method.c"
- },
- "2": {
- "name": "punctuation.definition.parameters.c"
- }
- },
- "match": "(?x)\n(\n (?!while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket",
- "name": "meta.function-call.c"
- },
- {
- "include": "$base"
- }
- ]
- },
- "constructor": {
- "patterns": [
- {
- "begin": "(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch|enumerate|r?iterate)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket",
- "beginCaptures": {
- "1": {
- "name": "entity.name.function.cpp"
- },
- "2": {
- "name": "punctuation.definition.parameters.begin.c"
- }
- },
- "end": "\\)",
- "endCaptures": {
- "0": {
- "name": "punctuation.definition.parameters.end.c"
- }
- },
- "name": "meta.function.constructor.cpp",
- "patterns": [
- {
- "include": "$base"
- }
- ]
- },
- {
- "begin": "(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)",
- "beginCaptures": {
- "1": {
- "name": "punctuation.definition.parameters.c"
- }
- },
- "end": "(?=\\{)",
- "name": "meta.function.constructor.initializer-list.cpp",
- "patterns": [
- {
- "include": "$base"
- }
- ]
- }
- ]
- },
- "special_block": {
- "patterns": [
- {
- "begin": "\\b(using)\\b\\s*(namespace)\\b\\s*((?:[_A-Za-z][_A-Za-z0-9]*\\b(::)?)*)",
- "beginCaptures": {
- "1": {
- "name": "keyword.control.cpp"
- },
- "2": {
- "name": "storage.type.cpp"
- },
- "3": {
- "name": "entity.name.type.cpp"
- }
- },
- "end": "(;)",
- "name": "meta.using-namespace-declaration.cpp"
- },
- {
- "begin": "\\b(namespace)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+",
- "beginCaptures": {
- "1": {
- "name": "storage.type.cpp"
- },
- "2": {
- "name": "entity.name.type.cpp"
- }
- },
- "captures": {
- "1": {
- "name": "keyword.control.namespace.$2"
- }
- },
- "end": "(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))",
- "name": "meta.namespace-block.cpp",
- "patterns": [
- {
- "begin": "\\{",
- "beginCaptures": {
- "0": {
- "name": "punctuation.definition.scope.cpp"
- }
- },
- "end": "\\}",
- "endCaptures": {
- "0": {
- "name": "punctuation.definition.scope.cpp"
- }
- },
- "patterns": [
- {
- "include": "#special_block"
- },
- {
- "include": "#constructor"
- },
- {
- "include": "$base"
- }
- ]
- },
- {
- "include": "$base"
- }
- ]
- },
- {
- "begin": "\\b(class|struct)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?",
- "beginCaptures": {
- "1": {
- "name": "storage.type.cpp"
- },
- "2": {
- "name": "entity.name.type.cpp"
- },
- "4": {
- "name": "storage.type.modifier.cpp"
- },
- "5": {
- "name": "entity.name.type.inherited.cpp"
- },
- "6": {
- "patterns": [
- {
- "match": "(public|protected|private)",
- "name": "storage.type.modifier.cpp"
- },
- {
- "match": "[_A-Za-z][_A-Za-z0-9]*",
- "name": "entity.name.type.inherited.cpp"
- }
- ]
- }
- },
- "end": "(?<=\\})|(?=(;|\\(|\\)|>|\\[|\\]|=))",
- "name": "meta.class-struct-block.cpp",
- "patterns": [
- {
- "include": "#angle_brackets"
- },
- {
- "begin": "\\{",
- "beginCaptures": {
- "0": {
- "name": "punctuation.section.block.begin.bracket.curly.cpp"
- }
- },
- "end": "(\\})(\\s*\\n)?",
- "endCaptures": {
- "1": {
- "name": "punctuation.section.block.end.bracket.curly.cpp"
- },
- "2": {
- "name": "invalid.illegal.you-forgot-semicolon.cpp"
- }
- },
- "patterns": [
- {
- "include": "#special_block"
- },
- {
- "include": "#constructor"
- },
- {
- "include": "$base"
- }
- ]
- },
- {
- "include": "$base"
- }
- ]
- },
- {
- "begin": "\\b(extern)(?=\\s*\")",
- "beginCaptures": {
- "1": {
- "name": "storage.modifier.cpp"
- }
- },
- "end": "(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)",
- "name": "meta.extern-block.cpp",
- "patterns": [
- {
- "begin": "\\{",
- "beginCaptures": {
- "0": {
- "name": "punctuation.section.block.begin.bracket.curly.c"
- }
- },
- "end": "\\}|(?=\\s*#\\s*endif\\b)",
- "endCaptures": {
- "0": {
- "name": "punctuation.section.block.end.bracket.curly.c"
- }
- },
- "patterns": [
- {
- "include": "#special_block"
- },
- {
- "include": "$base"
- }
- ]
- },
- {
- "include": "$base"
- }
- ]
- }
- ]
- },
- "strings": {
- "patterns": [
- {
- "begin": "(u|u8|U|L)?\"",
- "beginCaptures": {
- "0": {
- "name": "punctuation.definition.string.begin.cpp"
- },
- "1": {
- "name": "meta.encoding.cpp"
- }
- },
- "end": "\"",
- "endCaptures": {
- "0": {
- "name": "punctuation.definition.string.end.cpp"
- }
- },
- "name": "string.quoted.double.cpp",
- "patterns": [
- {
- "match": "\\\\u\\h{4}|\\\\U\\h{8}",
- "name": "constant.character.escape.cpp"
- },
- {
- "match": "\\\\['\"?\\\\abfnrtv]",
- "name": "constant.character.escape.cpp"
- },
- {
- "match": "\\\\[0-7]{1,3}",
- "name": "constant.character.escape.cpp"
- },
- {
- "match": "\\\\x\\h+",
- "name": "constant.character.escape.cpp"
- },
- {
- "include": "source.c#string_placeholder"
- }
- ]
- },
- {
- "begin": "(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(",
- "beginCaptures": {
- "0": {
- "name": "punctuation.definition.string.begin.cpp"
- },
- "1": {
- "name": "meta.encoding.cpp"
- },
- "3": {
- "name": "invalid.illegal.delimiter-too-long.cpp"
- }
- },
- "end": "\\)\\2(\\3)\"",
- "endCaptures": {
- "0": {
- "name": "punctuation.definition.string.end.cpp"
- },
- "1": {
- "name": "invalid.illegal.delimiter-too-long.cpp"
- }
- },
- "name": "string.quoted.double.raw.cpp"
- }
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/extensions/objective-c/syntaxes/objective-c++.tmLanguage.json b/extensions/objective-c/syntaxes/objective-c++.tmLanguage.json
index 8c48f5282d3..5f5f57ccc7a 100644
--- a/extensions/objective-c/syntaxes/objective-c++.tmLanguage.json
+++ b/extensions/objective-c/syntaxes/objective-c++.tmLanguage.json
@@ -1,18 +1,7098 @@
{
"information_for_contributors": [
- "This file has been converted from https://github.com/atom/language-objective-c/blob/master/grammars/objective-c%2B%2B.cson",
+ "This file has been converted from https://github.com/jeff-hykin/cpp-textmate-grammar/blob/master//syntaxes/objcpp.tmLanguage.json",
"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-objective-c/commit/7fdf0c40ec1d592a902ed6a7cf5565bdf12e2ae8",
+ "version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/8d3cf8028835c68e75e42d0bd3192c837847a419",
"name": "Objective-C++",
"scopeName": "source.objcpp",
"patterns": [
{
- "include": "source.cppold"
+ "include": "#cpp_lang"
},
{
- "include": "source.objc"
+ "begin": "((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?",
+ "captures": {
+ "1": {
+ "name": "storage.type.objcpp"
+ },
+ "2": {
+ "name": "punctuation.definition.storage.type.objcpp"
+ },
+ "4": {
+ "name": "entity.name.type.objcpp"
+ },
+ "6": {
+ "name": "punctuation.definition.entity.other.inherited-class.objcpp"
+ },
+ "7": {
+ "name": "entity.other.inherited-class.objcpp"
+ },
+ "8": {
+ "name": "meta.divider.objcpp"
+ },
+ "9": {
+ "name": "meta.inherited-class.objcpp"
+ }
+ },
+ "contentName": "meta.scope.interface.objcpp",
+ "end": "((@)end)\\b",
+ "name": "meta.interface-or-protocol.objcpp",
+ "patterns": [
+ {
+ "include": "#interface_innards"
+ }
+ ]
+ },
+ {
+ "begin": "((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?",
+ "captures": {
+ "1": {
+ "name": "storage.type.objcpp"
+ },
+ "2": {
+ "name": "punctuation.definition.storage.type.objcpp"
+ },
+ "4": {
+ "name": "entity.name.type.objcpp"
+ },
+ "5": {
+ "name": "entity.other.inherited-class.objcpp"
+ }
+ },
+ "contentName": "meta.scope.implementation.objcpp",
+ "end": "((@)end)\\b",
+ "name": "meta.implementation.objcpp",
+ "patterns": [
+ {
+ "include": "#implementation_innards"
+ }
+ ]
+ },
+ {
+ "begin": "@\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.objcpp"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objcpp"
+ }
+ },
+ "name": "string.quoted.double.objcpp",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ },
+ {
+ "match": "(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t[@] # conversion type\n\t\t\t\t\t",
+ "name": "constant.other.placeholder.objcpp"
+ },
+ {
+ "include": "#string_placeholder"
+ }
+ ]
+ },
+ {
+ "begin": "\\b(id)\\s*(?=<)",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.objcpp"
+ }
+ },
+ "end": "(?<=>)",
+ "name": "meta.id-with-protocol.objcpp",
+ "patterns": [
+ {
+ "include": "#protocol_list"
+ }
+ ]
+ },
+ {
+ "match": "\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b",
+ "name": "keyword.control.macro.objcpp"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.keyword.objcpp"
+ }
+ },
+ "match": "(@)(try|catch|finally|throw)\\b",
+ "name": "keyword.control.exception.objcpp"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.keyword.objcpp"
+ }
+ },
+ "match": "(@)(synchronized)\\b",
+ "name": "keyword.control.synchronize.objcpp"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.keyword.objcpp"
+ }
+ },
+ "match": "(@)(required|optional)\\b",
+ "name": "keyword.control.protocol-specification.objcpp"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.keyword.objcpp"
+ }
+ },
+ "match": "(@)(defs|encode)\\b",
+ "name": "keyword.other.objcpp"
+ },
+ {
+ "match": "\\bid\\b",
+ "name": "storage.type.id.objcpp"
+ },
+ {
+ "match": "\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b",
+ "name": "storage.type.objcpp"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.storage.type.objcpp"
+ }
+ },
+ "match": "(@)(class|protocol)\\b",
+ "name": "storage.type.objcpp"
+ },
+ {
+ "begin": "((@)selector)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.objcpp"
+ },
+ "2": {
+ "name": "punctuation.definition.storage.type.objcpp"
+ },
+ "3": {
+ "name": "punctuation.definition.storage.type.objcpp"
+ }
+ },
+ "contentName": "meta.selector.method-name.objcpp",
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.storage.type.objcpp"
+ }
+ },
+ "name": "meta.selector.objcpp",
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.separator.arguments.objcpp"
+ }
+ },
+ "match": "\\b(?:[a-zA-Z_:][\\w]*)+",
+ "name": "support.function.any-method.name-of-parameter.objcpp"
+ }
+ ]
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.storage.modifier.objcpp"
+ }
+ },
+ "match": "(@)(synchronized|public|package|private|protected)\\b",
+ "name": "storage.modifier.objcpp"
+ },
+ {
+ "match": "\\b(YES|NO|Nil|nil)\\b",
+ "name": "constant.language.objcpp"
+ },
+ {
+ "match": "\\bNSApp\\b",
+ "name": "support.variable.foundation.objcpp"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.whitespace.support.function.cocoa.leopard.objcpp"
+ },
+ "2": {
+ "name": "support.function.cocoa.leopard.objcpp"
+ }
+ },
+ "match": "(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.whitespace.support.function.leading.cocoa.objcpp"
+ },
+ "2": {
+ "name": "support.function.cocoa.objcpp"
+ }
+ },
+ "match": "(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b"
+ },
+ {
+ "match": "\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b",
+ "name": "support.class.cocoa.leopard.objcpp"
+ },
+ {
+ "match": "\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b",
+ "name": "support.class.cocoa.objcpp"
+ },
+ {
+ "match": "\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b",
+ "name": "support.type.cocoa.leopard.objcpp"
+ },
+ {
+ "match": "\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b",
+ "name": "support.class.quartz.objcpp"
+ },
+ {
+ "match": "\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b",
+ "name": "support.type.quartz.objcpp"
+ },
+ {
+ "match": "\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b",
+ "name": "support.type.cocoa.objcpp"
+ },
+ {
+ "match": "\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b",
+ "name": "support.constant.cocoa.objcpp"
+ },
+ {
+ "match": "\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b",
+ "name": "support.constant.notification.cocoa.leopard.objcpp"
+ },
+ {
+ "match": "\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b",
+ "name": "support.constant.notification.cocoa.objcpp"
+ },
+ {
+ "match": "\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b",
+ "name": "support.constant.cocoa.leopard.objcpp"
+ },
+ {
+ "match": "\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b",
+ "name": "support.constant.cocoa.objcpp"
+ },
+ {
+ "include": "#c_lang"
+ },
+ {
+ "include": "#bracketed_content"
}
- ]
+ ],
+ "repository": {
+ "c_lang": {
+ "patterns": [
+ {
+ "include": "#preprocessor-rule-enabled"
+ },
+ {
+ "include": "#preprocessor-rule-disabled"
+ },
+ {
+ "include": "#preprocessor-rule-conditional"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#switch_statement"
+ },
+ {
+ "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",
+ "name": "keyword.control.objcpp"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "match": "typedef",
+ "name": "keyword.other.typedef.objcpp"
+ },
+ {
+ "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b",
+ "name": "storage.modifier.objcpp"
+ },
+ {
+ "match": "\\bk[A-Z]\\w*\\b",
+ "name": "constant.other.variable.mac-classic.objcpp"
+ },
+ {
+ "match": "\\bg[A-Z]\\w*\\b",
+ "name": "variable.other.readwrite.global.mac-classic.objcpp"
+ },
+ {
+ "match": "\\bs[A-Z]\\w*\\b",
+ "name": "variable.other.readwrite.static.mac-classic.objcpp"
+ },
+ {
+ "match": "\\b(NULL|true|false|TRUE|FALSE)\\b",
+ "name": "constant.language.objcpp"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#numbers"
+ },
+ {
+ "include": "#strings"
+ },
+ {
+ "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g \\s*\t\t # first argument\n\t ((,) \\s* \\g \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.directive.define.objcpp"
+ },
+ "2": {
+ "name": "punctuation.definition.directive.objcpp"
+ },
+ "3": {
+ "name": "entity.name.function.preprocessor.objcpp"
+ },
+ "5": {
+ "name": "punctuation.definition.parameters.begin.objcpp"
+ },
+ "6": {
+ "name": "variable.parameter.preprocessor.objcpp"
+ },
+ "8": {
+ "name": "punctuation.separator.parameters.objcpp"
+ },
+ "9": {
+ "name": "punctuation.definition.parameters.end.objcpp"
+ }
+ },
+ "end": "(?=(?://|/\\*))|(?",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objcpp"
+ }
+ },
+ "name": "string.quoted.other.lt-gt.include.objcpp"
+ }
+ ]
+ },
+ {
+ "include": "#pragma-mark"
+ },
+ {
+ "begin": "^\\s*((#)\\s*line)\\b",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.directive.line.objcpp"
+ },
+ "2": {
+ "name": "punctuation.definition.directive.objcpp"
+ }
+ },
+ "end": "(?=(?://|/\\*))|(?\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))",
+ "captures": {
+ "1": {
+ "name": "variable.parameter.probably.objcpp"
+ }
+ }
+ },
+ "access-method": {
+ "name": "meta.function-call.member.objcpp",
+ "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.object.objcpp"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.objcpp"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.objcpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\.",
+ "name": "punctuation.separator.dot-access.objcpp"
+ },
+ {
+ "match": "->",
+ "name": "punctuation.separator.pointer-access.objcpp"
+ },
+ {
+ "match": "[a-zA-Z_][a-zA-Z_0-9]*",
+ "name": "variable.object.objcpp"
+ },
+ {
+ "name": "everything.else.objcpp",
+ "match": ".+"
+ }
+ ]
+ },
+ "5": {
+ "name": "entity.name.function.member.objcpp"
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ "block": {
+ "patterns": [
+ {
+ "begin": "{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.objcpp"
+ }
+ },
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.objcpp"
+ }
+ },
+ "name": "meta.block.objcpp",
+ "patterns": [
+ {
+ "include": "#block_innards"
+ }
+ ]
+ }
+ ]
+ },
+ "block_innards": {
+ "patterns": [
+ {
+ "include": "#preprocessor-rule-enabled-block"
+ },
+ {
+ "include": "#preprocessor-rule-disabled-block"
+ },
+ {
+ "include": "#preprocessor-rule-conditional-block"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#c_function_call"
+ },
+ {
+ "name": "meta.initialization.objcpp",
+ "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.objcpp"
+ },
+ "2": {
+ "name": "punctuation.section.parens.begin.bracket.round.initialization.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.initialization.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ {
+ "begin": "{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.objcpp"
+ }
+ },
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ {
+ "include": "#parens-block"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "c_function_call": {
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
+ "end": "(?<=\\))(?!\\w)",
+ "name": "meta.function-call.objcpp",
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ "comments": {
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "meta.toc-list.banner.block.objcpp"
+ }
+ },
+ "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",
+ "name": "comment.block.objcpp"
+ },
+ {
+ "begin": "/\\*",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.begin.objcpp"
+ }
+ },
+ "end": "\\*/",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.end.objcpp"
+ }
+ },
+ "name": "comment.block.objcpp"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "meta.toc-list.banner.line.objcpp"
+ }
+ },
+ "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?",
+ "name": "comment.line.banner.objcpp"
+ },
+ {
+ "begin": "(^[ \\t]+)?(?=//)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.whitespace.comment.leading.objcpp"
+ }
+ },
+ "end": "(?!\\G)",
+ "patterns": [
+ {
+ "begin": "//",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.objcpp"
+ }
+ },
+ "end": "(?=\\n)",
+ "name": "comment.line.double-slash.objcpp",
+ "patterns": [
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "disabled": {
+ "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
+ "end": "^\\s*#\\s*endif\\b",
+ "patterns": [
+ {
+ "include": "#disabled"
+ },
+ {
+ "include": "#pragma-mark"
+ }
+ ]
+ },
+ "line_continuation_character": {
+ "patterns": [
+ {
+ "match": "(\\\\)\\n",
+ "captures": {
+ "1": {
+ "name": "constant.character.escape.line-continuation.objcpp"
+ }
+ }
+ }
+ ]
+ },
+ "parens": {
+ "name": "meta.parens.objcpp",
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "parens-block": {
+ "name": "meta.parens.block.objcpp",
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block_innards"
+ },
+ {
+ "match": "(?-mix:(?>=|\\|=",
+ "name": "keyword.operator.assignment.compound.bitwise.objcpp"
+ },
+ {
+ "match": "<<|>>",
+ "name": "keyword.operator.bitwise.shift.objcpp"
+ },
+ {
+ "match": "!=|<=|>=|==|<|>",
+ "name": "keyword.operator.comparison.objcpp"
+ },
+ {
+ "match": "&&|!|\\|\\|",
+ "name": "keyword.operator.logical.objcpp"
+ },
+ {
+ "match": "&|\\||\\^|~",
+ "name": "keyword.operator.objcpp"
+ },
+ {
+ "match": "=",
+ "name": "keyword.operator.assignment.objcpp"
+ },
+ {
+ "match": "%|\\*|/|-|\\+",
+ "name": "keyword.operator.objcpp"
+ },
+ {
+ "begin": "(\\?)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.ternary.objcpp"
+ }
+ },
+ "end": "(:)",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.ternary.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ }
+ ]
+ },
+ "strings": {
+ "patterns": [
+ {
+ "begin": "\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.objcpp"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objcpp"
+ }
+ },
+ "name": "string.quoted.double.objcpp",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ },
+ {
+ "include": "#string_placeholder"
+ },
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ },
+ {
+ "begin": "'",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.objcpp"
+ }
+ },
+ "end": "'",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objcpp"
+ }
+ },
+ "name": "string.quoted.single.objcpp",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ },
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ }
+ ]
+ },
+ "string_escaped_char": {
+ "patterns": [
+ {
+ "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",
+ "name": "constant.character.escape.objcpp"
+ },
+ {
+ "match": "\\\\.",
+ "name": "invalid.illegal.unknown-escape.objcpp"
+ }
+ ]
+ },
+ "string_placeholder": {
+ "patterns": [
+ {
+ "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",
+ "name": "constant.other.placeholder.objcpp"
+ },
+ {
+ "match": "(%)(?!\"\\s*(PRI|SCN))",
+ "captures": {
+ "1": {
+ "name": "invalid.illegal.placeholder.objcpp"
+ }
+ }
+ }
+ ]
+ },
+ "storage_types": {
+ "patterns": [
+ {
+ "match": "(?-mix:(?=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
+ "end": "(?<=\\))(?!\\w)|(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.objcpp"
+ },
+ "2": {
+ "name": "punctuation.section.arguments.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "(\\))|(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.objcpp"
+ },
+ "2": {
+ "name": "punctuation.section.parameters.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#probably_a_parameter"
+ },
+ {
+ "include": "#function-innards"
+ }
+ ]
+ },
+ {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-innards"
+ }
+ ]
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "function-call-innards": {
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.objcpp"
+ },
+ "2": {
+ "name": "punctuation.section.arguments.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ "default_statement": {
+ "name": "meta.conditional.case.objcpp",
+ "begin": "((?\\[\\]=]))",
+ "patterns": [
+ {
+ "name": "meta.head.switch.objcpp",
+ "begin": "\\G ?",
+ "end": "((?:\\{|(?=;)))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.begin.bracket.curly.switch.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#switch_conditional_parentheses"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "name": "meta.body.switch.objcpp",
+ "begin": "(?<=\\{)",
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.end.bracket.curly.switch.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#default_statement"
+ },
+ {
+ "include": "#case_statement"
+ },
+ {
+ "include": "$base"
+ },
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ {
+ "name": "meta.tail.switch.objcpp",
+ "begin": "(?<=})[\\s\\n]*",
+ "end": "[\\s\\n]*(?=;)",
+ "patterns": [
+ {
+ "include": "$base"
+ }
+ ]
+ }
+ ]
+ },
+ "switch_conditional_parentheses": {
+ "name": "meta.conditional.switch.objcpp",
+ "begin": "(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.objcpp"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.end.bracket.round.conditional.switch.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#conditional_context"
+ }
+ ]
+ },
+ "static_assert": {
+ "begin": "(static_assert|_Static_assert)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.static_assert.objcpp"
+ },
+ "2": {
+ "name": "punctuation.section.arguments.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.arguments.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "name": "meta.static_assert.message.objcpp",
+ "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.separator.delimiter.objcpp"
+ }
+ },
+ "end": "(?=\\))",
+ "patterns": [
+ {
+ "include": "#string_context"
+ },
+ {
+ "include": "#string_context_c"
+ }
+ ]
+ },
+ {
+ "include": "#function_call_context"
+ }
+ ]
+ },
+ "conditional_context": {
+ "patterns": [
+ {
+ "include": "$base"
+ },
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ "member_access": {
+ "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())",
+ "captures": {
+ "1": {
+ "name": "variable.other.object.access.objcpp"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.objcpp"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.objcpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
+ "captures": {
+ "1": {
+ "name": "variable.other.object.access.objcpp"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.objcpp"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.objcpp"
+ }
+ }
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.other.member.objcpp"
+ }
+ }
+ },
+ "method_access": {
+ "contentName": "meta.function-call.member.objcpp",
+ "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.object.access.objcpp"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.objcpp"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.objcpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
+ "captures": {
+ "1": {
+ "name": "variable.other.object.access.objcpp"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.objcpp"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.objcpp"
+ }
+ }
+ }
+ ]
+ },
+ "5": {
+ "name": "entity.name.function.member.objcpp"
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ "numbers": {
+ "begin": "(?",
+ "endCaptures": {
+ "0": {
+ "name": "meta.template.angle-brackets.end.objcpp"
+ }
+ },
+ "name": "template.definition.objcpp",
+ "patterns": [
+ {
+ "include": "#template_definition_argument"
+ }
+ ]
+ },
+ "template_definition_argument": {
+ "match": "\\s*(?:([a-zA-Z_][a-zA-Z_0-9]*\\s*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)|([a-zA-Z_][a-zA-Z_0-9]*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_][a-zA-Z_0-9]*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)\\s*(=)\\s*(\\w+))(,|(?=>))",
+ "captures": {
+ "1": {
+ "name": "storage.type.template.objcpp"
+ },
+ "2": {
+ "name": "storage.type.template.objcpp"
+ },
+ "3": {
+ "name": "entity.name.type.template.objcpp"
+ },
+ "4": {
+ "name": "storage.type.template.objcpp"
+ },
+ "5": {
+ "name": "meta.template.operator.ellipsis.objcpp"
+ },
+ "6": {
+ "name": "entity.name.type.template.objcpp"
+ },
+ "7": {
+ "name": "storage.type.template.objcpp"
+ },
+ "8": {
+ "name": "entity.name.type.template.objcpp"
+ },
+ "9": {
+ "name": "keyword.operator.assignment.objcpp"
+ },
+ "10": {
+ "name": "constant.language.objcpp"
+ },
+ "11": {
+ "name": "meta.template.operator.comma.objcpp"
+ }
+ }
+ },
+ "angle_brackets": {
+ "begin": "<",
+ "end": ">",
+ "name": "meta.angle-brackets.objcpp",
+ "patterns": [
+ {
+ "include": "#angle_brackets"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "block": {
+ "begin": "\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.objcpp"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.objcpp"
+ }
+ },
+ "name": "meta.block.objcpp",
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "support.function.any-method.objcpp"
+ },
+ "2": {
+ "name": "punctuation.definition.parameters.objcpp"
+ }
+ },
+ "match": "(?x)\n(\n (?!while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket",
+ "name": "meta.function-call.objcpp"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "constructor": {
+ "patterns": [
+ {
+ "begin": "(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch|enumerate|r?iterate)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.constructor.objcpp"
+ },
+ "2": {
+ "name": "punctuation.definition.parameters.begin.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.parameters.end.objcpp"
+ }
+ },
+ "name": "meta.function.constructor.objcpp",
+ "patterns": [
+ {
+ "include": "#probably_a_parameter"
+ },
+ {
+ "include": "#function-innards"
+ }
+ ]
+ },
+ {
+ "begin": "(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.parameters.objcpp"
+ }
+ },
+ "end": "(?=\\{)",
+ "name": "meta.function.constructor.initializer-list.objcpp",
+ "patterns": [
+ {
+ "include": "$base"
+ }
+ ]
+ }
+ ]
+ },
+ "special_block": {
+ "patterns": [
+ {
+ "begin": "\\b(using)\\b\\s*(namespace)\\b\\s*((?:[_A-Za-z][_A-Za-z0-9]*\\b(::)?)*)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.objcpp"
+ },
+ "2": {
+ "name": "storage.type.namespace.objcpp"
+ },
+ "3": {
+ "name": "entity.name.type.objcpp"
+ }
+ },
+ "end": ";",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.terminator.statement.objcpp"
+ }
+ },
+ "name": "meta.using-namespace-declaration.objcpp"
+ },
+ {
+ "begin": "\\b(namespace)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.namespace.objcpp"
+ },
+ "2": {
+ "name": "entity.name.type.objcpp"
+ }
+ },
+ "captures": {
+ "1": {
+ "name": "keyword.control.namespace.$2.objcpp"
+ }
+ },
+ "end": "(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))",
+ "name": "meta.namespace-block.objcpp",
+ "patterns": [
+ {
+ "begin": "\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.scope.objcpp"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.scope.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#special_block"
+ },
+ {
+ "include": "#constructor"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "begin": "\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.class.objcpp"
+ },
+ "2": {
+ "name": "storage.type.struct.objcpp"
+ },
+ "3": {
+ "name": "entity.name.type.objcpp"
+ },
+ "5": {
+ "name": "storage.type.modifier.access.objcpp"
+ },
+ "6": {
+ "name": "entity.name.type.inherited.objcpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(public|protected|private)",
+ "name": "storage.type.modifier.access.objcpp"
+ },
+ {
+ "match": "[_A-Za-z][_A-Za-z0-9]*",
+ "name": "entity.name.type.inherited.objcpp"
+ }
+ ]
+ }
+ },
+ "end": "(?<=\\})|(?=(;|\\(|\\)|>|\\[|\\]|=))",
+ "name": "meta.class-struct-block.objcpp",
+ "patterns": [
+ {
+ "include": "#angle_brackets"
+ },
+ {
+ "begin": "\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.objcpp"
+ }
+ },
+ "end": "(\\})(\\s*\\n)?",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.end.bracket.curly.objcpp"
+ },
+ "2": {
+ "name": "invalid.illegal.you-forgot-semicolon.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#special_block"
+ },
+ {
+ "include": "#constructor"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "begin": "\\b(extern)(?=\\s*\")",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.modifier.objcpp"
+ }
+ },
+ "end": "(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)",
+ "name": "meta.extern-block.objcpp",
+ "patterns": [
+ {
+ "begin": "\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.objcpp"
+ }
+ },
+ "end": "\\}|(?=\\s*#\\s*endif\\b)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#special_block"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ }
+ ]
+ },
+ "strings": {
+ "patterns": [
+ {
+ "begin": "(u|u8|U|L)?\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.objcpp"
+ },
+ "1": {
+ "name": "meta.encoding.objcpp"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objcpp"
+ }
+ },
+ "name": "string.quoted.double.objcpp",
+ "patterns": [
+ {
+ "match": "\\\\u\\h{4}|\\\\U\\h{8}",
+ "name": "constant.character.escape.objcpp"
+ },
+ {
+ "match": "\\\\['\"?\\\\abfnrtv]",
+ "name": "constant.character.escape.objcpp"
+ },
+ {
+ "match": "\\\\[0-7]{1,3}",
+ "name": "constant.character.escape.objcpp"
+ },
+ {
+ "match": "\\\\x\\h+",
+ "name": "constant.character.escape.objcpp"
+ },
+ {
+ "include": "#string_placeholder"
+ }
+ ]
+ },
+ {
+ "begin": "(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.objcpp"
+ },
+ "1": {
+ "name": "meta.encoding.objcpp"
+ },
+ "3": {
+ "name": "invalid.illegal.delimiter-too-long.objcpp"
+ }
+ },
+ "end": "\\)\\2(\\3)\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objcpp"
+ },
+ "1": {
+ "name": "invalid.illegal.delimiter-too-long.objcpp"
+ }
+ },
+ "name": "string.quoted.double.raw.objcpp"
+ }
+ ]
+ }
+ }
+ },
+ "cpp_lang_newish": {
+ "patterns": [
+ {
+ "include": "#special_block"
+ },
+ {
+ "match": "(?-mix:##[a-zA-Z_]\\w*(?!\\w))",
+ "name": "variable.other.macro.argument.objcpp"
+ },
+ {
+ "include": "#strings"
+ },
+ {
+ "match": "(?[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g \\s*\t\t # first argument\n\t ((,) \\s* \\g \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.directive.define.objcpp"
+ },
+ "2": {
+ "name": "punctuation.definition.directive.objcpp"
+ },
+ "3": {
+ "name": "entity.name.function.preprocessor.objcpp"
+ },
+ "5": {
+ "name": "punctuation.definition.parameters.begin.objcpp"
+ },
+ "6": {
+ "name": "variable.parameter.preprocessor.objcpp"
+ },
+ "8": {
+ "name": "punctuation.separator.parameters.objcpp"
+ },
+ "9": {
+ "name": "punctuation.definition.parameters.end.objcpp"
+ }
+ },
+ "end": "(?=(?://|/\\*))|(?",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objcpp"
+ }
+ },
+ "name": "string.quoted.other.lt-gt.include.objcpp"
+ }
+ ]
+ },
+ {
+ "include": "#pragma-mark"
+ },
+ {
+ "begin": "^\\s*((#)\\s*line)\\b",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.directive.line.objcpp"
+ },
+ "2": {
+ "name": "punctuation.definition.directive.objcpp"
+ }
+ },
+ "end": "(?=(?://|/\\*))|(?,\\w])*>\\s*",
+ "captures": {
+ "0": {
+ "name": "meta.template.call.objcpp",
+ "patterns": [
+ {
+ "include": "#storage_types_c"
+ },
+ {
+ "include": "#constants"
+ },
+ {
+ "include": "#scope_resolution"
+ },
+ {
+ "match": "(?))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.angle-brackets.end.template.definition.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#scope_resolution"
+ },
+ {
+ "include": "#template_definition_argument"
+ },
+ {
+ "include": "#template_call_innards"
+ }
+ ]
+ },
+ "template_definition_argument": {
+ "match": "((?:(?:(?:(?:(?:(?:\\s*([a-zA-Z_]\\w*)|((?:[a-zA-Z_]\\w*\\s+)+)([a-zA-Z_]\\w*)))|([a-zA-Z_]\\w*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_]\\w*)))|((?:[a-zA-Z_]\\w*\\s+)*)([a-zA-Z_]\\w*)\\s*([=])\\s*(\\w+)))\\s*(?:(?:(,)|(?=>))))",
+ "captures": {
+ "2": {
+ "name": "storage.type.template.argument.$1.objcpp"
+ },
+ "3": {
+ "name": "storage.type.template.argument.$2.objcpp"
+ },
+ "4": {
+ "name": "entity.name.type.template.objcpp"
+ },
+ "5": {
+ "name": "storage.type.template.objcpp"
+ },
+ "6": {
+ "name": "keyword.operator.ellipsis.template.definition.objcpp"
+ },
+ "7": {
+ "name": "entity.name.type.template.objcpp"
+ },
+ "8": {
+ "name": "storage.type.template.objcpp"
+ },
+ "9": {
+ "name": "entity.name.type.template.objcpp"
+ },
+ "10": {
+ "name": "keyword.operator.assignment.objcpp"
+ },
+ "11": {
+ "name": "constant.other.objcpp"
+ },
+ "12": {
+ "name": "punctuation.separator.comma.template.argument.objcpp"
+ }
+ }
+ },
+ "scope_resolution": {
+ "match": "((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*\\s*)([a-zA-Z_]\\w*)\\s*((?:<(?:[\\s<>,\\w])*>\\s*))?(::)",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution"
+ }
+ ]
+ },
+ "2": {
+ "name": "entity.name.namespace.scope-resolution.objcpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_innards"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.separator.namespace.access.objcpp"
+ }
+ },
+ "name": "meta.scope-resolution.objcpp"
+ },
+ "angle_brackets": {
+ "begin": "<",
+ "end": ">",
+ "name": "meta.angle-brackets.objcpp",
+ "patterns": [
+ {
+ "include": "#angle_brackets"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "block": {
+ "begin": "\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.objcpp"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.objcpp"
+ }
+ },
+ "name": "meta.block.objcpp",
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "support.function.any-method.objcpp"
+ },
+ "2": {
+ "name": "punctuation.definition.parameters.objcpp"
+ }
+ },
+ "match": "(?x)\n(\n (?!while|for|do|if|else|switch|catch|return)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket",
+ "name": "meta.function-call.objcpp"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "constructor": {
+ "patterns": [
+ {
+ "begin": "(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.constructor.objcpp"
+ },
+ "2": {
+ "name": "punctuation.definition.parameters.begin.constructor.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.parameters.end.constructor.objcpp"
+ }
+ },
+ "name": "meta.function.constructor.objcpp",
+ "patterns": [
+ {
+ "include": "#probably_a_parameter"
+ },
+ {
+ "include": "#function-innards-c"
+ }
+ ]
+ },
+ {
+ "begin": "(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.initializer-list.parameters.objcpp"
+ }
+ },
+ "end": "(?=\\{)",
+ "name": "meta.function.constructor.initializer-list.objcpp",
+ "patterns": [
+ {
+ "include": "$base"
+ }
+ ]
+ }
+ ]
+ },
+ "special_block": {
+ "patterns": [
+ {
+ "comment": "https://en.cppreference.com/w/cpp/language/namespace",
+ "begin": "\\b(using)\\s+(namespace)\\s+(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*)?((?,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*)|(?={)))",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.namespace.definition.objcpp storage.type.namespace.definition.objcpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "match": "(?-mix:(?|\\[|\\]|=))",
+ "name": "meta.namespace-block.objcpp",
+ "patterns": [
+ {
+ "begin": "\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.scope.objcpp"
+ }
+ },
+ "end": "\\}",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.scope.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#special_block"
+ },
+ {
+ "include": "#constructor"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "begin": "\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.type.class.objcpp"
+ },
+ "2": {
+ "name": "storage.type.struct.objcpp"
+ },
+ "3": {
+ "name": "entity.name.type.objcpp"
+ },
+ "5": {
+ "name": "storage.type.modifier.access.objcpp"
+ },
+ "6": {
+ "name": "entity.name.type.inherited.objcpp"
+ },
+ "7": {
+ "patterns": [
+ {
+ "match": "(public|protected|private)",
+ "name": "storage.type.modifier.access.objcpp"
+ },
+ {
+ "match": "[_A-Za-z][_A-Za-z0-9]*",
+ "name": "entity.name.type.inherited.objcpp"
+ }
+ ]
+ }
+ },
+ "end": "(?<=\\})|(;)|(?=(\\(|\\)|>|\\[|\\]|=))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.terminator.statement.objcpp"
+ }
+ },
+ "name": "meta.class-struct-block.objcpp",
+ "patterns": [
+ {
+ "include": "#angle_brackets"
+ },
+ {
+ "begin": "\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.objcpp"
+ }
+ },
+ "end": "(\\})(\\s*\\n)?",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.end.bracket.curly.objcpp"
+ },
+ "2": {
+ "name": "invalid.illegal.you-forgot-semicolon.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#special_block"
+ },
+ {
+ "include": "#constructor"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "begin": "\\b(extern)(?=\\s*\")",
+ "beginCaptures": {
+ "1": {
+ "name": "storage.modifier.objcpp"
+ }
+ },
+ "end": "(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)",
+ "name": "meta.extern-block.objcpp",
+ "patterns": [
+ {
+ "begin": "\\{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.objcpp"
+ }
+ },
+ "end": "\\}|(?=\\s*#\\s*endif\\b)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#special_block"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ }
+ ]
+ },
+ "strings": {
+ "patterns": [
+ {
+ "begin": "(u|u8|U|L)?\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.objcpp"
+ },
+ "1": {
+ "name": "meta.encoding.objcpp"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objcpp"
+ }
+ },
+ "name": "string.quoted.double.objcpp",
+ "patterns": [
+ {
+ "match": "\\\\u\\h{4}|\\\\U\\h{8}",
+ "name": "constant.character.escape.objcpp"
+ },
+ {
+ "match": "\\\\['\"?\\\\abfnrtv]",
+ "name": "constant.character.escape.objcpp"
+ },
+ {
+ "match": "\\\\[0-7]{1,3}",
+ "name": "constant.character.escape.objcpp"
+ },
+ {
+ "match": "\\\\x\\h+",
+ "name": "constant.character.escape.objcpp"
+ },
+ {
+ "include": "#string_placeholder-c"
+ }
+ ]
+ },
+ {
+ "begin": "(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.objcpp"
+ },
+ "1": {
+ "name": "meta.encoding.objcpp"
+ },
+ "3": {
+ "name": "invalid.illegal.delimiter-too-long.objcpp"
+ }
+ },
+ "end": "\\)\\2(\\3)\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objcpp"
+ },
+ "1": {
+ "name": "invalid.illegal.delimiter-too-long.objcpp"
+ }
+ },
+ "name": "string.quoted.double.raw.objcpp"
+ }
+ ]
+ },
+ "probably_a_parameter": {
+ "match": "(?:(?:([a-zA-Z_]\\w*)\\s*(?==)|(?<=\\w\\s|\\*\\/|[&*>\\]\\)])\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:(?:,|\\))))))",
+ "captures": {
+ "1": {
+ "name": "variable.parameter.probably.defaulted.objcpp"
+ },
+ "2": {
+ "name": "variable.parameter.probably.objcpp"
+ }
+ }
+ },
+ "operator_overload": {
+ "begin": "((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*(operator)((?:(?:\\s*(?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,)|\\s+(?:(?:(?:new|new\\[\\]|delete|delete\\[\\])|(?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*\\s*(?:&)?)))))\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.scope.objcpp"
+ },
+ "2": {
+ "name": "keyword.other.operator.overload.objcpp"
+ },
+ "3": {
+ "name": "entity.name.operator.overloadee.objcpp"
+ },
+ "4": {
+ "name": "punctuation.section.parameters.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.end.bracket.round.objcpp"
+ }
+ },
+ "name": "meta.function.definition.parameters.operator-overload.objcpp",
+ "patterns": [
+ {
+ "include": "#probably_a_parameter"
+ },
+ {
+ "include": "#function-innards-c"
+ }
+ ]
+ },
+ "access-method": {
+ "name": "meta.function-call.member.objcpp",
+ "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.object.objcpp"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.objcpp"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.objcpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\.",
+ "name": "punctuation.separator.dot-access.objcpp"
+ },
+ {
+ "match": "->",
+ "name": "punctuation.separator.pointer-access.objcpp"
+ },
+ {
+ "match": "[a-zA-Z_][a-zA-Z_0-9]*",
+ "name": "variable.other.object.objcpp"
+ },
+ {
+ "name": "everything.else.objcpp",
+ "match": ".+"
+ }
+ ]
+ },
+ "5": {
+ "name": "entity.name.function.member.objcpp"
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards-c"
+ }
+ ]
+ },
+ "access-member": {
+ "name": "variable.other.object.access.objcpp",
+ "match": "(?:(?:([a-zA-Z_]\\w*)|(?<=\\]|\\))))\\s*(?:(?:((?:(?:\\.|\\.\\*)))|((?:(?:->|->\\*)))))\\s*((?:[a-zA-Z_]\\w*\\s*(?:(?:\\.|->))\\s*)*)\\b(?!(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t))([a-zA-Z_]\\w*)\\b(?!\\()",
+ "captures": {
+ "1": {
+ "name": "variable.other.object.objcpp"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.objcpp"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.objcpp"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\.",
+ "name": "punctuation.separator.dot-access.objcpp"
+ },
+ {
+ "match": "->",
+ "name": "punctuation.separator.pointer-access.objcpp"
+ },
+ {
+ "match": "[a-zA-Z_]\\w*",
+ "name": "variable.other.object.objcpp"
+ },
+ {
+ "match": ".+",
+ "name": "everything.else.objcpp"
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.other.member.objcpp"
+ }
+ }
+ },
+ "block-c": {
+ "patterns": [
+ {
+ "begin": "{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.objcpp"
+ }
+ },
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.objcpp"
+ }
+ },
+ "name": "meta.block.objcpp",
+ "patterns": [
+ {
+ "include": "#block_innards-c"
+ }
+ ]
+ }
+ ]
+ },
+ "block_innards-c": {
+ "patterns": [
+ {
+ "include": "#preprocessor-rule-enabled-block"
+ },
+ {
+ "include": "#preprocessor-rule-disabled-block"
+ },
+ {
+ "include": "#preprocessor-rule-conditional-block"
+ },
+ {
+ "include": "#access-method"
+ },
+ {
+ "include": "#access-member"
+ },
+ {
+ "include": "#c_function_call"
+ },
+ {
+ "name": "meta.initialization.objcpp",
+ "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.objcpp"
+ },
+ "2": {
+ "name": "punctuation.section.parens.begin.bracket.round.initialization.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.initialization.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards-c"
+ }
+ ]
+ },
+ {
+ "begin": "{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.objcpp"
+ }
+ },
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block_innards-c"
+ }
+ ]
+ },
+ {
+ "include": "#parens-block-c"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "c_function_call": {
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
+ "end": "(?<=\\))(?!\\w)",
+ "name": "meta.function-call.objcpp",
+ "patterns": [
+ {
+ "include": "#function-call-innards-c"
+ }
+ ]
+ },
+ "comments-c": {
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "meta.toc-list.banner.block.objcpp"
+ }
+ },
+ "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",
+ "name": "comment.block.objcpp"
+ },
+ {
+ "begin": "/\\*",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.begin.objcpp"
+ }
+ },
+ "end": "\\*/",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.end.objcpp"
+ }
+ },
+ "name": "comment.block.objcpp"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "meta.toc-list.banner.line.objcpp"
+ }
+ },
+ "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?",
+ "name": "comment.line.banner.objcpp"
+ },
+ {
+ "begin": "(^[ \\t]+)?(?=//)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.whitespace.comment.leading.objcpp"
+ }
+ },
+ "end": "(?!\\G)",
+ "patterns": [
+ {
+ "begin": "//",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.objcpp"
+ }
+ },
+ "end": "(?=\\n)",
+ "name": "comment.line.double-slash.objcpp",
+ "patterns": [
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "disabled": {
+ "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
+ "end": "^\\s*#\\s*endif\\b",
+ "patterns": [
+ {
+ "include": "#disabled"
+ },
+ {
+ "include": "#pragma-mark"
+ }
+ ]
+ },
+ "line_continuation_character": {
+ "patterns": [
+ {
+ "match": "(\\\\)\\n",
+ "captures": {
+ "1": {
+ "name": "constant.character.escape.line-continuation.objcpp"
+ }
+ }
+ }
+ ]
+ },
+ "parens-c": {
+ "name": "punctuation.section.parens-c\b.objcpp",
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "parens-block-c": {
+ "name": "meta.block.parens.objcpp",
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block_innards-c"
+ },
+ {
+ "match": "(?>=|\\|=",
+ "name": "keyword.operator.assignment.compound.bitwise.objcpp"
+ },
+ {
+ "match": "<<|>>",
+ "name": "keyword.operator.bitwise.shift.objcpp"
+ },
+ {
+ "match": "!=|<=|>=|==|<|>",
+ "name": "keyword.operator.comparison.objcpp"
+ },
+ {
+ "match": "&&|!|\\|\\|",
+ "name": "keyword.operator.logical.objcpp"
+ },
+ {
+ "match": "&|\\||\\^|~",
+ "name": "keyword.operator.objcpp"
+ },
+ {
+ "match": "=",
+ "name": "keyword.operator.assignment.objcpp"
+ },
+ {
+ "match": "%|\\*|/|-|\\+",
+ "name": "keyword.operator.objcpp"
+ },
+ {
+ "begin": "\\?",
+ "beginCaptures": {
+ "0": {
+ "name": "keyword.operator.ternary.objcpp"
+ }
+ },
+ "end": ":",
+ "applyEndPatternLast": true,
+ "endCaptures": {
+ "0": {
+ "name": "keyword.operator.ternary.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#access-method"
+ },
+ {
+ "include": "#access-member"
+ },
+ {
+ "include": "#c_function_call"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ }
+ ]
+ },
+ "strings-c": {
+ "patterns": [
+ {
+ "begin": "\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.objcpp"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objcpp"
+ }
+ },
+ "name": "string.quoted.double.objcpp",
+ "patterns": [
+ {
+ "include": "#string_escaped_char-c"
+ },
+ {
+ "include": "#string_placeholder-c"
+ },
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ },
+ {
+ "begin": "(?-mix:(?=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
+ "end": "(?<=\\))(?!\\w)|(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.objcpp"
+ },
+ "2": {
+ "name": "punctuation.section.arguments.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "(\\))|(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.objcpp"
+ },
+ "2": {
+ "name": "punctuation.section.parameters.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)|:",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#probably_a_parameter"
+ },
+ {
+ "include": "#function-innards-c"
+ }
+ ]
+ },
+ {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-innards-c"
+ }
+ ]
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "function-call-innards-c": {
+ "patterns": [
+ {
+ "include": "#comments-c"
+ },
+ {
+ "include": "#storage_types_c"
+ },
+ {
+ "include": "#access-method"
+ },
+ {
+ "include": "#access-member"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:new)\\s*((?:(?:<(?:[\\s<>,\\w])*>\\s*))?) # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.memory.new.objcpp"
+ },
+ "2": {
+ "patterns": [
+ {
+ "include": "#template_call_innards"
+ }
+ ]
+ },
+ "3": {
+ "name": "punctuation.section.arguments.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards-c"
+ }
+ ]
+ },
+ {
+ "begin": "(?,\\w])*>\\s*))?::)*)\\s*([a-zA-Z_]\\w*)\\s*(?:((?:<(?:[\\s<>,\\w])*>\\s*)))?(\\()",
+ "beginCaptures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "#scope_resolution"
+ }
+ ]
+ },
+ "2": {
+ "name": "entity.name.function.call.objcpp"
+ },
+ "3": {
+ "patterns": [
+ {
+ "include": "#template_call_innards"
+ }
+ ]
+ },
+ "4": {
+ "name": "punctuation.section.arguments.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards-c"
+ }
+ ]
+ },
+ {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.objcpp"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.objcpp"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards-c"
+ }
+ ]
+ },
+ {
+ "include": "#block_innards-c"
+ }
+ ]
+ }
+ }
+ },
+ "string_escaped_char": {
+ "patterns": [
+ {
+ "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",
+ "name": "constant.character.escape.objcpp"
+ },
+ {
+ "match": "\\\\.",
+ "name": "invalid.illegal.unknown-escape.objcpp"
+ }
+ ]
+ },
+ "string_placeholder": {
+ "patterns": [
+ {
+ "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",
+ "name": "constant.other.placeholder.objcpp"
+ },
+ {
+ "match": "(%)(?!\"\\s*(PRI|SCN))",
+ "captures": {
+ "1": {
+ "name": "invalid.illegal.placeholder.objcpp"
+ }
+ }
+ }
+ ]
+ },
+ "bracketed_content": {
+ "begin": "\\[",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.scope.begin.objcpp"
+ }
+ },
+ "end": "\\]",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.scope.end.objcpp"
+ }
+ },
+ "name": "meta.bracketed.objcpp",
+ "patterns": [
+ {
+ "begin": "(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.any-method.objcpp"
+ },
+ "2": {
+ "name": "punctuation.separator.arguments.objcpp"
+ }
+ },
+ "end": "(?=\\])",
+ "name": "meta.function-call.predicate.objcpp",
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.separator.arguments.objcpp"
+ }
+ },
+ "match": "\\bargument(Array|s)(:)",
+ "name": "support.function.any-method.name-of-parameter.objcpp"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.separator.arguments.objcpp"
+ }
+ },
+ "match": "\\b\\w+(:)",
+ "name": "invalid.illegal.unknown-method.objcpp"
+ },
+ {
+ "begin": "@\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.objcpp"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objcpp"
+ }
+ },
+ "name": "string.quoted.double.objcpp",
+ "patterns": [
+ {
+ "match": "\\b(AND|OR|NOT|IN)\\b",
+ "name": "keyword.operator.logical.predicate.cocoa.objcpp"
+ },
+ {
+ "match": "\\b(ALL|ANY|SOME|NONE)\\b",
+ "name": "constant.language.predicate.cocoa.objcpp"
+ },
+ {
+ "match": "\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b",
+ "name": "constant.language.predicate.cocoa.objcpp"
+ },
+ {
+ "match": "\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b",
+ "name": "keyword.operator.comparison.predicate.cocoa.objcpp"
+ },
+ {
+ "match": "\\bC(ASEINSENSITIVE|I)\\b",
+ "name": "keyword.other.modifier.predicate.cocoa.objcpp"
+ },
+ {
+ "match": "\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b",
+ "name": "keyword.other.predicate.cocoa.objcpp"
+ },
+ {
+ "match": "\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)",
+ "name": "constant.character.escape.objcpp"
+ },
+ {
+ "match": "\\\\.",
+ "name": "invalid.illegal.unknown-escape.objcpp"
+ }
+ ]
+ },
+ {
+ "include": "#special_variables"
+ },
+ {
+ "include": "#c_functions"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "begin": "(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))",
+ "beginCaptures": {
+ "1": {
+ "name": "support.function.any-method.objcpp"
+ },
+ "2": {
+ "name": "punctuation.separator.arguments.objcpp"
+ }
+ },
+ "end": "(?=\\])",
+ "name": "meta.function-call.objcpp",
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.separator.arguments.objcpp"
+ }
+ },
+ "match": "\\b\\w+(:)",
+ "name": "support.function.any-method.name-of-parameter.objcpp"
+ },
+ {
+ "include": "#special_variables"
+ },
+ {
+ "include": "#c_functions"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "include": "#special_variables"
+ },
+ {
+ "include": "#c_functions"
+ },
+ {
+ "include": "$self"
+ }
+ ]
+ },
+ "c_functions": {
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.whitespace.support.function.leading.objcpp"
+ },
+ "2": {
+ "name": "support.function.C99.objcpp"
+ }
+ },
+ "match": "(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "punctuation.whitespace.function-call.leading.objcpp"
+ },
+ "2": {
+ "name": "support.function.any-method.objcpp"
+ },
+ "3": {
+ "name": "punctuation.definition.parameters.objcpp"
+ }
+ },
+ "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?\\\\\\s*\\n)",
+ "name": "punctuation.separator.continuation.objcpp"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "disabled": {
+ "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
+ "comment": "eat nested preprocessor if(def)s",
+ "end": "^\\s*#\\s*endif\\b.*$",
+ "patterns": [
+ {
+ "include": "#disabled"
+ },
+ {
+ "include": "#pragma-mark"
+ }
+ ]
+ },
+ "implementation_innards": {
+ "patterns": [
+ {
+ "include": "#preprocessor-rule-enabled-implementation"
+ },
+ {
+ "include": "#preprocessor-rule-disabled-implementation"
+ },
+ {
+ "include": "#preprocessor-rule-other-implementation"
+ },
+ {
+ "include": "#property_directive"
+ },
+ {
+ "include": "#special_variables"
+ },
+ {
+ "include": "#method_super"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "interface_innards": {
+ "patterns": [
+ {
+ "include": "#preprocessor-rule-enabled-interface"
+ },
+ {
+ "include": "#preprocessor-rule-disabled-interface"
+ },
+ {
+ "include": "#preprocessor-rule-other-interface"
+ },
+ {
+ "include": "#properties"
+ },
+ {
+ "include": "#protocol_list"
+ },
+ {
+ "include": "#method"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "method": {
+ "begin": "^(-|\\+)\\s*",
+ "end": "(?=\\{|#)|;",
+ "name": "meta.function.objcpp",
+ "patterns": [
+ {
+ "begin": "(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.definition.type.begin.objcpp"
+ }
+ },
+ "end": "(\\))\\s*(\\w+\\b)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.type.end.objcpp"
+ },
+ "2": {
+ "name": "entity.name.function.objcpp"
+ }
+ },
+ "name": "meta.return-type.objcpp",
+ "patterns": [
+ {
+ "include": "#protocol_list"
+ },
+ {
+ "include": "#protocol_type_qualifier"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "match": "\\b\\w+(?=:)",
+ "name": "entity.name.function.name-of-parameter.objcpp"
+ },
+ {
+ "begin": "((:))\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.name-of-parameter.objcpp"
+ },
+ "2": {
+ "name": "punctuation.separator.arguments.objcpp"
+ },
+ "3": {
+ "name": "punctuation.definition.type.begin.objcpp"
+ }
+ },
+ "end": "(\\))\\s*(\\w+\\b)?",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.definition.type.end.objcpp"
+ },
+ "2": {
+ "name": "variable.parameter.function.objcpp"
+ }
+ },
+ "name": "meta.argument-type.objcpp",
+ "patterns": [
+ {
+ "include": "#protocol_list"
+ },
+ {
+ "include": "#protocol_type_qualifier"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "include": "#comment"
+ }
+ ]
+ },
+ "method_super": {
+ "begin": "^(?=-|\\+)",
+ "end": "(?<=\\})|(?=#)",
+ "name": "meta.function-with-body.objcpp",
+ "patterns": [
+ {
+ "include": "#method"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "pragma-mark": {
+ "captures": {
+ "1": {
+ "name": "meta.preprocessor.objcpp"
+ },
+ "2": {
+ "name": "keyword.control.import.pragma.objcpp"
+ },
+ "3": {
+ "name": "meta.toc-list.pragma-mark.objcpp"
+ }
+ },
+ "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))",
+ "name": "meta.section.objcpp"
+ },
+ "preprocessor-rule-disabled-implementation": {
+ "begin": "^\\s*(#(if)\\s+(0)\\b).*",
+ "captures": {
+ "1": {
+ "name": "meta.preprocessor.objcpp"
+ },
+ "2": {
+ "name": "keyword.control.import.if.objcpp"
+ },
+ "3": {
+ "name": "constant.numeric.preprocessor.objcpp"
+ }
+ },
+ "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
+ "patterns": [
+ {
+ "begin": "^\\s*(#\\s*(else)\\b)",
+ "captures": {
+ "1": {
+ "name": "meta.preprocessor.objcpp"
+ },
+ "2": {
+ "name": "keyword.control.import.else.objcpp"
+ }
+ },
+ "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
+ "patterns": [
+ {
+ "include": "#interface_innards"
+ }
+ ]
+ },
+ {
+ "begin": "",
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
+ "name": "comment.block.preprocessor.if-branch.objcpp",
+ "patterns": [
+ {
+ "include": "#disabled"
+ },
+ {
+ "include": "#pragma-mark"
+ }
+ ]
+ }
+ ]
+ },
+ "preprocessor-rule-disabled-interface": {
+ "begin": "^\\s*(#(if)\\s+(0)\\b).*",
+ "captures": {
+ "1": {
+ "name": "meta.preprocessor.objcpp"
+ },
+ "2": {
+ "name": "keyword.control.import.if.objcpp"
+ },
+ "3": {
+ "name": "constant.numeric.preprocessor.objcpp"
+ }
+ },
+ "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
+ "patterns": [
+ {
+ "begin": "^\\s*(#\\s*(else)\\b)",
+ "captures": {
+ "1": {
+ "name": "meta.preprocessor.objcpp"
+ },
+ "2": {
+ "name": "keyword.control.import.else.objcpp"
+ }
+ },
+ "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
+ "patterns": [
+ {
+ "include": "#interface_innards"
+ }
+ ]
+ },
+ {
+ "begin": "",
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
+ "name": "comment.block.preprocessor.if-branch.objcpp",
+ "patterns": [
+ {
+ "include": "#disabled"
+ },
+ {
+ "include": "#pragma-mark"
+ }
+ ]
+ }
+ ]
+ },
+ "preprocessor-rule-enabled-implementation": {
+ "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
+ "captures": {
+ "1": {
+ "name": "meta.preprocessor.objcpp"
+ },
+ "2": {
+ "name": "keyword.control.import.if.objcpp"
+ },
+ "3": {
+ "name": "constant.numeric.preprocessor.objcpp"
+ }
+ },
+ "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
+ "patterns": [
+ {
+ "begin": "^\\s*(#\\s*(else)\\b).*",
+ "captures": {
+ "1": {
+ "name": "meta.preprocessor.objcpp"
+ },
+ "2": {
+ "name": "keyword.control.import.else.objcpp"
+ }
+ },
+ "contentName": "comment.block.preprocessor.else-branch.objcpp",
+ "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
+ "patterns": [
+ {
+ "include": "#disabled"
+ },
+ {
+ "include": "#pragma-mark"
+ }
+ ]
+ },
+ {
+ "begin": "",
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
+ "patterns": [
+ {
+ "include": "#implementation_innards"
+ }
+ ]
+ }
+ ]
+ },
+ "preprocessor-rule-enabled-interface": {
+ "begin": "^\\s*(#(if)\\s+(0*1)\\b)",
+ "captures": {
+ "1": {
+ "name": "meta.preprocessor.objcpp"
+ },
+ "2": {
+ "name": "keyword.control.import.if.objcpp"
+ },
+ "3": {
+ "name": "constant.numeric.preprocessor.objcpp"
+ }
+ },
+ "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))",
+ "patterns": [
+ {
+ "begin": "^\\s*(#\\s*(else)\\b).*",
+ "captures": {
+ "1": {
+ "name": "meta.preprocessor.objcpp"
+ },
+ "2": {
+ "name": "keyword.control.import.else.objcpp"
+ }
+ },
+ "contentName": "comment.block.preprocessor.else-branch.objcpp",
+ "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))",
+ "patterns": [
+ {
+ "include": "#disabled"
+ },
+ {
+ "include": "#pragma-mark"
+ }
+ ]
+ },
+ {
+ "begin": "",
+ "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))",
+ "patterns": [
+ {
+ "include": "#interface_innards"
+ }
+ ]
+ }
+ ]
+ },
+ "preprocessor-rule-other-implementation": {
+ "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
+ "captures": {
+ "1": {
+ "name": "meta.preprocessor.objcpp"
+ },
+ "2": {
+ "name": "keyword.control.import.objcpp"
+ }
+ },
+ "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",
+ "patterns": [
+ {
+ "include": "#implementation_innards"
+ }
+ ]
+ },
+ "preprocessor-rule-other-interface": {
+ "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))",
+ "captures": {
+ "1": {
+ "name": "meta.preprocessor.objcpp"
+ },
+ "2": {
+ "name": "keyword.control.import.objcpp"
+ }
+ },
+ "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)",
+ "patterns": [
+ {
+ "include": "#interface_innards"
+ }
+ ]
+ },
+ "properties": {
+ "patterns": [
+ {
+ "begin": "((@)property)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.property.objcpp"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.objcpp"
+ },
+ "3": {
+ "name": "punctuation.section.scope.begin.objcpp"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.scope.end.objcpp"
+ }
+ },
+ "name": "meta.property-with-attributes.objcpp",
+ "patterns": [
+ {
+ "match": "\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|strong|weak)\\b",
+ "name": "keyword.other.property.attribute.objcpp"
+ }
+ ]
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "keyword.other.property.objcpp"
+ },
+ "2": {
+ "name": "punctuation.definition.keyword.objcpp"
+ }
+ },
+ "match": "((@)property)\\b",
+ "name": "meta.property.objcpp"
+ }
+ ]
+ },
+ "property_directive": {
+ "captures": {
+ "1": {
+ "name": "punctuation.definition.keyword.objcpp"
+ }
+ },
+ "match": "(@)(dynamic|synthesize)\\b",
+ "name": "keyword.other.property.directive.objcpp"
+ },
+ "protocol_list": {
+ "begin": "(<)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.section.scope.begin.objcpp"
+ }
+ },
+ "end": "(>)",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.scope.end.objcpp"
+ }
+ },
+ "name": "meta.protocol-list.objcpp",
+ "patterns": [
+ {
+ "match": "\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b",
+ "name": "support.other.protocol.objcpp"
+ }
+ ]
+ },
+ "protocol_type_qualifier": {
+ "match": "\\b(in|out|inout|oneway|bycopy|byref)\\b",
+ "name": "storage.modifier.protocol.objcpp"
+ },
+ "special_variables": {
+ "patterns": [
+ {
+ "match": "\\b_cmd\\b",
+ "name": "variable.other.selector.objcpp"
+ },
+ {
+ "match": "\\b(self|super)\\b",
+ "name": "variable.language.objcpp"
+ }
+ ]
+ }
+ }
}
\ No newline at end of file
diff --git a/extensions/objective-c/syntaxes/objective-c.tmLanguage.json b/extensions/objective-c/syntaxes/objective-c.tmLanguage.json
index b88ebab9eb8..95a57cee9cc 100644
--- a/extensions/objective-c/syntaxes/objective-c.tmLanguage.json
+++ b/extensions/objective-c/syntaxes/objective-c.tmLanguage.json
@@ -1,10 +1,10 @@
{
"information_for_contributors": [
- "This file has been converted from https://github.com/atom/language-objective-c/blob/master/grammars/objective-c.cson",
+ "This file has been converted from https://github.com/jeff-hykin/cpp-textmate-grammar/blob/master//syntaxes/objc.tmLanguage.json",
"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-objective-c/commit/0727e04544f3414c1c339cf15a39a05ea3938cb4",
+ "version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/efa8ce61762d0481a1b710fdbc12e284867cdc8f",
"name": "Objective-C",
"scopeName": "source.objc",
"patterns": [
@@ -83,14 +83,14 @@
"name": "string.quoted.double.objc",
"patterns": [
{
- "include": "source.c#string_escaped_char"
+ "include": "#string_escaped_char"
},
{
"match": "(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t[@] # conversion type\n\t\t\t\t\t",
"name": "constant.other.placeholder.objc"
},
{
- "include": "source.c#string_placeholder"
+ "include": "#string_placeholder"
}
]
},
@@ -214,15 +214,15 @@
},
{
"match": "\\bNSApp\\b",
- "name": "support.variable.foundation"
+ "name": "support.variable.foundation.objc"
},
{
"captures": {
"1": {
- "name": "punctuation.whitespace.support.function.cocoa.leopard"
+ "name": "punctuation.whitespace.support.function.cocoa.leopard.objc"
},
"2": {
- "name": "support.function.cocoa.leopard"
+ "name": "support.function.cocoa.leopard.objc"
}
},
"match": "(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b"
@@ -230,66 +230,2677 @@
{
"captures": {
"1": {
- "name": "punctuation.whitespace.support.function.leading.cocoa"
+ "name": "punctuation.whitespace.support.function.leading.cocoa.objc"
},
"2": {
- "name": "support.function.cocoa"
+ "name": "support.function.cocoa.objc"
}
},
"match": "(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b"
},
{
"match": "\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b",
- "name": "support.class.cocoa.leopard"
+ "name": "support.class.cocoa.leopard.objc"
},
{
"match": "\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b",
- "name": "support.class.cocoa"
+ "name": "support.class.cocoa.objc"
},
{
"match": "\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b",
- "name": "support.type.cocoa.leopard"
+ "name": "support.type.cocoa.leopard.objc"
},
{
"match": "\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b",
- "name": "support.class.quartz"
+ "name": "support.class.quartz.objc"
},
{
"match": "\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b",
- "name": "support.type.quartz"
+ "name": "support.type.quartz.objc"
},
{
"match": "\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b",
- "name": "support.type.cocoa"
+ "name": "support.type.cocoa.objc"
},
{
"match": "\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b",
- "name": "support.constant.cocoa"
+ "name": "support.constant.cocoa.objc"
},
{
"match": "\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b",
- "name": "support.constant.notification.cocoa.leopard"
+ "name": "support.constant.notification.cocoa.leopard.objc"
},
{
"match": "\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b",
- "name": "support.constant.notification.cocoa"
+ "name": "support.constant.notification.cocoa.objc"
},
{
"match": "\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b",
- "name": "support.constant.cocoa.leopard"
+ "name": "support.constant.cocoa.leopard.objc"
},
{
"match": "\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b",
- "name": "support.constant.cocoa"
+ "name": "support.constant.cocoa.objc"
},
{
- "include": "source.c"
+ "include": "#c_lang"
},
{
"include": "#bracketed_content"
}
],
"repository": {
+ "c_lang": {
+ "patterns": [
+ {
+ "include": "#preprocessor-rule-enabled"
+ },
+ {
+ "include": "#preprocessor-rule-disabled"
+ },
+ {
+ "include": "#preprocessor-rule-conditional"
+ },
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#switch_statement"
+ },
+ {
+ "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b",
+ "name": "keyword.control.objc"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "match": "typedef",
+ "name": "keyword.other.typedef.objc"
+ },
+ {
+ "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b",
+ "name": "storage.modifier.objc"
+ },
+ {
+ "match": "\\bk[A-Z]\\w*\\b",
+ "name": "constant.other.variable.mac-classic.objc"
+ },
+ {
+ "match": "\\bg[A-Z]\\w*\\b",
+ "name": "variable.other.readwrite.global.mac-classic.objc"
+ },
+ {
+ "match": "\\bs[A-Z]\\w*\\b",
+ "name": "variable.other.readwrite.static.mac-classic.objc"
+ },
+ {
+ "match": "\\b(NULL|true|false|TRUE|FALSE)\\b",
+ "name": "constant.language.objc"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "include": "#numbers"
+ },
+ {
+ "include": "#strings"
+ },
+ {
+ "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g \\s*\t\t # first argument\n\t ((,) \\s* \\g \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.directive.define.objc"
+ },
+ "2": {
+ "name": "punctuation.definition.directive.objc"
+ },
+ "3": {
+ "name": "entity.name.function.preprocessor.objc"
+ },
+ "5": {
+ "name": "punctuation.definition.parameters.begin.objc"
+ },
+ "6": {
+ "name": "variable.parameter.preprocessor.objc"
+ },
+ "8": {
+ "name": "punctuation.separator.parameters.objc"
+ },
+ "9": {
+ "name": "punctuation.definition.parameters.end.objc"
+ }
+ },
+ "end": "(?=(?://|/\\*))|(?",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objc"
+ }
+ },
+ "name": "string.quoted.other.lt-gt.include.objc"
+ }
+ ]
+ },
+ {
+ "include": "#pragma-mark"
+ },
+ {
+ "begin": "^\\s*((#)\\s*line)\\b",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.control.directive.line.objc"
+ },
+ "2": {
+ "name": "punctuation.definition.directive.objc"
+ }
+ },
+ "end": "(?=(?://|/\\*))|(?\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))",
+ "captures": {
+ "1": {
+ "name": "variable.parameter.probably.objc"
+ }
+ }
+ },
+ "access-method": {
+ "name": "meta.function-call.member.objc",
+ "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.object.objc"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.objc"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.objc"
+ },
+ "4": {
+ "patterns": [
+ {
+ "match": "\\.",
+ "name": "punctuation.separator.dot-access.objc"
+ },
+ {
+ "match": "->",
+ "name": "punctuation.separator.pointer-access.objc"
+ },
+ {
+ "match": "[a-zA-Z_][a-zA-Z_0-9]*",
+ "name": "variable.object.objc"
+ },
+ {
+ "name": "everything.else.objc",
+ "match": ".+"
+ }
+ ]
+ },
+ "5": {
+ "name": "entity.name.function.member.objc"
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.objc"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ "block": {
+ "patterns": [
+ {
+ "begin": "{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.objc"
+ }
+ },
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.objc"
+ }
+ },
+ "name": "meta.block.objc",
+ "patterns": [
+ {
+ "include": "#block_innards"
+ }
+ ]
+ }
+ ]
+ },
+ "block_innards": {
+ "patterns": [
+ {
+ "include": "#preprocessor-rule-enabled-block"
+ },
+ {
+ "include": "#preprocessor-rule-disabled-block"
+ },
+ {
+ "include": "#preprocessor-rule-conditional-block"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#c_function_call"
+ },
+ {
+ "name": "meta.initialization.objc",
+ "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.objc"
+ },
+ "2": {
+ "name": "punctuation.section.parens.begin.bracket.round.initialization.objc"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.initialization.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ {
+ "begin": "{",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.block.begin.bracket.curly.objc"
+ }
+ },
+ "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.block.end.bracket.curly.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ {
+ "include": "#parens-block"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "c_function_call": {
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
+ "end": "(?<=\\))(?!\\w)",
+ "name": "meta.function-call.objc",
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ "comments": {
+ "patterns": [
+ {
+ "captures": {
+ "1": {
+ "name": "meta.toc-list.banner.block.objc"
+ }
+ },
+ "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?",
+ "name": "comment.block.objc"
+ },
+ {
+ "begin": "/\\*",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.begin.objc"
+ }
+ },
+ "end": "\\*/",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.end.objc"
+ }
+ },
+ "name": "comment.block.objc"
+ },
+ {
+ "captures": {
+ "1": {
+ "name": "meta.toc-list.banner.line.objc"
+ }
+ },
+ "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?",
+ "name": "comment.line.banner.objc"
+ },
+ {
+ "begin": "(^[ \\t]+)?(?=//)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.whitespace.comment.leading.objc"
+ }
+ },
+ "end": "(?!\\G)",
+ "patterns": [
+ {
+ "begin": "//",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.comment.objc"
+ }
+ },
+ "end": "(?=\\n)",
+ "name": "comment.line.double-slash.objc",
+ "patterns": [
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ "disabled": {
+ "begin": "^\\s*#\\s*if(n?def)?\\b.*$",
+ "end": "^\\s*#\\s*endif\\b",
+ "patterns": [
+ {
+ "include": "#disabled"
+ },
+ {
+ "include": "#pragma-mark"
+ }
+ ]
+ },
+ "line_continuation_character": {
+ "patterns": [
+ {
+ "match": "(\\\\)\\n",
+ "captures": {
+ "1": {
+ "name": "constant.character.escape.line-continuation.objc"
+ }
+ }
+ }
+ ]
+ },
+ "parens": {
+ "name": "meta.parens.objc",
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.objc"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "parens-block": {
+ "name": "meta.parens.block.objc",
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.objc"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#block_innards"
+ },
+ {
+ "match": "(?-mix:(?>=|\\|=",
+ "name": "keyword.operator.assignment.compound.bitwise.objc"
+ },
+ {
+ "match": "<<|>>",
+ "name": "keyword.operator.bitwise.shift.objc"
+ },
+ {
+ "match": "!=|<=|>=|==|<|>",
+ "name": "keyword.operator.comparison.objc"
+ },
+ {
+ "match": "&&|!|\\|\\|",
+ "name": "keyword.operator.logical.objc"
+ },
+ {
+ "match": "&|\\||\\^|~",
+ "name": "keyword.operator.objc"
+ },
+ {
+ "match": "=",
+ "name": "keyword.operator.assignment.objc"
+ },
+ {
+ "match": "%|\\*|/|-|\\+",
+ "name": "keyword.operator.objc"
+ },
+ {
+ "begin": "(\\?)",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.operator.ternary.objc"
+ }
+ },
+ "end": "(:)",
+ "endCaptures": {
+ "1": {
+ "name": "keyword.operator.ternary.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ }
+ ]
+ },
+ "strings": {
+ "patterns": [
+ {
+ "begin": "\"",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.objc"
+ }
+ },
+ "end": "\"",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objc"
+ }
+ },
+ "name": "string.quoted.double.objc",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ },
+ {
+ "include": "#string_placeholder"
+ },
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ },
+ {
+ "begin": "'",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.begin.objc"
+ }
+ },
+ "end": "'",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.definition.string.end.objc"
+ }
+ },
+ "name": "string.quoted.single.objc",
+ "patterns": [
+ {
+ "include": "#string_escaped_char"
+ },
+ {
+ "include": "#line_continuation_character"
+ }
+ ]
+ }
+ ]
+ },
+ "string_escaped_char": {
+ "patterns": [
+ {
+ "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )",
+ "name": "constant.character.escape.objc"
+ },
+ {
+ "match": "\\\\.",
+ "name": "invalid.illegal.unknown-escape.objc"
+ }
+ ]
+ },
+ "string_placeholder": {
+ "patterns": [
+ {
+ "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type",
+ "name": "constant.other.placeholder.objc"
+ },
+ {
+ "match": "(%)(?!\"\\s*(PRI|SCN))",
+ "captures": {
+ "1": {
+ "name": "invalid.illegal.placeholder.objc"
+ }
+ }
+ }
+ ]
+ },
+ "storage_types": {
+ "patterns": [
+ {
+ "match": "(?-mix:(?=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)",
+ "end": "(?<=\\))(?!\\w)|(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.objc"
+ },
+ "2": {
+ "name": "punctuation.section.arguments.begin.bracket.round.objc"
+ }
+ },
+ "end": "(\\))|(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.objc"
+ },
+ "2": {
+ "name": "punctuation.section.parameters.begin.bracket.round.objc"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parameters.end.bracket.round.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#probably_a_parameter"
+ },
+ {
+ "include": "#function-innards"
+ }
+ ]
+ },
+ {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.objc"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-innards"
+ }
+ ]
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ "function-call-innards": {
+ "patterns": [
+ {
+ "include": "#comments"
+ },
+ {
+ "include": "#storage_types"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#operators"
+ },
+ {
+ "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "entity.name.function.objc"
+ },
+ "2": {
+ "name": "punctuation.section.arguments.begin.bracket.round.objc"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.arguments.end.bracket.round.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ {
+ "begin": "\\(",
+ "beginCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.begin.bracket.round.objc"
+ }
+ },
+ "end": "\\)",
+ "endCaptures": {
+ "0": {
+ "name": "punctuation.section.parens.end.bracket.round.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ "default_statement": {
+ "name": "meta.conditional.case.objc",
+ "begin": "((?\\[\\]=]))",
+ "patterns": [
+ {
+ "name": "meta.head.switch.objc",
+ "begin": "\\G ?",
+ "end": "((?:\\{|(?=;)))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.begin.bracket.curly.switch.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#switch_conditional_parentheses"
+ },
+ {
+ "include": "$base"
+ }
+ ]
+ },
+ {
+ "name": "meta.body.switch.objc",
+ "begin": "(?<=\\{)",
+ "end": "(\\})",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.block.end.bracket.curly.switch.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#default_statement"
+ },
+ {
+ "include": "#case_statement"
+ },
+ {
+ "include": "$base"
+ },
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ {
+ "name": "meta.tail.switch.objc",
+ "begin": "(?<=})[\\s\\n]*",
+ "end": "[\\s\\n]*(?=;)",
+ "patterns": [
+ {
+ "include": "$base"
+ }
+ ]
+ }
+ ]
+ },
+ "switch_conditional_parentheses": {
+ "name": "meta.conditional.switch.objc",
+ "begin": "(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.objc"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.parens.end.bracket.round.conditional.switch.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#conditional_context"
+ }
+ ]
+ },
+ "static_assert": {
+ "begin": "(static_assert|_Static_assert)\\s*(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "keyword.other.static_assert.objc"
+ },
+ "2": {
+ "name": "punctuation.section.arguments.begin.bracket.round.objc"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.arguments.end.bracket.round.objc"
+ }
+ },
+ "patterns": [
+ {
+ "name": "meta.static_assert.message.objc",
+ "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)",
+ "beginCaptures": {
+ "1": {
+ "name": "punctuation.separator.delimiter.objc"
+ }
+ },
+ "end": "(?=\\))",
+ "patterns": [
+ {
+ "include": "#string_context"
+ },
+ {
+ "include": "#string_context_c"
+ }
+ ]
+ },
+ {
+ "include": "#function_call_context"
+ }
+ ]
+ },
+ "conditional_context": {
+ "patterns": [
+ {
+ "include": "$base"
+ },
+ {
+ "include": "#block_innards"
+ }
+ ]
+ },
+ "member_access": {
+ "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())",
+ "captures": {
+ "1": {
+ "name": "variable.other.object.access.objc"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.objc"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.objc"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
+ "captures": {
+ "1": {
+ "name": "variable.other.object.access.objc"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.objc"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.objc"
+ }
+ }
+ }
+ ]
+ },
+ "5": {
+ "name": "variable.other.member.objc"
+ }
+ }
+ },
+ "method_access": {
+ "contentName": "meta.function-call.member.objc",
+ "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()",
+ "beginCaptures": {
+ "1": {
+ "name": "variable.other.object.access.objc"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.objc"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.objc"
+ },
+ "4": {
+ "patterns": [
+ {
+ "include": "#member_access"
+ },
+ {
+ "include": "#method_access"
+ },
+ {
+ "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))",
+ "captures": {
+ "1": {
+ "name": "variable.other.object.access.objc"
+ },
+ "2": {
+ "name": "punctuation.separator.dot-access.objc"
+ },
+ "3": {
+ "name": "punctuation.separator.pointer-access.objc"
+ }
+ }
+ }
+ ]
+ },
+ "5": {
+ "name": "entity.name.function.member.objc"
+ },
+ "6": {
+ "name": "punctuation.section.arguments.begin.bracket.round.function.member.objc"
+ }
+ },
+ "end": "(\\))",
+ "endCaptures": {
+ "1": {
+ "name": "punctuation.section.arguments.end.bracket.round.function.member.objc"
+ }
+ },
+ "patterns": [
+ {
+ "include": "#function-call-innards"
+ }
+ ]
+ },
+ "numbers": {
+ "begin": "(?",
- "t": "source.objc meta.preprocessor.include.c string.quoted.other.lt-gt.include.c punctuation.definition.string.end.c",
+ "t": "source.objc meta.preprocessor.include.objc string.quoted.other.lt-gt.include.objc punctuation.definition.string.end.objc",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -177,7 +177,7 @@
},
{
"c": "/*",
- "t": "source.objc comment.block.c punctuation.definition.comment.begin.c",
+ "t": "source.objc comment.block.objc punctuation.definition.comment.begin.objc",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -188,7 +188,7 @@
},
{
"c": "\tMulti",
- "t": "source.objc comment.block.c",
+ "t": "source.objc comment.block.objc",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -199,7 +199,7 @@
},
{
"c": "\tLine",
- "t": "source.objc comment.block.c",
+ "t": "source.objc comment.block.objc",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -210,7 +210,7 @@
},
{
"c": "\tComments",
- "t": "source.objc comment.block.c",
+ "t": "source.objc comment.block.objc",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -221,7 +221,7 @@
},
{
"c": "*/",
- "t": "source.objc comment.block.c punctuation.definition.comment.end.c",
+ "t": "source.objc comment.block.objc punctuation.definition.comment.end.objc",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -298,7 +298,7 @@
},
{
"c": "void",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc storage.type.built-in.primitive.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc storage.type.built-in.primitive.objc",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -364,7 +364,7 @@
},
{
"c": "NSNotification",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc support.class.cocoa",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc support.class.cocoa.objc",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -386,7 +386,7 @@
},
{
"c": "*",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc keyword.operator.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc keyword.operator.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -419,7 +419,7 @@
},
{
"c": "{",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.section.block.begin.bracket.curly.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.section.block.begin.bracket.curly.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -430,7 +430,7 @@
},
{
"c": "}",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.section.block.end.bracket.curly.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.section.block.end.bracket.curly.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -551,7 +551,7 @@
},
{
"c": "{",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.section.block.begin.bracket.curly.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.section.block.begin.bracket.curly.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -562,7 +562,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -573,7 +573,7 @@
},
{
"c": "NSString",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c support.class.cocoa",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc support.class.cocoa.objc",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -584,7 +584,7 @@
},
{
"c": "*",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -595,7 +595,7 @@
},
{
"c": " defaultDir ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -606,7 +606,7 @@
},
{
"c": "=",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -617,7 +617,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.whitespace.support.function.leading.cocoa",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.whitespace.support.function.leading.cocoa.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -628,7 +628,7 @@
},
{
"c": "NSSearchPathForDirectoriesInDomains",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c support.function.cocoa",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc support.function.cocoa.objc",
"r": {
"dark_plus": "support.function: #DCDCAA",
"light_plus": "support.function: #795E26",
@@ -639,7 +639,7 @@
},
{
"c": "(",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c punctuation.section.parens.begin.bracket.round.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc punctuation.section.parens.begin.bracket.round.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -650,7 +650,7 @@
},
{
"c": "NSDocumentDirectory",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c support.constant.cocoa",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc support.constant.cocoa.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -661,7 +661,7 @@
},
{
"c": ",",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c punctuation.separator.delimiter.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc punctuation.separator.delimiter.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -672,7 +672,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -683,7 +683,7 @@
},
{
"c": "NSUserDomainMask",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c support.constant.cocoa",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc support.constant.cocoa.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -694,7 +694,7 @@
},
{
"c": ",",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c punctuation.separator.delimiter.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc punctuation.separator.delimiter.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -705,7 +705,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -716,7 +716,7 @@
},
{
"c": "true",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c constant.language.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc constant.language.objc",
"r": {
"dark_plus": "constant.language: #569CD6",
"light_plus": "constant.language: #0000FF",
@@ -727,7 +727,7 @@
},
{
"c": ")",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c punctuation.section.parens.end.bracket.round.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc punctuation.section.parens.end.bracket.round.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -738,7 +738,7 @@
},
{
"c": "[",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -749,7 +749,7 @@
},
{
"c": "0",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c constant.numeric.decimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc constant.numeric.decimal.objc",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -760,7 +760,7 @@
},
{
"c": "]",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -771,7 +771,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -782,7 +782,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -793,7 +793,7 @@
},
{
"c": "NSOpenPanel",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c support.class.cocoa",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc support.class.cocoa.objc",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -804,7 +804,7 @@
},
{
"c": "*",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -815,7 +815,7 @@
},
{
"c": " panel ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -826,7 +826,7 @@
},
{
"c": "=",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -837,7 +837,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -848,7 +848,7 @@
},
{
"c": "[",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -859,7 +859,7 @@
},
{
"c": "NSOpenPanel",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c support.class.cocoa",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc support.class.cocoa.objc",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -870,7 +870,7 @@
},
{
"c": " openPanel",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -881,7 +881,7 @@
},
{
"c": "]",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -892,7 +892,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -903,7 +903,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -914,7 +914,7 @@
},
{
"c": "[",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -925,7 +925,7 @@
},
{
"c": "panel setAllowedFileTypes:",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -936,7 +936,7 @@
},
{
"c": "[",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -947,7 +947,7 @@
},
{
"c": "[",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -958,7 +958,7 @@
},
{
"c": "NSArray",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c support.class.cocoa",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc support.class.cocoa.objc",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -969,7 +969,7 @@
},
{
"c": " alloc",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -980,7 +980,7 @@
},
{
"c": "]",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -991,7 +991,7 @@
},
{
"c": " initWithObjects:",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1002,7 +1002,7 @@
},
{
"c": "@\"",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc punctuation.definition.string.begin.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc punctuation.definition.string.begin.objc",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1013,7 +1013,7 @@
},
{
"c": "ipa",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1024,7 +1024,7 @@
},
{
"c": "\"",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc punctuation.definition.string.end.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc punctuation.definition.string.end.objc",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1035,7 +1035,7 @@
},
{
"c": ",",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.separator.delimiter.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.separator.delimiter.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1046,7 +1046,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1057,7 +1057,7 @@
},
{
"c": "@\"",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc punctuation.definition.string.begin.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc punctuation.definition.string.begin.objc",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1068,7 +1068,7 @@
},
{
"c": "xcarchive",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1079,7 +1079,7 @@
},
{
"c": "\"",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc punctuation.definition.string.end.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc punctuation.definition.string.end.objc",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1090,7 +1090,7 @@
},
{
"c": ",",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.separator.delimiter.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.separator.delimiter.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1101,7 +1101,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1112,7 +1112,7 @@
},
{
"c": "@\"",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc punctuation.definition.string.begin.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc punctuation.definition.string.begin.objc",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1123,7 +1123,7 @@
},
{
"c": "app",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1134,7 +1134,7 @@
},
{
"c": "\"",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc punctuation.definition.string.end.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc punctuation.definition.string.end.objc",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1145,7 +1145,7 @@
},
{
"c": ",",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.separator.delimiter.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.separator.delimiter.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1156,7 +1156,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1167,7 +1167,7 @@
},
{
"c": "nil",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c constant.language.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc constant.language.objc",
"r": {
"dark_plus": "constant.language: #569CD6",
"light_plus": "constant.language: #0000FF",
@@ -1178,7 +1178,7 @@
},
{
"c": "]",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1189,7 +1189,7 @@
},
{
"c": "]",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1200,7 +1200,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1211,7 +1211,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1222,7 +1222,7 @@
},
{
"c": "[",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1233,7 +1233,7 @@
},
{
"c": "panel beginWithCompletionHandler:",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1244,7 +1244,7 @@
},
{
"c": "^",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c keyword.operator.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc keyword.operator.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1255,7 +1255,7 @@
},
{
"c": "(",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.section.parens.begin.bracket.round.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.section.parens.begin.bracket.round.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1266,7 +1266,7 @@
},
{
"c": "NSInteger",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c support.type.cocoa.leopard",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc support.type.cocoa.leopard.objc",
"r": {
"dark_plus": "support.type: #4EC9B0",
"light_plus": "support.type: #267F99",
@@ -1277,7 +1277,7 @@
},
{
"c": " result",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1288,7 +1288,7 @@
},
{
"c": ")",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.section.parens.end.bracket.round.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.section.parens.end.bracket.round.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1299,7 +1299,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1310,7 +1310,7 @@
},
{
"c": "{",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.section.block.begin.bracket.curly.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.section.block.begin.bracket.curly.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1321,7 +1321,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1332,7 +1332,7 @@
},
{
"c": "if",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c keyword.control.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc keyword.control.objc",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -1343,7 +1343,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1354,7 +1354,7 @@
},
{
"c": "(",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.parens.block.c punctuation.section.parens.begin.bracket.round.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.parens.block.objc punctuation.section.parens.begin.bracket.round.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1365,7 +1365,7 @@
},
{
"c": "result ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.parens.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.parens.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1376,7 +1376,7 @@
},
{
"c": "==",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.parens.block.c keyword.operator.comparison.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.parens.block.objc keyword.operator.comparison.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1387,7 +1387,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.parens.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.parens.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1398,7 +1398,7 @@
},
{
"c": "NSFileHandlingPanelOKButton",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.parens.block.c support.constant.cocoa",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.parens.block.objc support.constant.cocoa.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1409,7 +1409,7 @@
},
{
"c": ")",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.parens.block.c punctuation.section.parens.end.bracket.round.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.parens.block.objc punctuation.section.parens.end.bracket.round.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1420,7 +1420,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1431,7 +1431,7 @@
},
{
"c": "[",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1442,7 +1442,7 @@
},
{
"c": "self",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c variable.other.object.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc variable.other.object.access.objc",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1453,7 +1453,7 @@
},
{
"c": ".",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.separator.dot-access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.separator.dot-access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1464,7 +1464,7 @@
},
{
"c": "inputTextField",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c variable.other.member.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc variable.other.member.objc",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1475,7 +1475,7 @@
},
{
"c": " setStringValue:",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1486,7 +1486,7 @@
},
{
"c": "[",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1497,7 +1497,7 @@
},
{
"c": "panel",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c variable.other.object.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc variable.other.object.access.objc",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1508,7 +1508,7 @@
},
{
"c": ".",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.separator.dot-access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.separator.dot-access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1519,7 +1519,7 @@
},
{
"c": "URL",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c variable.other.member.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc variable.other.member.objc",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1530,7 +1530,7 @@
},
{
"c": " path",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1541,7 +1541,7 @@
},
{
"c": "]",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1552,7 +1552,7 @@
},
{
"c": "]",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1563,7 +1563,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1574,7 +1574,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1585,7 +1585,7 @@
},
{
"c": "}",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.section.block.end.bracket.curly.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.section.block.end.bracket.curly.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1596,7 +1596,7 @@
},
{
"c": "]",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1607,7 +1607,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1618,7 +1618,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1629,7 +1629,7 @@
},
{
"c": "return",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.control.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.control.objc",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -1640,7 +1640,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1651,7 +1651,7 @@
},
{
"c": "YES",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.language.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.language.objc",
"r": {
"dark_plus": "constant.language: #569CD6",
"light_plus": "constant.language: #0000FF",
@@ -1662,7 +1662,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1673,7 +1673,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1684,7 +1684,7 @@
},
{
"c": "int",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c storage.type.built-in.primitive.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc storage.type.built-in.primitive.objc",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -1695,7 +1695,7 @@
},
{
"c": " hex ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1706,7 +1706,7 @@
},
{
"c": "=",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1717,7 +1717,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1728,7 +1728,7 @@
},
{
"c": "0x",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.other.unit.hexadecimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.other.unit.hexadecimal.objc",
"r": {
"dark_plus": "keyword.other.unit: #B5CEA8",
"light_plus": "keyword.other.unit: #09885A",
@@ -1739,7 +1739,7 @@
},
{
"c": "FEF1F0F",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.hexadecimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.hexadecimal.objc",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1750,7 +1750,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1761,7 +1761,7 @@
},
{
"c": "\t ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1772,7 +1772,7 @@
},
{
"c": "float",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c storage.type.built-in.primitive.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc storage.type.built-in.primitive.objc",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -1783,7 +1783,7 @@
},
{
"c": " ing ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1794,7 +1794,7 @@
},
{
"c": "=",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1805,7 +1805,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1816,7 +1816,7 @@
},
{
"c": "3",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.objc",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1827,7 +1827,7 @@
},
{
"c": ".",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.point.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.point.objc",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1838,7 +1838,7 @@
},
{
"c": "14",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.objc",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1849,7 +1849,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1860,7 +1860,7 @@
},
{
"c": "\t ing ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1871,7 +1871,7 @@
},
{
"c": "=",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1882,7 +1882,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1893,7 +1893,7 @@
},
{
"c": "3",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.objc",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1904,7 +1904,7 @@
},
{
"c": ".",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.point.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.point.objc",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1915,7 +1915,7 @@
},
{
"c": "14",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.objc",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1926,7 +1926,7 @@
},
{
"c": "e",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.other.unit.exponent.decimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.other.unit.exponent.decimal.objc",
"r": {
"dark_plus": "keyword.other.unit: #B5CEA8",
"light_plus": "keyword.other.unit: #09885A",
@@ -1937,7 +1937,7 @@
},
{
"c": "0",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.exponent.decimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.exponent.decimal.objc",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1948,7 +1948,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1959,7 +1959,7 @@
},
{
"c": "\t ing ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1970,7 +1970,7 @@
},
{
"c": "=",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1981,7 +1981,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1992,7 +1992,7 @@
},
{
"c": "31",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.objc",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -2003,7 +2003,7 @@
},
{
"c": ".",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.point.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.point.objc",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -2014,7 +2014,7 @@
},
{
"c": "4",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.objc",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -2025,7 +2025,7 @@
},
{
"c": "e",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.other.unit.exponent.decimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.other.unit.exponent.decimal.objc",
"r": {
"dark_plus": "keyword.other.unit: #B5CEA8",
"light_plus": "keyword.other.unit: #09885A",
@@ -2036,7 +2036,7 @@
},
{
"c": "-",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.minus.exponent.decimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.minus.exponent.decimal.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -2047,7 +2047,7 @@
},
{
"c": "2",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.exponent.decimal.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.exponent.decimal.objc",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -2058,7 +2058,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2069,7 +2069,7 @@
},
{
"c": "}",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.section.block.end.bracket.curly.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.section.block.end.bracket.curly.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2366,7 +2366,7 @@
},
{
"c": "{",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.section.block.begin.bracket.curly.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.section.block.begin.bracket.curly.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2377,7 +2377,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.whitespace.comment.leading.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.whitespace.comment.leading.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2388,7 +2388,7 @@
},
{
"c": "//",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c comment.line.double-slash.c punctuation.definition.comment.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc comment.line.double-slash.objc punctuation.definition.comment.objc",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -2399,7 +2399,7 @@
},
{
"c": " add a tap gesture recognizer",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c comment.line.double-slash.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc comment.line.double-slash.objc",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -2410,7 +2410,7 @@
},
{
"c": " UITapGestureRecognizer ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2421,7 +2421,7 @@
},
{
"c": "*",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -2432,7 +2432,7 @@
},
{
"c": "tapGesture ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2443,7 +2443,7 @@
},
{
"c": "=",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -2454,7 +2454,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2465,7 +2465,7 @@
},
{
"c": "[",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2476,7 +2476,7 @@
},
{
"c": "[",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2487,7 +2487,7 @@
},
{
"c": "UITapGestureRecognizer alloc",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2498,7 +2498,7 @@
},
{
"c": "]",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2509,7 +2509,7 @@
},
{
"c": " initWithTarget:self action:",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2520,7 +2520,7 @@
},
{
"c": "@",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.selector.objc storage.type.objc punctuation.definition.storage.type.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.selector.objc storage.type.objc punctuation.definition.storage.type.objc",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -2531,7 +2531,7 @@
},
{
"c": "selector",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.selector.objc storage.type.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.selector.objc storage.type.objc",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -2542,7 +2542,7 @@
},
{
"c": "(",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.selector.objc punctuation.definition.storage.type.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.selector.objc punctuation.definition.storage.type.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2553,7 +2553,7 @@
},
{
"c": "handleTap:",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.selector.objc meta.selector.method-name.objc support.function.any-method.name-of-parameter.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.selector.objc meta.selector.method-name.objc support.function.any-method.name-of-parameter.objc",
"r": {
"dark_plus": "support.function: #DCDCAA",
"light_plus": "support.function: #795E26",
@@ -2564,7 +2564,7 @@
},
{
"c": ")",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.selector.objc punctuation.definition.storage.type.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.selector.objc punctuation.definition.storage.type.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2575,7 +2575,7 @@
},
{
"c": "]",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2586,7 +2586,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2597,7 +2597,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2608,7 +2608,7 @@
},
{
"c": "NSMutableArray",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c support.class.cocoa",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc support.class.cocoa.objc",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -2619,7 +2619,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2630,7 +2630,7 @@
},
{
"c": "*",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -2641,7 +2641,7 @@
},
{
"c": "gestureRecognizers ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2652,7 +2652,7 @@
},
{
"c": "=",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -2663,7 +2663,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2674,7 +2674,7 @@
},
{
"c": "[",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2685,7 +2685,7 @@
},
{
"c": "NSMutableArray",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c support.class.cocoa",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc support.class.cocoa.objc",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -2696,7 +2696,7 @@
},
{
"c": " array",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2707,7 +2707,7 @@
},
{
"c": "]",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2718,7 +2718,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2729,7 +2729,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2740,7 +2740,7 @@
},
{
"c": "[",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2751,7 +2751,7 @@
},
{
"c": "gestureRecognizers addObject:tapGesture",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2762,7 +2762,7 @@
},
{
"c": "]",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2773,7 +2773,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2784,7 +2784,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2795,7 +2795,7 @@
},
{
"c": "[",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2806,7 +2806,7 @@
},
{
"c": "gestureRecognizers addObjectsFromArray:",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2817,7 +2817,7 @@
},
{
"c": "scnView",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c variable.other.object.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc variable.other.object.access.objc",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -2828,7 +2828,7 @@
},
{
"c": ".",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.separator.dot-access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.separator.dot-access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2839,7 +2839,7 @@
},
{
"c": "gestureRecognizers",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c variable.other.member.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc variable.other.member.objc",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -2850,7 +2850,7 @@
},
{
"c": "]",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2861,7 +2861,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2872,7 +2872,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2883,7 +2883,7 @@
},
{
"c": "scnView",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c variable.other.object.access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc variable.other.object.access.objc",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -2894,7 +2894,7 @@
},
{
"c": ".",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.separator.dot-access.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.separator.dot-access.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2905,7 +2905,7 @@
},
{
"c": "gestureRecognizers",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c variable.other.member.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc variable.other.member.objc",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -2916,7 +2916,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2927,7 +2927,7 @@
},
{
"c": "=",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -2938,7 +2938,7 @@
},
{
"c": " gestureRecognizers",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2949,7 +2949,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2960,7 +2960,7 @@
},
{
"c": "\t",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2971,7 +2971,7 @@
},
{
"c": "return",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.control.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.control.objc",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -2982,7 +2982,7 @@
},
{
"c": " tapGesture",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2993,7 +2993,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -3004,7 +3004,7 @@
},
{
"c": "\t",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -3015,7 +3015,7 @@
},
{
"c": "return",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.control.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.control.objc",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -3026,7 +3026,7 @@
},
{
"c": " ",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -3037,7 +3037,7 @@
},
{
"c": "nil",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.language.objc",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.language.objc",
"r": {
"dark_plus": "constant.language: #569CD6",
"light_plus": "constant.language: #0000FF",
@@ -3048,7 +3048,7 @@
},
{
"c": ";",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -3059,7 +3059,7 @@
},
{
"c": "}",
- "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.section.block.end.bracket.curly.c",
+ "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.section.block.end.bracket.curly.objc",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
diff --git a/extensions/objective-c/test/colorize-results/test_mm.json b/extensions/objective-c/test/colorize-results/test_mm.json
index 82cb0cd8192..2af2751bcec 100644
--- a/extensions/objective-c/test/colorize-results/test_mm.json
+++ b/extensions/objective-c/test/colorize-results/test_mm.json
@@ -1,7 +1,7 @@
[
{
"c": "//",
- "t": "source.objcpp comment.line.double-slash.c punctuation.definition.comment.c",
+ "t": "source.objcpp comment.line.double-slash.objcpp punctuation.definition.comment.objcpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -12,7 +12,7 @@
},
{
"c": "//",
- "t": "source.objcpp comment.line.double-slash.c punctuation.definition.comment.c",
+ "t": "source.objcpp comment.line.double-slash.objcpp punctuation.definition.comment.objcpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -23,7 +23,7 @@
},
{
"c": " Copyright (c) Microsoft Corporation. All rights reserved.",
- "t": "source.objcpp comment.line.double-slash.c",
+ "t": "source.objcpp comment.line.double-slash.objcpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -34,7 +34,7 @@
},
{
"c": "//",
- "t": "source.objcpp comment.line.double-slash.c punctuation.definition.comment.c",
+ "t": "source.objcpp comment.line.double-slash.objcpp punctuation.definition.comment.objcpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -45,7 +45,7 @@
},
{
"c": "#",
- "t": "source.objcpp meta.preprocessor.include.c keyword.control.directive.import.c punctuation.definition.directive.c",
+ "t": "source.objcpp meta.preprocessor.include.objcpp keyword.control.directive.import.objcpp punctuation.definition.directive.objcpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -56,7 +56,7 @@
},
{
"c": "import",
- "t": "source.objcpp meta.preprocessor.include.c keyword.control.directive.import.c",
+ "t": "source.objcpp meta.preprocessor.include.objcpp keyword.control.directive.import.objcpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -67,7 +67,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.preprocessor.include.c",
+ "t": "source.objcpp meta.preprocessor.include.objcpp",
"r": {
"dark_plus": "meta.preprocessor: #569CD6",
"light_plus": "meta.preprocessor: #0000FF",
@@ -78,7 +78,7 @@
},
{
"c": "\"",
- "t": "source.objcpp meta.preprocessor.include.c string.quoted.double.include.c punctuation.definition.string.begin.c",
+ "t": "source.objcpp meta.preprocessor.include.objcpp string.quoted.double.include.objcpp punctuation.definition.string.begin.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -89,7 +89,7 @@
},
{
"c": "UseQuotes.h",
- "t": "source.objcpp meta.preprocessor.include.c string.quoted.double.include.c",
+ "t": "source.objcpp meta.preprocessor.include.objcpp string.quoted.double.include.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -100,7 +100,7 @@
},
{
"c": "\"",
- "t": "source.objcpp meta.preprocessor.include.c string.quoted.double.include.c punctuation.definition.string.end.c",
+ "t": "source.objcpp meta.preprocessor.include.objcpp string.quoted.double.include.objcpp punctuation.definition.string.end.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -111,7 +111,7 @@
},
{
"c": "#",
- "t": "source.objcpp meta.preprocessor.include.c keyword.control.directive.import.c punctuation.definition.directive.c",
+ "t": "source.objcpp meta.preprocessor.include.objcpp keyword.control.directive.import.objcpp punctuation.definition.directive.objcpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -122,7 +122,7 @@
},
{
"c": "import",
- "t": "source.objcpp meta.preprocessor.include.c keyword.control.directive.import.c",
+ "t": "source.objcpp meta.preprocessor.include.objcpp keyword.control.directive.import.objcpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -133,7 +133,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.preprocessor.include.c",
+ "t": "source.objcpp meta.preprocessor.include.objcpp",
"r": {
"dark_plus": "meta.preprocessor: #569CD6",
"light_plus": "meta.preprocessor: #0000FF",
@@ -144,7 +144,7 @@
},
{
"c": "<",
- "t": "source.objcpp meta.preprocessor.include.c string.quoted.other.lt-gt.include.c punctuation.definition.string.begin.c",
+ "t": "source.objcpp meta.preprocessor.include.objcpp string.quoted.other.lt-gt.include.objcpp punctuation.definition.string.begin.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -155,7 +155,7 @@
},
{
"c": "Use/GTLT.h",
- "t": "source.objcpp meta.preprocessor.include.c string.quoted.other.lt-gt.include.c",
+ "t": "source.objcpp meta.preprocessor.include.objcpp string.quoted.other.lt-gt.include.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -166,7 +166,7 @@
},
{
"c": ">",
- "t": "source.objcpp meta.preprocessor.include.c string.quoted.other.lt-gt.include.c punctuation.definition.string.end.c",
+ "t": "source.objcpp meta.preprocessor.include.objcpp string.quoted.other.lt-gt.include.objcpp punctuation.definition.string.end.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -177,7 +177,7 @@
},
{
"c": "/*",
- "t": "source.objcpp comment.block.c punctuation.definition.comment.begin.c",
+ "t": "source.objcpp comment.block.objcpp punctuation.definition.comment.begin.objcpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -188,7 +188,7 @@
},
{
"c": "\tMulti",
- "t": "source.objcpp comment.block.c",
+ "t": "source.objcpp comment.block.objcpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -199,7 +199,7 @@
},
{
"c": "\tLine",
- "t": "source.objcpp comment.block.c",
+ "t": "source.objcpp comment.block.objcpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -210,7 +210,7 @@
},
{
"c": "\tComments",
- "t": "source.objcpp comment.block.c",
+ "t": "source.objcpp comment.block.objcpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -221,7 +221,7 @@
},
{
"c": "*/",
- "t": "source.objcpp comment.block.c punctuation.definition.comment.end.c",
+ "t": "source.objcpp comment.block.objcpp punctuation.definition.comment.end.objcpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -232,7 +232,7 @@
},
{
"c": "@",
- "t": "source.objcpp meta.implementation.objc storage.type.objc punctuation.definition.storage.type.objc",
+ "t": "source.objcpp meta.implementation.objcpp storage.type.objcpp punctuation.definition.storage.type.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -243,7 +243,7 @@
},
{
"c": "implementation",
- "t": "source.objcpp meta.implementation.objc storage.type.objc",
+ "t": "source.objcpp meta.implementation.objcpp storage.type.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -254,7 +254,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc",
+ "t": "source.objcpp meta.implementation.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -265,7 +265,7 @@
},
{
"c": "Test",
- "t": "source.objcpp meta.implementation.objc entity.name.type.objc",
+ "t": "source.objcpp meta.implementation.objcpp entity.name.type.objcpp",
"r": {
"dark_plus": "entity.name.type: #4EC9B0",
"light_plus": "entity.name.type: #267F99",
@@ -276,7 +276,7 @@
},
{
"c": "- ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -287,7 +287,7 @@
},
{
"c": "(",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc punctuation.definition.type.begin.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp punctuation.definition.type.begin.objcpp",
"r": {
"dark_plus": "meta.return-type: #4EC9B0",
"light_plus": "meta.return-type: #267F99",
@@ -298,7 +298,7 @@
},
{
"c": "void",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc storage.type.built-in.primitive.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp storage.type.built-in.primitive.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -309,7 +309,7 @@
},
{
"c": ")",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc punctuation.definition.type.end.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp punctuation.definition.type.end.objcpp",
"r": {
"dark_plus": "meta.return-type: #4EC9B0",
"light_plus": "meta.return-type: #267F99",
@@ -320,7 +320,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp",
"r": {
"dark_plus": "meta.return-type: #4EC9B0",
"light_plus": "meta.return-type: #267F99",
@@ -331,7 +331,7 @@
},
{
"c": "applicationWillFinishLaunching",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc entity.name.function.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp entity.name.function.objcpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -342,7 +342,7 @@
},
{
"c": ":",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc entity.name.function.name-of-parameter.objc punctuation.separator.arguments.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp entity.name.function.name-of-parameter.objcpp punctuation.separator.arguments.objcpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -353,7 +353,7 @@
},
{
"c": "(",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.begin.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.begin.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -364,7 +364,7 @@
},
{
"c": "NSNotification",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc support.class.cocoa",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp support.class.cocoa.objcpp",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -375,7 +375,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -386,7 +386,7 @@
},
{
"c": "*",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc keyword.operator.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp keyword.operator.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -397,7 +397,7 @@
},
{
"c": ")",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.end.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.end.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -408,7 +408,7 @@
},
{
"c": "notification",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc variable.parameter.function.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp variable.parameter.function.objcpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -419,7 +419,7 @@
},
{
"c": "{",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.section.block.begin.bracket.curly.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.section.block.begin.bracket.curly.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -430,7 +430,7 @@
},
{
"c": "}",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.section.block.end.bracket.curly.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.section.block.end.bracket.curly.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -441,7 +441,7 @@
},
{
"c": "- ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -452,7 +452,7 @@
},
{
"c": "(",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc punctuation.definition.type.begin.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp punctuation.definition.type.begin.objcpp",
"r": {
"dark_plus": "meta.return-type: #4EC9B0",
"light_plus": "meta.return-type: #267F99",
@@ -463,7 +463,7 @@
},
{
"c": "IBAction",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc storage.type.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp storage.type.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -474,7 +474,7 @@
},
{
"c": ")",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc punctuation.definition.type.end.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp punctuation.definition.type.end.objcpp",
"r": {
"dark_plus": "meta.return-type: #4EC9B0",
"light_plus": "meta.return-type: #267F99",
@@ -485,7 +485,7 @@
},
{
"c": "onSelectInput",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc entity.name.function.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp entity.name.function.objcpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -496,7 +496,7 @@
},
{
"c": ":",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc entity.name.function.name-of-parameter.objc punctuation.separator.arguments.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp entity.name.function.name-of-parameter.objcpp punctuation.separator.arguments.objcpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -507,7 +507,7 @@
},
{
"c": "(",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.begin.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.begin.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -518,7 +518,7 @@
},
{
"c": "id",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc storage.type.id.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp storage.type.id.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -529,7 +529,7 @@
},
{
"c": ")",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.end.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.end.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -540,7 +540,7 @@
},
{
"c": "sender",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc variable.parameter.function.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp variable.parameter.function.objcpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -551,7 +551,7 @@
},
{
"c": "{",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.section.block.begin.bracket.curly.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.section.block.begin.bracket.curly.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -562,7 +562,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -573,7 +573,7 @@
},
{
"c": "NSString",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c support.class.cocoa",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp support.class.cocoa.objcpp",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -584,7 +584,7 @@
},
{
"c": "*",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -595,7 +595,7 @@
},
{
"c": " defaultDir ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -606,7 +606,7 @@
},
{
"c": "=",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -617,7 +617,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.whitespace.support.function.leading.cocoa",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.whitespace.support.function.leading.cocoa.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -628,7 +628,7 @@
},
{
"c": "NSSearchPathForDirectoriesInDomains",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c support.function.cocoa",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp support.function.cocoa.objcpp",
"r": {
"dark_plus": "support.function: #DCDCAA",
"light_plus": "support.function: #795E26",
@@ -639,7 +639,7 @@
},
{
"c": "(",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c punctuation.section.parens.begin.bracket.round.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp punctuation.section.parens.begin.bracket.round.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -650,7 +650,7 @@
},
{
"c": "NSDocumentDirectory",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c support.constant.cocoa",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp support.constant.cocoa.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -661,7 +661,7 @@
},
{
"c": ",",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c punctuation.separator.delimiter.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp punctuation.separator.delimiter.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -672,7 +672,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -683,7 +683,7 @@
},
{
"c": "NSUserDomainMask",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c support.constant.cocoa",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp support.constant.cocoa.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -694,7 +694,7 @@
},
{
"c": ",",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c punctuation.separator.delimiter.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp punctuation.separator.delimiter.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -705,7 +705,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -716,7 +716,7 @@
},
{
"c": "true",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c constant.language.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp constant.language.objcpp",
"r": {
"dark_plus": "constant.language: #569CD6",
"light_plus": "constant.language: #0000FF",
@@ -727,7 +727,7 @@
},
{
"c": ")",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.parens.block.c punctuation.section.parens.end.bracket.round.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp punctuation.section.parens.end.bracket.round.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -738,7 +738,7 @@
},
{
"c": "[",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -749,7 +749,7 @@
},
{
"c": "0",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c constant.numeric.decimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp constant.numeric.decimal.objcpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -760,7 +760,7 @@
},
{
"c": "]",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -771,7 +771,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -782,7 +782,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -793,7 +793,7 @@
},
{
"c": "NSOpenPanel",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c support.class.cocoa",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp support.class.cocoa.objcpp",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -804,7 +804,7 @@
},
{
"c": "*",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -815,7 +815,7 @@
},
{
"c": " panel ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -826,7 +826,7 @@
},
{
"c": "=",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -837,7 +837,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -848,7 +848,7 @@
},
{
"c": "[",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -859,7 +859,7 @@
},
{
"c": "NSOpenPanel",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c support.class.cocoa",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp support.class.cocoa.objcpp",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -870,7 +870,7 @@
},
{
"c": " openPanel",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -881,7 +881,7 @@
},
{
"c": "]",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -892,7 +892,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -903,7 +903,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -914,7 +914,7 @@
},
{
"c": "[",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -925,7 +925,7 @@
},
{
"c": "panel setAllowedFileTypes:",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -936,7 +936,7 @@
},
{
"c": "[",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -947,7 +947,7 @@
},
{
"c": "[",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -958,7 +958,7 @@
},
{
"c": "NSArray",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c support.class.cocoa",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp support.class.cocoa.objcpp",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -969,7 +969,7 @@
},
{
"c": " alloc",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -980,7 +980,7 @@
},
{
"c": "]",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -991,7 +991,7 @@
},
{
"c": " initWithObjects:",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1002,7 +1002,7 @@
},
{
"c": "@\"",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc punctuation.definition.string.begin.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp punctuation.definition.string.begin.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1013,7 +1013,7 @@
},
{
"c": "ipa",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1024,7 +1024,7 @@
},
{
"c": "\"",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc punctuation.definition.string.end.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp punctuation.definition.string.end.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1035,7 +1035,7 @@
},
{
"c": ",",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.separator.delimiter.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.separator.delimiter.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1046,7 +1046,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1057,7 +1057,7 @@
},
{
"c": "@\"",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc punctuation.definition.string.begin.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp punctuation.definition.string.begin.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1068,7 +1068,7 @@
},
{
"c": "xcarchive",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1079,7 +1079,7 @@
},
{
"c": "\"",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc punctuation.definition.string.end.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp punctuation.definition.string.end.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1090,7 +1090,7 @@
},
{
"c": ",",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.separator.delimiter.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.separator.delimiter.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1101,7 +1101,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1112,7 +1112,7 @@
},
{
"c": "@\"",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc punctuation.definition.string.begin.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp punctuation.definition.string.begin.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1123,7 +1123,7 @@
},
{
"c": "app",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1134,7 +1134,7 @@
},
{
"c": "\"",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c string.quoted.double.objc punctuation.definition.string.end.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp punctuation.definition.string.end.objcpp",
"r": {
"dark_plus": "string: #CE9178",
"light_plus": "string: #A31515",
@@ -1145,7 +1145,7 @@
},
{
"c": ",",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.separator.delimiter.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.separator.delimiter.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1156,7 +1156,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1167,7 +1167,7 @@
},
{
"c": "nil",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c constant.language.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp constant.language.objcpp",
"r": {
"dark_plus": "constant.language: #569CD6",
"light_plus": "constant.language: #0000FF",
@@ -1178,7 +1178,7 @@
},
{
"c": "]",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1189,7 +1189,7 @@
},
{
"c": "]",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1200,7 +1200,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1211,7 +1211,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1222,7 +1222,7 @@
},
{
"c": "[",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1233,7 +1233,7 @@
},
{
"c": "panel beginWithCompletionHandler:",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1244,7 +1244,7 @@
},
{
"c": "^",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c keyword.operator.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp keyword.operator.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1255,7 +1255,7 @@
},
{
"c": "(",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.section.parens.begin.bracket.round.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.section.parens.begin.bracket.round.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1266,7 +1266,7 @@
},
{
"c": "NSInteger",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c support.type.cocoa.leopard",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp support.type.cocoa.leopard.objcpp",
"r": {
"dark_plus": "support.type: #4EC9B0",
"light_plus": "support.type: #267F99",
@@ -1277,7 +1277,7 @@
},
{
"c": " result",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1288,7 +1288,7 @@
},
{
"c": ")",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.section.parens.end.bracket.round.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.section.parens.end.bracket.round.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1299,7 +1299,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1310,7 +1310,7 @@
},
{
"c": "{",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.section.block.begin.bracket.curly.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.section.block.begin.bracket.curly.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1321,7 +1321,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1332,7 +1332,7 @@
},
{
"c": "if",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c keyword.control.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp keyword.control.objcpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -1343,7 +1343,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1354,7 +1354,7 @@
},
{
"c": "(",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.parens.block.c punctuation.section.parens.begin.bracket.round.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.parens.block.objcpp punctuation.section.parens.begin.bracket.round.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1365,7 +1365,7 @@
},
{
"c": "result ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.parens.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.parens.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1376,7 +1376,7 @@
},
{
"c": "==",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.parens.block.c keyword.operator.comparison.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.parens.block.objcpp keyword.operator.comparison.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1387,7 +1387,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.parens.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.parens.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1398,7 +1398,7 @@
},
{
"c": "NSFileHandlingPanelOKButton",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.parens.block.c support.constant.cocoa",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.parens.block.objcpp support.constant.cocoa.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1409,7 +1409,7 @@
},
{
"c": ")",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.parens.block.c punctuation.section.parens.end.bracket.round.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.parens.block.objcpp punctuation.section.parens.end.bracket.round.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1420,7 +1420,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1431,7 +1431,7 @@
},
{
"c": "[",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1442,7 +1442,7 @@
},
{
"c": "self",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c variable.other.object.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp variable.other.object.access.objcpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1453,7 +1453,7 @@
},
{
"c": ".",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.separator.dot-access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.separator.dot-access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1464,7 +1464,7 @@
},
{
"c": "inputTextField",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c variable.other.member.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp variable.other.member.objcpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1475,7 +1475,7 @@
},
{
"c": " setStringValue:",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1486,7 +1486,7 @@
},
{
"c": "[",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1497,7 +1497,7 @@
},
{
"c": "panel",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c variable.other.object.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp variable.other.object.access.objcpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1508,7 +1508,7 @@
},
{
"c": ".",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.separator.dot-access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.separator.dot-access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1519,7 +1519,7 @@
},
{
"c": "URL",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c variable.other.member.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp variable.other.member.objcpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -1530,7 +1530,7 @@
},
{
"c": " path",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1541,7 +1541,7 @@
},
{
"c": "]",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1552,7 +1552,7 @@
},
{
"c": "]",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1563,7 +1563,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1574,7 +1574,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1585,7 +1585,7 @@
},
{
"c": "}",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.section.block.end.bracket.curly.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.section.block.end.bracket.curly.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1596,7 +1596,7 @@
},
{
"c": "]",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1607,7 +1607,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1618,7 +1618,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1629,7 +1629,7 @@
},
{
"c": "return",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.control.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.control.objcpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -1640,7 +1640,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1651,7 +1651,7 @@
},
{
"c": "YES",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.language.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.language.objcpp",
"r": {
"dark_plus": "constant.language: #569CD6",
"light_plus": "constant.language: #0000FF",
@@ -1662,7 +1662,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1673,7 +1673,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1684,7 +1684,7 @@
},
{
"c": "int",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c storage.type.built-in.primitive.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp storage.type.built-in.primitive.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -1695,7 +1695,7 @@
},
{
"c": " hex ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1706,7 +1706,7 @@
},
{
"c": "=",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1717,7 +1717,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1728,7 +1728,7 @@
},
{
"c": "0x",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.other.unit.hexadecimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.other.unit.hexadecimal.objcpp",
"r": {
"dark_plus": "keyword.other.unit: #B5CEA8",
"light_plus": "keyword.other.unit: #09885A",
@@ -1739,7 +1739,7 @@
},
{
"c": "FEF1F0F",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.hexadecimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.hexadecimal.objcpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1750,7 +1750,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1761,7 +1761,7 @@
},
{
"c": "\t ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1772,7 +1772,7 @@
},
{
"c": "float",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c storage.type.built-in.primitive.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp storage.type.built-in.primitive.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -1783,7 +1783,7 @@
},
{
"c": " ing ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1794,7 +1794,7 @@
},
{
"c": "=",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1805,7 +1805,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1816,7 +1816,7 @@
},
{
"c": "3",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.objcpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1827,7 +1827,7 @@
},
{
"c": ".",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.point.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.point.objcpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1838,7 +1838,7 @@
},
{
"c": "14",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.objcpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1849,7 +1849,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1860,7 +1860,7 @@
},
{
"c": "\t ing ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1871,7 +1871,7 @@
},
{
"c": "=",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1882,7 +1882,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1893,7 +1893,7 @@
},
{
"c": "3",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.objcpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1904,7 +1904,7 @@
},
{
"c": ".",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.point.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.point.objcpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1915,7 +1915,7 @@
},
{
"c": "14",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.objcpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1926,7 +1926,7 @@
},
{
"c": "e",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.other.unit.exponent.decimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.other.unit.exponent.decimal.objcpp",
"r": {
"dark_plus": "keyword.other.unit: #B5CEA8",
"light_plus": "keyword.other.unit: #09885A",
@@ -1937,7 +1937,7 @@
},
{
"c": "0",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.exponent.decimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.exponent.decimal.objcpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -1948,7 +1948,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1959,7 +1959,7 @@
},
{
"c": "\t ing ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1970,7 +1970,7 @@
},
{
"c": "=",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -1981,7 +1981,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -1992,7 +1992,7 @@
},
{
"c": "31",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.objcpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -2003,7 +2003,7 @@
},
{
"c": ".",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.point.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.point.objcpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -2014,7 +2014,7 @@
},
{
"c": "4",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.decimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.objcpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -2025,7 +2025,7 @@
},
{
"c": "e",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.other.unit.exponent.decimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.other.unit.exponent.decimal.objcpp",
"r": {
"dark_plus": "keyword.other.unit: #B5CEA8",
"light_plus": "keyword.other.unit: #09885A",
@@ -2036,7 +2036,7 @@
},
{
"c": "-",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.minus.exponent.decimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.minus.exponent.decimal.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -2047,7 +2047,7 @@
},
{
"c": "2",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.numeric.exponent.decimal.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.exponent.decimal.objcpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
@@ -2058,7 +2058,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2069,7 +2069,7 @@
},
{
"c": "}",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.section.block.end.bracket.curly.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.section.block.end.bracket.curly.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2080,7 +2080,7 @@
},
{
"c": "-",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2091,7 +2091,7 @@
},
{
"c": "(",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc punctuation.definition.type.begin.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp punctuation.definition.type.begin.objcpp",
"r": {
"dark_plus": "meta.return-type: #4EC9B0",
"light_plus": "meta.return-type: #267F99",
@@ -2102,7 +2102,7 @@
},
{
"c": "id",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc storage.type.id.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp storage.type.id.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -2113,7 +2113,7 @@
},
{
"c": ")",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc punctuation.definition.type.end.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp punctuation.definition.type.end.objcpp",
"r": {
"dark_plus": "meta.return-type: #4EC9B0",
"light_plus": "meta.return-type: #267F99",
@@ -2124,7 +2124,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp",
"r": {
"dark_plus": "meta.return-type: #4EC9B0",
"light_plus": "meta.return-type: #267F99",
@@ -2135,7 +2135,7 @@
},
{
"c": "initWithParams",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc entity.name.function.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp entity.name.function.objcpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -2146,7 +2146,7 @@
},
{
"c": ":",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc entity.name.function.name-of-parameter.objc punctuation.separator.arguments.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp entity.name.function.name-of-parameter.objcpp punctuation.separator.arguments.objcpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -2157,7 +2157,7 @@
},
{
"c": "(",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.begin.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.begin.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2168,7 +2168,7 @@
},
{
"c": "id",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc storage.type.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp storage.type.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -2179,7 +2179,7 @@
},
{
"c": "<",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc meta.protocol-list.objc punctuation.section.scope.begin.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp meta.protocol-list.objcpp punctuation.section.scope.begin.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2190,7 +2190,7 @@
},
{
"c": "anObject",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc meta.protocol-list.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp meta.protocol-list.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2201,7 +2201,7 @@
},
{
"c": ">",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc meta.protocol-list.objc punctuation.section.scope.end.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp meta.protocol-list.objcpp punctuation.section.scope.end.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2212,7 +2212,7 @@
},
{
"c": ")",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.end.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.end.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2223,7 +2223,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2234,7 +2234,7 @@
},
{
"c": "aHandler",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc variable.parameter.function.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp variable.parameter.function.objcpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -2245,7 +2245,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2256,7 +2256,7 @@
},
{
"c": "withDeviceStateManager",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc entity.name.function.name-of-parameter.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp entity.name.function.name-of-parameter.objcpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -2267,7 +2267,7 @@
},
{
"c": ":",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc entity.name.function.name-of-parameter.objc punctuation.separator.arguments.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp entity.name.function.name-of-parameter.objcpp punctuation.separator.arguments.objcpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
@@ -2278,7 +2278,7 @@
},
{
"c": "(",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.begin.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.begin.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2289,7 +2289,7 @@
},
{
"c": "id",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc storage.type.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp storage.type.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -2300,7 +2300,7 @@
},
{
"c": "<",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc meta.protocol-list.objc punctuation.section.scope.begin.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp meta.protocol-list.objcpp punctuation.section.scope.begin.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2311,7 +2311,7 @@
},
{
"c": "anotherObject",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc meta.protocol-list.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp meta.protocol-list.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2322,7 +2322,7 @@
},
{
"c": ">",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc meta.protocol-list.objc punctuation.section.scope.end.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp meta.protocol-list.objcpp punctuation.section.scope.end.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2333,7 +2333,7 @@
},
{
"c": ")",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.end.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.end.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2344,7 +2344,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2355,7 +2355,7 @@
},
{
"c": "deviceStateManager",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc variable.parameter.function.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp variable.parameter.function.objcpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -2366,7 +2366,7 @@
},
{
"c": "{",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.section.block.begin.bracket.curly.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.section.block.begin.bracket.curly.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2377,7 +2377,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.whitespace.comment.leading.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.whitespace.comment.leading.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2388,7 +2388,7 @@
},
{
"c": "//",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c comment.line.double-slash.c punctuation.definition.comment.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp comment.line.double-slash.objcpp punctuation.definition.comment.objcpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -2399,7 +2399,7 @@
},
{
"c": " add a tap gesture recognizer",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c comment.line.double-slash.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp comment.line.double-slash.objcpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
@@ -2410,7 +2410,7 @@
},
{
"c": " UITapGestureRecognizer ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2421,7 +2421,7 @@
},
{
"c": "*",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -2432,7 +2432,7 @@
},
{
"c": "tapGesture ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2443,7 +2443,7 @@
},
{
"c": "=",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -2454,7 +2454,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2465,7 +2465,7 @@
},
{
"c": "[",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2476,7 +2476,7 @@
},
{
"c": "[",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2487,7 +2487,7 @@
},
{
"c": "UITapGestureRecognizer alloc",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2498,7 +2498,7 @@
},
{
"c": "]",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2509,7 +2509,7 @@
},
{
"c": " initWithTarget:self action:",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2520,7 +2520,7 @@
},
{
"c": "@",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.selector.objc storage.type.objc punctuation.definition.storage.type.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.selector.objcpp storage.type.objcpp punctuation.definition.storage.type.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -2531,7 +2531,7 @@
},
{
"c": "selector",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.selector.objc storage.type.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.selector.objcpp storage.type.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -2542,7 +2542,7 @@
},
{
"c": "(",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.selector.objc punctuation.definition.storage.type.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.selector.objcpp punctuation.definition.storage.type.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2553,7 +2553,7 @@
},
{
"c": "handleTap:",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.selector.objc meta.selector.method-name.objc support.function.any-method.name-of-parameter.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.selector.objcpp meta.selector.method-name.objcpp support.function.any-method.name-of-parameter.objcpp",
"r": {
"dark_plus": "support.function: #DCDCAA",
"light_plus": "support.function: #795E26",
@@ -2564,7 +2564,7 @@
},
{
"c": ")",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c meta.selector.objc punctuation.definition.storage.type.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.selector.objcpp punctuation.definition.storage.type.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2575,7 +2575,7 @@
},
{
"c": "]",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2586,7 +2586,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2597,7 +2597,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2608,7 +2608,7 @@
},
{
"c": "NSMutableArray",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c support.class.cocoa",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp support.class.cocoa.objcpp",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -2619,7 +2619,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2630,7 +2630,7 @@
},
{
"c": "*",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -2641,7 +2641,7 @@
},
{
"c": "gestureRecognizers ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2652,7 +2652,7 @@
},
{
"c": "=",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -2663,7 +2663,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2674,7 +2674,7 @@
},
{
"c": "[",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2685,7 +2685,7 @@
},
{
"c": "NSMutableArray",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c support.class.cocoa",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp support.class.cocoa.objcpp",
"r": {
"dark_plus": "support.class: #4EC9B0",
"light_plus": "support.class: #267F99",
@@ -2696,7 +2696,7 @@
},
{
"c": " array",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2707,7 +2707,7 @@
},
{
"c": "]",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2718,7 +2718,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2729,7 +2729,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2740,7 +2740,7 @@
},
{
"c": "[",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2751,7 +2751,7 @@
},
{
"c": "gestureRecognizers addObject:tapGesture",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2762,7 +2762,7 @@
},
{
"c": "]",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2773,7 +2773,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2784,7 +2784,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2795,7 +2795,7 @@
},
{
"c": "[",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.begin.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2806,7 +2806,7 @@
},
{
"c": "gestureRecognizers addObjectsFromArray:",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2817,7 +2817,7 @@
},
{
"c": "scnView",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c variable.other.object.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp variable.other.object.access.objcpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -2828,7 +2828,7 @@
},
{
"c": ".",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.separator.dot-access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.separator.dot-access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2839,7 +2839,7 @@
},
{
"c": "gestureRecognizers",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c variable.other.member.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp variable.other.member.objcpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -2850,7 +2850,7 @@
},
{
"c": "]",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c meta.bracket.square.access.c punctuation.definition.end.bracket.square.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2861,7 +2861,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2872,7 +2872,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2883,7 +2883,7 @@
},
{
"c": "scnView",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c variable.other.object.access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp variable.other.object.access.objcpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -2894,7 +2894,7 @@
},
{
"c": ".",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.separator.dot-access.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.separator.dot-access.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2905,7 +2905,7 @@
},
{
"c": "gestureRecognizers",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c variable.other.member.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp variable.other.member.objcpp",
"r": {
"dark_plus": "variable: #9CDCFE",
"light_plus": "variable: #001080",
@@ -2916,7 +2916,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2927,7 +2927,7 @@
},
{
"c": "=",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.operator.assignment.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp",
"r": {
"dark_plus": "keyword.operator: #D4D4D4",
"light_plus": "keyword.operator: #000000",
@@ -2938,7 +2938,7 @@
},
{
"c": " gestureRecognizers",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2949,7 +2949,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2960,7 +2960,7 @@
},
{
"c": "\t",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2971,7 +2971,7 @@
},
{
"c": "return",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.control.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.control.objcpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -2982,7 +2982,7 @@
},
{
"c": " tapGesture",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -2993,7 +2993,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -3004,7 +3004,7 @@
},
{
"c": "\t",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -3015,7 +3015,7 @@
},
{
"c": "return",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c keyword.control.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.control.objcpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
@@ -3026,7 +3026,7 @@
},
{
"c": " ",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -3037,7 +3037,7 @@
},
{
"c": "nil",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c constant.language.objc",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.language.objcpp",
"r": {
"dark_plus": "constant.language: #569CD6",
"light_plus": "constant.language: #0000FF",
@@ -3048,7 +3048,7 @@
},
{
"c": ";",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.terminator.statement.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -3059,7 +3059,7 @@
},
{
"c": "}",
- "t": "source.objcpp meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.c punctuation.section.block.end.bracket.curly.c",
+ "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.section.block.end.bracket.curly.objcpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
@@ -3070,7 +3070,7 @@
},
{
"c": "@",
- "t": "source.objcpp meta.implementation.objc storage.type.objc punctuation.definition.storage.type.objc",
+ "t": "source.objcpp meta.implementation.objcpp storage.type.objcpp punctuation.definition.storage.type.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
@@ -3081,7 +3081,7 @@
},
{
"c": "end",
- "t": "source.objcpp meta.implementation.objc storage.type.objc",
+ "t": "source.objcpp meta.implementation.objcpp storage.type.objcpp",
"r": {
"dark_plus": "storage.type: #569CD6",
"light_plus": "storage.type: #0000FF",
diff --git a/extensions/php-language-features/package.json b/extensions/php-language-features/package.json
index 28ccad47def..bb84a785eb4 100644
--- a/extensions/php-language-features/package.json
+++ b/extensions/php-language-features/package.json
@@ -80,6 +80,6 @@
"vscode-nls": "^4.0.0"
},
"devDependencies": {
- "@types/node": "^10.12.21"
+ "@types/node": "^10.14.8"
}
}
diff --git a/extensions/php-language-features/yarn.lock b/extensions/php-language-features/yarn.lock
index 1bcd757b8a1..e6247e29255 100644
--- a/extensions/php-language-features/yarn.lock
+++ b/extensions/php-language-features/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
vscode-nls@^4.0.0:
version "4.0.0"
diff --git a/extensions/theme-abyss/themes/abyss-color-theme.json b/extensions/theme-abyss/themes/abyss-color-theme.json
index 1f7d48782d2..43a3ae648dc 100644
--- a/extensions/theme-abyss/themes/abyss-color-theme.json
+++ b/extensions/theme-abyss/themes/abyss-color-theme.json
@@ -86,7 +86,9 @@
"name": "Class name",
"scope": [
"entity.name.class",
- "entity.name.type"
+ "entity.name.type",
+ "entity.name.namespace",
+ "entity.name.scope-resolution"
],
"settings": {
"fontStyle": "underline",
diff --git a/extensions/theme-defaults/themes/dark_plus.json b/extensions/theme-defaults/themes/dark_plus.json
index e73cc3a09af..1898153ba89 100644
--- a/extensions/theme-defaults/themes/dark_plus.json
+++ b/extensions/theme-defaults/themes/dark_plus.json
@@ -21,6 +21,8 @@
"support.class",
"support.type",
"entity.name.type",
+ "entity.name.namespace",
+ "entity.name.scope-resolution",
"entity.name.class",
"storage.type.numeric.go",
"storage.type.byte.go",
@@ -67,10 +69,10 @@
}
},
{
- "name": "Control flow keywords",
+ "name": "Control flow / Special keywords",
"scope": [
"keyword.control",
- "keyword.operator.new.cpp",
+ "source.cpp keyword.operator.new",
"keyword.operator.delete",
"keyword.other.using",
"keyword.other.operator"
diff --git a/extensions/theme-defaults/themes/hc_black.json b/extensions/theme-defaults/themes/hc_black.json
index 870681495dc..8119256d5f2 100644
--- a/extensions/theme-defaults/themes/hc_black.json
+++ b/extensions/theme-defaults/themes/hc_black.json
@@ -26,6 +26,8 @@
"support.class",
"support.type",
"entity.name.type",
+ "entity.name.namespace",
+ "entity.name.scope-resolution",
"entity.name.class",
"storage.type.cs",
"storage.type.generic.cs",
@@ -65,11 +67,11 @@
}
},
{
- "name": "Control flow keywords",
+ "name": "Control flow / Special keywords",
"scope": [
"keyword.control",
- "keyword.operator.new.cpp",
- "keyword.operator.delete.cpp",
+ "source.cpp keyword.operator.new",
+ "source.cpp keyword.operator.delete",
"keyword.other.using",
"keyword.other.operator"
],
diff --git a/extensions/theme-defaults/themes/light_plus.json b/extensions/theme-defaults/themes/light_plus.json
index ce23ed901d6..7138f045d58 100644
--- a/extensions/theme-defaults/themes/light_plus.json
+++ b/extensions/theme-defaults/themes/light_plus.json
@@ -21,6 +21,8 @@
"support.class",
"support.type",
"entity.name.type",
+ "entity.name.namespace",
+ "entity.name.scope-resolution",
"entity.name.class",
"storage.type.numeric.go",
"storage.type.byte.go",
@@ -67,11 +69,11 @@
}
},
{
- "name": "Control flow keywords",
+ "name": "Control flow / Special keywords",
"scope": [
"keyword.control",
- "keyword.operator.new.cpp",
- "keyword.operator.delete.cpp",
+ "source.cpp keyword.operator.new",
+ "source.cpp keyword.operator.delete",
"keyword.other.using",
"keyword.other.operator"
],
diff --git a/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json b/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json
index fac06fd00d4..4b0eb5bdfcf 100644
--- a/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json
+++ b/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json
@@ -147,7 +147,9 @@
"scope": [
"support.class",
"entity.name.class",
- "entity.name.type"
+ "entity.name.type",
+ "entity.name.namespace",
+ "entity.name.scope-resolution"
],
"settings": {
"foreground": "#f06431"
diff --git a/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json b/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json
index ed325071b64..5f5e5cff916 100644
--- a/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json
+++ b/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json
@@ -143,7 +143,7 @@
},
{
"name": "Class name",
- "scope": "entity.name.class, entity.name.type",
+ "scope": "entity.name.class, entity.name.type, entity.name.namespace, entity.name.scope-resolution",
"settings": {
"fontStyle": "",
"foreground": "#9B0000",
@@ -255,7 +255,7 @@
}
},
{
- "name": "Keyword Control",
+ "name": "Keyword Control / Special",
"scope": [
"keyword.control",
"keyword.operator.new.cpp",
diff --git a/extensions/theme-monokai/themes/monokai-color-theme.json b/extensions/theme-monokai/themes/monokai-color-theme.json
index 14d616f6153..c16fa3c5575 100644
--- a/extensions/theme-monokai/themes/monokai-color-theme.json
+++ b/extensions/theme-monokai/themes/monokai-color-theme.json
@@ -205,7 +205,7 @@
},
{
"name": "Class name",
- "scope": "entity.name.type, entity.name.class",
+ "scope": "entity.name.type, entity.name.class, entity.name.namespace, entity.name.scope-resolution",
"settings": {
"fontStyle": "underline",
"foreground": "#A6E22E"
diff --git a/extensions/theme-quietlight/themes/quietlight-color-theme.json b/extensions/theme-quietlight/themes/quietlight-color-theme.json
index 67f7caa4da5..38681612b42 100644
--- a/extensions/theme-quietlight/themes/quietlight-color-theme.json
+++ b/extensions/theme-quietlight/themes/quietlight-color-theme.json
@@ -125,6 +125,8 @@
"name": "Classes",
"scope": [
"entity.name.type",
+ "entity.name.namespace",
+ "entity.name.scope-resolution",
"entity.other.inherited-class",
"support.class"
],
diff --git a/extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json b/extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json
index 5605aba721d..f2ee483bea4 100644
--- a/extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json
+++ b/extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json
@@ -72,7 +72,9 @@
"name": "Class name",
"scope": [
"entity.name.class",
- "entity.name.type"
+ "entity.name.type",
+ "entity.name.namespace",
+ "entity.name.scope-resolution"
],
"settings": {
"fontStyle": "",
diff --git a/extensions/theme-solarized-light/themes/solarized-light-color-theme.json b/extensions/theme-solarized-light/themes/solarized-light-color-theme.json
index b94aeb71de8..2ddb67d7ac2 100644
--- a/extensions/theme-solarized-light/themes/solarized-light-color-theme.json
+++ b/extensions/theme-solarized-light/themes/solarized-light-color-theme.json
@@ -72,7 +72,9 @@
"name": "Class name",
"scope": [
"entity.name.class",
- "entity.name.type"
+ "entity.name.type",
+ "entity.name.namespace",
+ "entity.name.scope-resolution"
],
"settings": {
"foreground": "#268BD2"
diff --git a/extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-theme.json b/extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-theme.json
index 2ca39bf565d..6c985d1ea5e 100644
--- a/extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-theme.json
+++ b/extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-theme.json
@@ -101,7 +101,7 @@
},
{
"name": "Class, Support",
- "scope": "entity.name.class, entity.name.type, support.type, support.class",
+ "scope": "entity.name.class, entity.name.type, entity.name.namespace, entity.name.scope-resolution, support.type, support.class",
"settings": {
"fontStyle": "",
"foreground": "#FFEEAD"
diff --git a/extensions/typescript-language-features/package.json b/extensions/typescript-language-features/package.json
index a5147d60f8e..86f996d0649 100644
--- a/extensions/typescript-language-features/package.json
+++ b/extensions/typescript-language-features/package.json
@@ -23,7 +23,7 @@
"vscode-nls": "^4.0.0"
},
"devDependencies": {
- "@types/node": "^12.0.2",
+ "@types/node": "^10.14.8",
"@types/semver": "^5.5.0",
"@types/rimraf": "2.0.2",
"vscode": "^1.1.10"
diff --git a/extensions/typescript-language-features/src/features/diagnostics.ts b/extensions/typescript-language-features/src/features/diagnostics.ts
index a9de15ab539..6e0568824ad 100644
--- a/extensions/typescript-language-features/src/features/diagnostics.ts
+++ b/extensions/typescript-language-features/src/features/diagnostics.ts
@@ -6,6 +6,25 @@
import * as vscode from 'vscode';
import { ResourceMap } from '../utils/resourceMap';
import { DiagnosticLanguage, allDiagnosticLanguages } from '../utils/languageDescription';
+import * as arrays from '../utils/arrays';
+
+function diagnosticsEquals(a: vscode.Diagnostic, b: vscode.Diagnostic): boolean {
+ if (a === b) {
+ return true;
+ }
+
+ return a.code === b.code
+ && a.message === b.message
+ && a.severity === b.severity
+ && a.source === b.source
+ && a.range.isEqual(b.range)
+ && arrays.equals(a.relatedInformation || arrays.empty, b.relatedInformation || arrays.empty, (a, b) => {
+ return a.message === b.message
+ && a.location.range.isEqual(b.location.range)
+ && a.location.uri.fsPath === b.location.uri.fsPath;
+ })
+ && arrays.equals(a.tags || arrays.empty, b.tags || arrays.empty);
+}
export const enum DiagnosticKind {
Syntax,
@@ -31,12 +50,10 @@ class FileDiagnostics {
this.language = language;
}
- if (diagnostics.length === 0) {
- const existing = this._diagnostics.get(kind);
- if (!existing || existing && existing.length === 0) {
- // No need to update
- return false;
- }
+ const existing = this._diagnostics.get(kind);
+ if (arrays.equals(existing || arrays.empty, diagnostics, diagnosticsEquals)) {
+ // No need to update
+ return false;
}
this._diagnostics.set(kind, diagnostics);
diff --git a/extensions/typescript-language-features/src/test/server.test.ts b/extensions/typescript-language-features/src/test/server.test.ts
new file mode 100644
index 00000000000..bd22203d8d3
--- /dev/null
+++ b/extensions/typescript-language-features/src/test/server.test.ts
@@ -0,0 +1,76 @@
+/*---------------------------------------------------------------------------------------------
+ * Copyright (c) Microsoft Corporation. All rights reserved.
+ * Licensed under the MIT License. See License.txt in the project root for license information.
+ *--------------------------------------------------------------------------------------------*/
+
+import * as assert from 'assert';
+import 'mocha';
+import * as stream from 'stream';
+import { PipeRequestCanceller, ServerProcess, TypeScriptServer } from '../tsServer/server';
+import { nulToken } from '../utils/cancellation';
+import Logger from '../utils/logger';
+import TelemetryReporter from '../utils/telemetry';
+import Tracer from '../utils/tracer';
+import * as Proto from '../protocol';
+
+
+const NoopTelemetryReporter = new class implements TelemetryReporter {
+ logTelemetry(): void { /* noop */ }
+ dispose(): void { /* noop */ }
+};
+
+class FakeServerProcess implements ServerProcess {
+ private readonly _out: stream.PassThrough;
+
+ private readonly writeListeners = new Set<(data: Buffer) => void>();
+ public stdout: stream.PassThrough;
+
+ constructor() {
+ this._out = new stream.PassThrough();
+ this.stdout = this._out;
+ }
+
+ public write(data: Proto.Request) {
+ const listeners = Array.from(this.writeListeners);
+ this.writeListeners.clear();
+
+ setImmediate(() => {
+ for (const listener of listeners) {
+ listener(Buffer.from(JSON.stringify(data), 'utf8'));
+ }
+ const body = Buffer.from(JSON.stringify({ 'seq': data.seq, 'type': 'response', 'command': data.command, 'request_seq': data.seq, 'success': true }), 'utf8');
+ this._out.write(Buffer.from(`Content-Length: ${body.length}\r\n\r\n${body}`, 'utf8'));
+ });
+ }
+
+
+ on(_name: any, _handler: any) { /* noop */ }
+
+ kill(): void { /* noop */ }
+
+ public onWrite(): Promise {
+ return new Promise((resolve) => {
+ this.writeListeners.add((data) => {
+ resolve(JSON.parse(data.toString()));
+ });
+ });
+ }
+}
+
+suite('Server', () => {
+ const tracer = new Tracer(new Logger());
+
+ test('should send requests with increasing sequence numbers', async () => {
+ const process = new FakeServerProcess();
+ const server = new TypeScriptServer(process, undefined, new PipeRequestCanceller(undefined, tracer), undefined!, NoopTelemetryReporter, tracer);
+
+ const onWrite1 = process.onWrite();
+ server.executeImpl('geterr', {}, { isAsync: false, token: nulToken, expectsResult: true });
+ assert.strictEqual((await onWrite1).seq, 0);
+
+ const onWrite2 = process.onWrite();
+ server.executeImpl('geterr', {}, { isAsync: false, token: nulToken, expectsResult: true });
+ assert.strictEqual((await onWrite2).seq, 1);
+ });
+});
+
diff --git a/extensions/typescript-language-features/src/tsServer/server.ts b/extensions/typescript-language-features/src/tsServer/server.ts
index 1bfb290fa0a..10a001d52c2 100644
--- a/extensions/typescript-language-features/src/tsServer/server.ts
+++ b/extensions/typescript-language-features/src/tsServer/server.ts
@@ -3,9 +3,10 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
-import * as cp from 'child_process';
+import * as child_process from 'child_process';
import * as fs from 'fs';
import * as path from 'path';
+import * as stream from 'stream';
import * as vscode from 'vscode';
import * as Proto from '../protocol';
import { ServerResponse } from '../typescriptService';
@@ -125,7 +126,13 @@ export class TypeScriptServerSpawner {
const childProcess = electron.fork(version.tsServerPath, args, this.getForkOptions());
this._logger.info('Started TSServer');
- return new TypeScriptServer(childProcess, tsServerLogFile, cancellationPipeName, version, this._telemetryReporter, this._tracer);
+ return new TypeScriptServer(
+ new ChildServerProcess(childProcess),
+ tsServerLogFile,
+ new PipeRequestCanceller(cancellationPipeName, this._tracer),
+ version,
+ this._telemetryReporter,
+ this._tracer);
}
private getForkOptions() {
@@ -239,6 +246,63 @@ export class TypeScriptServerSpawner {
}
}
+export interface OngoingRequestCanceller {
+ tryCancelOngoingRequest(seq: number): boolean;
+}
+
+export class PipeRequestCanceller implements OngoingRequestCanceller {
+ public constructor(
+ private readonly _cancellationPipeName: string | undefined,
+ private readonly _tracer: Tracer,
+ ) { }
+
+ public tryCancelOngoingRequest(seq: number): boolean {
+ if (!this._cancellationPipeName) {
+ return false;
+ }
+ this._tracer.logTrace(`TypeScript Server: trying to cancel ongoing request with sequence number ${seq}`);
+ try {
+ fs.writeFileSync(this._cancellationPipeName + seq, '');
+ } catch {
+ // noop
+ }
+ return true;
+ }
+}
+
+export interface ServerProcess {
+ readonly stdout: stream.Readable;
+ write(serverRequest: Proto.Request): void;
+
+ on(name: 'exit', handler: (code: number | null) => void): void;
+ on(name: 'error', handler: (error: Error) => void): void;
+
+ kill(): void;
+}
+
+class ChildServerProcess implements ServerProcess {
+
+ public constructor(
+ private readonly _process: child_process.ChildProcess,
+ ) { }
+
+ get stdout(): stream.Readable { return this._process.stdout!; }
+
+ write(serverRequest: Proto.Request): void {
+ this._process.stdin!.write(JSON.stringify(serverRequest) + '\r\n', 'utf8');
+ }
+
+ on(name: 'exit', handler: (code: number | null) => void): void;
+ on(name: 'error', handler: (error: Error) => void): void;
+ on(name: any, handler: any) {
+ this._process.on(name, handler);
+ }
+
+ kill(): void {
+ this._process.kill();
+ }
+}
+
export class TypeScriptServer extends Disposable {
private readonly _reader: Reader;
private readonly _requestQueue = new RequestQueue();
@@ -246,18 +310,25 @@ export class TypeScriptServer extends Disposable {
private readonly _pendingResponses = new Set();
constructor(
- private readonly _childProcess: cp.ChildProcess,
+ private readonly _process: ServerProcess,
private readonly _tsServerLogFile: string | undefined,
- private readonly _cancellationPipeName: string | undefined,
+ private readonly _requestCanceller: OngoingRequestCanceller,
private readonly _version: TypeScriptVersion,
private readonly _telemetryReporter: TelemetryReporter,
private readonly _tracer: Tracer,
) {
super();
- this._reader = this._register(new Reader(this._childProcess.stdout!));
+ this._reader = this._register(new Reader(this._process.stdout!));
this._reader.onData(msg => this.dispatchMessage(msg));
- this._childProcess.on('exit', code => this.handleExit(code));
- this._childProcess.on('error', error => this.handleError(error));
+
+ this._process.on('exit', code => {
+ this._onExit.fire(code);
+ this._callbacks.destroy('server exited');
+ });
+ this._process.on('error', error => {
+ this._onError.fire(error);
+ this._callbacks.destroy('server errored');
+ });
}
private readonly _onEvent = this._register(new vscode.EventEmitter());
@@ -273,8 +344,8 @@ export class TypeScriptServer extends Disposable {
public get tsServerLogFile() { return this._tsServerLogFile; }
- public write(serverRequest: Proto.Request) {
- this._childProcess.stdin!.write(JSON.stringify(serverRequest) + '\r\n', 'utf8');
+ private write(serverRequest: Proto.Request) {
+ this._process.write(serverRequest);
}
public dispose() {
@@ -284,17 +355,7 @@ export class TypeScriptServer extends Disposable {
}
public kill() {
- this._childProcess.kill();
- }
-
- private handleExit(error: any) {
- this._onExit.fire(error);
- this._callbacks.destroy('server exited');
- }
-
- private handleError(error: any) {
- this._onError.fire(error);
- this._callbacks.destroy('server errored');
+ this._process.kill();
}
private dispatchMessage(message: Proto.Message) {
@@ -334,13 +395,7 @@ export class TypeScriptServer extends Disposable {
return true;
}
- if (this._cancellationPipeName) {
- this._tracer.logTrace(`TypeScript Server: trying to cancel ongoing request with sequence number ${seq}`);
- try {
- fs.writeFileSync(this._cancellationPipeName + seq, '');
- } catch {
- // noop
- }
+ if (this._requestCanceller.tryCancelOngoingRequest(seq)) {
return true;
}
diff --git a/extensions/typescript-language-features/src/typescriptServiceClient.ts b/extensions/typescript-language-features/src/typescriptServiceClient.ts
index 8f8f45aaa34..b478e9ed080 100644
--- a/extensions/typescript-language-features/src/typescriptServiceClient.ts
+++ b/extensions/typescript-language-features/src/typescriptServiceClient.ts
@@ -20,7 +20,7 @@ import LogDirectoryProvider from './utils/logDirectoryProvider';
import Logger from './utils/logger';
import { TypeScriptPluginPathsProvider } from './utils/pluginPathsProvider';
import { PluginManager } from './utils/plugins';
-import TelemetryReporter from './utils/telemetry';
+import TelemetryReporter, { VSCodeTelemetryReporter } from './utils/telemetry';
import Tracer from './utils/tracer';
import { inferredProjectConfig } from './utils/tsconfig';
import { TypeScriptVersionPicker } from './utils/versionPicker';
@@ -152,7 +152,7 @@ export default class TypeScriptServiceClient extends Disposable implements IType
}
}, this, this._disposables);
- this.telemetryReporter = this._register(new TelemetryReporter(() => {
+ this.telemetryReporter = this._register(new VSCodeTelemetryReporter(() => {
if (this.serverState.type === ServerState.Type.Running) {
if (this.serverState.tsserverVersion) {
return this.serverState.tsserverVersion;
diff --git a/extensions/typescript-language-features/src/utils/arrays.ts b/extensions/typescript-language-features/src/utils/arrays.ts
index bf403c3afeb..f9435fe9b20 100644
--- a/extensions/typescript-language-features/src/utils/arrays.ts
+++ b/extensions/typescript-language-features/src/utils/arrays.ts
@@ -2,20 +2,23 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
-export function equals(one: ReadonlyArray, other: ReadonlyArray, itemEquals: (a: T, b: T) => boolean = (a, b) => a === b): boolean {
- if (one.length !== other.length) {
+
+export const empty = Object.freeze([]);
+
+export function equals(
+ a: ReadonlyArray,
+ b: ReadonlyArray,
+ itemEquals: (a: T, b: T) => boolean = (a, b) => a === b
+): boolean {
+ if (a === b) {
+ return true;
+ }
+ if (a.length !== b.length) {
return false;
}
-
- for (let i = 0, len = one.length; i < len; i++) {
- if (!itemEquals(one[i], other[i])) {
- return false;
- }
- }
-
- return true;
+ return a.every((x, i) => itemEquals(x, b[i]));
}
export function flatten(arr: ReadonlyArray[]): T[] {
- return ([] as T[]).concat.apply([], arr);
+ return Array.prototype.concat.apply([], arr);
}
\ No newline at end of file
diff --git a/extensions/typescript-language-features/src/utils/telemetry.ts b/extensions/typescript-language-features/src/utils/telemetry.ts
index e3b5f09adc7..fe6ea8d292a 100644
--- a/extensions/typescript-language-features/src/utils/telemetry.ts
+++ b/extensions/typescript-language-features/src/utils/telemetry.ts
@@ -13,15 +13,14 @@ interface PackageInfo {
readonly aiKey: string;
}
-export default class TelemetryReporter {
- private _reporter: VsCodeTelemetryReporter | null = null;
+export default interface TelemetryReporter {
+ logTelemetry(eventName: string, properties?: { [prop: string]: string }): void;
- dispose() {
- if (this._reporter) {
- this._reporter.dispose();
- this._reporter = null;
- }
- }
+ dispose(): void;
+}
+
+export class VSCodeTelemetryReporter implements TelemetryReporter {
+ private _reporter: VsCodeTelemetryReporter | null = null;
constructor(
private readonly clientVersionDelegate: () => string
@@ -45,6 +44,13 @@ export default class TelemetryReporter {
}
}
+ public dispose() {
+ if (this._reporter) {
+ this._reporter.dispose();
+ this._reporter = null;
+ }
+ }
+
@memoize
private get reporter(): VsCodeTelemetryReporter | null {
if (this.packageInfo && this.packageInfo.aiKey) {
diff --git a/extensions/typescript-language-features/yarn.lock b/extensions/typescript-language-features/yarn.lock
index 968cb9074cd..683f002c727 100644
--- a/extensions/typescript-language-features/yarn.lock
+++ b/extensions/typescript-language-features/yarn.lock
@@ -21,11 +21,16 @@
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
-"@types/node@*", "@types/node@^12.0.2":
+"@types/node@*":
version "12.0.2"
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.0.2.tgz#3452a24edf9fea138b48fad4a0a028a683da1e40"
integrity sha512-5tabW/i+9mhrfEOUcLDu2xBPsHJ+X5Orqy9FKpale3SjDA17j5AEpYq5vfy3oAeAHGcvANRCO3NV3d2D6q3NiA==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
+
"@types/rimraf@2.0.2":
version "2.0.2"
resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.2.tgz#7f0fc3cf0ff0ad2a99bb723ae1764f30acaf8b6e"
diff --git a/extensions/vscode-api-tests/package.json b/extensions/vscode-api-tests/package.json
index e1716b8555a..fd3c663e806 100644
--- a/extensions/vscode-api-tests/package.json
+++ b/extensions/vscode-api-tests/package.json
@@ -49,7 +49,7 @@
},
"devDependencies": {
"@types/mocha": "2.2.43",
- "@types/node": "^10.12.21",
+ "@types/node": "^10.14.8",
"mocha-junit-reporter": "^1.17.0",
"mocha-multi-reporters": "^1.1.7",
"typescript": "^1.6.2",
diff --git a/extensions/vscode-api-tests/yarn.lock b/extensions/vscode-api-tests/yarn.lock
index c7841be1397..7585841254a 100644
--- a/extensions/vscode-api-tests/yarn.lock
+++ b/extensions/vscode-api-tests/yarn.lock
@@ -7,10 +7,10 @@
resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-2.2.43.tgz#03c54589c43ad048cbcbfd63999b55d0424eec27"
integrity sha512-xNlAmH+lRJdUMXClMTI9Y0pRqIojdxfm7DHsIxoB2iTzu3fnPmSMEN8SsSx0cdwV36d02PWCWaDUoZPDSln+xw==
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
ajv@^5.1.0:
version "5.3.0"
diff --git a/extensions/vscode-colorize-tests/package.json b/extensions/vscode-colorize-tests/package.json
index 517429bb6d7..500d9120a96 100644
--- a/extensions/vscode-colorize-tests/package.json
+++ b/extensions/vscode-colorize-tests/package.json
@@ -11,7 +11,7 @@
"vscode:prepublish": "node ../../node_modules/gulp/bin/gulp.js --gulpfile ../../build/gulpfile.extensions.js compile-extension:vscode-colorize-tests ./tsconfig.json"
},
"devDependencies": {
- "@types/node": "^10.12.21",
+ "@types/node": "^10.14.8",
"mocha-junit-reporter": "^1.17.0",
"mocha-multi-reporters": "^1.1.7",
"vscode": "1.1.5"
diff --git a/extensions/vscode-colorize-tests/yarn.lock b/extensions/vscode-colorize-tests/yarn.lock
index 46684d06b5e..368b81f2f96 100644
--- a/extensions/vscode-colorize-tests/yarn.lock
+++ b/extensions/vscode-colorize-tests/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@types/node@^10.12.21":
- version "10.12.21"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.21.tgz#7e8a0c34cf29f4e17a36e9bd0ea72d45ba03908e"
- integrity sha512-CBgLNk4o3XMnqMc0rhb6lc77IwShMEglz05deDcn2lQxyXEZivfwgYJu7SMha9V5XcrP6qZuevTHV/QrN2vjKQ==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
ajv@^5.1.0:
version "5.3.0"
diff --git a/extensions/vscode-test-resolver/package.json b/extensions/vscode-test-resolver/package.json
index 6377065d874..cf87ab6c73b 100644
--- a/extensions/vscode-test-resolver/package.json
+++ b/extensions/vscode-test-resolver/package.json
@@ -21,7 +21,7 @@
],
"main": "./out/extension",
"devDependencies": {
- "@types/node": "^10.12.21",
+ "@types/node": "^10.14.8",
"vscode": "1.1.5"
},
"contributes": {
diff --git a/extensions/vscode-test-resolver/src/extension.ts b/extensions/vscode-test-resolver/src/extension.ts
index e137e7c9696..da2a277dcd4 100644
--- a/extensions/vscode-test-resolver/src/extension.ts
+++ b/extensions/vscode-test-resolver/src/extension.ts
@@ -65,7 +65,7 @@ export function activate(context: vscode.ExtensionContext) {
return;
}
- const { updateUrl, commit, quality } = getProductConfiguration();
+ const { updateUrl, commit, quality, serverDataFolderName, dataFolderName } = getProductConfiguration();
if (!commit) { // dev mode
const vscodePath = path.resolve(path.join(context.extensionPath, '..', '..'));
const nodeExec = process.platform === 'win32' ? 'node.exe' : 'node';
@@ -86,7 +86,10 @@ export function activate(context: vscode.ExtensionContext) {
const env = getNewEnv();
extHostProcess = cp.spawn(nodePath, [path.join('out', 'remoteExtensionHostAgent'), '--port=0'], { cwd: vscodePath, env });
} else {
- const serverBin = path.resolve(os.homedir(), '.vscode-remote', 'bin');
+ const remoteDataDir = process.env['TESTRESOLVER_DATA_FOLDER'] || path.join(os.homedir(), serverDataFolderName || `${dataFolderName}-testresolver`);
+ outputChannel.appendLine(`Using data folder at ${remoteDataDir}`);
+
+ const serverBin = path.join(remoteDataDir, 'bin');
progress.report({ message: 'Installing VSCode Server' });
const serverLocation = await downloadAndUnzipVSCodeServer(updateUrl, commit, quality, serverBin);
outputChannel.appendLine(`Using server build at ${serverLocation}`);
@@ -95,8 +98,10 @@ export function activate(context: vscode.ExtensionContext) {
const env = getNewEnv();
env['PATH'] = path.join(serverLocation, 'bin') + path.delimiter + env['PATH']; // code command for the terminal
+ env['VSCODE_AGENT_FOLDER'] = remoteDataDir;
- extHostProcess = cp.spawn(path.join(serverLocation, 'server.sh'), commandArgs, { env, cwd: serverLocation });
+ const serverCommand = process.platform === 'win32' ? 'server.bat' : 'server.sh';
+ extHostProcess = cp.spawn(path.join(serverLocation, serverCommand), commandArgs, { env, cwd: serverLocation });
}
extHostProcess.stdout.on('data', (data: Buffer) => processOutput(data.toString()));
extHostProcess.stderr.on('data', (data: Buffer) => processOutput(data.toString()));
@@ -166,6 +171,8 @@ export interface IProductConfiguration {
updateUrl: string;
commit: string;
quality: string;
+ dataFolderName: string;
+ serverDataFolderName?: string;
}
function getProductConfiguration(): IProductConfiguration {
diff --git a/extensions/vscode-test-resolver/yarn.lock b/extensions/vscode-test-resolver/yarn.lock
index 4cb37817738..925cef2c142 100644
--- a/extensions/vscode-test-resolver/yarn.lock
+++ b/extensions/vscode-test-resolver/yarn.lock
@@ -2,10 +2,10 @@
# yarn lockfile v1
-"@types/node@^10.12.21":
- version "10.12.30"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.30.tgz#4c2b4f0015f214f8158a347350481322b3b29b2f"
- integrity sha512-nsqTN6zUcm9xtdJiM9OvOJ5EF0kOI8f1Zuug27O/rgtxCRJHGqncSWfCMZUP852dCKPsDsYXGvBhxfRjDBkF5Q==
+"@types/node@^10.14.8":
+ version "10.14.8"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-10.14.8.tgz#fe444203ecef1162348cd6deb76c62477b2cc6e9"
+ integrity sha512-I4+DbJEhLEg4/vIy/2gkWDvXBOOtPKV9EnLhYjMoqxcRW+TTZtUftkHktz/a8suoD5mUL7m6ReLrkPvSsCQQmw==
ajv@^6.5.5:
version "6.10.0"
diff --git a/package.json b/package.json
index 17ed752705f..57e8f85a2d5 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
{
"name": "code-oss-dev",
"version": "1.36.0",
- "distro": "15aab9a6b297eb15ea96c450d3b92b0758572cca",
+ "distro": "3974e1b8eebdf6dae9977fde7dac5ba53fe21403",
"author": {
"name": "Microsoft Corporation"
},
@@ -40,20 +40,21 @@
"native-is-elevated": "^0.2.1",
"native-keymap": "1.2.5",
"native-watchdog": "1.0.0",
- "node-pty": "0.9.0-beta13",
+ "node-pty": "0.9.0-beta16",
"onigasm-umd": "^2.2.2",
"semver": "^5.5.0",
"spdlog": "0.8.1",
"sudo-prompt": "8.2.0",
"v8-inspect-profiler": "^0.0.20",
"vscode-chokidar": "1.6.5",
- "vscode-debugprotocol": "1.35.0",
- "vscode-nsfw": "1.1.1",
+ "vscode-nsfw": "1.1.2",
"vscode-proxy-agent": "0.4.0",
"vscode-ripgrep": "^1.2.5",
"vscode-sqlite3": "4.0.7",
"vscode-textmate": "^4.1.1",
- "vscode-xterm": "3.14.0-beta6",
+ "xterm": "3.15.0-beta14",
+ "xterm-addon-search": "0.1.0-beta5",
+ "xterm-addon-web-links": "0.1.0-beta9",
"yauzl": "^2.9.2",
"yazl": "^2.4.3"
},
@@ -70,7 +71,6 @@
"ansi-colors": "^3.2.3",
"asar": "^0.14.0",
"chromium-pickle-js": "^0.2.0",
- "clean-css": "3.4.6",
"copy-webpack-plugin": "^4.5.2",
"coveralls": "^2.11.11",
"cson-parser": "^1.3.3",
@@ -129,13 +129,14 @@
"source-map": "^0.4.4",
"ts-loader": "^4.4.2",
"tslint": "^5.16.0",
- "typescript": "3.4.5",
+ "typescript": "3.5.1",
"typescript-formatter": "7.1.0",
"uglify-es": "^3.0.18",
"underscore": "^1.8.2",
"vinyl": "^2.0.0",
"vinyl-fs": "^3.0.0",
"vsce": "1.48.0",
+ "vscode-debugprotocol": "1.35.0",
"vscode-nls-dev": "3.2.5",
"webpack": "^4.16.5",
"webpack-cli": "^3.1.0",
@@ -155,4 +156,4 @@
"windows-mutex": "0.2.1",
"windows-process-tree": "0.2.3"
}
-}
\ No newline at end of file
+}
diff --git a/remote/installDevModules.sh b/remote/installDevModules.sh
deleted file mode 100755
index 3b8941d0024..00000000000
--- a/remote/installDevModules.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-set -ex
-
-# Install Node and Yarn
-export NODE_VERSION=10.2.1
-export YARN_VERSION=1.10.1
-curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.xz"
-curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz"
-tar -xJf "node-v$NODE_VERSION-linux-x64.tar.xz" -C "$HOME" --no-same-owner
-tar -xzf "yarn-v$YARN_VERSION.tar.gz" -C "$HOME"
-mkdir -p "$HOME/bin"
-ln -s "$HOME/node-v$NODE_VERSION-linux-x64/bin/node" "$HOME/bin/node"
-ln -s "$HOME/yarn-v$YARN_VERSION/bin/yarn" "$HOME/bin/yarn"
-ln -s "$HOME/yarn-v$YARN_VERSION/bin/yarnpkg" "$HOME/bin/yarnpkg"
-rm "node-v$NODE_VERSION-linux-x64.tar.xz" "yarn-v$YARN_VERSION.tar.gz"
-
-# Compile native /remote node_modules
-PATH="$HOME/bin:$PATH" \
-PYTHON=/usr/bin/python2.7 \
-yarn --ignore-optional
diff --git a/remote/installDevPackagesAsRoot.sh b/remote/installDevPackagesAsRoot.sh
deleted file mode 100755
index 1df37767c96..00000000000
--- a/remote/installDevPackagesAsRoot.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-set -ex
-
-# Install libraries and tools
-apt-get update
-apt-get install -y \
- curl \
- make \
- gcc \
- g++ \
- python2.7 \
- libx11-dev \
- libxkbfile-dev \
- libsecret-1-dev \
- xz-utils
-rm -rf /var/lib/apt/lists/*
diff --git a/remote/launchDevMode.sh b/remote/launchDevMode.sh
deleted file mode 100755
index cd7ab12976a..00000000000
--- a/remote/launchDevMode.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-set -e
-
-export NODE_ENV=development
-export VSCODE_DEV=1
-export VSCODE_INJECT_NODE_MODULE_LOOKUP_PATH="$HOME/.vscode-remote/bin/dev-remote/node_modules"
-
-cd $VSCODE_REPO
-
-if [ -z "$extensions" ] ; then
- echo No extensions to install.
- mkdir -p /root/.vscode-remote
-else
- (PATH="$HOME/bin:$PATH" node out/remoteExtensionHostAgent.js ${VSCODE_TELEMETRY_ARG} ${extensions} || true)
-fi
-
-PATH="$HOME/bin:$PATH" node out/remoteExtensionHostAgent.js ${VSCODE_TELEMETRY_ARG} --port $PORT
diff --git a/resources/linux/rpm/dependencies.json b/resources/linux/rpm/dependencies.json
index d0b64c4fa68..34f127e1ae5 100644
--- a/resources/linux/rpm/dependencies.json
+++ b/resources/linux/rpm/dependencies.json
@@ -63,83 +63,5 @@
"libxcb.so.1()(64bit)",
"libxkbfile.so.1()(64bit)",
"libsecret-1.so.0()(64bit)"
- ],
- "i386": [
- "ld-linux.so.2",
- "ld-linux.so.2(GLIBC_2.1)",
- "libX11-xcb.so.1",
- "libX11.so.6",
- "libXcomposite.so.1",
- "libXcursor.so.1",
- "libXdamage.so.1",
- "libXext.so.6",
- "libXfixes.so.3",
- "libXi.so.6",
- "libXrandr.so.2",
- "libXrender.so.1",
- "libXss.so.1",
- "libXtst.so.6",
- "libasound.so.2",
- "libatk-1.0.so.0",
- "libc.so.6",
- "libc.so.6(GLIBC_2.0)",
- "libc.so.6(GLIBC_2.1)",
- "libc.so.6(GLIBC_2.1.3)",
- "libc.so.6(GLIBC_2.11)",
- "libc.so.6(GLIBC_2.2)",
- "libc.so.6(GLIBC_2.2.3)",
- "libc.so.6(GLIBC_2.3)",
- "libc.so.6(GLIBC_2.3.2)",
- "libc.so.6(GLIBC_2.3.4)",
- "libc.so.6(GLIBC_2.4)",
- "libc.so.6(GLIBC_2.6)",
- "libc.so.6(GLIBC_2.7)",
- "libcairo.so.2",
- "libcups.so.2",
- "libdbus-1.so.3",
- "libdl.so.2",
- "libdl.so.2(GLIBC_2.0)",
- "libdl.so.2(GLIBC_2.1)",
- "libexpat.so.1",
- "libfontconfig.so.1",
- "libfreetype.so.6",
- "libgcc_s.so.1",
- "libgcc_s.so.1(GCC_4.0.0)",
- "libgcc_s.so.1(GLIBC_2.0)",
- "libgdk-x11-2.0.so.0",
- "libgdk_pixbuf-2.0.so.0",
- "libgio-2.0.so.0",
- "libglib-2.0.so.0",
- "libgmodule-2.0.so.0",
- "libgobject-2.0.so.0",
- "libgtk-3.so.0",
- "libm.so.6",
- "libm.so.6(GLIBC_2.0)",
- "libm.so.6(GLIBC_2.1)",
- "libnspr4.so",
- "libnss3.so",
- "libnssutil3.so",
- "libpango-1.0.so.0",
- "libpangocairo-1.0.so.0",
- "libpthread.so.0",
- "libpthread.so.0(GLIBC_2.0)",
- "libpthread.so.0(GLIBC_2.1)",
- "libpthread.so.0(GLIBC_2.2)",
- "libpthread.so.0(GLIBC_2.2.3)",
- "libpthread.so.0(GLIBC_2.3.2)",
- "libpthread.so.0(GLIBC_2.3.3)",
- "librt.so.1",
- "librt.so.1(GLIBC_2.2)",
- "libsmime3.so",
- "libstdc++.so.6",
- "libstdc++.so.6(GLIBCXX_3.4)",
- "libstdc++.so.6(GLIBCXX_3.4.10)",
- "libstdc++.so.6(GLIBCXX_3.4.11)",
- "libstdc++.so.6(GLIBCXX_3.4.14)",
- "libstdc++.so.6(GLIBCXX_3.4.15)",
- "libstdc++.so.6(GLIBCXX_3.4.9)",
- "libxcb.so.1",
- "libxkbfile.so.1",
- "libsecret-1.so.0"
]
}
\ No newline at end of file
diff --git a/src/typings/electron.d.ts b/src/typings/electron.d.ts
index 20e58bcd730..59163a017cc 100644
--- a/src/typings/electron.d.ts
+++ b/src/typings/electron.d.ts
@@ -1,4 +1,4 @@
-// Type definitions for Electron 3.1.8
+// Type definitions for Electron 4.2.3
// Project: http://electronjs.org/
// Definitions by: The Electron Team
// Definitions: https://github.com/electron/electron-typescript-definitions
@@ -86,7 +86,7 @@ declare namespace Electron {
webviewTag: WebviewTag;
}
- interface AllElectron extends MainInterface, RendererInterface {}
+ interface AllElectron extends MainInterface, RendererInterface { }
const app: App;
const autoUpdater: AutoUpdater;
@@ -119,7 +119,7 @@ declare namespace Electron {
interface App extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/app
+ // Docs: http://electronjs.org/docs/api/app
/**
* Emitted when Chrome's accessibility support changes. This event fires when
@@ -472,6 +472,100 @@ declare namespace Electron {
once(event: 'ready', listener: (launchInfo: any) => void): this;
addListener(event: 'ready', listener: (launchInfo: any) => void): this;
removeListener(event: 'ready', listener: (launchInfo: any) => void): this;
+ /**
+ * Emitted when remote.getBuiltin() is called in the renderer process of
+ * webContents. Calling event.preventDefault() will prevent the module from being
+ * returned. Custom value can be returned by setting event.returnValue.
+ */
+ on(event: 'remote-get-builtin', listener: (event: Event,
+ webContents: WebContents,
+ moduleName: string) => void): this;
+ once(event: 'remote-get-builtin', listener: (event: Event,
+ webContents: WebContents,
+ moduleName: string) => void): this;
+ addListener(event: 'remote-get-builtin', listener: (event: Event,
+ webContents: WebContents,
+ moduleName: string) => void): this;
+ removeListener(event: 'remote-get-builtin', listener: (event: Event,
+ webContents: WebContents,
+ moduleName: string) => void): this;
+ /**
+ * Emitted when remote.getCurrentWebContents() is called in the renderer process of
+ * webContents. Calling event.preventDefault() will prevent the object from being
+ * returned. Custom value can be returned by setting event.returnValue.
+ */
+ on(event: 'remote-get-current-web-contents', listener: (event: Event,
+ webContents: WebContents) => void): this;
+ once(event: 'remote-get-current-web-contents', listener: (event: Event,
+ webContents: WebContents) => void): this;
+ addListener(event: 'remote-get-current-web-contents', listener: (event: Event,
+ webContents: WebContents) => void): this;
+ removeListener(event: 'remote-get-current-web-contents', listener: (event: Event,
+ webContents: WebContents) => void): this;
+ /**
+ * Emitted when remote.getCurrentWindow() is called in the renderer process of
+ * webContents. Calling event.preventDefault() will prevent the object from being
+ * returned. Custom value can be returned by setting event.returnValue.
+ */
+ on(event: 'remote-get-current-window', listener: (event: Event,
+ webContents: WebContents) => void): this;
+ once(event: 'remote-get-current-window', listener: (event: Event,
+ webContents: WebContents) => void): this;
+ addListener(event: 'remote-get-current-window', listener: (event: Event,
+ webContents: WebContents) => void): this;
+ removeListener(event: 'remote-get-current-window', listener: (event: Event,
+ webContents: WebContents) => void): this;
+ /**
+ * Emitted when remote.getGlobal() is called in the renderer process of
+ * webContents. Calling event.preventDefault() will prevent the global from being
+ * returned. Custom value can be returned by setting event.returnValue.
+ */
+ on(event: 'remote-get-global', listener: (event: Event,
+ webContents: WebContents,
+ globalName: string) => void): this;
+ once(event: 'remote-get-global', listener: (event: Event,
+ webContents: WebContents,
+ globalName: string) => void): this;
+ addListener(event: 'remote-get-global', listener: (event: Event,
+ webContents: WebContents,
+ globalName: string) => void): this;
+ removeListener(event: 'remote-get-global', listener: (event: Event,
+ webContents: WebContents,
+ globalName: string) => void): this;
+ /**
+ * Emitted when .getWebContents() is called in the renderer process of
+ * webContents. Calling event.preventDefault() will prevent the object from being
+ * returned. Custom value can be returned by setting event.returnValue.
+ */
+ on(event: 'remote-get-guest-web-contents', listener: (event: Event,
+ webContents: WebContents,
+ guestWebContents: WebContents) => void): this;
+ once(event: 'remote-get-guest-web-contents', listener: (event: Event,
+ webContents: WebContents,
+ guestWebContents: WebContents) => void): this;
+ addListener(event: 'remote-get-guest-web-contents', listener: (event: Event,
+ webContents: WebContents,
+ guestWebContents: WebContents) => void): this;
+ removeListener(event: 'remote-get-guest-web-contents', listener: (event: Event,
+ webContents: WebContents,
+ guestWebContents: WebContents) => void): this;
+ /**
+ * Emitted when remote.require() is called in the renderer process of webContents.
+ * Calling event.preventDefault() will prevent the module from being returned.
+ * Custom value can be returned by setting event.returnValue.
+ */
+ on(event: 'remote-require', listener: (event: Event,
+ webContents: WebContents,
+ moduleName: string) => void): this;
+ once(event: 'remote-require', listener: (event: Event,
+ webContents: WebContents,
+ moduleName: string) => void): this;
+ addListener(event: 'remote-require', listener: (event: Event,
+ webContents: WebContents,
+ moduleName: string) => void): this;
+ removeListener(event: 'remote-require', listener: (event: Event,
+ webContents: WebContents,
+ moduleName: string) => void): this;
/**
* This event will be emitted inside the primary instance of your application when
* a second instance has been executed. argv is an Array of the second instance's
@@ -690,6 +784,11 @@ declare namespace Electron {
* is ready.
*/
enableMixedSandbox(): void;
+ /**
+ * Enables full sandbox mode on the app. This method can only be called before app
+ * is ready.
+ */
+ enableSandbox(): void;
/**
* Exits immediately with exitCode. exitCode defaults to 0. All windows will be
* closed immediately without asking user and the before-quit and will-quit events
@@ -709,13 +808,22 @@ declare namespace Electron {
* Fetches a path's associated icon. On Windows, there a 2 kinds of icons: On Linux
* and macOS, icons depend on the application associated with file mime type.
*/
- getFileIcon(path: string, options: FileIconOptions, callback: (error: Error, icon: NativeImage) => void): void;
+ getFileIcon(path: string, callback: (error: Error, icon: NativeImage) => void): void;
/**
* Fetches a path's associated icon. On Windows, there a 2 kinds of icons: On Linux
* and macOS, icons depend on the application associated with file mime type.
*/
- getFileIcon(path: string, callback: (error: Error, icon: NativeImage) => void): void;
+ getFileIcon(path: string, options: FileIconOptions, callback: (error: Error, icon: NativeImage) => void): void;
getGPUFeatureStatus(): GPUFeatureStatus;
+ /**
+ * For infoType equal to complete: Promise is fulfilled with Object containing all
+ * the GPU Information as in chromium's GPUInfo object. This includes the version
+ * and driver information that's shown on chrome://gpu page. For infoType equal to
+ * basic: Promise is fulfilled with Object containing fewer attributes than when
+ * requested with complete. Here's an example of basic response: Using basic should
+ * be preferred if only basic information like vendorId or driverId is needed.
+ */
+ getGPUInfo(infoType: string): Promise;
getJumpListSettings(): JumpListSettings;
/**
* To set the locale, you'll want to use a command line switch at app startup,
@@ -754,7 +862,7 @@ declare namespace Electron {
/**
* Imports the certificate in pkcs12 format into the platform certificate store.
* callback is called with the result of import operation, a value of 0 indicates
- * success while any other value indicates failure according to chromium
+ * success while any other value indicates failure according to Chromium
* net_error_list.
*/
importCertificate(options: ImportCertificateOptions, callback: (result: number) => void): void;
@@ -843,9 +951,9 @@ declare namespace Electron {
setAboutPanelOptions(options: AboutPanelOptionsOptions): void;
/**
* Manually enables Chrome's accessibility support, allowing to expose
- * accessibility switch to users in application settings.
- * https://www.chromium.org/developers/design-documents/accessibility for more
- * details. Disabled by default. Note: Rendering accessibility tree can
+ * accessibility switch to users in application settings. See Chromium's
+ * accessibility docs for more details. Disabled by default. This API must be
+ * called after the ready event is emitted. Note: Rendering accessibility tree can
* significantly affect the performance of your app. It should not be enabled by
* default.
*/
@@ -929,7 +1037,12 @@ declare namespace Electron {
*/
show(): void;
/**
- * Start accessing a security scoped resource. With this method electron
+ * Show the about panel with the values defined in the app's .plist file or with
+ * the options set via app.setAboutPanelOptions(options).
+ */
+ showAboutPanel(): void;
+ /**
+ * Start accessing a security scoped resource. With this method Electron
* applications that are packaged for the Mac App Store may reach outside their
* sandbox to access files chosen by the user. See Apple's documentation for a
* description of how this system works.
@@ -940,7 +1053,7 @@ declare namespace Electron {
* userInfo into its current userInfo dictionary.
*/
updateCurrentActivity(type: string, userInfo: any): void;
- whenReady(): Promise;
+ whenReady(): Promise;
commandLine: CommandLine;
dock: Dock;
/**
@@ -949,11 +1062,19 @@ declare namespace Electron {
* production environments.
*/
isPackaged?: boolean;
+ /**
+ * A String which is the user agent string Electron will use as a global fallback.
+ * This is the user agent that will be used when no user agent is set at the
+ * webContents or session level. Useful for ensuring your entire app has the same
+ * user agent. Set to a custom value as early as possible in your apps
+ * initialization to ensure that your overridden value is used.
+ */
+ userAgentFallback?: string;
}
interface AutoUpdater extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/auto-updater
+ // Docs: http://electronjs.org/docs/api/auto-updater
/**
* This event is emitted after a user calls quitAndInstall(). When this API is
@@ -990,7 +1111,9 @@ declare namespace Electron {
removeListener(event: 'update-available', listener: Function): this;
/**
* Emitted when an update has been downloaded. On Windows only releaseName is
- * available.
+ * available. Note: It is not strictly necessary to handle this event. A
+ * successfully downloaded update will still be applied the next time the
+ * application starts.
*/
on(event: 'update-downloaded', listener: (event: Event,
releaseNotes: string,
@@ -1029,10 +1152,10 @@ declare namespace Electron {
* Restarts the app and installs the update after it has been downloaded. It should
* only be called after update-downloaded has been emitted. Under the hood calling
* autoUpdater.quitAndInstall() will close all application windows first, and
- * automatically call app.quit() after all windows have been closed. Note: If the
- * application is quit without calling this API after the update-downloaded event
- * has been emitted, the application will still be replaced by the updated one on
- * the next run.
+ * automatically call app.quit() after all windows have been closed. Note: It is
+ * not strictly necessary to call this function to apply an update, as a
+ * successfully downloaded update will always be applied the next time the
+ * application starts.
*/
quitAndInstall(): void;
/**
@@ -1043,7 +1166,7 @@ declare namespace Electron {
interface BluetoothDevice {
- // Docs: http://electron.atom.io/docs/api/structures/bluetooth-device
+ // Docs: http://electronjs.org/docs/api/structures/bluetooth-device
deviceId: string;
deviceName: string;
@@ -1051,11 +1174,11 @@ declare namespace Electron {
class BrowserView extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/browser-view
+ // Docs: http://electronjs.org/docs/api/browser-view
constructor(options?: BrowserViewConstructorOptions);
static fromId(id: number): BrowserView;
- static fromWebContents(webContents: WebContents): BrowserView | null;
+ static fromWebContents(webContents: WebContents): (BrowserView) | (null);
static getAllViews(): BrowserView[];
/**
* Force closing the view, the unload and beforeunload events won't be emitted for
@@ -1076,8 +1199,19 @@ declare namespace Electron {
class BrowserWindow extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/browser-window
+ // Docs: http://electronjs.org/docs/api/browser-window
+ /**
+ * Emitted when the window is set or unset to show always on top of other windows.
+ */
+ on(event: 'always-on-top-changed', listener: (event: Event,
+ isAlwaysOnTop: boolean) => void): this;
+ once(event: 'always-on-top-changed', listener: (event: Event,
+ isAlwaysOnTop: boolean) => void): this;
+ addListener(event: 'always-on-top-changed', listener: (event: Event,
+ isAlwaysOnTop: boolean) => void): this;
+ removeListener(event: 'always-on-top-changed', listener: (event: Event,
+ isAlwaysOnTop: boolean) => void): this;
/**
* Emitted when an App Command is invoked. These are typically related to keyboard
* media keys or browser commands, as well as the "Back" button built into some
@@ -1207,13 +1341,13 @@ declare namespace Electron {
* prevent the native window's title from changing.
*/
on(event: 'page-title-updated', listener: (event: Event,
- title: string) => void): this;
+ title: string, explicitSet: boolean) => void): this;
once(event: 'page-title-updated', listener: (event: Event,
- title: string) => void): this;
+ title: string, explicitSet: boolean) => void): this;
addListener(event: 'page-title-updated', listener: (event: Event,
- title: string) => void): this;
+ title: string, explicitSet: boolean) => void): this;
removeListener(event: 'page-title-updated', listener: (event: Event,
- title: string) => void): this;
+ title: string, explicitSet: boolean) => void): this;
/**
* Emitted when the web page has been rendered (while not being shown) and window
* can be displayed without a visual flash.
@@ -1223,7 +1357,7 @@ declare namespace Electron {
addListener(event: 'ready-to-show', listener: Function): this;
removeListener(event: 'ready-to-show', listener: Function): this;
/**
- * Emitted when the window is being resized.
+ * Emitted after the window has been resized.
*/
on(event: 'resize', listener: Function): this;
once(event: 'resize', listener: Function): this;
@@ -1318,6 +1452,58 @@ declare namespace Electron {
once(event: 'unresponsive', listener: Function): this;
addListener(event: 'unresponsive', listener: Function): this;
removeListener(event: 'unresponsive', listener: Function): this;
+ /**
+ * Emitted before the window is moved. Calling event.preventDefault() will prevent
+ * the window from being moved. Note that this is only emitted when the window is
+ * being resized manually. Resizing the window with setBounds/setSize will not emit
+ * this event.
+ */
+ on(event: 'will-move', listener: (event: Event,
+ /**
+ * ` Location the window is being moved to.
+ */
+ newBounds: Rectangle) => void): this;
+ once(event: 'will-move', listener: (event: Event,
+ /**
+ * ` Location the window is being moved to.
+ */
+ newBounds: Rectangle) => void): this;
+ addListener(event: 'will-move', listener: (event: Event,
+ /**
+ * ` Location the window is being moved to.
+ */
+ newBounds: Rectangle) => void): this;
+ removeListener(event: 'will-move', listener: (event: Event,
+ /**
+ * ` Location the window is being moved to.
+ */
+ newBounds: Rectangle) => void): this;
+ /**
+ * Emitted before the window is resized. Calling event.preventDefault() will
+ * prevent the window from being resized. Note that this is only emitted when the
+ * window is being resized manually. Resizing the window with setBounds/setSize
+ * will not emit this event.
+ */
+ on(event: 'will-resize', listener: (event: Event,
+ /**
+ * ` Size the window is being resized to.
+ */
+ newBounds: Rectangle) => void): this;
+ once(event: 'will-resize', listener: (event: Event,
+ /**
+ * ` Size the window is being resized to.
+ */
+ newBounds: Rectangle) => void): this;
+ addListener(event: 'will-resize', listener: (event: Event,
+ /**
+ * ` Size the window is being resized to.
+ */
+ newBounds: Rectangle) => void): this;
+ removeListener(event: 'will-resize', listener: (event: Event,
+ /**
+ * ` Size the window is being resized to.
+ */
+ newBounds: Rectangle) => void): this;
constructor(options?: BrowserWindowConstructorOptions);
/**
* Adds DevTools extension located at path, and returns extension's name. The
@@ -1335,7 +1521,7 @@ declare namespace Electron {
* This API cannot be called before the ready event of the app module is emitted.
*/
static addExtension(path: string): void;
- static fromBrowserView(browserView: BrowserView): BrowserWindow | null;
+ static fromBrowserView(browserView: BrowserView): (BrowserWindow) | (null);
static fromId(id: number): BrowserWindow;
static fromWebContents(webContents: WebContents): BrowserWindow;
static getAllWindows(): BrowserWindow[];
@@ -1349,7 +1535,7 @@ declare namespace Electron {
* emitted.
*/
static getExtensions(): Extensions;
- static getFocusedWindow(): BrowserWindow | null;
+ static getFocusedWindow(): (BrowserWindow) | (null);
/**
* Remove a DevTools extension by name. Note: This API cannot be called before the
* ready event of the app module is emitted.
@@ -1411,7 +1597,7 @@ declare namespace Electron {
* Note: The BrowserView API is currently experimental and may change or be removed
* in future Electron releases.
*/
- getBrowserView(): BrowserView | null;
+ getBrowserView(): (BrowserView) | (null);
getChildWindows(): BrowserWindow[];
getContentBounds(): Rectangle;
getContentSize(): number[];
@@ -1422,6 +1608,13 @@ declare namespace Electron {
* (unsigned long) on Linux.
*/
getNativeWindowHandle(): Buffer;
+ /**
+ * Note: whatever the current state of the window : maximized, minimized or in
+ * fullscreen, this function always returns the position and size of the window in
+ * normal state. In normal state, getBounds and getNormalBounds returns the same
+ * Rectangle.
+ */
+ getNormalBounds(): Rectangle;
getOpacity(): number;
getParentWindow(): BrowserWindow;
getPosition(): number[];
@@ -1473,6 +1666,7 @@ declare namespace Electron {
* On Linux always returns true.
*/
isMovable(): boolean;
+ isNormal(): boolean;
isResizable(): boolean;
isSimpleFullScreen(): boolean;
isVisible(): boolean;
@@ -1485,7 +1679,7 @@ declare namespace Electron {
* Same as webContents.loadFile, filePath should be a path to an HTML file relative
* to the root of your application. See the webContents docs for more information.
*/
- loadFile(filePath: string): void;
+ loadFile(filePath: string, options?: LoadFileOptions): void;
/**
* Same as webContents.loadURL(url[, options]). The url can be a remote address
* (e.g. http://) or a path to a local HTML file using the file:// protocol. To
@@ -1579,7 +1773,12 @@ declare namespace Electron {
*/
setAutoHideMenuBar(hide: boolean): void;
/**
- * Resizes and moves the window to the supplied bounds
+ * Sets the background color of the window. See Setting backgroundColor.
+ */
+ setBackgroundColor(backgroundColor: string): void;
+ /**
+ * Resizes and moves the window to the supplied bounds. Any properties that are not
+ * supplied will default to their current values.
*/
setBounds(bounds: Rectangle, animate?: boolean): void;
setBrowserView(browserView: BrowserView): void;
@@ -1655,7 +1854,7 @@ declare namespace Electron {
* Sets the menu as the window's menu bar, setting it to null will remove the menu
* bar.
*/
- setMenu(menu: Menu | null): void;
+ setMenu(menu: (Menu) | (null)): void;
/**
* Sets whether the menu bar should be visible. If the menu bar is auto-hide, users
* can still bring up the menu bar by pressing the single Alt key.
@@ -1682,7 +1881,7 @@ declare namespace Electron {
* Sets a 16 x 16 pixel overlay onto the current taskbar icon, usually used to
* convey some sort of application status or to passively notify the user.
*/
- setOverlayIcon(overlay: NativeImage | null, description: string): void;
+ setOverlayIcon(overlay: (NativeImage) | (null), description: string): void;
/**
* Sets parent as current window's parent window, passing null will turn current
* window into a top-level window.
@@ -1754,7 +1953,8 @@ declare namespace Electron {
/**
* Sets the region of the window to show as the thumbnail image displayed when
* hovering over the window in the taskbar. You can reset the thumbnail to be the
- * entire window by specifying an empty region: {x: 0, y: 0, width: 0, height: 0}.
+ * entire window by specifying an empty region: { x: 0, y: 0, width: 0, height: 0
+ * }.
*/
setThumbnailClip(region: Rectangle): void;
/**
@@ -1782,7 +1982,12 @@ declare namespace Electron {
* Sets whether the window should be visible on all workspaces. Note: This API does
* nothing on Windows.
*/
- setVisibleOnAllWorkspaces(visible: boolean): void;
+ setVisibleOnAllWorkspaces(visible: boolean, options?: VisibleOnAllWorkspacesOptions): void;
+ /**
+ * Sets whether the window traffic light buttons should be visible. This cannot be
+ * called when titleBarStyle is set to customButtonsOnHover.
+ */
+ setWindowButtonVisibility(visible: boolean): void;
/**
* Shows and gives focus to the window.
*/
@@ -1818,7 +2023,7 @@ declare namespace Electron {
class BrowserWindowProxy extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/browser-window-proxy
+ // Docs: http://electronjs.org/docs/api/browser-window-proxy
/**
* Removes focus from the child window.
@@ -1851,7 +2056,7 @@ declare namespace Electron {
interface Certificate {
- // Docs: http://electron.atom.io/docs/api/structures/certificate
+ // Docs: http://electronjs.org/docs/api/structures/certificate
/**
* PEM encoded data
@@ -1897,37 +2102,37 @@ declare namespace Electron {
interface CertificatePrincipal {
- // Docs: http://electron.atom.io/docs/api/structures/certificate-principal
+ // Docs: http://electronjs.org/docs/api/structures/certificate-principal
/**
- * Common Name
+ * Common Name.
*/
commonName: string;
/**
- * Country or region
+ * Country or region.
*/
country: string;
/**
- * Locality
+ * Locality.
*/
locality: string;
/**
- * Organization names
+ * Organization names.
*/
organizations: string[];
/**
- * Organization Unit names
+ * Organization Unit names.
*/
organizationUnits: string[];
/**
- * State or province
+ * State or province.
*/
state: string;
}
class ClientRequest extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/client-request
+ // Docs: http://electronjs.org/docs/api/client-request
/**
* Emitted when the request is aborted. The abort event will not be fired if the
@@ -2045,7 +2250,7 @@ declare namespace Electron {
* Sends the last chunk of the request data. Subsequent write or end operations
* will not be allowed. The finish event is emitted just after the end operation.
*/
- end(chunk?: string | Buffer, encoding?: string, callback?: Function): void;
+ end(chunk?: (string) | (Buffer), encoding?: string, callback?: Function): void;
/**
* Continues any deferred redirection request when the redirection mode is manual.
*/
@@ -2078,13 +2283,13 @@ declare namespace Electron {
* issued on the wire. After the first write operation, it is not allowed to add or
* remove a custom header.
*/
- write(chunk: string | Buffer, encoding?: string, callback?: Function): void;
+ write(chunk: (string) | (Buffer), encoding?: string, callback?: Function): void;
chunkedEncoding: boolean;
}
interface Clipboard extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/clipboard
+ // Docs: http://electronjs.org/docs/api/clipboard
availableFormats(type?: string): string[];
/**
@@ -2144,7 +2349,7 @@ declare namespace Electron {
interface ContentTracing extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/content-tracing
+ // Docs: http://electronjs.org/docs/api/content-tracing
/**
* Get the current monitoring traced data. Child processes typically cache trace
@@ -2181,7 +2386,7 @@ declare namespace Electron {
* request. The callback will be called once all child processes have acknowledged
* the startRecording request.
*/
- startRecording(options: TraceCategoriesAndOptions | TraceConfig, callback: Function): void;
+ startRecording(options: (TraceCategoriesAndOptions) | (TraceConfig), callback: Function): void;
/**
* Stop monitoring on all processes. Once all child processes have acknowledged the
* stopMonitoring request the callback is called.
@@ -2203,10 +2408,11 @@ declare namespace Electron {
interface Cookie {
- // Docs: http://electron.atom.io/docs/api/structures/cookie
+ // Docs: http://electronjs.org/docs/api/structures/cookie
/**
- * The domain of the cookie.
+ * The domain of the cookie; this will be normalized with a preceding dot so that
+ * it's also valid for subdomains.
*/
domain?: string;
/**
@@ -2215,7 +2421,8 @@ declare namespace Electron {
*/
expirationDate?: number;
/**
- * Whether the cookie is a host-only cookie.
+ * Whether the cookie is a host-only cookie; this will only be true if no domain
+ * was passed.
*/
hostOnly?: boolean;
/**
@@ -2247,7 +2454,7 @@ declare namespace Electron {
class Cookies extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/cookies
+ // Docs: http://electronjs.org/docs/api/cookies
/**
* Emitted when a cookie is changed because it was added, edited, removed, or
@@ -2328,7 +2535,7 @@ declare namespace Electron {
interface CPUUsage {
- // Docs: http://electron.atom.io/docs/api/structures/cpu-usage
+ // Docs: http://electronjs.org/docs/api/structures/cpu-usage
/**
* The number of average idle cpu wakeups per second since the last call to
@@ -2343,7 +2550,7 @@ declare namespace Electron {
interface CrashReport {
- // Docs: http://electron.atom.io/docs/api/structures/crash-report
+ // Docs: http://electronjs.org/docs/api/structures/crash-report
date: Date;
id: string;
@@ -2351,7 +2558,7 @@ declare namespace Electron {
interface CrashReporter extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/crash-reporter
+ // Docs: http://electronjs.org/docs/api/crash-reporter
/**
* Set an extra parameter to be sent with the crash report. The values specified
@@ -2362,8 +2569,10 @@ declare namespace Electron {
*/
addExtraParameter(key: string, value: string): void;
/**
- * Returns the date and ID of the last crash report. If no crash reports have been
- * sent or the crash reporter has not been started, null is returned.
+ * Returns the date and ID of the last crash report. Only crash reports that have
+ * been uploaded will be returned; even if a crash report is present on disk it
+ * will not be returned until it is uploaded. In the case that there are no
+ * uploaded reports, null is returned.
*/
getLastCrashReport(): CrashReport;
/**
@@ -2419,7 +2628,7 @@ declare namespace Electron {
class Debugger extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/debugger
+ // Docs: http://electronjs.org/docs/api/debugger
/**
* Emitted when debugging session is terminated. This happens either when
@@ -2505,7 +2714,7 @@ declare namespace Electron {
interface DesktopCapturer extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/desktop-capturer
+ // Docs: http://electronjs.org/docs/api/desktop-capturer
/**
* Starts gathering information about all available desktop media sources, and
@@ -2518,7 +2727,7 @@ declare namespace Electron {
interface DesktopCapturerSource {
- // Docs: http://electron.atom.io/docs/api/structures/desktop-capturer-source
+ // Docs: http://electronjs.org/docs/api/structures/desktop-capturer-source
/**
* A unique identifier that will correspond to the id of the matching returned by
@@ -2534,8 +2743,8 @@ declare namespace Electron {
*/
id: string;
/**
- * A screen source will be named either Entire Screen or Screen , while the
- * name of a window source will match the window title.
+ * A screen source will be named either Entire Screen or Screen , while the name of
+ * a window source will match the window title.
*/
name: string;
/**
@@ -2549,7 +2758,7 @@ declare namespace Electron {
interface Dialog extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/dialog
+ // Docs: http://electronjs.org/docs/api/dialog
/**
* On macOS, this displays a modal dialog that shows a message and certificate
@@ -2610,7 +2819,7 @@ declare namespace Electron {
* file selector and a directory selector, so if you set properties to ['openFile',
* 'openDirectory'] on these platforms, a directory selector will be shown.
*/
- showOpenDialog(browserWindow: BrowserWindow, options: OpenDialogOptions, callback?: (filePaths: string[], bookmarks: string[]) => void): string[];
+ showOpenDialog(browserWindow: BrowserWindow, options: OpenDialogOptions, callback?: (filePaths: string[], bookmarks: string[]) => void): (string[]) | (undefined);
/**
* The browserWindow argument allows the dialog to attach itself to a parent
* window, making it modal. The filters specifies an array of file types that can
@@ -2623,7 +2832,7 @@ declare namespace Electron {
* file selector and a directory selector, so if you set properties to ['openFile',
* 'openDirectory'] on these platforms, a directory selector will be shown.
*/
- showOpenDialog(options: OpenDialogOptions, callback?: (filePaths: string[], bookmarks: string[]) => void): string[];
+ showOpenDialog(options: OpenDialogOptions, callback?: (filePaths: string[], bookmarks: string[]) => void): (string[]) | (undefined);
/**
* The browserWindow argument allows the dialog to attach itself to a parent
* window, making it modal. The filters specifies an array of file types that can
@@ -2631,7 +2840,7 @@ declare namespace Electron {
* the API call will be asynchronous and the result will be passed via
* callback(filename).
*/
- showSaveDialog(browserWindow: BrowserWindow, options: SaveDialogOptions, callback?: (filename: string, bookmark: string) => void): string;
+ showSaveDialog(browserWindow: BrowserWindow, options: SaveDialogOptions, callback?: (filename: string, bookmark: string) => void): (string) | (undefined);
/**
* The browserWindow argument allows the dialog to attach itself to a parent
* window, making it modal. The filters specifies an array of file types that can
@@ -2639,12 +2848,12 @@ declare namespace Electron {
* the API call will be asynchronous and the result will be passed via
* callback(filename).
*/
- showSaveDialog(options: SaveDialogOptions, callback?: (filename: string, bookmark: string) => void): string;
+ showSaveDialog(options: SaveDialogOptions, callback?: (filename: string, bookmark: string) => void): (string) | (undefined);
}
interface Display {
- // Docs: http://electron.atom.io/docs/api/structures/display
+ // Docs: http://electronjs.org/docs/api/structures/display
bounds: Rectangle;
/**
@@ -2670,7 +2879,7 @@ declare namespace Electron {
class DownloadItem extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/download-item
+ // Docs: http://electronjs.org/docs/api/download-item
/**
* Emitted when the download is in a terminal state. This includes a completed
@@ -2773,7 +2982,7 @@ declare namespace Electron {
interface FileFilter {
- // Docs: http://electron.atom.io/docs/api/structures/file-filter
+ // Docs: http://electronjs.org/docs/api/structures/file-filter
extensions: string[];
name: string;
@@ -2781,7 +2990,7 @@ declare namespace Electron {
interface GlobalShortcut extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/global-shortcut
+ // Docs: http://electronjs.org/docs/api/global-shortcut
/**
* When the accelerator is already taken by other applications, this call will
@@ -2811,65 +3020,65 @@ declare namespace Electron {
interface GPUFeatureStatus {
- // Docs: http://electron.atom.io/docs/api/structures/gpu-feature-status
+ // Docs: http://electronjs.org/docs/api/structures/gpu-feature-status
/**
- * Canvas
+ * Canvas.
*/
'2d_canvas': string;
/**
- * Flash
+ * Flash.
*/
flash_3d: string;
/**
- * Flash Stage3D
+ * Flash Stage3D.
*/
flash_stage3d: string;
/**
- * Flash Stage3D Baseline profile
+ * Flash Stage3D Baseline profile.
*/
flash_stage3d_baseline: string;
/**
- * Compositing
+ * Compositing.
*/
gpu_compositing: string;
/**
- * Multiple Raster Threads
+ * Multiple Raster Threads.
*/
multiple_raster_threads: string;
/**
- * Native GpuMemoryBuffers
+ * Native GpuMemoryBuffers.
*/
native_gpu_memory_buffers: string;
/**
- * Rasterization
+ * Rasterization.
*/
rasterization: string;
/**
- * Video Decode
+ * Video Decode.
*/
video_decode: string;
/**
- * Video Encode
+ * Video Encode.
*/
video_encode: string;
/**
- * VPx Video Decode
+ * VPx Video Decode.
*/
vpx_decode: string;
/**
- * WebGL
+ * WebGL.
*/
webgl: string;
/**
- * WebGL2
+ * WebGL2.
*/
webgl2: string;
}
interface InAppPurchase extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/in-app-purchase
+ // Docs: http://electronjs.org/docs/api/in-app-purchase
/**
* Emitted when one or more transactions have been updated.
@@ -2917,7 +3126,7 @@ declare namespace Electron {
class IncomingMessage extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/incoming-message
+ // Docs: http://electronjs.org/docs/api/incoming-message
/**
* Emitted when a request has been canceled during an ongoing HTTP transaction.
@@ -2978,7 +3187,7 @@ declare namespace Electron {
interface IOCounters {
- // Docs: http://electron.atom.io/docs/api/structures/io-counters
+ // Docs: http://electronjs.org/docs/api/structures/io-counters
/**
* Then number of I/O other operations.
@@ -3008,7 +3217,7 @@ declare namespace Electron {
interface IpcMain extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/ipc-main
+ // Docs: http://electronjs.org/docs/api/ipc-main
/**
* Listens to channel, when a new message arrives listener would be called with
@@ -3033,7 +3242,7 @@ declare namespace Electron {
interface IpcRenderer extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/ipc-renderer
+ // Docs: http://electronjs.org/docs/api/ipc-renderer
/**
* Listens to channel, when a new message arrives listener would be called with
@@ -3083,7 +3292,7 @@ declare namespace Electron {
interface JumpListCategory {
- // Docs: http://electron.atom.io/docs/api/structures/jump-list-category
+ // Docs: http://electronjs.org/docs/api/structures/jump-list-category
/**
* Array of objects if type is tasks or custom, otherwise it should be omitted.
@@ -3101,7 +3310,7 @@ declare namespace Electron {
interface JumpListItem {
- // Docs: http://electron.atom.io/docs/api/structures/jump-list-item
+ // Docs: http://electronjs.org/docs/api/structures/jump-list-item
/**
* The command line arguments when program is executed. Should only be set if type
@@ -3148,7 +3357,7 @@ declare namespace Electron {
interface MemoryInfo {
- // Docs: http://electron.atom.io/docs/api/structures/memory-info
+ // Docs: http://electronjs.org/docs/api/structures/memory-info
/**
* The maximum amount of memory that has ever been pinned to actual physical RAM.
@@ -3177,7 +3386,7 @@ declare namespace Electron {
interface MemoryUsageDetails {
- // Docs: http://electron.atom.io/docs/api/structures/memory-usage-details
+ // Docs: http://electronjs.org/docs/api/structures/memory-usage-details
count: number;
liveSize: number;
@@ -3186,7 +3395,7 @@ declare namespace Electron {
class Menu {
- // Docs: http://electron.atom.io/docs/api/menu
+ // Docs: http://electronjs.org/docs/api/menu
/**
* Emitted when a popup is closed either manually or with menu.closePopup().
@@ -3213,7 +3422,7 @@ declare namespace Electron {
* Note: The returned Menu instance doesn't support dynamic addition or removal of
* menu items. Instance properties can still be dynamically modified.
*/
- static getApplicationMenu(): Menu | null;
+ static getApplicationMenu(): (Menu) | (null);
/**
* Sends the action to the first responder of application. This is used for
* emulating default macOS menu behaviors. Usually you would use the role property
@@ -3227,7 +3436,7 @@ declare namespace Electron {
* Windows and Linux but has no effect on macOS. Note: This API has to be called
* after the ready event of app module.
*/
- static setApplicationMenu(menu: Menu | null): void;
+ static setApplicationMenu(menu: (Menu) | (null)): void;
/**
* Appends the menuItem to the menu.
*/
@@ -3244,13 +3453,13 @@ declare namespace Electron {
/**
* Pops up this menu as a context menu in the BrowserWindow.
*/
- popup(options: PopupOptions): void;
+ popup(options?: PopupOptions): void;
items: MenuItem[];
}
class MenuItem {
- // Docs: http://electron.atom.io/docs/api/menu-item
+ // Docs: http://electronjs.org/docs/api/menu-item
constructor(options: MenuItemConstructorOptions);
checked: boolean;
@@ -3262,21 +3471,21 @@ declare namespace Electron {
interface MimeTypedBuffer {
- // Docs: http://electron.atom.io/docs/api/structures/mime-typed-buffer
+ // Docs: http://electronjs.org/docs/api/structures/mime-typed-buffer
/**
- * The actual Buffer content
+ * The actual Buffer content.
*/
data: Buffer;
/**
- * The mimeType of the Buffer that you are sending
+ * The mimeType of the Buffer that you are sending.
*/
mimeType: string;
}
class NativeImage {
- // Docs: http://electron.atom.io/docs/api/native-image
+ // Docs: http://electronjs.org/docs/api/native-image
/**
* Creates an empty NativeImage instance.
@@ -3294,7 +3503,14 @@ declare namespace Electron {
* Creates a new NativeImage instance from the NSImage that maps to the given image
* name. See NSImageName for a list of possible values. The hslShift is applied to
* the image with the following rules This means that [-1, 0, 1] will make the
- * image completely white and [-1, 1, 0] will make the image completely black.
+ * image completely white and [-1, 1, 0] will make the image completely black. In
+ * some cases, the NSImageName doesn't match its string representation; one example
+ * of this is NSFolderImageName, whose string representation would actually be
+ * NSFolder. Therefore, you'll need to determine the correct string representation
+ * for your image before passing it in. This can be done with the following: echo
+ * -e '#import \nint main() { NSLog(@"%@", SYSTEM_IMAGE_NAME); }' |
+ * clang -otest -x objective-c -framework Cocoa - && ./test where SYSTEM_IMAGE_NAME
+ * should be replaced with any value from this list.
*/
static createFromNamedImage(imageName: string, hslShift: number[]): NativeImage;
/**
@@ -3343,7 +3559,7 @@ declare namespace Electron {
interface Net extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/net
+ // Docs: http://electronjs.org/docs/api/net
/**
* Creates a ClientRequest instance using the provided options which are directly
@@ -3351,12 +3567,12 @@ declare namespace Electron {
* to issue both secure and insecure HTTP requests according to the specified
* protocol scheme in the options object.
*/
- request(options: any | string): ClientRequest;
+ request(options: (any) | (string)): ClientRequest;
}
interface NetLog extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/net-log
+ // Docs: http://electronjs.org/docs/api/net-log
/**
* Starts recording network events to path.
@@ -3379,7 +3595,7 @@ declare namespace Electron {
class Notification extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/notification
+ // Docs: http://electronjs.org/docs/api/notification
on(event: 'action', listener: (event: Event,
/**
@@ -3469,7 +3685,7 @@ declare namespace Electron {
interface NotificationAction {
- // Docs: http://electron.atom.io/docs/api/structures/notification-action
+ // Docs: http://electronjs.org/docs/api/structures/notification-action
/**
* The label for the given action.
@@ -3483,7 +3699,7 @@ declare namespace Electron {
interface Point {
- // Docs: http://electron.atom.io/docs/api/structures/point
+ // Docs: http://electronjs.org/docs/api/structures/point
x: number;
y: number;
@@ -3491,7 +3707,7 @@ declare namespace Electron {
interface PowerMonitor extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/power-monitor
+ // Docs: http://electronjs.org/docs/api/power-monitor
/**
* Emitted when the system is about to lock the screen.
@@ -3549,7 +3765,7 @@ declare namespace Electron {
interface PowerSaveBlocker extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/power-save-blocker
+ // Docs: http://electronjs.org/docs/api/power-save-blocker
isStarted(id: number): boolean;
/**
@@ -3571,7 +3787,7 @@ declare namespace Electron {
interface PrinterInfo {
- // Docs: http://electron.atom.io/docs/api/structures/printer-info
+ // Docs: http://electronjs.org/docs/api/structures/printer-info
description: string;
isDefault: boolean;
@@ -3581,16 +3797,12 @@ declare namespace Electron {
interface ProcessMetric {
- // Docs: http://electron.atom.io/docs/api/structures/process-metric
+ // Docs: http://electronjs.org/docs/api/structures/process-metric
/**
* CPU usage of the process.
*/
cpu: CPUUsage;
- /**
- * Memory information for the process.
- */
- memory: MemoryInfo;
/**
* Process id of the process.
*/
@@ -3603,7 +3815,7 @@ declare namespace Electron {
interface Product {
- // Docs: http://electron.atom.io/docs/api/structures/product
+ // Docs: http://electronjs.org/docs/api/structures/product
/**
* The total size of the content, in bytes.
@@ -3642,7 +3854,7 @@ declare namespace Electron {
interface Protocol extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/protocol
+ // Docs: http://electronjs.org/docs/api/protocol
/**
* Intercepts scheme protocol and uses handler as the protocol's new handler which
@@ -3663,7 +3875,7 @@ declare namespace Electron {
* Same as protocol.registerStreamProtocol, except that it replaces an existing
* protocol handler.
*/
- interceptStreamProtocol(scheme: string, handler: (request: InterceptStreamProtocolRequest, callback: (stream?: ReadableStream | StreamProtocolResponse) => void) => void, completion?: (error: Error) => void): void;
+ interceptStreamProtocol(scheme: string, handler: (request: InterceptStreamProtocolRequest, callback: (stream?: (NodeJS.ReadableStream) | (StreamProtocolResponse)) => void) => void, completion?: (error: Error) => void): void;
/**
* Intercepts scheme protocol and uses handler as the protocol's new handler which
* sends a String as a response.
@@ -3680,15 +3892,15 @@ declare namespace Electron {
* with either a Buffer object or an object that has the data, mimeType, and
* charset properties. Example:
*/
- registerBufferProtocol(scheme: string, handler: (request: RegisterBufferProtocolRequest, callback: (buffer?: Buffer | MimeTypedBuffer) => void) => void, completion?: (error: Error) => void): void;
+ registerBufferProtocol(scheme: string, handler: (request: RegisterBufferProtocolRequest, callback: (buffer?: (Buffer) | (MimeTypedBuffer)) => void) => void, completion?: (error: Error) => void): void;
/**
* Registers a protocol of scheme that will send the file as a response. The
* handler will be called with handler(request, callback) when a request is going
* to be created with scheme. completion will be called with completion(null) when
* scheme is successfully registered or completion(error) when failed. To handle
* the request, the callback should be called with either the file's path or an
- * object that has a path property, e.g. callback(filePath) or callback({path:
- * filePath}). When callback is called with nothing, a number, or an object that
+ * object that has a path property, e.g. callback(filePath) or callback({ path:
+ * filePath }). When callback is called with nothing, a number, or an object that
* has an error property, the request will fail with the error number you
* specified. For the available error numbers you can use, please see the net error
* list. By default the scheme is treated like http:, which is parsed differently
@@ -3732,7 +3944,7 @@ declare namespace Electron {
* that implements the readable stream API (emits data/end/error events). For
* example, here's how a file could be returned:
*/
- registerStreamProtocol(scheme: string, handler: (request: RegisterStreamProtocolRequest, callback: (stream?: ReadableStream | StreamProtocolResponse) => void) => void, completion?: (error: Error) => void): void;
+ registerStreamProtocol(scheme: string, handler: (request: RegisterStreamProtocolRequest, callback: (stream?: (NodeJS.ReadableStream) | (StreamProtocolResponse)) => void) => void, completion?: (error: Error) => void): void;
/**
* Registers a protocol of scheme that will send a String as a response. The usage
* is the same with registerFileProtocol, except that the callback should be called
@@ -3752,29 +3964,29 @@ declare namespace Electron {
interface Rectangle {
- // Docs: http://electron.atom.io/docs/api/structures/rectangle
+ // Docs: http://electronjs.org/docs/api/structures/rectangle
/**
- * The height of the rectangle (must be an integer)
+ * The height of the rectangle (must be an integer).
*/
height: number;
/**
- * The width of the rectangle (must be an integer)
+ * The width of the rectangle (must be an integer).
*/
width: number;
/**
- * The x coordinate of the origin of the rectangle (must be an integer)
+ * The x coordinate of the origin of the rectangle (must be an integer).
*/
x: number;
/**
- * The y coordinate of the origin of the rectangle (must be an integer)
+ * The y coordinate of the origin of the rectangle (must be an integer).
*/
y: number;
}
interface Referrer {
- // Docs: http://electron.atom.io/docs/api/structures/referrer
+ // Docs: http://electronjs.org/docs/api/structures/referrer
/**
* Can be default, unsafe-url, no-referrer-when-downgrade, no-referrer, origin,
@@ -3790,7 +4002,7 @@ declare namespace Electron {
interface Remote extends MainInterface {
- // Docs: http://electron.atom.io/docs/api/remote
+ // Docs: http://electronjs.org/docs/api/remote
getCurrentWebContents(): WebContents;
/**
@@ -3813,7 +4025,7 @@ declare namespace Electron {
interface RemoveClientCertificate {
- // Docs: http://electron.atom.io/docs/api/structures/remove-client-certificate
+ // Docs: http://electronjs.org/docs/api/structures/remove-client-certificate
/**
* Origin of the server whose associated client certificate must be removed from
@@ -3828,7 +4040,7 @@ declare namespace Electron {
interface RemovePassword {
- // Docs: http://electron.atom.io/docs/api/structures/remove-password
+ // Docs: http://electronjs.org/docs/api/structures/remove-password
/**
* When provided, the authentication info related to the origin will only be
@@ -3860,7 +4072,7 @@ declare namespace Electron {
interface Screen extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/screen
+ // Docs: http://electronjs.org/docs/api/screen
/**
* Emitted when newDisplay has been added.
@@ -3911,7 +4123,7 @@ declare namespace Electron {
* relative to the display nearest to window. If window is null, scaling will be
* performed to the display nearest to rect.
*/
- dipToScreenRect(window: BrowserWindow | null, rect: Rectangle): Rectangle;
+ dipToScreenRect(window: (BrowserWindow) | (null), rect: Rectangle): Rectangle;
getAllDisplays(): Display[];
/**
* The current absolute position of the mouse pointer.
@@ -3930,44 +4142,44 @@ declare namespace Electron {
* relative to the display nearest to window. If window is null, scaling will be
* performed to the display nearest to rect.
*/
- screenToDipRect(window: BrowserWindow | null, rect: Rectangle): Rectangle;
+ screenToDipRect(window: (BrowserWindow) | (null), rect: Rectangle): Rectangle;
}
interface ScrubberItem {
- // Docs: http://electron.atom.io/docs/api/structures/scrubber-item
+ // Docs: http://electronjs.org/docs/api/structures/scrubber-item
/**
- * The image to appear in this item
+ * The image to appear in this item.
*/
icon?: NativeImage;
/**
- * The text to appear in this item
+ * The text to appear in this item.
*/
label?: string;
}
interface SegmentedControlSegment {
- // Docs: http://electron.atom.io/docs/api/structures/segmented-control-segment
+ // Docs: http://electronjs.org/docs/api/structures/segmented-control-segment
/**
- * Whether this segment is selectable. Default: true
+ * Whether this segment is selectable. Default: true.
*/
enabled?: boolean;
/**
- * The image to appear in this segment
+ * The image to appear in this segment.
*/
icon?: NativeImage;
/**
- * The text to appear in this segment
+ * The text to appear in this segment.
*/
label?: string;
}
class Session extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/session
+ // Docs: http://electronjs.org/docs/api/session
/**
* If partition starts with persist:, the page will use a persistent session
@@ -4007,7 +4219,7 @@ declare namespace Electron {
/**
* Clears the session’s HTTP authentication cache.
*/
- clearAuthCache(options: RemovePassword | RemoveClientCertificate, callback?: Function): void;
+ clearAuthCache(options: (RemovePassword) | (RemoveClientCertificate), callback?: Function): void;
/**
* Clears the session’s HTTP cache.
*/
@@ -4066,12 +4278,18 @@ declare namespace Electron {
* Downloads under the respective app folder.
*/
setDownloadPath(path: string): void;
+ /**
+ * Sets the handler which can be used to respond to permission checks for the
+ * session. Returning true will allow the permission and false will reject it. To
+ * clear the handler, call setPermissionCheckHandler(null).
+ */
+ setPermissionCheckHandler(handler: ((webContents: WebContents, permission: string, requestingOrigin: string, details: PermissionCheckHandlerDetails) => boolean) | (null)): void;
/**
* Sets the handler which can be used to respond to permission requests for the
* session. Calling callback(true) will allow the permission and callback(false)
* will reject it. To clear the handler, call setPermissionRequestHandler(null).
*/
- setPermissionRequestHandler(handler: (webContents: WebContents, permission: string, callback: (permissionGranted: boolean) => void, details: PermissionRequestHandlerDetails) => void | null): void;
+ setPermissionRequestHandler(handler: ((webContents: WebContents, permission: string, callback: (permissionGranted: boolean) => void, details: PermissionRequestHandlerDetails) => void) | (null)): void;
/**
* Adds scripts that will be executed on ALL web contents that are associated with
* this session just before normal preload scripts run.
@@ -4100,7 +4318,7 @@ declare namespace Electron {
interface Shell {
- // Docs: http://electron.atom.io/docs/api/shell
+ // Docs: http://electronjs.org/docs/api/shell
/**
* Play the beep sound.
@@ -4140,7 +4358,7 @@ declare namespace Electron {
interface ShortcutDetails {
- // Docs: http://electron.atom.io/docs/api/structures/shortcut-details
+ // Docs: http://electronjs.org/docs/api/structures/shortcut-details
/**
* The Application User Model ID. Default is empty.
@@ -4176,7 +4394,7 @@ declare namespace Electron {
interface Size {
- // Docs: http://electron.atom.io/docs/api/structures/size
+ // Docs: http://electronjs.org/docs/api/structures/size
height: number;
width: number;
@@ -4184,25 +4402,25 @@ declare namespace Electron {
interface StreamProtocolResponse {
- // Docs: http://electron.atom.io/docs/api/structures/stream-protocol-response
+ // Docs: http://electronjs.org/docs/api/structures/stream-protocol-response
/**
- * A Node.js readable stream representing the response body
+ * A Node.js readable stream representing the response body.
*/
- data: ReadableStream;
+ data: NodeJS.ReadableStream;
/**
- * An object containing the response headers
+ * An object containing the response headers.
*/
headers: Headers;
/**
- * The HTTP response code
+ * The HTTP response code.
*/
statusCode: number;
}
interface SystemPreferences extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/system-preferences
+ // Docs: http://electronjs.org/docs/api/system-preferences
on(event: 'accent-color-changed', listener: (event: Event,
/**
@@ -4224,6 +4442,30 @@ declare namespace Electron {
* The new RGBA color the user assigned to be their system accent color.
*/
newColor: string) => void): this;
+ /**
+ * NOTE: This event is only emitted after you have called
+ * startAppLevelAppearanceTrackingOS
+ */
+ on(event: 'appearance-changed', listener: (
+ /**
+ * Can be `dark` or `light`
+ */
+ newAppearance: ('dark' | 'light')) => void): this;
+ once(event: 'appearance-changed', listener: (
+ /**
+ * Can be `dark` or `light`
+ */
+ newAppearance: ('dark' | 'light')) => void): this;
+ addListener(event: 'appearance-changed', listener: (
+ /**
+ * Can be `dark` or `light`
+ */
+ newAppearance: ('dark' | 'light')) => void): this;
+ removeListener(event: 'appearance-changed', listener: (
+ /**
+ * Can be `dark` or `light`
+ */
+ newAppearance: ('dark' | 'light')) => void): this;
on(event: 'color-changed', listener: (event: Event) => void): this;
once(event: 'color-changed', listener: (event: Event) => void): this;
addListener(event: 'color-changed', listener: (event: Event) => void): this;
@@ -4252,8 +4494,41 @@ declare namespace Electron {
* used, `false` otherwise.
*/
invertedColorScheme: boolean) => void): this;
+ /**
+ * Important: In order to properly leverage this API, you must set the
+ * NSMicrophoneUsageDescription and NSCameraUsageDescription strings in your app's
+ * Info.plist file. The values for these keys will be used to populate the
+ * permission dialogs so that the user will be properly informed as to the purpose
+ * of the permission request. See Electron Application Distribution for more
+ * information about how to set these in the context of Electron. This user consent
+ * was not required until macOS 10.14 Mojave, so this method will always return
+ * true if your system is running 10.13 High Sierra or lower.
+ */
+ askForMediaAccess(mediaType: 'microphone' | 'camera'): Promise;
getAccentColor(): string;
+ /**
+ * Gets the macOS appearance setting that you have declared you want for your
+ * application, maps to NSApplication.appearance. You can use the
+ * setAppLevelAppearance API to set this value.
+ */
+ getAppLevelAppearance(): ('dark' | 'light' | 'unknown');
getColor(color: '3d-dark-shadow' | '3d-face' | '3d-highlight' | '3d-light' | '3d-shadow' | 'active-border' | 'active-caption' | 'active-caption-gradient' | 'app-workspace' | 'button-text' | 'caption-text' | 'desktop' | 'disabled-text' | 'highlight' | 'highlight-text' | 'hotlight' | 'inactive-border' | 'inactive-caption' | 'inactive-caption-gradient' | 'inactive-caption-text' | 'info-background' | 'info-text' | 'menu' | 'menu-highlight' | 'menubar' | 'menu-text' | 'scrollbar' | 'window' | 'window-frame' | 'window-text'): string;
+ /**
+ * Gets the macOS appearance setting that is currently applied to your application,
+ * maps to NSApplication.effectiveAppearance Please note that until Electron is
+ * built targeting the 10.14 SDK, your application's effectiveAppearance will
+ * default to 'light' and won't inherit the OS preference. In the interim in order
+ * for your application to inherit the OS preference you must set the
+ * NSRequiresAquaSystemAppearance key in your apps Info.plist to false. If you are
+ * using electron-packager or electron-forge just set the enableDarwinDarkMode
+ * packager option to true. See the Electron Packager API for more details.
+ */
+ getEffectiveAppearance(): ('dark' | 'light' | 'unknown');
+ /**
+ * This user consent was not required until macOS 10.14 Mojave, so this method will
+ * always return granted if your system is running 10.13 High Sierra or lower.
+ */
+ getMediaAccessStatus(mediaType: string): ('not-determined' | 'granted' | 'denied' | 'restricted' | 'unknown');
/**
* Some popular key and types are:
*/
@@ -4266,6 +4541,7 @@ declare namespace Electron {
isDarkMode(): boolean;
isInvertedColorScheme(): boolean;
isSwipeTrackingFromScrollEventsEnabled(): boolean;
+ isTrustedAccessibilityClient(prompt: boolean): boolean;
/**
* Posts event as native notifications of macOS. The userInfo is an Object that
* contains the user information dictionary sent along with the notification.
@@ -4290,6 +4566,11 @@ declare namespace Electron {
* global value of a key previously set with setUserDefault.
*/
removeUserDefault(key: string): void;
+ /**
+ * Sets the appearance setting for your application, this should override the
+ * system default and override the value of getEffectiveAppearance.
+ */
+ setAppLevelAppearance(appearance: 'dark' | 'light'): void;
/**
* Set the value of key in NSUserDefaults. Note that type should match actual type
* of value. An exception is thrown if they don't. Some popular key and types are:
@@ -4333,7 +4614,7 @@ declare namespace Electron {
interface Task {
- // Docs: http://electron.atom.io/docs/api/structures/task
+ // Docs: http://electronjs.org/docs/api/structures/task
/**
* The command line arguments when program is executed.
@@ -4368,7 +4649,7 @@ declare namespace Electron {
interface ThumbarButton {
- // Docs: http://electron.atom.io/docs/api/structures/thumbar-button
+ // Docs: http://electronjs.org/docs/api/structures/thumbar-button
click: Function;
/**
@@ -4388,7 +4669,7 @@ declare namespace Electron {
class TouchBarButton extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/touch-bar-button
+ // Docs: http://electronjs.org/docs/api/touch-bar-button
constructor(options: TouchBarButtonConstructorOptions);
backgroundColor: string;
@@ -4398,7 +4679,7 @@ declare namespace Electron {
class TouchBarColorPicker extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/touch-bar-color-picker
+ // Docs: http://electronjs.org/docs/api/touch-bar-color-picker
constructor(options: TouchBarColorPickerConstructorOptions);
availableColors: string[];
@@ -4407,14 +4688,14 @@ declare namespace Electron {
class TouchBarGroup extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/touch-bar-group
+ // Docs: http://electronjs.org/docs/api/touch-bar-group
constructor(options: TouchBarGroupConstructorOptions);
}
class TouchBarLabel extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/touch-bar-label
+ // Docs: http://electronjs.org/docs/api/touch-bar-label
constructor(options: TouchBarLabelConstructorOptions);
label: string;
@@ -4423,7 +4704,7 @@ declare namespace Electron {
class TouchBarPopover extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/touch-bar-popover
+ // Docs: http://electronjs.org/docs/api/touch-bar-popover
constructor(options: TouchBarPopoverConstructorOptions);
icon: NativeImage;
@@ -4432,7 +4713,7 @@ declare namespace Electron {
class TouchBarScrubber extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/touch-bar-scrubber
+ // Docs: http://electronjs.org/docs/api/touch-bar-scrubber
constructor(options: TouchBarScrubberConstructorOptions);
continuous: boolean;
@@ -4445,7 +4726,7 @@ declare namespace Electron {
class TouchBarSegmentedControl extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/touch-bar-segmented-control
+ // Docs: http://electronjs.org/docs/api/touch-bar-segmented-control
constructor(options: TouchBarSegmentedControlConstructorOptions);
segments: SegmentedControlSegment[];
@@ -4455,7 +4736,7 @@ declare namespace Electron {
class TouchBarSlider extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/touch-bar-slider
+ // Docs: http://electronjs.org/docs/api/touch-bar-slider
constructor(options: TouchBarSliderConstructorOptions);
label: string;
@@ -4466,14 +4747,14 @@ declare namespace Electron {
class TouchBarSpacer extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/touch-bar-spacer
+ // Docs: http://electronjs.org/docs/api/touch-bar-spacer
constructor(options: TouchBarSpacerConstructorOptions);
}
class TouchBar extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/touch-bar
+ // Docs: http://electronjs.org/docs/api/touch-bar
constructor(options: TouchBarConstructorOptions);
escapeItem: (TouchBarButton | TouchBarColorPicker | TouchBarGroup | TouchBarLabel | TouchBarPopover | TouchBarScrubber | TouchBarSegmentedControl | TouchBarSlider | TouchBarSpacer | null);
@@ -4490,7 +4771,7 @@ declare namespace Electron {
interface TraceCategoriesAndOptions {
- // Docs: http://electron.atom.io/docs/api/structures/trace-categories-and-options
+ // Docs: http://electronjs.org/docs/api/structures/trace-categories-and-options
/**
* – is a filter to control what category groups should be traced. A filter can
@@ -4517,7 +4798,7 @@ declare namespace Electron {
interface TraceConfig {
- // Docs: http://electron.atom.io/docs/api/structures/trace-config
+ // Docs: http://electronjs.org/docs/api/structures/trace-config
excluded_categories?: string[];
included_categories?: string[];
@@ -4526,7 +4807,7 @@ declare namespace Electron {
interface Transaction {
- // Docs: http://electron.atom.io/docs/api/structures/transaction
+ // Docs: http://electronjs.org/docs/api/structures/transaction
/**
* The error code if an error occurred while processing the transaction.
@@ -4558,7 +4839,7 @@ declare namespace Electron {
class Tray extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/tray
+ // Docs: http://electronjs.org/docs/api/tray
/**
* Emitted when the tray balloon is clicked.
@@ -4810,7 +5091,7 @@ declare namespace Electron {
* The bounds of tray icon.
*/
bounds: Rectangle) => void): this;
- constructor(image: NativeImage | string);
+ constructor(image: (NativeImage) | (string));
/**
* Destroys the tray icon immediately.
*/
@@ -4834,7 +5115,7 @@ declare namespace Electron {
/**
* Sets the context menu for this icon.
*/
- setContextMenu(menu: Menu | null): void;
+ setContextMenu(menu: (Menu) | (null)): void;
/**
* Sets when the tray's icon background becomes highlighted (in blue). Note: You
* can use highlightMode with a BrowserWindow by toggling between 'never' and
@@ -4850,11 +5131,11 @@ declare namespace Electron {
/**
* Sets the image associated with this tray icon.
*/
- setImage(image: NativeImage | string): void;
+ setImage(image: (NativeImage) | (string)): void;
/**
* Sets the image associated with this tray icon when pressed on macOS.
*/
- setPressedImage(image: NativeImage | string): void;
+ setPressedImage(image: (NativeImage) | (string)): void;
/**
* Sets the title displayed aside of the tray icon in the status bar (Support ANSI
* colors).
@@ -4868,7 +5149,7 @@ declare namespace Electron {
interface UploadBlob {
- // Docs: http://electron.atom.io/docs/api/structures/upload-blob
+ // Docs: http://electronjs.org/docs/api/structures/upload-blob
/**
* UUID of blob data to upload.
@@ -4882,7 +5163,7 @@ declare namespace Electron {
interface UploadData {
- // Docs: http://electron.atom.io/docs/api/structures/upload-data
+ // Docs: http://electronjs.org/docs/api/structures/upload-data
/**
* UUID of blob data. Use method to retrieve the data.
@@ -4900,7 +5181,7 @@ declare namespace Electron {
interface UploadFile {
- // Docs: http://electron.atom.io/docs/api/structures/upload-file
+ // Docs: http://electronjs.org/docs/api/structures/upload-file
/**
* Path of file to be uploaded.
@@ -4926,7 +5207,7 @@ declare namespace Electron {
interface UploadRawData {
- // Docs: http://electron.atom.io/docs/api/structures/upload-raw-data
+ // Docs: http://electronjs.org/docs/api/structures/upload-raw-data
/**
* Data to be uploaded.
@@ -4940,7 +5221,7 @@ declare namespace Electron {
class WebContents extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/web-contents
+ // Docs: http://electronjs.org/docs/api/web-contents
static fromId(id: number): WebContents;
static getAllWebContents(): WebContents[];
@@ -5164,22 +5445,22 @@ declare namespace Electron {
*/
on(event: 'did-attach-webview', listener: (event: Event,
/**
- * The guest web contents that is used by the ``.
+ * The guest web contents that is used by the `
*/
webContents: WebContents) => void): this;
once(event: 'did-attach-webview', listener: (event: Event,
/**
- * The guest web contents that is used by the ``.
+ * The guest web contents that is used by the `
*/
webContents: WebContents) => void): this;
addListener(event: 'did-attach-webview', listener: (event: Event,
/**
- * The guest web contents that is used by the ``.
+ * The guest web contents that is used by the `
*/
webContents: WebContents) => void): this;
removeListener(event: 'did-attach-webview', listener: (event: Event,
/**
- * The guest web contents that is used by the ``.
+ * The guest web contents that is used by the `
*/
webContents: WebContents) => void): this;
/**
@@ -5190,22 +5471,22 @@ declare namespace Electron {
/**
* Theme color is in format of '#rrggbb'. It is `null` when no theme color is set.
*/
- color: string | null) => void): this;
+ color: (string) | (null)) => void): this;
once(event: 'did-change-theme-color', listener: (event: Event,
/**
* Theme color is in format of '#rrggbb'. It is `null` when no theme color is set.
*/
- color: string | null) => void): this;
+ color: (string) | (null)) => void): this;
addListener(event: 'did-change-theme-color', listener: (event: Event,
/**
* Theme color is in format of '#rrggbb'. It is `null` when no theme color is set.
*/
- color: string | null) => void): this;
+ color: (string) | (null)) => void): this;
removeListener(event: 'did-change-theme-color', listener: (event: Event,
/**
* Theme color is in format of '#rrggbb'. It is `null` when no theme color is set.
*/
- color: string | null) => void): this;
+ color: (string) | (null)) => void): this;
/**
* This event is like did-finish-load but emitted when the load failed or was
* cancelled, e.g. window.stop() is invoked. The full list of error codes and their
@@ -5394,6 +5675,35 @@ declare namespace Electron {
isMainFrame: boolean,
frameProcessId: number,
frameRoutingId: number) => void): this;
+ /**
+ * Emitted after a server side redirect occurs during navigation. For example a
+ * 302 redirect. This event can not be prevented, if you want to prevent redirects
+ * you should checkout out the will-redirect event above.
+ */
+ on(event: 'did-redirect-navigation', listener: (event: Event,
+ url: string,
+ isInPlace: boolean,
+ isMainFrame: boolean,
+ frameProcessId: number,
+ frameRoutingId: number) => void): this;
+ once(event: 'did-redirect-navigation', listener: (event: Event,
+ url: string,
+ isInPlace: boolean,
+ isMainFrame: boolean,
+ frameProcessId: number,
+ frameRoutingId: number) => void): this;
+ addListener(event: 'did-redirect-navigation', listener: (event: Event,
+ url: string,
+ isInPlace: boolean,
+ isMainFrame: boolean,
+ frameProcessId: number,
+ frameRoutingId: number) => void): this;
+ removeListener(event: 'did-redirect-navigation', listener: (event: Event,
+ url: string,
+ isInPlace: boolean,
+ isMainFrame: boolean,
+ frameProcessId: number,
+ frameRoutingId: number) => void): this;
/**
* Corresponds to the points in time when the spinner of the tab started spinning.
*/
@@ -5405,22 +5715,26 @@ declare namespace Electron {
* Emitted when any frame (including main) starts navigating. isInplace will be
* true for in-page navigations.
*/
- on(event: 'did-start-navigation', listener: (url: string,
+ on(event: 'did-start-navigation', listener: (event: Event,
+ url: string,
isInPlace: boolean,
isMainFrame: boolean,
frameProcessId: number,
frameRoutingId: number) => void): this;
- once(event: 'did-start-navigation', listener: (url: string,
+ once(event: 'did-start-navigation', listener: (event: Event,
+ url: string,
isInPlace: boolean,
isMainFrame: boolean,
frameProcessId: number,
frameRoutingId: number) => void): this;
- addListener(event: 'did-start-navigation', listener: (url: string,
+ addListener(event: 'did-start-navigation', listener: (event: Event,
+ url: string,
isInPlace: boolean,
isMainFrame: boolean,
frameProcessId: number,
frameRoutingId: number) => void): this;
- removeListener(event: 'did-start-navigation', listener: (url: string,
+ removeListener(event: 'did-start-navigation', listener: (event: Event,
+ url: string,
isInPlace: boolean,
isMainFrame: boolean,
frameProcessId: number,
@@ -5648,6 +5962,76 @@ declare namespace Electron {
removeListener(event: 'plugin-crashed', listener: (event: Event,
name: string,
version: string) => void): this;
+ /**
+ * Emitted when remote.getBuiltin() is called in the renderer process. Calling
+ * event.preventDefault() will prevent the module from being returned. Custom value
+ * can be returned by setting event.returnValue.
+ */
+ on(event: 'remote-get-builtin', listener: (event: Event,
+ moduleName: string) => void): this;
+ once(event: 'remote-get-builtin', listener: (event: Event,
+ moduleName: string) => void): this;
+ addListener(event: 'remote-get-builtin', listener: (event: Event,
+ moduleName: string) => void): this;
+ removeListener(event: 'remote-get-builtin', listener: (event: Event,
+ moduleName: string) => void): this;
+ /**
+ * Emitted when remote.getCurrentWebContents() is called in the renderer process.
+ * Calling event.preventDefault() will prevent the object from being returned.
+ * Custom value can be returned by setting event.returnValue.
+ */
+ on(event: 'remote-get-current-web-contents', listener: (event: Event) => void): this;
+ once(event: 'remote-get-current-web-contents', listener: (event: Event) => void): this;
+ addListener(event: 'remote-get-current-web-contents', listener: (event: Event) => void): this;
+ removeListener(event: 'remote-get-current-web-contents', listener: (event: Event) => void): this;
+ /**
+ * Emitted when remote.getCurrentWindow() is called in the renderer process.
+ * Calling event.preventDefault() will prevent the object from being returned.
+ * Custom value can be returned by setting event.returnValue.
+ */
+ on(event: 'remote-get-current-window', listener: (event: Event) => void): this;
+ once(event: 'remote-get-current-window', listener: (event: Event) => void): this;
+ addListener(event: 'remote-get-current-window', listener: (event: Event) => void): this;
+ removeListener(event: 'remote-get-current-window', listener: (event: Event) => void): this;
+ /**
+ * Emitted when remote.getGlobal() is called in the renderer process. Calling
+ * event.preventDefault() will prevent the global from being returned. Custom value
+ * can be returned by setting event.returnValue.
+ */
+ on(event: 'remote-get-global', listener: (event: Event,
+ globalName: string) => void): this;
+ once(event: 'remote-get-global', listener: (event: Event,
+ globalName: string) => void): this;
+ addListener(event: 'remote-get-global', listener: (event: Event,
+ globalName: string) => void): this;
+ removeListener(event: 'remote-get-global', listener: (event: Event,
+ globalName: string) => void): this;
+ /**
+ * Emitted when .getWebContents() is called in the renderer process.
+ * Calling event.preventDefault() will prevent the object from being returned.
+ * Custom value can be returned by setting event.returnValue.
+ */
+ on(event: 'remote-get-guest-web-contents', listener: (event: Event,
+ guestWebContents: WebContents) => void): this;
+ once(event: 'remote-get-guest-web-contents', listener: (event: Event,
+ guestWebContents: WebContents) => void): this;
+ addListener(event: 'remote-get-guest-web-contents', listener: (event: Event,
+ guestWebContents: WebContents) => void): this;
+ removeListener(event: 'remote-get-guest-web-contents', listener: (event: Event,
+ guestWebContents: WebContents) => void): this;
+ /**
+ * Emitted when remote.require() is called in the renderer process. Calling
+ * event.preventDefault() will prevent the module from being returned. Custom value
+ * can be returned by setting event.returnValue.
+ */
+ on(event: 'remote-require', listener: (event: Event,
+ moduleName: string) => void): this;
+ once(event: 'remote-require', listener: (event: Event,
+ moduleName: string) => void): this;
+ addListener(event: 'remote-require', listener: (event: Event,
+ moduleName: string) => void): this;
+ removeListener(event: 'remote-require', listener: (event: Event,
+ moduleName: string) => void): this;
/**
* Emitted when the unresponsive web page becomes responsive again.
*/
@@ -5727,8 +6111,7 @@ declare namespace Electron {
*/
webPreferences: any,
/**
- * The other `` parameters such as the `src` URL. This object can be
- * modified to adjust the parameters of the guest page.
+ * The other `
*/
params: any) => void): this;
once(event: 'will-attach-webview', listener: (event: Event,
@@ -5738,8 +6121,7 @@ declare namespace Electron {
*/
webPreferences: any,
/**
- * The other `` parameters such as the `src` URL. This object can be
- * modified to adjust the parameters of the guest page.
+ * The other `
*/
params: any) => void): this;
addListener(event: 'will-attach-webview', listener: (event: Event,
@@ -5749,8 +6131,7 @@ declare namespace Electron {
*/
webPreferences: any,
/**
- * The other `` parameters such as the `src` URL. This object can be
- * modified to adjust the parameters of the guest page.
+ * The other `
*/
params: any) => void): this;
removeListener(event: 'will-attach-webview', listener: (event: Event,
@@ -5760,8 +6141,7 @@ declare namespace Electron {
*/
webPreferences: any,
/**
- * The other `` parameters such as the `src` URL. This object can be
- * modified to adjust the parameters of the guest page.
+ * The other `
*/
params: any) => void): this;
/**
@@ -5790,6 +6170,36 @@ declare namespace Electron {
once(event: 'will-prevent-unload', listener: (event: Event) => void): this;
addListener(event: 'will-prevent-unload', listener: (event: Event) => void): this;
removeListener(event: 'will-prevent-unload', listener: (event: Event) => void): this;
+ /**
+ * Emitted as a server side redirect occurs during navigation. For example a 302
+ * redirect. This event will be emitted after did-start-navigation and always
+ * before the did-redirect-navigation event for the same navigation. Calling
+ * event.preventDefault() will prevent the navigation (not just the redirect).
+ */
+ on(event: 'will-redirect', listener: (event: Event,
+ url: string,
+ isInPlace: boolean,
+ isMainFrame: boolean,
+ frameProcessId: number,
+ frameRoutingId: number) => void): this;
+ once(event: 'will-redirect', listener: (event: Event,
+ url: string,
+ isInPlace: boolean,
+ isMainFrame: boolean,
+ frameProcessId: number,
+ frameRoutingId: number) => void): this;
+ addListener(event: 'will-redirect', listener: (event: Event,
+ url: string,
+ isInPlace: boolean,
+ isMainFrame: boolean,
+ frameProcessId: number,
+ frameRoutingId: number) => void): this;
+ removeListener(event: 'will-redirect', listener: (event: Event,
+ url: string,
+ isInPlace: boolean,
+ isMainFrame: boolean,
+ frameProcessId: number,
+ frameRoutingId: number) => void): this;
/**
* Adds the specified path to DevTools workspace. Must be used after DevTools
* creation:
@@ -5895,6 +6305,7 @@ declare namespace Electron {
getPrinters(): PrinterInfo[];
getProcessId(): number;
getTitle(): string;
+ getType(): ('backgroundPage' | 'window' | 'browserView' | 'remote' | 'webview' | 'offscreen');
getURL(): string;
getUserAgent(): string;
getWebRTCIPHandlingPolicy(): string;
@@ -5953,6 +6364,7 @@ declare namespace Electron {
invalidate(): void;
isAudioMuted(): boolean;
isCrashed(): boolean;
+ isCurrentlyAudible(): boolean;
isDestroyed(): boolean;
isDevToolsFocused(): boolean;
isDevToolsOpened(): boolean;
@@ -5967,7 +6379,7 @@ declare namespace Electron {
* relative to the root of your application. For instance an app structure like
* this: Would require code like this
*/
- loadFile(filePath: string): void;
+ loadFile(filePath: string, options?: LoadFileOptions): void;
/**
* Loads the url in the window. The url must contain the protocol prefix, e.g. the
* http:// or file://. If the load should bypass http cache then use the pragma
@@ -5992,8 +6404,8 @@ declare namespace Electron {
* Prints window's web page. When silent is set to true, Electron will pick the
* system's default printer if deviceName is empty and the default settings for
* printing. Calling window.print() in web page is equivalent to calling
- * webContents.print({silent: false, printBackground: false, deviceName: ''}). Use
- * page-break-before: always; CSS style to force to print to a new page.
+ * webContents.print({ silent: false, printBackground: false, deviceName: '' }).
+ * Use page-break-before: always; CSS style to force to print to a new page.
*/
print(options?: PrintOptions, callback?: (success: boolean) => void): void;
/**
@@ -6054,6 +6466,11 @@ declare namespace Electron {
* Mute the audio on the current web page.
*/
setAudioMuted(muted: boolean): void;
+ /**
+ * Controls whether or not this WebContents will throttle animations and timers
+ * when the page becomes backgrounded. This also affects the Page Visibility API.
+ */
+ setBackgroundThrottling(allowed: boolean): void;
/**
* Uses the devToolsWebContents as the target WebContents to show devtools. The
* devToolsWebContents must not have done any navigation, and it should not be used
@@ -6131,6 +6548,10 @@ declare namespace Electron {
* If offscreen rendering is enabled and painting, stop painting.
*/
stopPainting(): void;
+ /**
+ * Takes a V8 heap snapshot and saves it to filePath.
+ */
+ takeHeapSnapshot(filePath: string): Promise;
/**
* Toggles the developer tools.
*/
@@ -6158,7 +6579,7 @@ declare namespace Electron {
interface WebFrame extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/web-frame
+ // Docs: http://electronjs.org/docs/api/web-frame
/**
* Attempts to free memory that is no longer being used (like images from a
@@ -6176,7 +6597,7 @@ declare namespace Electron {
*/
executeJavaScript(code: string, userGesture?: boolean, callback?: (result: any) => void): Promise;
/**
- * Work like executeJavaScript but evaluates scripts in isolated context.
+ * Work like executeJavaScript but evaluates scripts in an isolated context.
*/
executeJavaScriptInIsolatedWorld(worldId: number, scripts: WebSource[], userGesture?: boolean, callback?: (result: any) => void): void;
findFrameByName(name: string): WebFrame;
@@ -6279,7 +6700,7 @@ declare namespace Electron {
class WebRequest extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/web-request
+ // Docs: http://electronjs.org/docs/api/web-request
/**
* The listener will be called with listener(details) when a server initiated
@@ -6373,7 +6794,7 @@ declare namespace Electron {
interface WebSource {
- // Docs: http://electron.atom.io/docs/api/structures/web-source
+ // Docs: http://electronjs.org/docs/api/structures/web-source
code: string;
/**
@@ -6385,7 +6806,7 @@ declare namespace Electron {
interface WebviewTag extends HTMLElement {
- // Docs: http://electron.atom.io/docs/api/webview-tag
+ // Docs: http://electronjs.org/docs/api/webview-tag
/**
* Fired when a load has committed. This includes navigation within the current
@@ -6509,11 +6930,6 @@ declare namespace Electron {
*/
addEventListener(event: 'crashed', listener: (event: Event) => void, useCapture?: boolean): this;
removeEventListener(event: 'crashed', listener: (event: Event) => void): this;
- /**
- * Fired when the gpu process is crashed.
- */
- addEventListener(event: 'gpu-crashed', listener: (event: Event) => void, useCapture?: boolean): this;
- removeEventListener(event: 'gpu-crashed', listener: (event: Event) => void): this;
/**
* Fired when a plugin process is crashed.
*/
@@ -6597,6 +7013,10 @@ declare namespace Electron {
* Executes editing command delete in page.
*/
delete(): void;
+ /**
+ * Initiates a download of the resource at url without navigating.
+ */
+ downloadURL(url: string): void;
/**
* Evaluates code in page. If userGesture is set, it will create the user gesture
* context in the page. HTML APIs like requestFullScreen, which require user
@@ -6611,7 +7031,21 @@ declare namespace Electron {
getTitle(): string;
getURL(): string;
getUserAgent(): string;
+ /**
+ * It depends on the remote module, it is therefore not available when this module
+ * is disabled.
+ */
getWebContents(): WebContents;
+ /**
+ * Sends a request to get current zoom factor, the callback will be called with
+ * callback(zoomFactor).
+ */
+ getZoomFactor(callback: (zoomFactor: number) => void): void;
+ /**
+ * Sends a request to get current zoom level, the callback will be called with
+ * callback(zoomLevel).
+ */
+ getZoomLevel(callback: (zoomLevel: number) => void): void;
/**
* Makes the guest page go back.
*/
@@ -6646,9 +7080,11 @@ declare namespace Electron {
inspectServiceWorker(): void;
isAudioMuted(): boolean;
isCrashed(): boolean;
+ isCurrentlyAudible(): boolean;
isDevToolsFocused(): boolean;
isDevToolsOpened(): boolean;
isLoading(): boolean;
+ isLoadingMainFrame(): boolean;
isWaitingForResponse(): boolean;
/**
* Loads the url in the webview, the url must contain the protocol prefix, e.g. the
@@ -6716,10 +7152,18 @@ declare namespace Electron {
* Set guest page muted.
*/
setAudioMuted(muted: boolean): void;
+ /**
+ * Sets the maximum and minimum layout-based (i.e. non-visual) zoom level.
+ */
+ setLayoutZoomLevelLimits(minimumLevel: number, maximumLevel: number): void;
/**
* Overrides the user agent for the guest page.
*/
setUserAgent(userAgent: string): void;
+ /**
+ * Sets the maximum and minimum pinch-to-zoom level.
+ */
+ setVisualZoomLevelLimits(minimumLevel: number, maximumLevel: number): void;
/**
* Changes the zoom factor to the specified factor. Zoom factor is zoom percent
* divided by 100, so 300% = 3.0.
@@ -6728,7 +7172,8 @@ declare namespace Electron {
/**
* Changes the zoom level to the specified level. The original size is 0 and each
* increment above or below represents zooming 20% larger or smaller to default
- * limits of 300% and 50% of original size, respectively.
+ * limits of 300% and 50% of original size, respectively. The formula for this is
+ * scale := 1.2 ^ level.
*/
setZoomLevel(level: number): void;
/**
@@ -6781,6 +7226,11 @@ declare namespace Electron {
* RuntimeEnabledFeatures.json5 file.
*/
enableblinkfeatures?: string;
+ /**
+ * When this attribute is false the guest page in webview will not have access to
+ * the remote module. The remote module is avaiable by default.
+ */
+ enableremotemodule?: string;
/**
* Sets the referrer URL for the guest page.
*/
@@ -7054,7 +7504,7 @@ declare namespace Electron {
* visual effects, you can also leave it undefined so the executable's icon will be
* used.
*/
- icon?: NativeImage | string;
+ icon?: (NativeImage) | (string);
/**
* Whether window should be shown when created. Default is true.
*/
@@ -7091,9 +7541,8 @@ declare namespace Electron {
enableLargerThanScreen?: boolean;
/**
* Window's background color as a hexadecimal value, like #66CD00 or #FFF or
- * #80FFFFFF (alpha is supported). Default is #FFF (white). If transparent is set
- * to true, only values with transparent (#00-------) or opaque (#FF-----) alpha
- * values are respected.
+ * #80FFFFFF (alpha is supported if transparent is set to true). Default is #FFF
+ * (white).
*/
backgroundColor?: string;
/**
@@ -7320,7 +7769,7 @@ declare namespace Electron {
}
interface CrashReporterStartOptions {
- companyName?: string;
+ companyName: string;
/**
* URL that crash reports will be sent to as POST.
*/
@@ -7422,7 +7871,8 @@ declare namespace Electron {
*/
value?: string;
/**
- * The domain of the cookie. Empty by default if omitted.
+ * The domain of the cookie; this will be normalized with a preceding dot so that
+ * it's also valid for subdomains. Empty by default if omitted.
*/
domain?: string;
/**
@@ -7476,7 +7926,7 @@ declare namespace Electron {
/**
* -
*/
- icon?: NativeImage | string;
+ icon?: (NativeImage) | (string);
title: string;
content: string;
}
@@ -7518,7 +7968,7 @@ declare namespace Electron {
/**
* Sets the image associated with this dock icon.
*/
- setIcon: (image: NativeImage | string) => void;
+ setIcon: (image: (NativeImage) | (string)) => void;
}
interface EnableNetworkEmulationOptions {
@@ -7716,6 +8166,7 @@ declare namespace Electron {
interface InterceptHttpProtocolRequest {
url: string;
+ headers: Headers;
referrer: string;
method: string;
uploadData: UploadData[];
@@ -7772,11 +8223,26 @@ declare namespace Electron {
isMainFrame: boolean;
}
+ interface LoadFileOptions {
+ /**
+ * Passed to url.format().
+ */
+ query?: Query;
+ /**
+ * Passed to url.format().
+ */
+ search?: string;
+ /**
+ * Passed to url.format().
+ */
+ hash?: string;
+ }
+
interface LoadURLOptions {
/**
* An HTTP Referrer url.
*/
- httpReferrer?: string | Referrer;
+ httpReferrer?: (string) | (Referrer);
/**
* A user agent originating the request.
*/
@@ -7785,7 +8251,7 @@ declare namespace Electron {
* Extra headers separated by "\n"
*/
extraHeaders?: string;
- postData?: UploadRawData[] | UploadFile[] | UploadBlob[];
+ postData?: (UploadRawData[]) | (UploadFile[]) | (UploadBlob[]);
/**
* Base url (with trailing path separator) for files to be loaded by the data url.
* This is needed only if the specified url is a data url and needs to load other
@@ -7856,7 +8322,7 @@ declare namespace Electron {
label?: string;
sublabel?: string;
accelerator?: Accelerator;
- icon?: NativeImage | string;
+ icon?: (NativeImage) | (string);
/**
* If false, the menu item will be greyed out and unclickable.
*/
@@ -7879,17 +8345,36 @@ declare namespace Electron {
* type: 'submenu' can be omitted. If the value is not a then it will be
* automatically converted to one using Menu.buildFromTemplate.
*/
- submenu?: MenuItemConstructorOptions[] | Menu;
+ submenu?: (MenuItemConstructorOptions[]) | (Menu);
/**
* Unique within a single menu. If defined then it can be used as a reference to
* this item by the position attribute.
*/
id?: string;
/**
- * This field allows fine-grained definition of the specific location within a
- * given menu.
+ * Inserts this item before the item with the specified label. If the referenced
+ * item doesn't exist the item will be inserted at the end of the menu. Also
+ * implies that the menu item in question should be placed in the same “group” as
+ * the item.
*/
- position?: string;
+ before?: string[];
+ /**
+ * Inserts this item after the item with the specified label. If the referenced
+ * item doesn't exist the item will be inserted at the end of the menu.
+ */
+ after?: string[];
+ /**
+ * Provides a means for a single context menu to declare the placement of their
+ * containing group before the containing group of the item with the specified
+ * label.
+ */
+ beforeGroupContaining?: string[];
+ /**
+ * Provides a means for a single context menu to declare the placement of their
+ * containing group after the containing group of the item with the specified
+ * label.
+ */
+ afterGroupContaining?: string[];
}
interface MessageBoxOptions {
@@ -7935,7 +8420,7 @@ declare namespace Electron {
* The index of the button to be used to cancel the dialog, via the Esc key. By
* default this is assigned to the first button with "cancel" or "no" as the label.
* If no such labeled buttons exist and this option is not set, 0 will be used as
- * the return value or callback response. This option is ignored on Windows.
+ * the return value or callback response.
*/
cancelId?: number;
/**
@@ -7993,7 +8478,7 @@ declare namespace Electron {
/**
* An icon to use in the notification.
*/
- icon?: string | NativeImage;
+ icon?: (string) | (NativeImage);
/**
* Whether or not to add an inline reply option to the notification.
*/
@@ -8093,6 +8578,7 @@ declare namespace Electron {
method: string;
webContentsId?: number;
resourceType: string;
+ referrer: string;
timestamp: number;
responseHeaders: ResponseHeaders;
fromCache: boolean;
@@ -8151,7 +8637,7 @@ declare namespace Electron {
}
interface OnHeadersReceivedResponse {
- cancel: boolean;
+ cancel?: boolean;
/**
* When provided, the server is assumed to have responded with these headers.
*/
@@ -8242,7 +8728,11 @@ declare namespace Electron {
/**
* true to bring the opened application to the foreground. The default is true.
*/
- activate: boolean;
+ activate?: boolean;
+ /**
+ * The working directory.
+ */
+ workingDirectory?: string;
}
interface PageFaviconUpdatedEvent extends Event {
@@ -8267,8 +8757,8 @@ declare namespace Electron {
*/
screenSize: Size;
/**
- * Position the view on the screen (screenPosition == mobile) (default: {x: 0, y:
- * 0}).
+ * Position the view on the screen (screenPosition == mobile) (default: { x: 0, y:
+ * 0 }).
*/
viewPosition: Point;
/**
@@ -8298,11 +8788,26 @@ declare namespace Electron {
quantity: number;
}
+ interface PermissionCheckHandlerDetails {
+ /**
+ * The security orign of the media check.
+ */
+ securityOrigin: string;
+ /**
+ * The type of media access being requested, can be video, audio or unknown
+ */
+ mediaType: ('video' | 'audio' | 'unknown');
+ }
+
interface PermissionRequestHandlerDetails {
/**
* The url of the openExternal request.
*/
externalURL: string;
+ /**
+ * The types of media access being requested, elements can be video or audio
+ */
+ mediaTypes: Array<'video' | 'audio'>;
}
interface PluginCrashedEvent extends Event {
@@ -8359,7 +8864,7 @@ declare namespace Electron {
* Specify page size of the generated PDF. Can be A3, A4, A5, Legal, Letter,
* Tabloid or an Object containing height and width in microns.
*/
- pageSize?: string | Size;
+ pageSize?: (string) | (Size);
/**
* Whether to print CSS backgrounds.
*/
@@ -8376,23 +8881,19 @@ declare namespace Electron {
interface ProcessMemoryInfo {
/**
- * The amount of memory currently pinned to actual physical RAM.
+ * and The amount of memory currently pinned to actual physical RAM in Kilobytes.
*/
- workingSetSize: number;
- /**
- * The maximum amount of memory that has ever been pinned to actual physical RAM.
- */
- peakWorkingSetSize: number;
+ residentSet: number;
/**
* The amount of memory not shared by other processes, such as JS heap or HTML
- * content.
+ * content in Kilobytes.
*/
- privateBytes: number;
+ private: number;
/**
* The amount of memory shared between processes, typically memory consumed by the
- * Electron code itself.
+ * Electron code itself in Kilobytes.
*/
- sharedBytes: number;
+ shared: number;
}
interface ProgressBarOptions {
@@ -8437,6 +8938,7 @@ declare namespace Electron {
interface RegisterHttpProtocolRequest {
url: string;
+ headers: Headers;
referrer: string;
method: string;
uploadData: UploadData[];
@@ -8704,8 +9206,8 @@ declare namespace Electron {
}
interface TouchBarConstructorOptions {
- items: Array;
- escapeItem?: TouchBarButton | TouchBarColorPicker | TouchBarGroup | TouchBarLabel | TouchBarPopover | TouchBarScrubber | TouchBarSegmentedControl | TouchBarSlider | TouchBarSpacer | null;
+ items: Array<(TouchBarButton) | (TouchBarColorPicker) | (TouchBarGroup) | (TouchBarLabel) | (TouchBarPopover) | (TouchBarScrubber) | (TouchBarSegmentedControl) | (TouchBarSlider) | (TouchBarSpacer)>;
+ escapeItem?: (TouchBarButton) | (TouchBarColorPicker) | (TouchBarGroup) | (TouchBarLabel) | (TouchBarPopover) | (TouchBarScrubber) | (TouchBarSegmentedControl) | (TouchBarSlider) | (TouchBarSpacer) | (null);
}
interface TouchBarGroupConstructorOptions {
@@ -8871,6 +9373,13 @@ declare namespace Electron {
electron?: string;
}
+ interface VisibleOnAllWorkspacesOptions {
+ /**
+ * Sets whether the window should be visible above fullscreen windows
+ */
+ visibleOnFullScreen?: boolean;
+ }
+
interface WillNavigateEvent extends Event {
url: string;
}
@@ -8964,6 +9473,9 @@ declare namespace Electron {
interface Options {
}
+ interface Query {
+ }
+
interface RequestHeaders {
}
@@ -9004,6 +9516,10 @@ declare namespace Electron {
* currently experimental and may change or be removed in future Electron releases.
*/
sandbox?: boolean;
+ /**
+ * Whether to enable the module. Default is true.
+ */
+ enableRemoteModule?: boolean;
/**
* Sets the session used by the page. Instead of passing the Session object
* directly, you can also choose to use the partition option instead, which accepts
@@ -9072,10 +9588,6 @@ declare namespace Electron {
* Enables Chromium's experimental features. Default is false.
*/
// experimentalFeatures?: boolean; ### VSCODE CHANGE (https://github.com/electron/electron/blob/master/docs/tutorial/security.md) ###
- /**
- * Enables Chromium's experimental canvas features. Default is false.
- */
- experimentalCanvasFeatures?: boolean;
/**
* Enables scroll bounce (rubber banding) effect on macOS. Default is false.
*/
@@ -9131,8 +9643,7 @@ declare namespace Electron {
* content to ensure the loaded content cannot tamper with the preload script and
* any Electron APIs being used. This option uses the same technique used by . You
* can access this context in the dev tools by selecting the 'Electron Isolated
- * Context' entry in the combo box at the top of the Console tab. This option is
- * currently experimental and may change or be removed in future Electron releases.
+ * Context' entry in the combo box at the top of the Console tab.
*/
contextIsolation?: boolean;
/**
@@ -9144,11 +9655,11 @@ declare namespace Electron {
nativeWindowOpen?: boolean;
/**
* Whether to enable the . Defaults to the value of the nodeIntegration option. The
- * preload script configured for the will have node integration enabled
- * when it is executed so you should ensure remote/untrusted content is not able to
- * create a tag with a possibly malicious preload script. You can use the
+ * preload script configured for the will have node integration enabled when it is
+ * executed so you should ensure remote/untrusted content is not able to create a
+ * tag with a possibly malicious preload script. You can use the
* will-attach-webview event on to strip away the preload script and to validate or
- * alter the 's initial settings.
+ * alter the 's initial settings.
*/
webviewTag?: boolean;
/**
@@ -9230,7 +9741,7 @@ interface Document {
declare namespace NodeJS {
interface Process extends EventEmitter {
- // Docs: http://electron.atom.io/docs/api/process
+ // Docs: http://electronjs.org/docs/api/process
// ### BEGIN VSCODE MODIFICATION ###
// /**
@@ -9250,6 +9761,12 @@ declare namespace NodeJS {
*/
crash(): void;
getCPUUsage(): Electron.CPUUsage;
+ /**
+ * Indicates the creation time of the application. The time is represented as
+ * number of milliseconds since epoch. It returns null if it is unable to get the
+ * process creation time.
+ */
+ getCreationTime(): (number) | (null);
/**
* Returns an object with V8 heap statistics. Note that all statistics are reported
* in Kilobytes.
@@ -9258,7 +9775,12 @@ declare namespace NodeJS {
getIOCounters(): Electron.IOCounters;
/**
* Returns an object giving memory usage statistics about the current process. Note
- * that all statistics are reported in Kilobytes.
+ * that all statistics are reported in Kilobytes. This api should be called after
+ * app ready. Chromium does not provide residentSet value for macOS. This is
+ * because macOS performs in-memory compression of pages that haven't been recently
+ * used. As a result the resident set size value is not what one would expect.
+ * private memory is more representative of the actual pre-compression memory usage
+ * of the process on macOS.
*/
getProcessMemoryInfo(): Electron.ProcessMemoryInfo;
/**
@@ -9275,6 +9797,10 @@ declare namespace NodeJS {
* whichever is lower for the current process.
*/
setFdLimit(maxDescriptors: number): void;
+ /**
+ * Takes a V8 heap snapshot and saves it to filePath.
+ */
+ takeHeapSnapshot(filePath: string): boolean;
/**
* A Boolean. When app is started by being passed as parameter to the default app,
* this property is true in the main process, otherwise it is undefined.
@@ -9300,6 +9826,11 @@ declare namespace NodeJS {
* A String representing the path to the resources directory.
*/
resourcesPath?: string;
+ /**
+ * A Boolean. When the renderer process is sandboxed, this property is true,
+ * otherwise it is undefined.
+ */
+ sandboxed?: boolean;
/**
* A Boolean that controls whether or not deprecation warnings will be thrown as
* exceptions. Setting this to true will throw errors for deprecations. This
@@ -9335,4 +9866,4 @@ declare namespace NodeJS {
electron: string;
chrome: string;
}
-}
+}
\ No newline at end of file
diff --git a/src/typings/require.d.ts b/src/typings/require.d.ts
index ded5e2e7270..618861a5bee 100644
--- a/src/typings/require.d.ts
+++ b/src/typings/require.d.ts
@@ -17,7 +17,12 @@ declare const enum LoaderEventType {
NodeEndEvaluatingScript = 32,
NodeBeginNativeRequire = 33,
- NodeEndNativeRequire = 34
+ NodeEndNativeRequire = 34,
+
+ CachedDataFound = 60,
+ CachedDataMissed = 61,
+ CachedDataRejected = 62,
+ CachedDataCreated = 63,
}
declare class LoaderEvent {
diff --git a/src/vs/workbench/contrib/codeinset/electron-browser/codeInsetWidget.css b/src/typings/vscode-windows-ca-certs.d.ts
similarity index 88%
rename from src/vs/workbench/contrib/codeinset/electron-browser/codeInsetWidget.css
rename to src/typings/vscode-windows-ca-certs.d.ts
index 28042461298..f923eb8a8ac 100644
--- a/src/vs/workbench/contrib/codeinset/electron-browser/codeInsetWidget.css
+++ b/src/typings/vscode-windows-ca-certs.d.ts
@@ -3,6 +3,4 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
-.monaco-editor .code-inset {
- z-index: 10;
-}
+declare module 'vscode-windows-ca-certs';
diff --git a/src/typings/xterm-addon-search.d.ts b/src/typings/xterm-addon-search.d.ts
new file mode 100644
index 00000000000..2f3be6f82bd
--- /dev/null
+++ b/src/typings/xterm-addon-search.d.ts
@@ -0,0 +1,69 @@
+/**
+ * Copyright (c) 2017 The xterm.js authors. All rights reserved.
+ * @license MIT
+ */
+
+// HACK: gulp-tsb doesn't play nice with importing from typings
+// import { Terminal, ITerminalAddon } from 'xterm';
+
+declare module 'xterm-addon-search' {
+ /**
+ * Options for a search.
+ */
+ export interface ISearchOptions {
+ /**
+ * Whether the search term is a regex.
+ */
+ regex?: boolean;
+
+ /**
+ * Whether to search for a whole word, the result is only valid if it's
+ * suppounded in "non-word" characters such as `_`, `(`, `)` or space.
+ */
+ wholeWord?: boolean;
+
+ /**
+ * Whether the search is case sensitive.
+ */
+ caseSensitive?: boolean;
+
+ /**
+ * Whether to do an indcremental search, this will expand the selection if it
+ * still matches the term the user typed. Note that this only affects
+ * `findNext`, not `findPrevious`.
+ */
+ incremental?: boolean;
+ }
+
+ /**
+ * An xterm.js addon that provides search functionality.
+ */
+ export class SearchAddon {
+ /**
+ * Activates the addon
+ * @param terminal The terminal the addon is being loaded in.
+ */
+ public activate(terminal: any): void;
+
+ /**
+ * Disposes the addon.
+ */
+ public dispose(): void;
+
+ /**
+ * Search forwards for the next result that matches the search term and
+ * options.
+ * @param term The search term.
+ * @param searchOptions The options for the search.
+ */
+ public findNext(term: string, searchOptions?: ISearchOptions): boolean;
+
+ /**
+ * Search backwards for the previous result that matches the search term and
+ * options.
+ * @param term The search term.
+ * @param searchOptions The options for the search.
+ */
+ public findPrevious(term: string, searchOptions?: ISearchOptions): boolean;
+ }
+}
diff --git a/src/typings/xterm-addon-web-links.d.ts b/src/typings/xterm-addon-web-links.d.ts
new file mode 100644
index 00000000000..da348f8c82e
--- /dev/null
+++ b/src/typings/xterm-addon-web-links.d.ts
@@ -0,0 +1,71 @@
+/**
+ * Copyright (c) 2017 The xterm.js authors. All rights reserved.
+ * @license MIT
+ */
+
+// HACK: gulp-tsb doesn't play nice with importing from typings
+// import { Terminal, ITerminalAddon } from 'xterm';
+interface ILinkMatcherOptions {
+ /**
+ * The index of the link from the regex.match(text) call. This defaults to 0
+ * (for regular expressions without capture groups).
+ */
+ matchIndex?: number;
+
+ /**
+ * A callback that validates whether to create an individual link, pass
+ * whether the link is valid to the callback.
+ */
+ validationCallback?: (uri: string, callback: (isValid: boolean) => void) => void;
+
+ /**
+ * A callback that fires when the mouse hovers over a link for a moment.
+ */
+ tooltipCallback?: (event: MouseEvent, uri: string) => boolean | void;
+
+ /**
+ * A callback that fires when the mouse leaves a link. Note that this can
+ * happen even when tooltipCallback hasn't fired for the link yet.
+ */
+ leaveCallback?: () => void;
+
+ /**
+ * The priority of the link matcher, this defines the order in which the link
+ * matcher is evaluated relative to others, from highest to lowest. The
+ * default value is 0.
+ */
+ priority?: number;
+
+ /**
+ * A callback that fires when the mousedown and click events occur that
+ * determines whether a link will be activated upon click. This enables
+ * only activating a link when a certain modifier is held down, if not the
+ * mouse event will continue propagation (eg. double click to select word).
+ */
+ willLinkActivate?: (event: MouseEvent, uri: string) => boolean;
+}
+
+declare module 'xterm-addon-web-links' {
+ /**
+ * An xterm.js addon that enables web links.
+ */
+ export class WebLinksAddon {
+ /**
+ * Creates a new web links addon.
+ * @param handler The callback when the link is called.
+ * @param options Options for the link matcher.
+ */
+ constructor(handler?: (event: MouseEvent, uri: string) => void, options?: ILinkMatcherOptions);
+
+ /**
+ * Activates the addon
+ * @param terminal The terminal the addon is being loaded in.
+ */
+ public activate(terminal: any): void;
+
+ /**
+ * Disposes the addon.
+ */
+ public dispose(): void;
+ }
+}
diff --git a/src/typings/vscode-xterm.d.ts b/src/typings/xterm.d.ts
similarity index 91%
rename from src/typings/vscode-xterm.d.ts
rename to src/typings/xterm.d.ts
index 01e47b16b27..b4b3d8c0c5f 100644
--- a/src/typings/vscode-xterm.d.ts
+++ b/src/typings/xterm.d.ts
@@ -9,7 +9,7 @@
///
-declare module 'vscode-xterm' {
+declare module 'xterm' {
/**
* A string representing text font weight.
*/
@@ -76,31 +76,6 @@ declare module 'vscode-xterm' {
*/
drawBoldTextInBrightColors?: boolean;
- /**
- * Whether to enable the rendering of bold text.
- *
- * @deprecated Use fontWeight and fontWeightBold instead.
- */
- enableBold?: boolean;
-
- /**
- * What character atlas implementation to use. The character atlas caches drawn characters,
- * speeding up rendering significantly. However, it can introduce some minor rendering
- * artifacts.
- *
- * - 'none': Don't use an atlas.
- * - 'static': Generate an atlas when the terminal starts or is reconfigured. This atlas will
- * only contain ASCII characters in 16 colors.
- * - 'dynamic': Generate an atlas using a LRU cache as characters are requested. Limited to
- * ASCII characters (for now), but supports 256 colors. For characters covered by the static
- * cache, it's slightly slower in comparison, since there's more overhead involved in
- * managing the cache.
- *
- * Currently defaults to 'static'. This option may be removed in the future. If it is, passed
- * parameters will be ignored.
- */
- experimentalCharAtlas?: 'none' | 'static' | 'dynamic';
-
/**
* The font size used to render text.
*/
@@ -706,13 +681,6 @@ declare module 'vscode-xterm' {
*/
dispose(): void;
- /**
- * Destroys the terminal and detaches it from the DOM.
- *
- * @deprecated Use dispose() instead.
- */
- destroy(): void;
-
/**
* Scroll the display of the terminal
* @param amount The number of lines to scroll down (negative scroll up).
@@ -775,7 +743,7 @@ declare module 'vscode-xterm' {
* Retrieves an option's value from the terminal.
* @param key The option key.
*/
- getOption(key: 'allowTransparency' | 'cancelEvents' | 'convertEol' | 'cursorBlink' | 'debug' | 'disableStdin' | 'enableBold' | 'macOptionIsMeta' | 'rightClickSelectsWord' | 'popOnBell' | 'screenKeys' | 'useFlowControl' | 'visualBell' | 'windowsMode'): boolean;
+ getOption(key: 'allowTransparency' | 'cancelEvents' | 'convertEol' | 'cursorBlink' | 'debug' | 'disableStdin' | 'macOptionIsMeta' | 'rightClickSelectsWord' | 'popOnBell' | 'screenKeys' | 'useFlowControl' | 'visualBell' | 'windowsMode'): boolean;
/**
* Retrieves an option's value from the terminal.
* @param key The option key.
@@ -826,7 +794,7 @@ declare module 'vscode-xterm' {
* @param key The option key.
* @param value The option value.
*/
- setOption(key: 'allowTransparency' | 'cancelEvents' | 'convertEol' | 'cursorBlink' | 'debug' | 'disableStdin' | 'enableBold' | 'macOptionIsMeta' | 'popOnBell' | 'rightClickSelectsWord' | 'screenKeys' | 'useFlowControl' | 'visualBell' | 'windowsMode', value: boolean): void;
+ setOption(key: 'allowTransparency' | 'cancelEvents' | 'convertEol' | 'cursorBlink' | 'debug' | 'disableStdin' | 'macOptionIsMeta' | 'popOnBell' | 'rightClickSelectsWord' | 'screenKeys' | 'useFlowControl' | 'visualBell' | 'windowsMode', value: boolean): void;
/**
* Sets an option on the terminal.
* @param key The option key.
@@ -1013,8 +981,9 @@ declare module 'vscode-xterm' {
}
+
// Modifications to official .d.ts below
-declare module 'vscode-xterm' {
+declare module 'xterm' {
interface TerminalCore {
debug: boolean;
@@ -1037,42 +1006,7 @@ declare module 'vscode-xterm' {
fire(e: T): void;
}
- interface ISearchOptions {
- /**
- * Whether the find should be done as a regex.
- */
- regex?: boolean;
- /**
- * Whether only whole words should match.
- */
- wholeWord?: boolean;
- /**
- * Whether find should pay attention to case.
- */
- caseSensitive?: boolean;
- }
-
interface Terminal {
_core: TerminalCore;
-
- webLinksInit(handler?: (event: MouseEvent, uri: string) => void, options?: ILinkMatcherOptions): void;
-
- /**
- * Find the next instance of the term, then scroll to and select it. If it
- * doesn't exist, do nothing.
- * @param term The search term.
- * @param findOptions Regex, whole word, and case sensitive options.
- * @return Whether a result was found.
- */
- findNext(term: string, findOptions: ISearchOptions): boolean;
-
- /**
- * Find the previous instance of the term, then scroll to and select it. If it
- * doesn't exist, do nothing.
- * @param term The search term.
- * @param findOptions Regex, whole word, and case sensitive options.
- * @return Whether a result was found.
- */
- findPrevious(term: string, findOptions: ISearchOptions): boolean;
}
-}
+}
\ No newline at end of file
diff --git a/src/vs/base/browser/dom.ts b/src/vs/base/browser/dom.ts
index 85ce189ee98..09458bfc2b6 100644
--- a/src/vs/base/browser/dom.ts
+++ b/src/vs/base/browser/dom.ts
@@ -11,7 +11,7 @@ import { TimeoutTimer } from 'vs/base/common/async';
import { CharCode } from 'vs/base/common/charCode';
import { onUnexpectedError } from 'vs/base/common/errors';
import { Emitter, Event } from 'vs/base/common/event';
-import { Disposable, IDisposable, dispose, toDisposable } from 'vs/base/common/lifecycle';
+import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
import * as platform from 'vs/base/common/platform';
import { coalesce } from 'vs/base/common/arrays';
@@ -929,21 +929,20 @@ export function restoreParentsScrollTop(node: Element, state: number[]): void {
}
}
-class FocusTracker implements IFocusTracker {
+class FocusTracker extends Disposable implements IFocusTracker {
- private _onDidFocus = new Emitter();
- readonly onDidFocus: Event = this._onDidFocus.event;
+ private readonly _onDidFocus = this._register(new Emitter());
+ public readonly onDidFocus: Event = this._onDidFocus.event;
- private _onDidBlur = new Emitter();
- readonly onDidBlur: Event = this._onDidBlur.event;
-
- private disposables: IDisposable[] = [];
+ private readonly _onDidBlur = this._register(new Emitter());
+ public readonly onDidBlur: Event = this._onDidBlur.event;
constructor(element: HTMLElement | Window) {
+ super();
let hasFocus = isAncestor(document.activeElement, element);
let loosingFocus = false;
- let onFocus = () => {
+ const onFocus = () => {
loosingFocus = false;
if (!hasFocus) {
hasFocus = true;
@@ -951,7 +950,7 @@ class FocusTracker implements IFocusTracker {
}
};
- let onBlur = () => {
+ const onBlur = () => {
if (hasFocus) {
loosingFocus = true;
window.setTimeout(() => {
@@ -964,14 +963,8 @@ class FocusTracker implements IFocusTracker {
}
};
- domEvent(element, EventType.FOCUS, true)(onFocus, null, this.disposables);
- domEvent(element, EventType.BLUR, true)(onBlur, null, this.disposables);
- }
-
- dispose(): void {
- this.disposables = dispose(this.disposables);
- this._onDidFocus.dispose();
- this._onDidBlur.dispose();
+ this._register(domEvent(element, EventType.FOCUS, true)(onFocus));
+ this._register(domEvent(element, EventType.BLUR, true)(onBlur));
}
}
diff --git a/src/vs/base/browser/globalMouseMoveMonitor.ts b/src/vs/base/browser/globalMouseMoveMonitor.ts
index 89210064781..109f6f72260 100644
--- a/src/vs/base/browser/globalMouseMoveMonitor.ts
+++ b/src/vs/base/browser/globalMouseMoveMonitor.ts
@@ -6,7 +6,7 @@
import * as dom from 'vs/base/browser/dom';
import { IframeUtils } from 'vs/base/browser/iframe';
import { StandardMouseEvent } from 'vs/base/browser/mouseEvent';
-import { Disposable, IDisposable, dispose } from 'vs/base/common/lifecycle';
+import { IDisposable, DisposableStore } from 'vs/base/common/lifecycle';
export interface IStandardMouseMoveEventData {
leftButton: boolean;
@@ -36,24 +36,16 @@ export function standardMouseMoveMerger(lastEvent: IStandardMouseMoveEventData,
};
}
-export class GlobalMouseMoveMonitor extends Disposable {
+export class GlobalMouseMoveMonitor implements IDisposable {
- private hooks: IDisposable[];
- private mouseMoveEventMerger: IEventMerger | null;
- private mouseMoveCallback: IMouseMoveCallback | null;
- private onStopCallback: IOnStopCallback | null;
-
- constructor() {
- super();
- this.hooks = [];
- this.mouseMoveEventMerger = null;
- this.mouseMoveCallback = null;
- this.onStopCallback = null;
- }
+ private readonly hooks = new DisposableStore();
+ private mouseMoveEventMerger: IEventMerger | null = null;
+ private mouseMoveCallback: IMouseMoveCallback | null = null;
+ private onStopCallback: IOnStopCallback | null = null;
public dispose(): void {
this.stopMonitoring(false);
- super.dispose();
+ this.hooks.dispose();
}
public stopMonitoring(invokeStopCallback: boolean): void {
@@ -63,10 +55,10 @@ export class GlobalMouseMoveMonitor extends Disposable {
}
// Unhook
- this.hooks = dispose(this.hooks);
+ this.hooks.clear();
this.mouseMoveEventMerger = null;
this.mouseMoveCallback = null;
- let onStopCallback = this.onStopCallback;
+ const onStopCallback = this.onStopCallback;
this.onStopCallback = null;
if (invokeStopCallback && onStopCallback) {
@@ -74,8 +66,8 @@ export class GlobalMouseMoveMonitor extends Disposable {
}
}
- public isMonitoring() {
- return this.hooks.length > 0;
+ public isMonitoring(): boolean {
+ return !!this.mouseMoveEventMerger;
}
public startMonitoring(
@@ -93,32 +85,32 @@ export class GlobalMouseMoveMonitor extends Disposable {
let windowChain = IframeUtils.getSameOriginWindowChain();
for (const element of windowChain) {
- this.hooks.push(dom.addDisposableThrottledListener(element.window.document, 'mousemove',
+ this.hooks.add(dom.addDisposableThrottledListener(element.window.document, 'mousemove',
(data: R) => this.mouseMoveCallback!(data),
(lastEvent: R, currentEvent) => this.mouseMoveEventMerger!(lastEvent, currentEvent as MouseEvent)
));
- this.hooks.push(dom.addDisposableListener(element.window.document, 'mouseup', (e: MouseEvent) => this.stopMonitoring(true)));
+ this.hooks.add(dom.addDisposableListener(element.window.document, 'mouseup', (e: MouseEvent) => this.stopMonitoring(true)));
}
if (IframeUtils.hasDifferentOriginAncestor()) {
let lastSameOriginAncestor = windowChain[windowChain.length - 1];
// We might miss a mouse up if it happens outside the iframe
// This one is for Chrome
- this.hooks.push(dom.addDisposableListener(lastSameOriginAncestor.window.document, 'mouseout', (browserEvent: MouseEvent) => {
+ this.hooks.add(dom.addDisposableListener(lastSameOriginAncestor.window.document, 'mouseout', (browserEvent: MouseEvent) => {
let e = new StandardMouseEvent(browserEvent);
if (e.target.tagName.toLowerCase() === 'html') {
this.stopMonitoring(true);
}
}));
// This one is for FF
- this.hooks.push(dom.addDisposableListener(lastSameOriginAncestor.window.document, 'mouseover', (browserEvent: MouseEvent) => {
+ this.hooks.add(dom.addDisposableListener(lastSameOriginAncestor.window.document, 'mouseover', (browserEvent: MouseEvent) => {
let e = new StandardMouseEvent(browserEvent);
if (e.target.tagName.toLowerCase() === 'html') {
this.stopMonitoring(true);
}
}));
// This one is for IE
- this.hooks.push(dom.addDisposableListener(lastSameOriginAncestor.window.document.body, 'mouseleave', (browserEvent: MouseEvent) => {
+ this.hooks.add(dom.addDisposableListener(lastSameOriginAncestor.window.document.body, 'mouseleave', (browserEvent: MouseEvent) => {
this.stopMonitoring(true);
}));
}
diff --git a/src/vs/base/browser/hash.ts b/src/vs/base/browser/hash.ts
deleted file mode 100644
index eee8c0f56e4..00000000000
--- a/src/vs/base/browser/hash.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-/*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
-
-export function createSHA1(content: string): Thenable {
- if (typeof require !== 'undefined') {
- const _crypto: typeof crypto = require.__$__nodeRequire('crypto');
- return Promise.resolve(_crypto['createHash']('sha1').update(content).digest('hex'));
- }
- return crypto.subtle.digest('SHA-1', new TextEncoder().encode(content)).then(buffer => {
- // https://developer.mozilla.org/en-US/docs/Web/API/SubtleCrypto/digest#Converting_a_digest_to_a_hex_string
- return Array.prototype.map.call(new Uint8Array(buffer), (value: number) => `00${value.toString(16)}`.slice(-2)).join('');
- });
-}
\ No newline at end of file
diff --git a/src/vs/base/browser/ui/actionbar/actionbar.ts b/src/vs/base/browser/ui/actionbar/actionbar.ts
index 131c756a817..6ff6449e70f 100644
--- a/src/vs/base/browser/ui/actionbar/actionbar.ts
+++ b/src/vs/base/browser/ui/actionbar/actionbar.ts
@@ -261,6 +261,9 @@ export class ActionViewItem extends BaseActionViewItem {
this.label.setAttribute('role', 'menuitem');
} else {
this.label.setAttribute('role', 'button');
+
+ // TODO @misolori remove before shipping stable
+ this.label.setAttribute('data-title', this._action.id);
}
}
diff --git a/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.ts b/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.ts
index bdbce4e9e30..28713284213 100644
--- a/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.ts
+++ b/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.ts
@@ -9,7 +9,7 @@ import { DomScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableEle
import { commonPrefixLength } from 'vs/base/common/arrays';
import { Color } from 'vs/base/common/color';
import { Emitter, Event } from 'vs/base/common/event';
-import { dispose, IDisposable, DisposableStore } from 'vs/base/common/lifecycle';
+import { dispose, IDisposable, DisposableStore, Disposable } from 'vs/base/common/lifecycle';
import { ScrollbarVisibility } from 'vs/base/common/scrollable';
import 'vs/css!./breadcrumbsWidget';
@@ -55,16 +55,15 @@ export interface IBreadcrumbsItemEvent {
payload: any;
}
-export class BreadcrumbsWidget {
+export class BreadcrumbsWidget extends Disposable {
- private readonly _disposables = new Array();
private readonly _domNode: HTMLDivElement;
private readonly _styleElement: HTMLStyleElement;
private readonly _scrollable: DomScrollableElement;
- private readonly _onDidSelectItem = new Emitter();
- private readonly _onDidFocusItem = new Emitter();
- private readonly _onDidChangeFocus = new Emitter();
+ private readonly _onDidSelectItem = this._register(new Emitter());
+ private readonly _onDidFocusItem = this._register(new Emitter());
+ private readonly _onDidChangeFocus = this._register(new Emitter());
readonly onDidSelectItem: Event = this._onDidSelectItem.event;
readonly onDidFocusItem: Event = this._onDidFocusItem.event;
@@ -83,6 +82,7 @@ export class BreadcrumbsWidget {
constructor(
container: HTMLElement
) {
+ super();
this._domNode = document.createElement('div');
this._domNode.className = 'monaco-breadcrumbs';
this._domNode.tabIndex = 0;
@@ -94,26 +94,22 @@ export class BreadcrumbsWidget {
useShadows: false,
scrollYToX: true
});
- this._disposables.push(this._scrollable);
- this._disposables.push(dom.addStandardDisposableListener(this._domNode, 'click', e => this._onClick(e)));
+ this._register(this._scrollable);
+ this._register(dom.addStandardDisposableListener(this._domNode, 'click', e => this._onClick(e)));
container.appendChild(this._scrollable.getDomNode());
this._styleElement = dom.createStyleSheet(this._domNode);
let focusTracker = dom.trackFocus(this._domNode);
- this._disposables.push(focusTracker);
- this._disposables.push(focusTracker.onDidBlur(_ => this._onDidChangeFocus.fire(false)));
- this._disposables.push(focusTracker.onDidFocus(_ => this._onDidChangeFocus.fire(true)));
+ this._register(focusTracker);
+ this._register(focusTracker.onDidBlur(_ => this._onDidChangeFocus.fire(false)));
+ this._register(focusTracker.onDidFocus(_ => this._onDidChangeFocus.fire(true)));
}
dispose(): void {
- dispose(this._disposables);
+ super.dispose();
dispose(this._pendingLayout);
- this._onDidSelectItem.dispose();
- this._onDidFocusItem.dispose();
- this._onDidChangeFocus.dispose();
this._domNode.remove();
- this._disposables.length = 0;
this._nodes.length = 0;
this._freeNodes.length = 0;
}
diff --git a/src/vs/base/browser/ui/centered/centeredViewLayout.ts b/src/vs/base/browser/ui/centered/centeredViewLayout.ts
index a776ba92a6d..ff349b87bd4 100644
--- a/src/vs/base/browser/ui/centered/centeredViewLayout.ts
+++ b/src/vs/base/browser/ui/centered/centeredViewLayout.ts
@@ -7,7 +7,7 @@ import { SplitView, Orientation, ISplitViewStyles, IView as ISplitViewView } fro
import { $ } from 'vs/base/browser/dom';
import { Event } from 'vs/base/common/event';
import { IView } from 'vs/base/browser/ui/grid/gridview';
-import { IDisposable, dispose } from 'vs/base/common/lifecycle';
+import { IDisposable, DisposableStore } from 'vs/base/common/lifecycle';
import { Color } from 'vs/base/common/color';
export interface CenteredViewState {
@@ -48,7 +48,7 @@ export interface ICenteredViewStyles extends ISplitViewStyles {
background: Color;
}
-export class CenteredViewLayout {
+export class CenteredViewLayout implements IDisposable {
private splitView?: SplitView;
private width: number = 0;
@@ -56,7 +56,7 @@ export class CenteredViewLayout {
private style: ICenteredViewStyles;
private didLayout = false;
private emptyViews: ISplitViewView[] | undefined;
- private splitViewDisposables: IDisposable[] = [];
+ private readonly splitViewDisposables = new DisposableStore();
constructor(private container: HTMLElement, private view: IView, public readonly state: CenteredViewState = { leftMarginRatio: GOLDEN_RATIO.leftMarginRatio, rightMarginRatio: GOLDEN_RATIO.rightMarginRatio }) {
this.container.appendChild(this.view.element);
@@ -117,13 +117,13 @@ export class CenteredViewLayout {
styles: this.style
});
- this.splitViewDisposables.push(this.splitView.onDidSashChange(() => {
+ this.splitViewDisposables.add(this.splitView.onDidSashChange(() => {
if (this.splitView) {
this.state.leftMarginRatio = this.splitView.getViewSize(0) / this.width;
this.state.rightMarginRatio = this.splitView.getViewSize(2) / this.width;
}
}));
- this.splitViewDisposables.push(this.splitView.onDidSashReset(() => {
+ this.splitViewDisposables.add(this.splitView.onDidSashReset(() => {
this.state.leftMarginRatio = GOLDEN_RATIO.leftMarginRatio;
this.state.rightMarginRatio = GOLDEN_RATIO.rightMarginRatio;
this.resizeMargins();
@@ -138,7 +138,7 @@ export class CenteredViewLayout {
if (this.splitView) {
this.container.removeChild(this.splitView.el);
}
- this.splitViewDisposables = dispose(this.splitViewDisposables);
+ this.splitViewDisposables.clear();
if (this.splitView) {
this.splitView.dispose();
}
@@ -153,7 +153,7 @@ export class CenteredViewLayout {
}
dispose(): void {
- this.splitViewDisposables = dispose(this.splitViewDisposables);
+ this.splitViewDisposables.dispose();
if (this.splitView) {
this.splitView.dispose();
diff --git a/src/vs/base/browser/ui/list/listWidget.ts b/src/vs/base/browser/ui/list/listWidget.ts
index b3cc40b3eee..7ea36f61d15 100644
--- a/src/vs/base/browser/ui/list/listWidget.ts
+++ b/src/vs/base/browser/ui/list/listWidget.ts
@@ -5,7 +5,7 @@
import 'vs/css!./list';
import { localize } from 'vs/nls';
-import { IDisposable, dispose } from 'vs/base/common/lifecycle';
+import { IDisposable, dispose, Disposable } from 'vs/base/common/lifecycle';
import { isNumber } from 'vs/base/common/types';
import { range, firstIndex, binarySearch } from 'vs/base/common/arrays';
import { memoize } from 'vs/base/common/decorators';
@@ -226,9 +226,8 @@ function isInputElement(e: HTMLElement): boolean {
return e.tagName === 'INPUT' || e.tagName === 'TEXTAREA';
}
-class KeyboardController implements IDisposable {
+class KeyboardController extends Disposable {
- private disposables: IDisposable[];
private openController: IOpenController;
constructor(
@@ -236,8 +235,8 @@ class KeyboardController implements IDisposable {
private view: ListView,
options: IListOptions
) {
+ super();
const multipleSelectionSupport = !(options.multipleSelectionSupport === false);
- this.disposables = [];
this.openController = options.openController || DefaultOpenController;
@@ -245,15 +244,15 @@ class KeyboardController implements IDisposable {
.filter(e => !isInputElement(e.target as HTMLElement))
.map(e => new StandardKeyboardEvent(e));
- onKeyDown.filter(e => e.keyCode === KeyCode.Enter).on(this.onEnter, this, this.disposables);
- onKeyDown.filter(e => e.keyCode === KeyCode.UpArrow).on(this.onUpArrow, this, this.disposables);
- onKeyDown.filter(e => e.keyCode === KeyCode.DownArrow).on(this.onDownArrow, this, this.disposables);
- onKeyDown.filter(e => e.keyCode === KeyCode.PageUp).on(this.onPageUpArrow, this, this.disposables);
- onKeyDown.filter(e => e.keyCode === KeyCode.PageDown).on(this.onPageDownArrow, this, this.disposables);
- onKeyDown.filter(e => e.keyCode === KeyCode.Escape).on(this.onEscape, this, this.disposables);
+ this._register(onKeyDown.filter(e => e.keyCode === KeyCode.Enter).on(this.onEnter, this));
+ this._register(onKeyDown.filter(e => e.keyCode === KeyCode.UpArrow).on(this.onUpArrow, this));
+ this._register(onKeyDown.filter(e => e.keyCode === KeyCode.DownArrow).on(this.onDownArrow, this));
+ this._register(onKeyDown.filter(e => e.keyCode === KeyCode.PageUp).on(this.onPageUpArrow, this));
+ this._register(onKeyDown.filter(e => e.keyCode === KeyCode.PageDown).on(this.onPageDownArrow, this));
+ this._register(onKeyDown.filter(e => e.keyCode === KeyCode.Escape).on(this.onEscape, this));
if (multipleSelectionSupport) {
- onKeyDown.filter(e => (platform.isMacintosh ? e.metaKey : e.ctrlKey) && e.keyCode === KeyCode.KEY_A).on(this.onCtrlA, this, this.disposables);
+ this._register(onKeyDown.filter(e => (platform.isMacintosh ? e.metaKey : e.ctrlKey) && e.keyCode === KeyCode.KEY_A).on(this.onCtrlA, this));
}
}
@@ -312,10 +311,6 @@ class KeyboardController implements IDisposable {
this.list.setSelection([], e.browserEvent);
this.view.domNode.focus();
}
-
- dispose() {
- this.disposables = dispose(this.disposables);
- }
}
enum TypeLabelControllerState {
diff --git a/src/vs/base/browser/ui/selectBox/selectBoxCustom.ts b/src/vs/base/browser/ui/selectBox/selectBoxCustom.ts
index edabf906902..f26942d54e9 100644
--- a/src/vs/base/browser/ui/selectBox/selectBoxCustom.ts
+++ b/src/vs/base/browser/ui/selectBox/selectBoxCustom.ts
@@ -5,7 +5,7 @@
import 'vs/css!./selectBoxCustom';
-import { IDisposable, dispose } from 'vs/base/common/lifecycle';
+import { IDisposable, dispose, Disposable } from 'vs/base/common/lifecycle';
import { Event, Emitter } from 'vs/base/common/event';
import { KeyCode, KeyCodeUtils } from 'vs/base/common/keyCodes';
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
@@ -80,7 +80,7 @@ class SelectListRenderer implements IListRenderer {
+export class SelectBoxList extends Disposable implements ISelectBoxDelegate, IListVirtualDelegate {
private static readonly DEFAULT_DROPDOWN_MINIMUM_BOTTOM_MARGIN = 32;
private static readonly DEFAULT_DROPDOWN_MINIMUM_TOP_MARGIN = 2;
@@ -92,7 +92,6 @@ export class SelectBoxList implements ISelectBoxDelegate, IListVirtualDelegate;
- private toDispose: IDisposable[];
private styles: ISelectBoxStyles;
private listRenderer: SelectListRenderer;
private contextViewProvider: IContextViewProvider;
@@ -111,7 +110,7 @@ export class SelectBoxList implements ISelectBoxDelegate, IListVirtualDelegate();
- this.toDispose.push(this._onDidSelect);
+ this._register(this._onDidSelect);
this.styles = styles;
@@ -185,7 +184,7 @@ export class SelectBoxList implements ISelectBoxDelegate, IListVirtualDelegate {
+ this._register(dom.addStandardDisposableListener(this.selectElement, 'change', (e) => {
this.selected = e.target.selectedIndex;
this._onDidSelect.fire({
index: e.target.selectedIndex,
@@ -199,7 +198,7 @@ export class SelectBoxList implements ISelectBoxDelegate, IListVirtualDelegate {
+ this._register(dom.addDisposableListener(this.selectElement, dom.EventType.CLICK, (e) => {
dom.EventHelper.stop(e);
if (this._isVisible) {
@@ -209,13 +208,13 @@ export class SelectBoxList implements ISelectBoxDelegate, IListVirtualDelegate {
+ this._register(dom.addDisposableListener(this.selectElement, dom.EventType.MOUSE_DOWN, (e) => {
dom.EventHelper.stop(e);
}));
// Intercept keyboard handling
- this.toDispose.push(dom.addDisposableListener(this.selectElement, dom.EventType.KEY_DOWN, (e: KeyboardEvent) => {
+ this._register(dom.addDisposableListener(this.selectElement, dom.EventType.KEY_DOWN, (e: KeyboardEvent) => {
const event = new StandardKeyboardEvent(e);
let showDropDown = false;
@@ -735,27 +734,26 @@ export class SelectBoxList implements ISelectBoxDelegate, IListVirtualDelegate this.selectList.length > 0)
.map(e => new StandardKeyboardEvent(e));
- onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.Enter).on(e => this.onEnter(e), this, this.toDispose);
- onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.Escape).on(e => this.onEscape(e), this, this.toDispose);
- onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.UpArrow).on(this.onUpArrow, this, this.toDispose);
- onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.DownArrow).on(this.onDownArrow, this, this.toDispose);
- onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.PageDown).on(this.onPageDown, this, this.toDispose);
- onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.PageUp).on(this.onPageUp, this, this.toDispose);
- onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.Home).on(this.onHome, this, this.toDispose);
- onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.End).on(this.onEnd, this, this.toDispose);
- onSelectDropDownKeyDown.filter(e => (e.keyCode >= KeyCode.KEY_0 && e.keyCode <= KeyCode.KEY_Z) || (e.keyCode >= KeyCode.US_SEMICOLON && e.keyCode <= KeyCode.NUMPAD_DIVIDE)).on(this.onCharacter, this, this.toDispose);
+ this._register(onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.Enter).on(e => this.onEnter(e), this));
+ this._register(onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.Escape).on(e => this.onEscape(e), this));
+ this._register(onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.UpArrow).on(this.onUpArrow, this));
+ this._register(onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.DownArrow).on(this.onDownArrow, this));
+ this._register(onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.PageDown).on(this.onPageDown, this));
+ this._register(onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.PageUp).on(this.onPageUp, this));
+ this._register(onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.Home).on(this.onHome, this));
+ this._register(onSelectDropDownKeyDown.filter(e => e.keyCode === KeyCode.End).on(this.onEnd, this));
+ this._register(onSelectDropDownKeyDown.filter(e => (e.keyCode >= KeyCode.KEY_0 && e.keyCode <= KeyCode.KEY_Z) || (e.keyCode >= KeyCode.US_SEMICOLON && e.keyCode <= KeyCode.NUMPAD_DIVIDE)).on(this.onCharacter, this));
// SetUp list mouse controller - control navigation, disabled items, focus
- Event.chain(domEvent(this.selectList.getHTMLElement(), 'mouseup'))
+ this._register(Event.chain(domEvent(this.selectList.getHTMLElement(), 'mouseup'))
.filter(() => this.selectList.length > 0)
- .on(e => this.onMouseUp(e), this, this.toDispose);
+ .on(e => this.onMouseUp(e), this));
- this.toDispose.push(
- this.selectList.onDidBlur(_ => this.onListBlur()),
- this.selectList.onMouseOver(e => typeof e.index !== 'undefined' && this.selectList.setFocus([e.index])),
- this.selectList.onFocusChange(e => this.onListFocus(e))
- );
+
+ this._register(this.selectList.onDidBlur(_ => this.onListBlur()));
+ this._register(this.selectList.onMouseOver(e => typeof e.index !== 'undefined' && this.selectList.setFocus([e.index])));
+ this._register(this.selectList.onFocusChange(e => this.onListFocus(e)));
this.selectList.getHTMLElement().setAttribute('aria-label', this.selectBoxOptions.ariaLabel || '');
this.selectList.getHTMLElement().setAttribute('aria-expanded', 'true');
@@ -1034,6 +1032,6 @@ export class SelectBoxList implements ISelectBoxDelegate, IListVirtualDelegate();
- this._register(this._onDidSelect);
+ this._onDidSelect = this._register(new Emitter());
this.styles = styles;
diff --git a/src/vs/base/browser/ui/splitview/panelview.ts b/src/vs/base/browser/ui/splitview/panelview.ts
index d509af4e4e7..4d2fc8a6144 100644
--- a/src/vs/base/browser/ui/splitview/panelview.ts
+++ b/src/vs/base/browser/ui/splitview/panelview.ts
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import 'vs/css!./panelview';
-import { IDisposable, dispose, Disposable, DisposableStore } from 'vs/base/common/lifecycle';
+import { IDisposable, Disposable, DisposableStore } from 'vs/base/common/lifecycle';
import { Event, Emitter } from 'vs/base/common/event';
import { domEvent } from 'vs/base/browser/event';
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
@@ -37,7 +37,7 @@ export interface IPanelStyles {
* Subclasses wouldn't be able to set own properties
* before the `render()` call, thus forbiding their use.
*/
-export abstract class Panel implements IView {
+export abstract class Panel extends Disposable implements IView {
private static readonly HEADER_SIZE = 22;
@@ -55,11 +55,9 @@ export abstract class Panel implements IView {
private styles: IPanelStyles = {};
private animationTimer: number | undefined = undefined;
- private _onDidChange = new Emitter();
+ private readonly _onDidChange = this._register(new Emitter());
readonly onDidChange: Event = this._onDidChange.event;
- protected disposables: IDisposable[] = [];
-
get draggableElement(): HTMLElement {
return this.header;
}
@@ -114,6 +112,7 @@ export abstract class Panel implements IView {
width: number;
constructor(options: IPanelOptions = {}) {
+ super();
this._expanded = typeof options.expanded === 'undefined' ? true : !!options.expanded;
this.ariaHeaderLabel = options.ariaHeaderLabel || '';
this._minimumBodySize = typeof options.minimumBodySize === 'number' ? options.minimumBodySize : 120;
@@ -172,26 +171,26 @@ export abstract class Panel implements IView {
this.renderHeader(this.header);
const focusTracker = trackFocus(this.header);
- this.disposables.push(focusTracker);
- focusTracker.onDidFocus(() => addClass(this.header, 'focused'), null, this.disposables);
- focusTracker.onDidBlur(() => removeClass(this.header, 'focused'), null, this.disposables);
+ this._register(focusTracker);
+ this._register(focusTracker.onDidFocus(() => addClass(this.header, 'focused'), null));
+ this._register(focusTracker.onDidBlur(() => removeClass(this.header, 'focused'), null));
this.updateHeader();
const onHeaderKeyDown = Event.chain(domEvent(this.header, 'keydown'))
.map(e => new StandardKeyboardEvent(e));
- onHeaderKeyDown.filter(e => e.keyCode === KeyCode.Enter || e.keyCode === KeyCode.Space)
- .event(() => this.setExpanded(!this.isExpanded()), null, this.disposables);
+ this._register(onHeaderKeyDown.filter(e => e.keyCode === KeyCode.Enter || e.keyCode === KeyCode.Space)
+ .event(() => this.setExpanded(!this.isExpanded()), null));
- onHeaderKeyDown.filter(e => e.keyCode === KeyCode.LeftArrow)
- .event(() => this.setExpanded(false), null, this.disposables);
+ this._register(onHeaderKeyDown.filter(e => e.keyCode === KeyCode.LeftArrow)
+ .event(() => this.setExpanded(false), null));
- onHeaderKeyDown.filter(e => e.keyCode === KeyCode.RightArrow)
- .event(() => this.setExpanded(true), null, this.disposables);
+ this._register(onHeaderKeyDown.filter(e => e.keyCode === KeyCode.RightArrow)
+ .event(() => this.setExpanded(true), null));
- domEvent(this.header, 'click')
- (() => this.setExpanded(!this.isExpanded()), null, this.disposables);
+ this._register(domEvent(this.header, 'click')
+ (() => this.setExpanded(!this.isExpanded()), null));
this.body = append(this.element, $('.panel-body'));
this.renderBody(this.body);
@@ -234,12 +233,6 @@ export abstract class Panel implements IView {
protected abstract renderHeader(container: HTMLElement): void;
protected abstract renderBody(container: HTMLElement): void;
protected abstract layoutBody(height: number, width: number): void;
-
- dispose(): void {
- this.disposables = dispose(this.disposables);
-
- this._onDidChange.dispose();
- }
}
interface IDndContext {
diff --git a/src/vs/base/common/actions.ts b/src/vs/base/common/actions.ts
index b0fea386d30..778a4e9f146 100644
--- a/src/vs/base/common/actions.ts
+++ b/src/vs/base/common/actions.ts
@@ -48,9 +48,9 @@ export interface IActionChangeEvent {
radio?: boolean;
}
-export class Action implements IAction {
+export class Action extends Disposable implements IAction {
- protected _onDidChange = new Emitter();
+ protected _onDidChange = this._register(new Emitter());
readonly onDidChange: Event = this._onDidChange.event;
protected _id: string;
@@ -63,6 +63,7 @@ export class Action implements IAction {
protected _actionCallback?: (event?: any) => Promise;
constructor(id: string, label: string = '', cssClass: string = '', enabled: boolean = true, actionCallback?: (event?: any) => Promise) {
+ super();
this._id = id;
this._label = label;
this._cssClass = cssClass;
@@ -171,10 +172,6 @@ export class Action implements IAction {
return Promise.resolve(true);
}
-
- dispose() {
- this._onDidChange.dispose();
- }
}
export interface IRunEvent {
diff --git a/src/vs/base/common/async.ts b/src/vs/base/common/async.ts
index 2f1c72b0e14..89b3ffe43d2 100644
--- a/src/vs/base/common/async.ts
+++ b/src/vs/base/common/async.ts
@@ -6,7 +6,7 @@
import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation';
import * as errors from 'vs/base/common/errors';
import { Emitter, Event } from 'vs/base/common/event';
-import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
+import { IDisposable, toDisposable } from 'vs/base/common/lifecycle';
import { URI } from 'vs/base/common/uri';
export function isThenable(obj: any): obj is Promise {
@@ -497,13 +497,12 @@ export class ResourceQueue {
}
}
-export class TimeoutTimer extends Disposable {
+export class TimeoutTimer implements IDisposable {
private _token: any;
constructor();
constructor(runner: () => void, timeout: number);
constructor(runner?: () => void, timeout?: number) {
- super();
this._token = -1;
if (typeof runner === 'function' && typeof timeout === 'number') {
@@ -513,7 +512,6 @@ export class TimeoutTimer extends Disposable {
dispose(): void {
this.cancel();
- super.dispose();
}
cancel(): void {
@@ -543,18 +541,16 @@ export class TimeoutTimer extends Disposable {
}
}
-export class IntervalTimer extends Disposable {
+export class IntervalTimer implements IDisposable {
private _token: any;
constructor() {
- super();
this._token = -1;
}
dispose(): void {
this.cancel();
- super.dispose();
}
cancel(): void {
diff --git a/src/vs/base/common/event.ts b/src/vs/base/common/event.ts
index 77883c9affb..1fa2adcf344 100644
--- a/src/vs/base/common/event.ts
+++ b/src/vs/base/common/event.ts
@@ -17,8 +17,7 @@ export interface Event {
}
export namespace Event {
- const _disposable = { dispose() { } };
- export const None: Event = function () { return _disposable; };
+ export const None: Event = () => Disposable.None;
/**
* Given an event, returns another event which only fires once.
diff --git a/src/vs/base/common/lifecycle.ts b/src/vs/base/common/lifecycle.ts
index 3f04b035888..8597d460998 100644
--- a/src/vs/base/common/lifecycle.ts
+++ b/src/vs/base/common/lifecycle.ts
@@ -5,6 +5,44 @@
import { once } from 'vs/base/common/functional';
+/**
+ * Enables logging of potentially leaked disposables.
+ *
+ * A disposable is considered leaked if it is not disposed or not registered as the child of
+ * another disposable. This tracking is very simple an only works for classes that either
+ * extend Disposable or use a DisposableStore. This means there are a lot of false positives.
+ */
+const TRACK_DISPOSABLES = false;
+
+const __is_disposable_tracked__ = '__is_disposable_tracked__';
+
+function markTracked(x: T): void {
+ if (!TRACK_DISPOSABLES) {
+ return;
+ }
+
+ if (x && x !== Disposable.None) {
+ try {
+ x[__is_disposable_tracked__] = true;
+ } catch {
+ // noop
+ }
+ }
+}
+
+function trackDisposable(x: T): void {
+ if (!TRACK_DISPOSABLES) {
+ return;
+ }
+
+ const stack = new Error().stack!;
+ setTimeout(() => {
+ if (!x[__is_disposable_tracked__]) {
+ console.log(stack);
+ }
+ }, 3000);
+}
+
export interface IDisposable {
dispose(): void;
}
@@ -15,31 +53,33 @@ export function isDisposable(thing: E): thing is E & IDisposab
}
export function dispose(disposable: T): T;
-export function dispose(...disposables: Array): T[];
+export function dispose(disposable: T | undefined): T | undefined;
export function dispose(disposables: T[]): T[];
-export function dispose(first: T | T[], ...rest: T[]): T | T[] | undefined {
- if (Array.isArray(first)) {
- first.forEach(d => d && d.dispose());
+export function dispose(disposables: T | T[] | undefined): T | T[] | undefined {
+ if (Array.isArray(disposables)) {
+ disposables.forEach(d => {
+ if (d) {
+ markTracked(d);
+ d.dispose();
+ }
+ });
return [];
- } else if (rest.length === 0) {
- if (first) {
- first.dispose();
- return first;
- }
- return undefined;
+ } else if (disposables) {
+ markTracked(disposables);
+ disposables.dispose();
+ return disposables;
} else {
- dispose(first);
- dispose(rest);
- return [];
+ return undefined;
}
}
export function combinedDisposable(...disposables: IDisposable[]): IDisposable {
+ disposables.forEach(markTracked);
return { dispose: () => dispose(disposables) };
}
export function toDisposable(fn: () => void): IDisposable {
- return { dispose() { fn(); } };
+ return { dispose: fn };
}
export class DisposableStore implements IDisposable {
@@ -52,6 +92,7 @@ export class DisposableStore implements IDisposable {
* Any future disposables added to this object will be disposed of on `add`.
*/
public dispose(): void {
+ markTracked(this);
this._isDisposed = true;
this.clear();
}
@@ -65,6 +106,11 @@ export class DisposableStore implements IDisposable {
}
public add(t: T): T {
+ if (!t) {
+ return t;
+ }
+
+ markTracked(t);
if (this._isDisposed) {
console.warn('Registering disposable on object that has already been disposed.');
t.dispose();
@@ -82,7 +128,13 @@ export abstract class Disposable implements IDisposable {
private readonly _store = new DisposableStore();
+ constructor() {
+ trackDisposable(this);
+ }
+
public dispose(): void {
+ markTracked(this);
+
this._store.dispose();
}
diff --git a/src/vs/base/common/uri.ts b/src/vs/base/common/uri.ts
index 966555e04d0..90a7537b3e7 100644
--- a/src/vs/base/common/uri.ts
+++ b/src/vs/base/common/uri.ts
@@ -96,6 +96,16 @@ const _empty = '';
const _slash = '/';
const _regexp = /^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/;
+function _isQueryStringScheme(scheme: string) {
+ switch (scheme.toLowerCase()) {
+ case 'http':
+ case 'https':
+ case 'ftp':
+ return true;
+ }
+ return false;
+}
+
/**
* Uniform Resource Identifier (URI) http://tools.ietf.org/html/rfc3986.
* This class is a simple parser which creates the basic component parts
@@ -282,14 +292,14 @@ export class URI implements UriComponents {
static parse(value: string, _strict: boolean = false): URI {
const match = _regexp.exec(value);
if (!match) {
- return new _URI(_empty, _empty, _empty, _empty, _empty);
+ return new _URI(_empty, _empty, _empty, _empty, _empty, _strict);
}
return new _URI(
match[2] || _empty,
- decodeURIComponent(match[4] || _empty),
- decodeURIComponent(match[5] || _empty),
- decodeURIComponent(match[7] || _empty),
- decodeURIComponent(match[9] || _empty),
+ decodeURIComponentFast(match[4] || _empty, false, false),
+ decodeURIComponentFast(match[5] || _empty, true, false),
+ decodeURIComponentFast(match[7] || _empty, false, _isQueryStringScheme(match[2])),
+ decodeURIComponentFast(match[9] || _empty, false, false),
_strict
);
}
@@ -321,7 +331,7 @@ export class URI implements UriComponents {
// normalize to fwd-slashes on windows,
// on other systems bwd-slashes are valid
- // filename character, eg /f\oo/ba\r.txt
+ // filename character, e.g. /f\oo/ba\r.txt
if (isWindows) {
path = path.replace(/\\/g, _slash);
}
@@ -465,6 +475,84 @@ class _URI extends URI {
}
}
+function isHex(value: string, pos: number): boolean {
+ if (pos >= value.length) {
+ return false;
+ }
+ const code = value.charCodeAt(pos);
+ return (code >= CharCode.Digit0 && code <= CharCode.Digit9)// 0-9
+ || (code >= CharCode.a && code <= CharCode.f) //a-f
+ || (code >= CharCode.A && code <= CharCode.F); //A-F
+}
+
+
+function decodeURIComponentFast(uriComponent: string, isPath: boolean, isQueryString: boolean): string {
+
+ let res: string | undefined;
+ let nativeDecodePos = -1;
+
+ for (let pos = 0; pos < uriComponent.length; pos++) {
+ const code = uriComponent.charCodeAt(pos);
+
+ // decoding needed
+ if (code === CharCode.PercentSign && isHex(uriComponent, pos + 1) && isHex(uriComponent, pos + 2)) {
+
+ const chA = uriComponent.charCodeAt(pos + 1);
+ const chB = uriComponent.charCodeAt(pos + 2);
+
+ // when in a path -> check and accept %2f and %2F (fwd slash)
+ // when in a query string -> check and accept %3D, %26, and %3B (equals, ampersand, semi-colon)
+ if (
+ (isPath && chA === CharCode.Digit2 && (chB === CharCode.F || chB === CharCode.f))
+ ||
+ (isQueryString && (
+ (chA === CharCode.Digit2 && chB === CharCode.Digit6) // %26
+ ||
+ (chA === CharCode.Digit3 && (chB === CharCode.B || chB === CharCode.b || chB === CharCode.D || chB === CharCode.d)) // %3D, %3D
+ ))
+ ) {
+ if (nativeDecodePos !== -1) {
+ res += decodeURIComponent(uriComponent.substring(nativeDecodePos, pos));
+ nativeDecodePos = -1;
+ }
+
+ if (res !== undefined) {
+ res += uriComponent.substr(pos, 3);
+ }
+
+ pos += 2;
+ continue;
+ }
+
+ if (res === undefined) {
+ res = uriComponent.substring(0, pos);
+ }
+ if (nativeDecodePos === -1) {
+ nativeDecodePos = pos;
+ }
+
+ pos += 2;
+
+ } else {
+
+ if (nativeDecodePos !== -1) {
+ res += decodeURIComponent(uriComponent.substring(nativeDecodePos, pos));
+ nativeDecodePos = -1;
+ }
+
+ if (res !== undefined) {
+ res += String.fromCharCode(code);
+ }
+ }
+ }
+
+ if (nativeDecodePos !== -1) {
+ res += decodeURIComponent(uriComponent.substr(nativeDecodePos));
+ }
+
+ return res !== undefined ? res : uriComponent;
+}
+
// reserved characters: https://tools.ietf.org/html/rfc3986#section-2.2
const encodeTable: { [ch: number]: string } = {
[CharCode.Colon]: '%3A', // gen-delims
@@ -490,7 +578,7 @@ const encodeTable: { [ch: number]: string } = {
[CharCode.Space]: '%20',
};
-function encodeURIComponentFast(uriComponent: string, allowSlash: boolean): string {
+function encodeURIComponentFast(uriComponent: string, isPath: boolean, isQueryString: boolean): string {
let res: string | undefined = undefined;
let nativeEncodePos = -1;
@@ -506,7 +594,8 @@ function encodeURIComponentFast(uriComponent: string, allowSlash: boolean): stri
|| code === CharCode.Period
|| code === CharCode.Underline
|| code === CharCode.Tilde
- || (allowSlash && code === CharCode.Slash)
+ || (isPath && code === CharCode.Slash) // path => allow slash AS-IS
+ || (isQueryString && (code === CharCode.Equals || code === CharCode.Ampersand || code === CharCode.Semicolon)) // query string => allow &=;
) {
// check if we are delaying native encode
if (nativeEncodePos !== -1) {
@@ -518,6 +607,20 @@ function encodeURIComponentFast(uriComponent: string, allowSlash: boolean): stri
res += uriComponent.charAt(pos);
}
+ } else if (code === CharCode.PercentSign && isHex(uriComponent, pos + 1) && isHex(uriComponent, pos + 2)) {
+ // at percentage encoded value
+
+ // check if we are delaying native encode
+ if (nativeEncodePos !== -1) {
+ res += encodeURIComponent(uriComponent.substring(nativeEncodePos, pos));
+ nativeEncodePos = -1;
+ }
+ // check if we write into a new string (by default we try to return the param)
+ if (res !== undefined) {
+ res += uriComponent.substr(pos, 3);
+ }
+ pos += 2;
+
} else {
// encoding needed, we need to allocate a new string
if (res === undefined) {
@@ -606,6 +709,7 @@ function _asFormatted(uri: URI, skipEncoding: boolean): string {
let res = '';
let { scheme, authority, path, query, fragment } = uri;
+
if (scheme) {
res += scheme;
res += ':';
@@ -622,22 +726,22 @@ function _asFormatted(uri: URI, skipEncoding: boolean): string {
authority = authority.substr(idx + 1);
idx = userinfo.indexOf(':');
if (idx === -1) {
- res += encoder(userinfo, false);
+ res += encoder(userinfo, false, false);
} else {
// :@
- res += encoder(userinfo.substr(0, idx), false);
+ res += encoder(userinfo.substr(0, idx), false, false);
res += ':';
- res += encoder(userinfo.substr(idx + 1), false);
+ res += encoder(userinfo.substr(idx + 1), false, false);
}
res += '@';
}
authority = authority.toLowerCase();
idx = authority.indexOf(':');
if (idx === -1) {
- res += encoder(authority, false);
+ res += encoder(authority, false, false);
} else {
// :
- res += encoder(authority.substr(0, idx), false);
+ res += encoder(authority.substr(0, idx), false, false);
res += authority.substr(idx);
}
}
@@ -655,15 +759,15 @@ function _asFormatted(uri: URI, skipEncoding: boolean): string {
}
}
// encode the rest of the path
- res += encoder(path, true);
+ res += encoder(path, true, false);
}
if (query) {
res += '?';
- res += encoder(query, false);
+ res += encoder(query, false, _isQueryStringScheme(scheme));
}
if (fragment) {
res += '#';
- res += !skipEncoding ? encodeURIComponentFast(fragment, false) : fragment;
+ res += !skipEncoding ? encodeURIComponentFast(fragment, false, false) : fragment;
}
return res;
}
diff --git a/src/vs/base/node/config.ts b/src/vs/base/node/config.ts
index fe8d7538d85..4e12fd565ea 100644
--- a/src/vs/base/node/config.ts
+++ b/src/vs/base/node/config.ts
@@ -6,7 +6,7 @@
import * as fs from 'fs';
import { dirname } from 'vs/base/common/path';
import * as objects from 'vs/base/common/objects';
-import { IDisposable, DisposableStore } from 'vs/base/common/lifecycle';
+import { Disposable } from 'vs/base/common/lifecycle';
import { Event, Emitter } from 'vs/base/common/event';
import * as json from 'vs/base/common/json';
import { statLink } from 'vs/base/node/pfs';
@@ -41,18 +41,17 @@ export interface IConfigOptions {
* - delayed processing of changes to accomodate for lots of changes
* - configurable defaults
*/
-export class ConfigWatcher implements IConfigWatcher, IDisposable {
+export class ConfigWatcher extends Disposable implements IConfigWatcher {
private cache: T;
private parseErrors: json.ParseError[];
private disposed: boolean;
private loaded: boolean;
private timeoutHandle: NodeJS.Timer | null;
- private readonly disposables = new DisposableStore();
private readonly _onDidUpdateConfiguration: Emitter>;
constructor(private _path: string, private options: IConfigOptions = { defaultConfig: Object.create(null), onError: error => console.error(error) }) {
- this._onDidUpdateConfiguration = new Emitter>();
- this.disposables.add(this._onDidUpdateConfiguration);
+ super();
+ this._onDidUpdateConfiguration = this._register(new Emitter>());
this.registerWatcher();
this.initAsync();
@@ -123,7 +122,7 @@ export class ConfigWatcher implements IConfigWatcher, IDisposable {
this.watch(parentFolder, true);
// Check if the path is a symlink and watch its target if so
- this.handleSymbolicLink().then(undefined, error => { /* ignore error */ });
+ this.handleSymbolicLink().then(undefined, () => { /* ignore error */ });
}
private async handleSymbolicLink(): Promise {
@@ -141,9 +140,9 @@ export class ConfigWatcher implements IConfigWatcher, IDisposable {
}
if (isFolder) {
- this.disposables.add(watchFolder(path, (type, path) => path === this._path ? this.onConfigFileChange() : undefined, error => this.options.onError(error)));
+ this._register(watchFolder(path, (type, path) => path === this._path ? this.onConfigFileChange() : undefined, error => this.options.onError(error)));
} else {
- this.disposables.add(watchFile(path, (type, path) => this.onConfigFileChange(), error => this.options.onError(error)));
+ this._register(watchFile(path, () => this.onConfigFileChange(), error => this.options.onError(error)));
}
}
@@ -185,6 +184,6 @@ export class ConfigWatcher implements IConfigWatcher, IDisposable {
dispose(): void {
this.disposed = true;
- this.disposables.dispose();
+ super.dispose();
}
}
\ No newline at end of file
diff --git a/src/vs/base/node/processes.ts b/src/vs/base/node/processes.ts
index df8690d0011..5bee9f9eced 100644
--- a/src/vs/base/node/processes.ts
+++ b/src/vs/base/node/processes.ts
@@ -5,6 +5,7 @@
import * as path from 'vs/base/common/path';
import * as fs from 'fs';
+import { promisify } from 'util';
import * as cp from 'child_process';
import * as nls from 'vs/nls';
import * as Types from 'vs/base/common/types';
@@ -404,7 +405,7 @@ export function createQueuedSender(childProcess: cp.ChildProcess): IQueuedSender
}
export namespace win32 {
- export function findExecutable(command: string, cwd?: string, paths?: string[]): string {
+ export async function findExecutable(command: string, cwd?: string, paths?: string[]): Promise {
// If we have an absolute path then we take it.
if (path.isAbsolute(command)) {
return command;
@@ -435,15 +436,15 @@ export namespace win32 {
} else {
fullPath = path.join(cwd, pathEntry, command);
}
- if (fs.existsSync(fullPath)) {
+ if (await promisify(fs.exists)(fullPath)) {
return fullPath;
}
let withExtension = fullPath + '.com';
- if (fs.existsSync(withExtension)) {
+ if (await promisify(fs.exists)(withExtension)) {
return withExtension;
}
withExtension = fullPath + '.exe';
- if (fs.existsSync(withExtension)) {
+ if (await promisify(fs.exists)(withExtension)) {
return withExtension;
}
}
diff --git a/src/vs/base/parts/tree/browser/tree.ts b/src/vs/base/parts/tree/browser/tree.ts
index 970e05e7579..3d75631a62e 100644
--- a/src/vs/base/parts/tree/browser/tree.ts
+++ b/src/vs/base/parts/tree/browser/tree.ts
@@ -231,7 +231,7 @@ export interface IDataSource {
*
* You should not attempt to "move" an element to a different
* parent by keeping its ID. The idea here is to have tree location
- * related IDs (eg. full file path, in the Explorer example).
+ * related IDs (e.g. full file path, in the Explorer example).
*/
getId(tree: ITree, element: any): string;
diff --git a/src/vs/base/test/browser/hash.test.ts b/src/vs/base/test/browser/hash.test.ts
deleted file mode 100644
index adbedc411f1..00000000000
--- a/src/vs/base/test/browser/hash.test.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-/*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
-import * as assert from 'assert';
-import { createSHA1 } from 'vs/base/browser/hash';
-
-suite('Hash', () => {
- test('computeSHA1Hash', async () => {
- assert.equal(await createSHA1(''), 'da39a3ee5e6b4b0d3255bfef95601890afd80709');
- assert.equal(await createSHA1('hello world'), '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed');
- assert.equal(await createSHA1('da39a3ee5e6b4b0d3255bfef95601890afd80709'), '10a34637ad661d98ba3344717656fcc76209c2f8');
- assert.equal(await createSHA1('2aae6c35c94fcfb415dbe95f408b9ce91ee846ed'), 'd6b0d82cea4269b51572b8fab43adcee9fc3cf9a');
- assert.equal(await createSHA1('öäü_?ß()<>ÖÄÜ'), 'b64beaeff9e317b0193c8e40a2431b210388eba9');
- });
-});
\ No newline at end of file
diff --git a/src/vs/base/test/common/lifecycle.test.ts b/src/vs/base/test/common/lifecycle.test.ts
index 29e93e64a41..46d8a254b5b 100644
--- a/src/vs/base/test/common/lifecycle.test.ts
+++ b/src/vs/base/test/common/lifecycle.test.ts
@@ -42,7 +42,8 @@ suite('Lifecycle', () => {
assert(!disposable.isDisposed);
assert(!disposable2.isDisposed);
- dispose(disposable, disposable2);
+ dispose(disposable);
+ dispose(disposable2);
assert(disposable.isDisposed);
assert(disposable2.isDisposed);
diff --git a/src/vs/base/test/common/uri.test.ts b/src/vs/base/test/common/uri.test.ts
index 85f2ad691ac..a4495718fcf 100644
--- a/src/vs/base/test/common/uri.test.ts
+++ b/src/vs/base/test/common/uri.test.ts
@@ -63,7 +63,7 @@ suite('URI', () => {
assert.equal(URI.from({ scheme: 'http', authority: '', path: 'my/path' }).toString(), 'http:/my/path');
assert.equal(URI.from({ scheme: 'http', authority: '', path: '/my/path' }).toString(), 'http:/my/path');
//http://a-test-site.com/#test=true
- assert.equal(URI.from({ scheme: 'http', authority: 'a-test-site.com', path: '/', query: 'test=true' }).toString(), 'http://a-test-site.com/?test%3Dtrue');
+ assert.equal(URI.from({ scheme: 'http', authority: 'a-test-site.com', path: '/', query: 'test=true' }).toString(), 'http://a-test-site.com/?test=true');
assert.equal(URI.from({ scheme: 'http', authority: 'a-test-site.com', path: '/', query: '', fragment: 'test=true' }).toString(), 'http://a-test-site.com/#test%3Dtrue');
});
@@ -102,11 +102,11 @@ suite('URI', () => {
test('with, changes', () => {
assert.equal(URI.parse('before:some/file/path').with({ scheme: 'after' }).toString(), 'after:some/file/path');
- assert.equal(URI.from({ scheme: 's' }).with({ scheme: 'http', path: '/api/files/test.me', query: 't=1234' }).toString(), 'http:/api/files/test.me?t%3D1234');
- assert.equal(URI.from({ scheme: 's' }).with({ scheme: 'http', authority: '', path: '/api/files/test.me', query: 't=1234', fragment: '' }).toString(), 'http:/api/files/test.me?t%3D1234');
- assert.equal(URI.from({ scheme: 's' }).with({ scheme: 'https', authority: '', path: '/api/files/test.me', query: 't=1234', fragment: '' }).toString(), 'https:/api/files/test.me?t%3D1234');
- assert.equal(URI.from({ scheme: 's' }).with({ scheme: 'HTTP', authority: '', path: '/api/files/test.me', query: 't=1234', fragment: '' }).toString(), 'HTTP:/api/files/test.me?t%3D1234');
- assert.equal(URI.from({ scheme: 's' }).with({ scheme: 'HTTPS', authority: '', path: '/api/files/test.me', query: 't=1234', fragment: '' }).toString(), 'HTTPS:/api/files/test.me?t%3D1234');
+ assert.equal(URI.from({ scheme: 's' }).with({ scheme: 'http', path: '/api/files/test.me', query: 't=1234' }).toString(), 'http:/api/files/test.me?t=1234');
+ assert.equal(URI.from({ scheme: 's' }).with({ scheme: 'http', authority: '', path: '/api/files/test.me', query: 't=1234', fragment: '' }).toString(), 'http:/api/files/test.me?t=1234');
+ assert.equal(URI.from({ scheme: 's' }).with({ scheme: 'https', authority: '', path: '/api/files/test.me', query: 't=1234', fragment: '' }).toString(), 'https:/api/files/test.me?t=1234');
+ assert.equal(URI.from({ scheme: 's' }).with({ scheme: 'HTTP', authority: '', path: '/api/files/test.me', query: 't=1234', fragment: '' }).toString(), 'HTTP:/api/files/test.me?t=1234');
+ assert.equal(URI.from({ scheme: 's' }).with({ scheme: 'HTTPS', authority: '', path: '/api/files/test.me', query: 't=1234', fragment: '' }).toString(), 'HTTPS:/api/files/test.me?t=1234');
assert.equal(URI.from({ scheme: 's' }).with({ scheme: 'boo', authority: '', path: '/api/files/test.me', query: 't=1234', fragment: '' }).toString(), 'boo:/api/files/test.me?t%3D1234');
});
@@ -262,11 +262,11 @@ suite('URI', () => {
value = URI.file('c:\\test with %25\\path');
assert.equal(value.path, '/c:/test with %25/path');
- assert.equal(value.toString(), 'file:///c%3A/test%20with%20%2525/path');
+ assert.equal(value.toString(), 'file:///c%3A/test%20with%20%25/path');
value = URI.file('c:\\test with %25\\c#code');
assert.equal(value.path, '/c:/test with %25/c#code');
- assert.equal(value.toString(), 'file:///c%3A/test%20with%20%2525/c%23code');
+ assert.equal(value.toString(), 'file:///c%3A/test%20with%20%25/c%23code');
value = URI.file('\\\\shares');
assert.equal(value.scheme, 'file');
@@ -376,7 +376,7 @@ suite('URI', () => {
let uri = URI.parse('https://go.microsoft.com/fwlink/?LinkId=518008');
assert.equal(uri.query, 'LinkId=518008');
assert.equal(uri.toString(true), 'https://go.microsoft.com/fwlink/?LinkId=518008');
- assert.equal(uri.toString(), 'https://go.microsoft.com/fwlink/?LinkId%3D518008');
+ assert.equal(uri.toString(), 'https://go.microsoft.com/fwlink/?LinkId=518008');
let uri2 = URI.parse(uri.toString());
assert.equal(uri2.query, 'LinkId=518008');
@@ -385,7 +385,7 @@ suite('URI', () => {
uri = URI.parse('https://go.microsoft.com/fwlink/?LinkId=518008&foö&ké¥=üü');
assert.equal(uri.query, 'LinkId=518008&foö&ké¥=üü');
assert.equal(uri.toString(true), 'https://go.microsoft.com/fwlink/?LinkId=518008&foö&ké¥=üü');
- assert.equal(uri.toString(), 'https://go.microsoft.com/fwlink/?LinkId%3D518008%26fo%C3%B6%26k%C3%A9%C2%A5%3D%C3%BC%C3%BC');
+ assert.equal(uri.toString(), 'https://go.microsoft.com/fwlink/?LinkId=518008&fo%C3%B6&k%C3%A9%C2%A5=%C3%BC%C3%BC');
uri2 = URI.parse(uri.toString());
assert.equal(uri2.query, 'LinkId=518008&foö&ké¥=üü');
@@ -426,6 +426,57 @@ suite('URI', () => {
assert.equal(uri.toString(true), input);
});
+ test('Support URL specific encodings (query component) #25852', function () {
+ let input = 'http://example.com/over/there?name=ferret';
+ assert.equal(input, URI.parse(input).toString());
+
+ input = 'http://example.com/over/there?name=ferret&foo=bar';
+ assert.equal(input, URI.parse(input).toString());
+
+ input = 'attp://example.com/over/there?name=ferret';
+ assert.equal('attp://example.com/over/there?name%3Dferret', URI.parse(input).toString());
+ });
+
+ test('Uri#parse can break path-component #45515', function () {
+ let uri: URI;
+ uri = URI.from({ scheme: 's', authority: 'a', path: '/o%2f' });
+ assert.equal(uri.toString(), 's://a/o%2f');
+ uri = URI.from({ scheme: 's', authority: 'a', path: '/o%2fü' });
+ assert.equal(uri.toString(), 's://a/o%2f%C3%BC');
+ uri = URI.from({ scheme: 's', authority: 'a', path: '/o%2f%' });
+ assert.equal(uri.toString(), 's://a/o%2f%25');
+
+ uri = URI.file('/test with %25/c#code');
+ assert.equal(uri.path, '/test with %25/c#code');
+ assert.equal(uri.toString(), 'file:///test%20with%20%25/c%23code');
+
+ uri = URI.from({
+ scheme: 'http',
+ authority: 'a',
+ path: '/o/products%2FzVNZkudXJyq8bPGTXUxx%2FBetterave-Sesame.jpg'
+ });
+ assert.equal(uri.path, '/o/products%2FzVNZkudXJyq8bPGTXUxx%2FBetterave-Sesame.jpg');
+ assert.equal(uri.toString(), 'http://a/o/products%2FzVNZkudXJyq8bPGTXUxx%2FBetterave-Sesame.jpg');
+
+ assert.equal(URI.parse(uri.toString()).path, '/o/products%2FzVNZkudXJyq8bPGTXUxx%2FBetterave-Sesame.jpg');
+ assert.equal(uri.toString(), URI.parse(uri.toString()).toString()); // identity
+
+ uri = URI.parse('s://a/p%2ft%c3%bc');
+ assert.equal(uri.path, '/p%2ftü');
+
+ uri = URI.parse('s://a/%c3%bcp%2f-REST');
+ assert.equal(uri.path, '/üp%2f-REST');
+
+ uri = URI.parse('s://a/%c3%bcp%2fd%c3%b6wn');
+ assert.equal(uri.path, '/üp%2fdöwn');
+
+ //https://github.com/microsoft/vscode/issues/25852
+ uri = URI.parse('http://www.test.com/path/service?authId=CN%3DQ10');
+ assert.equal(uri.query, 'authId=CN%3DQ10');
+ assert.equal(uri.toString(), 'http://www.test.com/path/service?authId=CN%3DQ10');
+ });
+
+
test('URI - (de)serialize', function () {
const values = [
diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts
index 419048741e7..3fe41495fab 100644
--- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts
+++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts
@@ -79,7 +79,7 @@ class MainProcessService implements IMainProcessService {
}
}
-function main(server: Server, initData: ISharedProcessInitData, configuration: ISharedProcessConfiguration): void {
+async function main(server: Server, initData: ISharedProcessInitData, configuration: ISharedProcessConfiguration): Promise {
const services = new ServiceCollection();
const disposables: IDisposable[] = [];
@@ -96,12 +96,15 @@ function main(server: Server, initData: ISharedProcessInitData, configuration: I
const logLevelClient = new LogLevelSetterChannelClient(server.getChannel('loglevel', mainRouter));
const logService = new FollowerLogService(logLevelClient, new SpdLogService('sharedprocess', environmentService.logsPath, initData.logLevel));
disposables.push(logService);
-
logService.info('main', JSON.stringify(configuration));
+ const configurationService = new ConfigurationService(environmentService.appSettingsPath);
+ disposables.push(configurationService);
+ await configurationService.initialize();
+
services.set(IEnvironmentService, environmentService);
services.set(ILogService, logService);
- services.set(IConfigurationService, new SyncDescriptor(ConfigurationService, [environmentService.appSettingsPath]));
+ services.set(IConfigurationService, configurationService);
services.set(IRequestService, new SyncDescriptor(RequestService));
services.set(IDownloadService, new SyncDescriptor(DownloadService));
@@ -218,6 +221,6 @@ async function handshake(configuration: ISharedProcessConfiguration): Promise ignore stored colors and layouts
+ // high contrast mode has been turned on from the outside, e.g. OS -> ignore stored colors and layouts
if (data && configuration.highContrast && data.baseTheme !== 'hc-black') {
data = undefined;
}
diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts
index 240dd189202..47020bc4b0b 100644
--- a/src/vs/code/electron-main/app.ts
+++ b/src/vs/code/electron-main/app.ts
@@ -37,7 +37,6 @@ import product from 'vs/platform/product/node/product';
import pkg from 'vs/platform/product/node/package';
import { ProxyAuthHandler } from 'vs/code/electron-main/auth';
import { Disposable } from 'vs/base/common/lifecycle';
-import { ConfigurationService } from 'vs/platform/configuration/node/configurationService';
import { IWindowsMainService, ICodeWindow } from 'vs/platform/windows/electron-main/windows';
import { IHistoryMainService } from 'vs/platform/history/common/history';
import { withUndefinedAsNull } from 'vs/base/common/types';
@@ -98,7 +97,7 @@ export class CodeApplication extends Disposable {
@ILogService private readonly logService: ILogService,
@IEnvironmentService private readonly environmentService: IEnvironmentService,
@ILifecycleService private readonly lifecycleService: ILifecycleService,
- @IConfigurationService private readonly configurationService: ConfigurationService,
+ @IConfigurationService private readonly configurationService: IConfigurationService,
@IStateService private readonly stateService: IStateService
) {
super();
@@ -232,7 +231,7 @@ export class CodeApplication extends Disposable {
const webContents = event.sender;
try {
- const shellEnv = await getShellEnvironment(this.logService);
+ const shellEnv = await getShellEnvironment(this.logService, this.environmentService);
if (!webContents.isDestroyed()) {
webContents.send('vscode:acceptShellEnv', shellEnv);
}
@@ -341,7 +340,7 @@ export class CodeApplication extends Disposable {
const sharedProcessClient = sharedProcess.whenReady().then(() => connect(this.environmentService.sharedIPCHandle, 'main'));
this.lifecycleService.when(LifecycleMainPhase.AfterWindowOpen).then(() => {
this._register(new RunOnceScheduler(async () => {
- const userEnv = await getShellEnvironment(this.logService);
+ const userEnv = await getShellEnvironment(this.logService, this.environmentService);
sharedProcess.spawn(userEnv);
}, 3000)).schedule();
diff --git a/src/vs/code/electron-main/auth.ts b/src/vs/code/electron-main/auth.ts
index ed92533c32f..d6023519555 100644
--- a/src/vs/code/electron-main/auth.ts
+++ b/src/vs/code/electron-main/auth.ts
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import { localize } from 'vs/nls';
-import { IDisposable, dispose } from 'vs/base/common/lifecycle';
+import { Disposable } from 'vs/base/common/lifecycle';
import { IWindowsMainService } from 'vs/platform/windows/electron-main/windows';
import { Event } from 'vs/base/common/event';
import { BrowserWindow, app } from 'electron';
@@ -22,18 +22,18 @@ type Credentials = {
password: string;
};
-export class ProxyAuthHandler {
+export class ProxyAuthHandler extends Disposable {
_serviceBrand: any;
private retryCount = 0;
- private disposables: IDisposable[] = [];
constructor(
@IWindowsMainService private readonly windowsMainService: IWindowsMainService
) {
+ super();
const onLogin = Event.fromNodeEventEmitter(app, 'login', (event, webContents, req, authInfo, cb) => ({ event, webContents, req, authInfo, cb }));
- onLogin(this.onLogin, this, this.disposables);
+ this._register(onLogin(this.onLogin, this));
}
private onLogin({ event, authInfo, cb }: LoginEvent): void {
@@ -85,8 +85,4 @@ export class ProxyAuthHandler {
win.close();
});
}
-
- dispose(): void {
- this.disposables = dispose(this.disposables);
- }
}
\ No newline at end of file
diff --git a/src/vs/code/electron-main/main.ts b/src/vs/code/electron-main/main.ts
index 12d0c606893..e572f989fbc 100644
--- a/src/vs/code/electron-main/main.ts
+++ b/src/vs/code/electron-main/main.ts
@@ -97,10 +97,11 @@ class CodeMain {
// Init services
await instantiationService.invokeFunction(async accessor => {
const environmentService = accessor.get(IEnvironmentService);
+ const configurationService = accessor.get(IConfigurationService);
const stateService = accessor.get(IStateService);
try {
- await this.initServices(environmentService, stateService as StateService);
+ await this.initServices(environmentService, configurationService as ConfigurationService, stateService as StateService);
} catch (error) {
// Show a dialog for errors that can be resolved by the user
@@ -140,9 +141,9 @@ class CodeMain {
process.once('exit', () => logService.dispose());
services.set(ILogService, logService);
+ services.set(IConfigurationService, new ConfigurationService(environmentService.appSettingsPath));
services.set(ILifecycleService, new SyncDescriptor(LifecycleService));
services.set(IStateService, new SyncDescriptor(StateService));
- services.set(IConfigurationService, new SyncDescriptor(ConfigurationService, [environmentService.appSettingsPath]));
services.set(IRequestService, new SyncDescriptor(RequestService));
services.set(IDiagnosticsService, new SyncDescriptor(DiagnosticsService));
services.set(IThemeMainService, new SyncDescriptor(ThemeMainService));
@@ -150,7 +151,7 @@ class CodeMain {
return [new InstantiationService(services, true), instanceEnvironment];
}
- private initServices(environmentService: IEnvironmentService, stateService: StateService): Promise {
+ private initServices(environmentService: IEnvironmentService, configurationService: ConfigurationService, stateService: StateService): Promise {
// Environment service (paths)
const environmentServiceInitialization = Promise.all([
@@ -162,10 +163,13 @@ class CodeMain {
environmentService.backupHome
].map((path): undefined | Promise => path ? mkdirp(path) : undefined));
+ // Configuration service
+ const configurationServiceInitialization = configurationService.initialize();
+
// State service
const stateServiceInitialization = stateService.init();
- return Promise.all([environmentServiceInitialization, stateServiceInitialization]);
+ return Promise.all([environmentServiceInitialization, configurationServiceInitialization, stateServiceInitialization]);
}
private patchEnvironment(environmentService: IEnvironmentService): typeof process.env {
diff --git a/src/vs/code/electron-main/windows.ts b/src/vs/code/electron-main/windows.ts
index b7446dc4074..1087d110e84 100644
--- a/src/vs/code/electron-main/windows.ts
+++ b/src/vs/code/electron-main/windows.ts
@@ -39,6 +39,7 @@ import { getRemoteAuthority } from 'vs/platform/remote/common/remoteHosts';
import { restoreWindowsState, WindowsStateStorageData, getWindowsStateStoreData } from 'vs/code/electron-main/windowsStateStorage';
import { getWorkspaceIdentifier } from 'vs/platform/workspaces/electron-main/workspacesMainService';
import { once } from 'vs/base/common/functional';
+import { Disposable } from 'vs/base/common/lifecycle';
const enum WindowError {
UNRESPONSIVE = 1,
@@ -154,7 +155,7 @@ interface IWorkspacePathToOpen {
label?: string;
}
-export class WindowsManager implements IWindowsMainService {
+export class WindowsManager extends Disposable implements IWindowsMainService {
_serviceBrand: any;
@@ -168,16 +169,16 @@ export class WindowsManager implements IWindowsMainService {
private readonly dialogs: Dialogs;
private readonly workspacesManager: WorkspacesManager;
- private _onWindowReady = new Emitter();
+ private readonly _onWindowReady = this._register(new Emitter());
readonly onWindowReady: CommonEvent = this._onWindowReady.event;
- private _onWindowClose = new Emitter();
+ private readonly _onWindowClose = this._register(new Emitter());
readonly onWindowClose: CommonEvent = this._onWindowClose.event;
- private _onWindowLoad = new Emitter();
+ private readonly _onWindowLoad = this._register(new Emitter());
readonly onWindowLoad: CommonEvent = this._onWindowLoad.event;
- private _onWindowsCountChanged = new Emitter();
+ private readonly _onWindowsCountChanged = this._register(new Emitter());
readonly onWindowsCountChanged: CommonEvent = this._onWindowsCountChanged.event;
constructor(
@@ -194,6 +195,7 @@ export class WindowsManager implements IWindowsMainService {
@IWorkspacesMainService private readonly workspacesMainService: IWorkspacesMainService,
@IInstantiationService private readonly instantiationService: IInstantiationService
) {
+ super();
const windowsStateStoreData = this.stateService.getItem(WindowsManager.windowsStateStorageKey);
this.windowsState = restoreWindowsState(windowsStateStoreData);
diff --git a/src/vs/code/node/cliProcessMain.ts b/src/vs/code/node/cliProcessMain.ts
index f5116c42827..d9255fca3be 100644
--- a/src/vs/code/node/cliProcessMain.ts
+++ b/src/vs/code/node/cliProcessMain.ts
@@ -44,7 +44,7 @@ import { SpdLogService } from 'vs/platform/log/node/spdlogService';
const notFound = (id: string) => localize('notFound', "Extension '{0}' not found.", id);
const notInstalled = (id: string) => localize('notInstalled', "Extension '{0}' is not installed.", id);
-const useId = localize('useId', "Make sure you use the full extension ID, including the publisher, eg: {0}", 'ms-vscode.csharp');
+const useId = localize('useId', "Make sure you use the full extension ID, including the publisher, e.g.: {0}", 'ms-vscode.csharp');
function getId(manifest: IExtensionManifest, withVersion?: boolean): string {
if (withVersion) {
@@ -275,17 +275,22 @@ export class Main {
const eventPrefix = 'monacoworkbench';
-export function main(argv: ParsedArgs): Promise {
+export async function main(argv: ParsedArgs): Promise {
const services = new ServiceCollection();
const environmentService = new EnvironmentService(argv, process.execPath);
const logService: ILogService = new SpdLogService('cli', environmentService.logsPath, getLogLevel(environmentService));
process.once('exit', () => logService.dispose());
-
logService.info('main', argv);
+ await Promise.all([environmentService.appSettingsHome, environmentService.extensionsPath].map(p => mkdirp(p)));
+
+ const configurationService = new ConfigurationService(environmentService.appSettingsPath);
+ await configurationService.initialize();
+
services.set(IEnvironmentService, environmentService);
services.set(ILogService, logService);
+ services.set(IConfigurationService, configurationService);
services.set(IStateService, new SyncDescriptor(StateService));
const instantiationService: IInstantiationService = new InstantiationService(services);
@@ -294,40 +299,37 @@ export function main(argv: ParsedArgs): Promise {
const envService = accessor.get(IEnvironmentService);
const stateService = accessor.get(IStateService);
- return Promise.all([envService.appSettingsHome, envService.extensionsPath].map(p => mkdirp(p))).then(() => {
- const { appRoot, extensionsPath, extensionDevelopmentLocationURI: extensionDevelopmentLocationURI, isBuilt, installSourcePath } = envService;
+ const { appRoot, extensionsPath, extensionDevelopmentLocationURI: extensionDevelopmentLocationURI, isBuilt, installSourcePath } = envService;
- const services = new ServiceCollection();
- services.set(IConfigurationService, new SyncDescriptor(ConfigurationService, [environmentService.appSettingsPath]));
- services.set(IRequestService, new SyncDescriptor(RequestService));
- services.set(IExtensionManagementService, new SyncDescriptor(ExtensionManagementService));
- services.set(IExtensionGalleryService, new SyncDescriptor(ExtensionGalleryService));
+ const services = new ServiceCollection();
+ services.set(IRequestService, new SyncDescriptor(RequestService));
+ services.set(IExtensionManagementService, new SyncDescriptor(ExtensionManagementService));
+ services.set(IExtensionGalleryService, new SyncDescriptor(ExtensionGalleryService));
- const appenders: AppInsightsAppender[] = [];
- if (isBuilt && !extensionDevelopmentLocationURI && !envService.args['disable-telemetry'] && product.enableTelemetry) {
+ const appenders: AppInsightsAppender[] = [];
+ if (isBuilt && !extensionDevelopmentLocationURI && !envService.args['disable-telemetry'] && product.enableTelemetry) {
- if (product.aiConfig && product.aiConfig.asimovKey) {
- appenders.push(new AppInsightsAppender(eventPrefix, null, product.aiConfig.asimovKey, logService));
- }
-
- const config: ITelemetryServiceConfig = {
- appender: combinedAppender(...appenders),
- commonProperties: resolveCommonProperties(product.commit, pkg.version, stateService.getItem('telemetry.machineId'), installSourcePath),
- piiPaths: [appRoot, extensionsPath]
- };
-
- services.set(ITelemetryService, new SyncDescriptor(TelemetryService, [config]));
- } else {
- services.set(ITelemetryService, NullTelemetryService);
+ if (product.aiConfig && product.aiConfig.asimovKey) {
+ appenders.push(new AppInsightsAppender(eventPrefix, null, product.aiConfig.asimovKey, logService));
}
- const instantiationService2 = instantiationService.createChild(services);
- const main = instantiationService2.createInstance(Main);
+ const config: ITelemetryServiceConfig = {
+ appender: combinedAppender(...appenders),
+ commonProperties: resolveCommonProperties(product.commit, pkg.version, stateService.getItem('telemetry.machineId'), installSourcePath),
+ piiPaths: [appRoot, extensionsPath]
+ };
- return main.run(argv).then(() => {
- // Dispose the AI adapter so that remaining data gets flushed.
- return combinedAppender(...appenders).dispose();
- });
+ services.set(ITelemetryService, new SyncDescriptor(TelemetryService, [config]));
+ } else {
+ services.set(ITelemetryService, NullTelemetryService);
+ }
+
+ const instantiationService2 = instantiationService.createChild(services);
+ const main = instantiationService2.createInstance(Main);
+
+ return main.run(argv).then(() => {
+ // Dispose the AI adapter so that remaining data gets flushed.
+ return combinedAppender(...appenders).dispose();
});
});
}
\ No newline at end of file
diff --git a/src/vs/code/node/shellEnv.ts b/src/vs/code/node/shellEnv.ts
index baabaf7b959..eea6922afbe 100644
--- a/src/vs/code/node/shellEnv.ts
+++ b/src/vs/code/node/shellEnv.ts
@@ -8,6 +8,7 @@ import { assign } from 'vs/base/common/objects';
import { generateUuid } from 'vs/base/common/uuid';
import { isWindows } from 'vs/base/common/platform';
import { ILogService } from 'vs/platform/log/common/log';
+import { IEnvironmentService } from 'vs/platform/environment/common/environment';
function getUnixShellEnvironment(logService: ILogService): Promise {
const promise = new Promise((resolve, reject) => {
@@ -89,9 +90,12 @@ let _shellEnv: Promise;
* This should only be done when Code itself is not launched
* from within a shell.
*/
-export function getShellEnvironment(logService: ILogService): Promise {
+export function getShellEnvironment(logService: ILogService, environmentService: IEnvironmentService): Promise {
if (_shellEnv === undefined) {
- if (isWindows) {
+ if (environmentService.args['disable-user-env-probe']) {
+ logService.trace('getShellEnvironment: disable-user-env-probe set, skipping');
+ _shellEnv = Promise.resolve({});
+ } else if (isWindows) {
logService.trace('getShellEnvironment: runing on windows, skipping');
_shellEnv = Promise.resolve({});
} else if (process.env['VSCODE_CLI'] === '1') {
diff --git a/src/vs/editor/browser/view/viewImpl.ts b/src/vs/editor/browser/view/viewImpl.ts
index b6240b274a1..41afb8404aa 100644
--- a/src/vs/editor/browser/view/viewImpl.ts
+++ b/src/vs/editor/browser/view/viewImpl.ts
@@ -132,7 +132,7 @@ export class View extends ViewEventHandler {
this._setLayout();
// Pointer handler
- this.pointerHandler = new PointerHandler(this._context, viewController, this.createPointerHandlerHelper());
+ this.pointerHandler = this._register(new PointerHandler(this._context, viewController, this.createPointerHandlerHelper()));
this._register(model.addEventListener((events: viewEvents.ViewEvent[]) => {
this.eventDispatcher.emitMany(events);
@@ -342,8 +342,6 @@ export class View extends ViewEventHandler {
this.eventDispatcher.removeEventHandler(this);
this.outgoingEvents.dispose();
- this.pointerHandler.dispose();
-
this.viewLines.dispose();
// Destroy view parts
diff --git a/src/vs/editor/browser/widget/codeEditorWidget.ts b/src/vs/editor/browser/widget/codeEditorWidget.ts
index adaf6b71bcf..0cd342d195c 100644
--- a/src/vs/editor/browser/widget/codeEditorWidget.ts
+++ b/src/vs/editor/browser/widget/codeEditorWidget.ts
@@ -38,7 +38,8 @@ import { ClassName } from 'vs/editor/common/model/intervalTree';
import { ModelDecorationOptions } from 'vs/editor/common/model/textModel';
import { IModelContentChangedEvent, IModelDecorationsChangedEvent, IModelLanguageChangedEvent, IModelLanguageConfigurationChangedEvent, IModelOptionsChangedEvent } from 'vs/editor/common/model/textModelEvents';
import * as modes from 'vs/editor/common/modes';
-import { editorErrorBorder, editorErrorForeground, editorHintBorder, editorHintForeground, editorInfoBorder, editorInfoForeground, editorUnnecessaryCodeBorder, editorUnnecessaryCodeOpacity, editorWarningBorder, editorWarningForeground } from 'vs/editor/common/view/editorColorRegistry';
+import { editorUnnecessaryCodeBorder, editorUnnecessaryCodeOpacity } from 'vs/editor/common/view/editorColorRegistry';
+import { editorErrorBorder, editorErrorForeground, editorHintBorder, editorHintForeground, editorInfoBorder, editorInfoForeground, editorWarningBorder, editorWarningForeground } from 'vs/platform/theme/common/colorRegistry';
import { VerticalRevealType } from 'vs/editor/common/view/viewEvents';
import { IEditorWhitespace } from 'vs/editor/common/viewLayout/whitespaceComputer';
import { ViewModel } from 'vs/editor/common/viewModel/viewModelImpl';
diff --git a/src/vs/editor/browser/widget/diffNavigator.ts b/src/vs/editor/browser/widget/diffNavigator.ts
index 29afe7ec63e..1c941ed0fac 100644
--- a/src/vs/editor/browser/widget/diffNavigator.ts
+++ b/src/vs/editor/browser/widget/diffNavigator.ts
@@ -5,7 +5,7 @@
import * as assert from 'vs/base/common/assert';
import { Emitter, Event } from 'vs/base/common/event';
-import { IDisposable, dispose } from 'vs/base/common/lifecycle';
+import { Disposable } from 'vs/base/common/lifecycle';
import * as objects from 'vs/base/common/objects';
import { IDiffEditor } from 'vs/editor/browser/editorBrowser';
import { ICursorPositionChangedEvent } from 'vs/editor/common/controller/cursorEvents';
@@ -33,12 +33,11 @@ const defaultOptions: Options = {
/**
* Create a new diff navigator for the provided diff editor.
*/
-export class DiffNavigator {
+export class DiffNavigator extends Disposable {
private readonly _editor: IDiffEditor;
private readonly _options: Options;
- private readonly _disposables: IDisposable[];
- private readonly _onDidUpdate = new Emitter();
+ private readonly _onDidUpdate = this._register(new Emitter());
readonly onDidUpdate: Event = this._onDidUpdate.event;
@@ -49,11 +48,11 @@ export class DiffNavigator {
private ignoreSelectionChange: boolean;
constructor(editor: IDiffEditor, options: Options = {}) {
+ super();
this._editor = editor;
this._options = objects.mixin(options, defaultOptions, false);
this.disposed = false;
- this._disposables = [];
this.nextIdx = -1;
this.ranges = [];
@@ -61,11 +60,11 @@ export class DiffNavigator {
this.revealFirst = Boolean(this._options.alwaysRevealFirst);
// hook up to diff editor for diff, disposal, and caret move
- this._disposables.push(this._editor.onDidDispose(() => this.dispose()));
- this._disposables.push(this._editor.onDidUpdateDiff(() => this._onDiffUpdated()));
+ this._register(this._editor.onDidDispose(() => this.dispose()));
+ this._register(this._editor.onDidUpdateDiff(() => this._onDiffUpdated()));
if (this._options.followsCaret) {
- this._disposables.push(this._editor.getModifiedEditor().onDidChangeCursorPosition((e: ICursorPositionChangedEvent) => {
+ this._register(this._editor.getModifiedEditor().onDidChangeCursorPosition((e: ICursorPositionChangedEvent) => {
if (this.ignoreSelectionChange) {
return;
}
@@ -73,7 +72,7 @@ export class DiffNavigator {
}));
}
if (this._options.alwaysRevealFirst) {
- this._disposables.push(this._editor.getModifiedEditor().onDidChangeModel((e) => {
+ this._register(this._editor.getModifiedEditor().onDidChangeModel((e) => {
this.revealFirst = true;
}));
}
@@ -216,9 +215,7 @@ export class DiffNavigator {
}
dispose(): void {
- dispose(this._disposables);
- this._disposables.length = 0;
- this._onDidUpdate.dispose();
+ super.dispose();
this.ranges = [];
this.disposed = true;
}
diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts
index aea28ac2161..ed6e0782e9f 100644
--- a/src/vs/editor/common/modes.ts
+++ b/src/vs/editor/common/modes.ts
@@ -1461,15 +1461,21 @@ export interface IWebviewPanelOptions {
readonly retainContextWhenHidden?: boolean;
}
-export interface ICodeLensSymbol {
+export interface CodeLens {
range: IRange;
id?: string;
command?: Command;
}
+
+export interface CodeLensList {
+ lenses: CodeLens[];
+ dispose(): void;
+}
+
export interface CodeLensProvider {
onDidChange?: Event;
- provideCodeLenses(model: model.ITextModel, token: CancellationToken): ProviderResult;
- resolveCodeLens?(model: model.ITextModel, codeLens: ICodeLensSymbol, token: CancellationToken): ProviderResult;
+ provideCodeLenses(model: model.ITextModel, token: CancellationToken): ProviderResult;
+ resolveCodeLens?(model: model.ITextModel, codeLens: CodeLens, token: CancellationToken): ProviderResult;
}
// --- feature registries ------
diff --git a/src/vs/editor/common/view/editorColorRegistry.ts b/src/vs/editor/common/view/editorColorRegistry.ts
index 27ccaf58e6b..2ee2b7c8831 100644
--- a/src/vs/editor/common/view/editorColorRegistry.ts
+++ b/src/vs/editor/common/view/editorColorRegistry.ts
@@ -5,7 +5,7 @@
import * as nls from 'vs/nls';
import { Color, RGBA } from 'vs/base/common/color';
-import { activeContrastBorder, editorBackground, editorForeground, registerColor } from 'vs/platform/theme/common/colorRegistry';
+import { activeContrastBorder, editorBackground, editorForeground, registerColor, editorWarningForeground, editorInfoForeground, editorWarningBorder, editorInfoBorder } from 'vs/platform/theme/common/colorRegistry';
import { registerThemingParticipant } from 'vs/platform/theme/common/themeService';
/**
@@ -37,26 +37,14 @@ export const editorOverviewRulerBorder = registerColor('editorOverviewRuler.bord
export const editorGutter = registerColor('editorGutter.background', { dark: editorBackground, light: editorBackground, hc: editorBackground }, nls.localize('editorGutter', 'Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.'));
-export const editorErrorForeground = registerColor('editorError.foreground', { dark: '#ea4646', light: '#d60a0a', hc: null }, nls.localize('errorForeground', 'Foreground color of error squigglies in the editor.'));
-export const editorErrorBorder = registerColor('editorError.border', { dark: null, light: null, hc: Color.fromHex('#E47777').transparent(0.8) }, nls.localize('errorBorder', 'Border color of error squigglies in the editor.'));
-
-export const editorWarningForeground = registerColor('editorWarning.foreground', { dark: '#4d9e4d', light: '#117711', hc: null }, nls.localize('warningForeground', 'Foreground color of warning squigglies in the editor.'));
-export const editorWarningBorder = registerColor('editorWarning.border', { dark: null, light: null, hc: Color.fromHex('#71B771').transparent(0.8) }, nls.localize('warningBorder', 'Border color of warning squigglies in the editor.'));
-
-export const editorInfoForeground = registerColor('editorInfo.foreground', { dark: '#008000', light: '#008000', hc: null }, nls.localize('infoForeground', 'Foreground color of info squigglies in the editor.'));
-export const editorInfoBorder = registerColor('editorInfo.border', { dark: null, light: null, hc: Color.fromHex('#71B771').transparent(0.8) }, nls.localize('infoBorder', 'Border color of info squigglies in the editor.'));
-
-export const editorHintForeground = registerColor('editorHint.foreground', { dark: Color.fromHex('#eeeeee').transparent(0.7), light: '#6c6c6c', hc: null }, nls.localize('hintForeground', 'Foreground color of hint squigglies in the editor.'));
-export const editorHintBorder = registerColor('editorHint.border', { dark: null, light: null, hc: Color.fromHex('#eeeeee').transparent(0.8) }, nls.localize('hintBorder', 'Border color of hint squigglies in the editor.'));
-
export const editorUnnecessaryCodeBorder = registerColor('editorUnnecessaryCode.border', { dark: null, light: null, hc: Color.fromHex('#fff').transparent(0.8) }, nls.localize('unnecessaryCodeBorder', 'Border color of unnecessary (unused) source code in the editor.'));
export const editorUnnecessaryCodeOpacity = registerColor('editorUnnecessaryCode.opacity', { dark: Color.fromHex('#000a'), light: Color.fromHex('#0007'), hc: null }, nls.localize('unnecessaryCodeOpacity', 'Opacity of unnecessary (unused) source code in the editor. For example, "#000000c0" will render the code with 75% opacity. For high contrast themes, use the \'editorUnnecessaryCode.border\' theme color to underline unnecessary code instead of fading it out.'));
const rulerRangeDefault = new Color(new RGBA(0, 122, 204, 0.6));
export const overviewRulerRangeHighlight = registerColor('editorOverviewRuler.rangeHighlightForeground', { dark: rulerRangeDefault, light: rulerRangeDefault, hc: rulerRangeDefault }, nls.localize('overviewRulerRangeHighlight', 'Overview ruler marker color for range highlights. The color must not be opaque so as not to hide underlying decorations.'), true);
export const overviewRulerError = registerColor('editorOverviewRuler.errorForeground', { dark: new Color(new RGBA(255, 18, 18, 0.7)), light: new Color(new RGBA(255, 18, 18, 0.7)), hc: new Color(new RGBA(255, 50, 50, 1)) }, nls.localize('overviewRuleError', 'Overview ruler marker color for errors.'));
-export const overviewRulerWarning = registerColor('editorOverviewRuler.warningForeground', { dark: new Color(new RGBA(18, 136, 18, 0.7)), light: new Color(new RGBA(18, 136, 18, 0.7)), hc: new Color(new RGBA(50, 255, 50, 1)) }, nls.localize('overviewRuleWarning', 'Overview ruler marker color for warnings.'));
-export const overviewRulerInfo = registerColor('editorOverviewRuler.infoForeground', { dark: new Color(new RGBA(18, 18, 136, 0.7)), light: new Color(new RGBA(18, 18, 136, 0.7)), hc: new Color(new RGBA(50, 50, 255, 1)) }, nls.localize('overviewRuleInfo', 'Overview ruler marker color for infos.'));
+export const overviewRulerWarning = registerColor('editorOverviewRuler.warningForeground', { dark: editorWarningForeground, light: editorWarningForeground, hc: editorWarningBorder }, nls.localize('overviewRuleWarning', 'Overview ruler marker color for warnings.'));
+export const overviewRulerInfo = registerColor('editorOverviewRuler.infoForeground', { dark: editorInfoForeground, light: editorInfoForeground, hc: editorInfoBorder }, nls.localize('overviewRuleInfo', 'Overview ruler marker color for infos.'));
// contains all color rules that used to defined in editor/browser/widget/editor.css
registerThemingParticipant((theme, collector) => {
diff --git a/src/vs/editor/contrib/codeAction/codeActionCommands.ts b/src/vs/editor/contrib/codeAction/codeActionCommands.ts
index 7d46f79b6a0..150f483052e 100644
--- a/src/vs/editor/contrib/codeAction/codeActionCommands.ts
+++ b/src/vs/editor/contrib/codeAction/codeActionCommands.ts
@@ -64,7 +64,7 @@ export class QuickFixController extends Disposable implements IEditorContributio
this._editor = editor;
this._model = new CodeActionModel(this._editor, markerService, contextKeyService, progressService);
- this._codeActionContextMenu = new CodeActionContextMenu(editor, contextMenuService, action => this._onApplyCodeAction(action));
+ this._codeActionContextMenu = this._register(new CodeActionContextMenu(editor, contextMenuService, action => this._onApplyCodeAction(action)));
this._lightBulbWidget = this._register(new LightBulbWidget(editor));
this._updateLightBulbTitle();
diff --git a/src/vs/editor/contrib/codeAction/codeActionModel.ts b/src/vs/editor/contrib/codeAction/codeActionModel.ts
index 46b5956d0d2..91949db78d6 100644
--- a/src/vs/editor/contrib/codeAction/codeActionModel.ts
+++ b/src/vs/editor/contrib/codeAction/codeActionModel.ts
@@ -5,7 +5,7 @@
import { CancelablePromise, createCancelablePromise, TimeoutTimer } from 'vs/base/common/async';
import { Emitter, Event } from 'vs/base/common/event';
-import { dispose, IDisposable } from 'vs/base/common/lifecycle';
+import { dispose, Disposable } from 'vs/base/common/lifecycle';
import { URI } from 'vs/base/common/uri';
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
import { Position } from 'vs/editor/common/core/position';
@@ -20,10 +20,9 @@ import { CodeActionTrigger } from './codeActionTrigger';
export const SUPPORTED_CODE_ACTIONS = new RawContextKey('supportedCodeAction', '');
-export class CodeActionOracle {
+export class CodeActionOracle extends Disposable {
- private _disposables: IDisposable[] = [];
- private readonly _autoTriggerTimer = new TimeoutTimer();
+ private readonly _autoTriggerTimer = this._register(new TimeoutTimer());
constructor(
private readonly _editor: ICodeEditor,
@@ -32,15 +31,9 @@ export class CodeActionOracle {
private readonly _delay: number = 250,
private readonly _progressService?: ILocalProgressService,
) {
- this._disposables.push(
- this._markerService.onMarkerChanged(e => this._onMarkerChanges(e)),
- this._editor.onDidChangeCursorPosition(() => this._onCursorChange()),
- );
- }
-
- dispose(): void {
- this._disposables = dispose(this._disposables);
- this._autoTriggerTimer.cancel();
+ super();
+ this._register(this._markerService.onMarkerChanged(e => this._onMarkerChanges(e)));
+ this._register(this._editor.onDidChangeCursorPosition(() => this._onCursorChange()));
}
trigger(trigger: CodeActionTrigger) {
@@ -167,12 +160,11 @@ export namespace CodeActionsState {
export type State = typeof Empty | Triggered;
}
-export class CodeActionModel {
+export class CodeActionModel extends Disposable {
private _codeActionOracle?: CodeActionOracle;
private _state: CodeActionsState.State = CodeActionsState.Empty;
private _onDidChangeState = new Emitter();
- private _disposables: IDisposable[] = [];
private readonly _supportedCodeActions: IContextKey;
constructor(
@@ -181,17 +173,18 @@ export class CodeActionModel {
contextKeyService: IContextKeyService,
private readonly _progressService: ILocalProgressService
) {
+ super();
this._supportedCodeActions = SUPPORTED_CODE_ACTIONS.bindTo(contextKeyService);
- this._disposables.push(this._editor.onDidChangeModel(() => this._update()));
- this._disposables.push(this._editor.onDidChangeModelLanguage(() => this._update()));
- this._disposables.push(CodeActionProviderRegistry.onDidChange(() => this._update()));
+ this._register(this._editor.onDidChangeModel(() => this._update()));
+ this._register(this._editor.onDidChangeModelLanguage(() => this._update()));
+ this._register(CodeActionProviderRegistry.onDidChange(() => this._update()));
this._update();
}
dispose(): void {
- this._disposables = dispose(this._disposables);
+ super.dispose();
dispose(this._codeActionOracle);
}
diff --git a/src/vs/editor/contrib/codeAction/codeActionWidget.ts b/src/vs/editor/contrib/codeAction/codeActionWidget.ts
index b3ddad603b0..366cf55a18e 100644
--- a/src/vs/editor/contrib/codeAction/codeActionWidget.ts
+++ b/src/vs/editor/contrib/codeAction/codeActionWidget.ts
@@ -13,26 +13,35 @@ import { ScrollType } from 'vs/editor/common/editorCommon';
import { CodeAction } from 'vs/editor/common/modes';
import { IContextMenuService } from 'vs/platform/contextview/browser/contextView';
import { CodeActionSet } from 'vs/editor/contrib/codeAction/codeAction';
+import { Disposable } from 'vs/base/common/lifecycle';
-export class CodeActionContextMenu {
+export class CodeActionContextMenu extends Disposable {
private _visible: boolean;
- private readonly _onDidExecuteCodeAction = new Emitter();
+ private readonly _onDidExecuteCodeAction = this._register(new Emitter());
public readonly onDidExecuteCodeAction: Event = this._onDidExecuteCodeAction.event;
constructor(
private readonly _editor: ICodeEditor,
private readonly _contextMenuService: IContextMenuService,
private readonly _onApplyCodeAction: (action: CodeAction) => Promise
- ) { }
+ ) {
+ super();
+ }
- async show(actionsToShow: Promise, at?: { x: number; y: number } | Position): Promise {
+ public async show(actionsToShow: Promise, at?: { x: number; y: number } | Position): Promise {
const codeActions = await actionsToShow;
+ if (!codeActions.actions.length) {
+ this._visible = false;
+ return;
+ }
if (!this._editor.getDomNode()) {
// cancel when editor went off-dom
+ this._visible = false;
return Promise.reject(canceled());
}
+
this._visible = true;
const actions = codeActions.actions.map(action => this.codeActionToAction(action));
this._contextMenuService.showContextMenu({
diff --git a/src/vs/editor/contrib/codelens/codeLensCache.ts b/src/vs/editor/contrib/codelens/codeLensCache.ts
index 6027dec365d..3df6eb028c5 100644
--- a/src/vs/editor/contrib/codelens/codeLensCache.ts
+++ b/src/vs/editor/contrib/codelens/codeLensCache.ts
@@ -6,18 +6,19 @@
import { ITextModel } from 'vs/editor/common/model';
import { createDecorator } from 'vs/platform/instantiation/common/instantiation';
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
-import { ICodeLensData } from 'vs/editor/contrib/codelens/codelens';
+import { CodeLensModel } from 'vs/editor/contrib/codelens/codelens';
import { LRUCache, values } from 'vs/base/common/map';
-import { ICodeLensSymbol, CodeLensProvider } from 'vs/editor/common/modes';
+import { CodeLensProvider, CodeLensList, CodeLens } from 'vs/editor/common/modes';
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
import { Range } from 'vs/editor/common/core/range';
+import { runWhenIdle } from 'vs/base/common/async';
export const ICodeLensCache = createDecorator('ICodeLensCache');
export interface ICodeLensCache {
_serviceBrand: any;
- put(model: ITextModel, data: ICodeLensData[]): void;
- get(model: ITextModel): ICodeLensData[] | undefined;
+ put(model: ITextModel, data: CodeLensModel): void;
+ get(model: ITextModel): CodeLensModel | undefined;
delete(model: ITextModel): void;
}
@@ -30,7 +31,7 @@ class CacheItem {
constructor(
readonly lineCount: number,
- readonly data: ICodeLensData[]
+ readonly data: CodeLensModel
) { }
}
@@ -39,7 +40,7 @@ export class CodeLensCache implements ICodeLensCache {
_serviceBrand: any;
private readonly _fakeProvider = new class implements CodeLensProvider {
- provideCodeLenses(): ICodeLensSymbol[] {
+ provideCodeLenses(): CodeLensList {
throw new Error('not supported');
}
};
@@ -48,9 +49,12 @@ export class CodeLensCache implements ICodeLensCache {
constructor(@IStorageService storageService: IStorageService) {
- const key = 'codelens/cache';
+ // remove old data
+ const oldkey = 'codelens/cache';
+ runWhenIdle(() => storageService.remove(oldkey, StorageScope.WORKSPACE));
// restore lens data on start
+ const key = 'codelens/cache2';
const raw = storageService.get(key, StorageScope.WORKSPACE, '{}');
this._deserialize(raw);
@@ -61,13 +65,12 @@ export class CodeLensCache implements ICodeLensCache {
});
}
- put(model: ITextModel, data: ICodeLensData[]): void {
- const item = new CacheItem(model.getLineCount(), data.map(item => {
- return {
- symbol: item.symbol,
- provider: this._fakeProvider
- };
- }));
+ put(model: ITextModel, data: CodeLensModel): void {
+
+ const lensModel = new CodeLensModel();
+ lensModel.add({ lenses: data.lenses.map(v => v.symbol), dispose() { } }, this._fakeProvider);
+
+ const item = new CacheItem(model.getLineCount(), lensModel);
this._cache.set(model.uri.toString(), item);
}
@@ -86,7 +89,7 @@ export class CodeLensCache implements ICodeLensCache {
const data: Record = Object.create(null);
this._cache.forEach((value, key) => {
const lines = new Set();
- for (const d of value.data) {
+ for (const d of value.data.lenses) {
lines.add(d.symbol.range.startLineNumber);
}
data[key] = {
@@ -102,14 +105,14 @@ export class CodeLensCache implements ICodeLensCache {
const data: Record = JSON.parse(raw);
for (const key in data) {
const element = data[key];
- const symbols: ICodeLensData[] = [];
+ const lenses: CodeLens[] = [];
for (const line of element.lines) {
- symbols.push({
- provider: this._fakeProvider,
- symbol: { range: new Range(line, 1, line, 11) }
- });
+ lenses.push({ range: new Range(line, 1, line, 11) });
}
- this._cache.set(key, new CacheItem(element.lineCount, symbols));
+
+ const model = new CodeLensModel();
+ model.add({ lenses, dispose() { } }, this._fakeProvider);
+ this._cache.set(key, new CacheItem(element.lineCount, model));
}
} catch {
// ignore...
diff --git a/src/vs/editor/contrib/codelens/codelens.ts b/src/vs/editor/contrib/codelens/codelens.ts
index 30468bf74a1..65ab529f510 100644
--- a/src/vs/editor/contrib/codelens/codelens.ts
+++ b/src/vs/editor/contrib/codelens/codelens.ts
@@ -9,38 +9,59 @@ import { illegalArgument, onUnexpectedExternalError } from 'vs/base/common/error
import { URI } from 'vs/base/common/uri';
import { registerLanguageCommand } from 'vs/editor/browser/editorExtensions';
import { ITextModel } from 'vs/editor/common/model';
-import { CodeLensProvider, CodeLensProviderRegistry, ICodeLensSymbol } from 'vs/editor/common/modes';
+import { CodeLensProvider, CodeLensProviderRegistry, CodeLens, CodeLensList } from 'vs/editor/common/modes';
import { IModelService } from 'vs/editor/common/services/modelService';
+import { DisposableStore } from 'vs/base/common/lifecycle';
-export interface ICodeLensData {
- symbol: ICodeLensSymbol;
+export interface CodeLensItem {
+ symbol: CodeLens;
provider: CodeLensProvider;
}
-export function getCodeLensData(model: ITextModel, token: CancellationToken): Promise {
+export class CodeLensModel {
- const symbols: ICodeLensData[] = [];
- const provider = CodeLensProviderRegistry.ordered(model);
+ lenses: CodeLensItem[] = [];
- const promises = provider.map(provider => Promise.resolve(provider.provideCodeLenses(model, token)).then(result => {
- if (Array.isArray(result)) {
- for (let symbol of result) {
- symbols.push({ symbol, provider });
- }
+ private readonly _dispoables = new DisposableStore();
+
+ dispose(): void {
+ this._dispoables.dispose();
+ }
+
+ add(list: CodeLensList, provider: CodeLensProvider): void {
+ this._dispoables.add(list);
+ for (const symbol of list.lenses) {
+ this.lenses.push({ symbol, provider });
}
- }).catch(onUnexpectedExternalError));
+ }
+}
+
+export function getCodeLensData(model: ITextModel, token: CancellationToken): Promise {
+
+ const provider = CodeLensProviderRegistry.ordered(model);
+ const providerRanks = new Map();
+ const result = new CodeLensModel();
+
+ const promises = provider.map((provider, i) => {
+
+ providerRanks.set(provider, i);
+
+ return Promise.resolve(provider.provideCodeLenses(model, token))
+ .then(list => list && result.add(list, provider))
+ .catch(onUnexpectedExternalError);
+ });
return Promise.all(promises).then(() => {
- return mergeSort(symbols, (a, b) => {
+ result.lenses = mergeSort(result.lenses, (a, b) => {
// sort by lineNumber, provider-rank, and column
if (a.symbol.range.startLineNumber < b.symbol.range.startLineNumber) {
return -1;
} else if (a.symbol.range.startLineNumber > b.symbol.range.startLineNumber) {
return 1;
- } else if (provider.indexOf(a.provider) < provider.indexOf(b.provider)) {
+ } else if (providerRanks.get(a.provider)! < providerRanks.get(b.provider)!) {
return -1;
- } else if (provider.indexOf(a.provider) > provider.indexOf(b.provider)) {
+ } else if (providerRanks.get(a.provider)! > providerRanks.get(b.provider)!) {
return 1;
} else if (a.symbol.range.startColumn < b.symbol.range.startColumn) {
return -1;
@@ -50,6 +71,8 @@ export function getCodeLensData(model: ITextModel, token: CancellationToken): Pr
return 0;
}
});
+
+ return result;
});
}
@@ -65,12 +88,12 @@ registerLanguageCommand('_executeCodeLensProvider', function (accessor, args) {
throw illegalArgument();
}
- const result: ICodeLensSymbol[] = [];
+ const result: CodeLens[] = [];
return getCodeLensData(model, CancellationToken.None).then(value => {
let resolve: Promise[] = [];
- for (const item of value) {
+ for (const item of value.lenses) {
if (typeof itemResolveCount === 'undefined' || Boolean(item.symbol.command)) {
result.push(item.symbol);
} else if (itemResolveCount-- > 0 && item.provider.resolveCodeLens) {
@@ -78,7 +101,7 @@ registerLanguageCommand('_executeCodeLensProvider', function (accessor, args) {
}
}
- return Promise.all(resolve);
+ return Promise.all(resolve).finally(() => value.dispose());
}).then(() => {
return result;
diff --git a/src/vs/editor/contrib/codelens/codelensController.ts b/src/vs/editor/contrib/codelens/codelensController.ts
index c7d7ced6ec4..b4b0052b090 100644
--- a/src/vs/editor/contrib/codelens/codelensController.ts
+++ b/src/vs/editor/contrib/codelens/codelensController.ts
@@ -5,32 +5,32 @@
import { CancelablePromise, RunOnceScheduler, createCancelablePromise, disposableTimeout } from 'vs/base/common/async';
import { onUnexpectedError, onUnexpectedExternalError } from 'vs/base/common/errors';
-import { IDisposable, dispose, toDisposable } from 'vs/base/common/lifecycle';
+import { toDisposable, Disposable, DisposableStore, dispose } from 'vs/base/common/lifecycle';
import { StableEditorScrollState } from 'vs/editor/browser/core/editorState';
import * as editorBrowser from 'vs/editor/browser/editorBrowser';
import { registerEditorContribution } from 'vs/editor/browser/editorExtensions';
import { IConfigurationChangedEvent } from 'vs/editor/common/config/editorOptions';
import * as editorCommon from 'vs/editor/common/editorCommon';
import { IModelDecorationsChangeAccessor } from 'vs/editor/common/model';
-import { CodeLensProviderRegistry, ICodeLensSymbol } from 'vs/editor/common/modes';
-import { ICodeLensData, getCodeLensData } from 'vs/editor/contrib/codelens/codelens';
-import { CodeLens, CodeLensHelper } from 'vs/editor/contrib/codelens/codelensWidget';
+import { CodeLensProviderRegistry, CodeLens } from 'vs/editor/common/modes';
+import { getCodeLensData, CodeLensModel, CodeLensItem } from 'vs/editor/contrib/codelens/codelens';
+import { CodeLensWidget, CodeLensHelper } from 'vs/editor/contrib/codelens/codelensWidget';
import { ICommandService } from 'vs/platform/commands/common/commands';
import { INotificationService } from 'vs/platform/notification/common/notification';
import { ICodeLensCache } from 'vs/editor/contrib/codelens/codeLensCache';
-export class CodeLensContribution implements editorCommon.IEditorContribution {
+export class CodeLensContribution extends Disposable implements editorCommon.IEditorContribution {
private static readonly ID: string = 'css.editor.codeLens';
private _isEnabled: boolean;
- private _globalToDispose: IDisposable[];
- private _localToDispose: IDisposable[];
- private _lenses: CodeLens[];
- private _currentFindCodeLensSymbolsPromise: CancelablePromise | null;
- private _modelChangeCounter: number;
- private _currentResolveCodeLensSymbolsPromise: CancelablePromise | null;
+ private readonly _localToDispose = this._register(new DisposableStore());
+ private _lenses: CodeLensWidget[] = [];
+ private _currentFindCodeLensSymbolsPromise: CancelablePromise | undefined;
+ private _currentCodeLensModel: CodeLensModel | undefined;
+ private _modelChangeCounter: number = 0;
+ private _currentResolveCodeLensSymbolsPromise: CancelablePromise | undefined;
private _detectVisibleLenses: RunOnceScheduler;
constructor(
@@ -39,43 +39,43 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
@INotificationService private readonly _notificationService: INotificationService,
@ICodeLensCache private readonly _codeLensCache: ICodeLensCache
) {
+ super();
this._isEnabled = this._editor.getConfiguration().contribInfo.codeLens;
- this._globalToDispose = [];
- this._localToDispose = [];
this._lenses = [];
- this._currentFindCodeLensSymbolsPromise = null;
+ this._currentFindCodeLensSymbolsPromise = undefined;
this._modelChangeCounter = 0;
- this._globalToDispose.push(this._editor.onDidChangeModel(() => this._onModelChange()));
- this._globalToDispose.push(this._editor.onDidChangeModelLanguage(() => this._onModelChange()));
- this._globalToDispose.push(this._editor.onDidChangeConfiguration((e: IConfigurationChangedEvent) => {
+ this._register(this._editor.onDidChangeModel(() => this._onModelChange()));
+ this._register(this._editor.onDidChangeModelLanguage(() => this._onModelChange()));
+ this._register(this._editor.onDidChangeConfiguration((e: IConfigurationChangedEvent) => {
let prevIsEnabled = this._isEnabled;
this._isEnabled = this._editor.getConfiguration().contribInfo.codeLens;
if (prevIsEnabled !== this._isEnabled) {
this._onModelChange();
}
}));
- this._globalToDispose.push(CodeLensProviderRegistry.onDidChange(this._onModelChange, this));
+ this._register(CodeLensProviderRegistry.onDidChange(this._onModelChange, this));
this._onModelChange();
}
dispose(): void {
this._localDispose();
- this._globalToDispose = dispose(this._globalToDispose);
+ super.dispose();
}
private _localDispose(): void {
if (this._currentFindCodeLensSymbolsPromise) {
this._currentFindCodeLensSymbolsPromise.cancel();
- this._currentFindCodeLensSymbolsPromise = null;
+ this._currentFindCodeLensSymbolsPromise = undefined;
this._modelChangeCounter++;
}
if (this._currentResolveCodeLensSymbolsPromise) {
this._currentResolveCodeLensSymbolsPromise.cancel();
- this._currentResolveCodeLensSymbolsPromise = null;
+ this._currentResolveCodeLensSymbolsPromise = undefined;
}
- this._localToDispose = dispose(this._localToDispose);
+ this._localToDispose.clear();
+ dispose(this._currentCodeLensModel);
}
getId(): string {
@@ -104,7 +104,7 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
// no provider -> return but check with
// cached lenses. they expire after 30 seconds
if (cachedLenses) {
- this._localToDispose.push(disposableTimeout(() => {
+ this._localToDispose.add(disposableTimeout(() => {
const cachedLensesNow = this._codeLensCache.get(model);
if (cachedLenses === cachedLensesNow) {
this._codeLensCache.delete(model);
@@ -118,7 +118,7 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
for (const provider of CodeLensProviderRegistry.all(model)) {
if (typeof provider.onDidChange === 'function') {
let registration = provider.onDidChange(() => scheduler.schedule());
- this._localToDispose.push(registration);
+ this._localToDispose.add(registration);
}
}
@@ -136,18 +136,25 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
this._currentFindCodeLensSymbolsPromise.then(result => {
if (counterValue === this._modelChangeCounter) { // only the last one wins
+ // lifecycle -> dispose old model
+ dispose(this._currentCodeLensModel);
+ this._currentCodeLensModel = result;
+
+ // cache model to reduce flicker
this._codeLensCache.put(model, result);
+
+ // render lenses
this._renderCodeLensSymbols(result);
this._detectVisibleLenses.schedule();
}
}, onUnexpectedError);
}, 250);
- this._localToDispose.push(scheduler);
- this._localToDispose.push(this._detectVisibleLenses);
- this._localToDispose.push(this._editor.onDidChangeModelContent((e) => {
+ this._localToDispose.add(scheduler);
+ this._localToDispose.add(this._detectVisibleLenses);
+ this._localToDispose.add(this._editor.onDidChangeModelContent((e) => {
this._editor.changeDecorations((changeAccessor) => {
this._editor.changeViewZones((viewAccessor) => {
- let toDispose: CodeLens[] = [];
+ let toDispose: CodeLensWidget[] = [];
let lastLensLineNumber: number = -1;
this._lenses.forEach((lens) => {
@@ -176,15 +183,15 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
// Ask for all references again
scheduler.schedule();
}));
- this._localToDispose.push(this._editor.onDidScrollChange(e => {
+ this._localToDispose.add(this._editor.onDidScrollChange(e => {
if (e.scrollTopChanged && this._lenses.length > 0) {
this._detectVisibleLenses.schedule();
}
}));
- this._localToDispose.push(this._editor.onDidLayoutChange(e => {
+ this._localToDispose.add(this._editor.onDidLayoutChange(e => {
this._detectVisibleLenses.schedule();
}));
- this._localToDispose.push(toDisposable(() => {
+ this._localToDispose.add(toDisposable(() => {
if (this._editor.getModel()) {
const scrollState = StableEditorScrollState.capture(this._editor);
this._editor.changeDecorations((changeAccessor) => {
@@ -198,14 +205,14 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
this._disposeAllLenses(undefined, undefined);
}
}));
- this._localToDispose.push(this._editor.onDidChangeConfiguration(e => {
+ this._localToDispose.add(this._editor.onDidChangeConfiguration(e => {
if (e.fontInfo) {
for (const lens of this._lenses) {
lens.updateHeight();
}
}
}));
- this._localToDispose.push(this._editor.onMouseUp(e => {
+ this._localToDispose.add(this._editor.onMouseUp(e => {
if (e.target.type === editorBrowser.MouseTargetType.CONTENT_WIDGET && e.target.element && e.target.element.tagName === 'A') {
for (const lens of this._lenses) {
let command = lens.getCommand(e.target.element as HTMLLinkElement);
@@ -228,16 +235,16 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
this._lenses = [];
}
- private _renderCodeLensSymbols(symbols: ICodeLensData[]): void {
+ private _renderCodeLensSymbols(symbols: CodeLensModel): void {
if (!this._editor.hasModel()) {
return;
}
let maxLineNumber = this._editor.getModel().getLineCount();
- let groups: ICodeLensData[][] = [];
- let lastGroup: ICodeLensData[] | undefined;
+ let groups: CodeLensItem[][] = [];
+ let lastGroup: CodeLensItem[] | undefined;
- for (let symbol of symbols) {
+ for (let symbol of symbols.lenses) {
let line = symbol.symbol.range.startLineNumber;
if (line < 1 || line > maxLineNumber) {
// invalid code lens
@@ -272,7 +279,7 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
groupsIndex++;
codeLensIndex++;
} else {
- this._lenses.splice(codeLensIndex, 0, new CodeLens(groups[groupsIndex], this._editor, helper, accessor, () => this._detectVisibleLenses.schedule()));
+ this._lenses.splice(codeLensIndex, 0, new CodeLensWidget(groups[groupsIndex], this._editor, helper, accessor, () => this._detectVisibleLenses.schedule()));
codeLensIndex++;
groupsIndex++;
}
@@ -286,7 +293,7 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
// Create extra symbols
while (groupsIndex < groups.length) {
- this._lenses.push(new CodeLens(groups[groupsIndex], this._editor, helper, accessor, () => this._detectVisibleLenses.schedule()));
+ this._lenses.push(new CodeLensWidget(groups[groupsIndex], this._editor, helper, accessor, () => this._detectVisibleLenses.schedule()));
groupsIndex++;
}
@@ -300,7 +307,7 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
private _onViewportChanged(): void {
if (this._currentResolveCodeLensSymbolsPromise) {
this._currentResolveCodeLensSymbolsPromise.cancel();
- this._currentResolveCodeLensSymbolsPromise = null;
+ this._currentResolveCodeLensSymbolsPromise = undefined;
}
const model = this._editor.getModel();
@@ -308,8 +315,8 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
return;
}
- const toResolve: ICodeLensData[][] = [];
- const lenses: CodeLens[] = [];
+ const toResolve: CodeLensItem[][] = [];
+ const lenses: CodeLensWidget[] = [];
this._lenses.forEach((lens) => {
const request = lens.computeIfNecessary(model);
if (request) {
@@ -326,7 +333,7 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
const promises = toResolve.map((request, i) => {
- const resolvedSymbols = new Array(request.length);
+ const resolvedSymbols = new Array(request.length);
const promises = request.map((request, i) => {
if (!request.symbol.command && typeof request.provider.resolveCodeLens === 'function') {
return Promise.resolve(request.provider.resolveCodeLens(model, request.symbol, token)).then(symbol => {
@@ -346,11 +353,10 @@ export class CodeLensContribution implements editorCommon.IEditorContribution {
return Promise.all(promises);
});
- this._currentResolveCodeLensSymbolsPromise.then(() => {
- this._currentResolveCodeLensSymbolsPromise = null;
- }).catch(err => {
- this._currentResolveCodeLensSymbolsPromise = null;
+ this._currentResolveCodeLensSymbolsPromise.catch(err => {
onUnexpectedError(err);
+ }).finally(() => {
+ this._currentResolveCodeLensSymbolsPromise = undefined;
});
}
}
diff --git a/src/vs/editor/contrib/codelens/codelensWidget.ts b/src/vs/editor/contrib/codelens/codelensWidget.ts
index 9a0a0bbe9c1..24ed75a4405 100644
--- a/src/vs/editor/contrib/codelens/codelensWidget.ts
+++ b/src/vs/editor/contrib/codelens/codelensWidget.ts
@@ -11,9 +11,9 @@ import * as editorBrowser from 'vs/editor/browser/editorBrowser';
import { Range } from 'vs/editor/common/core/range';
import { IModelDecorationsChangeAccessor, IModelDeltaDecoration, ITextModel } from 'vs/editor/common/model';
import { ModelDecorationOptions } from 'vs/editor/common/model/textModel';
-import { Command, ICodeLensSymbol } from 'vs/editor/common/modes';
+import { Command, CodeLens } from 'vs/editor/common/modes';
import { editorCodeLensForeground } from 'vs/editor/common/view/editorColorRegistry';
-import { ICodeLensData } from 'vs/editor/contrib/codelens/codelens';
+import { CodeLensItem } from 'vs/editor/contrib/codelens/codelens';
import { editorActiveLinkForeground } from 'vs/platform/theme/common/colorRegistry';
import { registerThemingParticipant } from 'vs/platform/theme/common/themeService';
@@ -65,7 +65,7 @@ class CodeLensContentWidget implements editorBrowser.IContentWidget {
constructor(
editor: editorBrowser.ICodeEditor,
symbolRange: Range,
- data: ICodeLensData[]
+ data: CodeLensItem[]
) {
this._id = 'codeLensWidget' + (++CodeLensContentWidget._idPool);
this._editor = editor;
@@ -88,7 +88,7 @@ class CodeLensContentWidget implements editorBrowser.IContentWidget {
this._domNode.innerHTML = ' ';
}
- withCommands(inSymbols: Array, animate: boolean): void {
+ withCommands(inSymbols: Array, animate: boolean): void {
this._commands.clear();
const symbols = coalesce(inSymbols);
@@ -189,17 +189,17 @@ export class CodeLensHelper {
}
}
-export class CodeLens {
+export class CodeLensWidget {
private readonly _editor: editorBrowser.ICodeEditor;
private readonly _viewZone: CodeLensViewZone;
private readonly _viewZoneId: number;
private readonly _contentWidget: CodeLensContentWidget;
private _decorationIds: string[];
- private _data: ICodeLensData[];
+ private _data: CodeLensItem[];
constructor(
- data: ICodeLensData[],
+ data: CodeLensItem[],
editor: editorBrowser.ICodeEditor,
helper: CodeLensHelper,
viewZoneChangeAccessor: editorBrowser.IViewZoneChangeAccessor,
@@ -256,7 +256,7 @@ export class CodeLens {
});
}
- updateCodeLensSymbols(data: ICodeLensData[], helper: CodeLensHelper): void {
+ updateCodeLensSymbols(data: CodeLensItem[], helper: CodeLensHelper): void {
while (this._decorationIds.length) {
helper.removeDecoration(this._decorationIds.pop()!);
}
@@ -270,7 +270,7 @@ export class CodeLens {
});
}
- computeIfNecessary(model: ITextModel): ICodeLensData[] | null {
+ computeIfNecessary(model: ITextModel): CodeLensItem[] | null {
if (!this._contentWidget.isVisible()) {
return null;
}
@@ -285,7 +285,7 @@ export class CodeLens {
return this._data;
}
- updateCommands(symbols: Array): void {
+ updateCommands(symbols: Array): void {
this._contentWidget.withCommands(symbols, true);
for (let i = 0; i < this._data.length; i++) {
const resolved = symbols[i];
diff --git a/src/vs/editor/contrib/colorPicker/colorDetector.ts b/src/vs/editor/contrib/colorPicker/colorDetector.ts
index e20d0d532a3..93ce80a2499 100644
--- a/src/vs/editor/contrib/colorPicker/colorDetector.ts
+++ b/src/vs/editor/contrib/colorPicker/colorDetector.ts
@@ -7,7 +7,7 @@ import { CancelablePromise, TimeoutTimer, createCancelablePromise } from 'vs/bas
import { RGBA } from 'vs/base/common/color';
import { onUnexpectedError } from 'vs/base/common/errors';
import { hash } from 'vs/base/common/hash';
-import { IDisposable, dispose } from 'vs/base/common/lifecycle';
+import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
import { registerEditorContribution } from 'vs/editor/browser/editorExtensions';
import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService';
@@ -22,14 +22,13 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur
const MAX_DECORATORS = 500;
-export class ColorDetector implements IEditorContribution {
+export class ColorDetector extends Disposable implements IEditorContribution {
private static readonly ID: string = 'editor.contrib.colorDetector';
static RECOMPUTE_TIME = 1000; // ms
- private _globalToDispose: IDisposable[] = [];
- private _localToDispose: IDisposable[] = [];
+ private readonly _localToDispose = this._register(new DisposableStore());
private _computePromise: CancelablePromise | null;
private _timeoutTimer: TimeoutTimer | null;
@@ -45,13 +44,14 @@ export class ColorDetector implements IEditorContribution {
@ICodeEditorService private readonly _codeEditorService: ICodeEditorService,
@IConfigurationService private readonly _configurationService: IConfigurationService
) {
- this._globalToDispose.push(_editor.onDidChangeModel((e) => {
+ super();
+ this._register(_editor.onDidChangeModel((e) => {
this._isEnabled = this.isEnabled();
this.onModelChanged();
}));
- this._globalToDispose.push(_editor.onDidChangeModelLanguage((e) => this.onModelChanged()));
- this._globalToDispose.push(ColorProviderRegistry.onDidChange((e) => this.onModelChanged()));
- this._globalToDispose.push(_editor.onDidChangeConfiguration((e) => {
+ this._register(_editor.onDidChangeModelLanguage((e) => this.onModelChanged()));
+ this._register(ColorProviderRegistry.onDidChange((e) => this.onModelChanged()));
+ this._register(_editor.onDidChangeConfiguration((e) => {
let prevIsEnabled = this._isEnabled;
this._isEnabled = this.isEnabled();
if (prevIsEnabled !== this._isEnabled) {
@@ -98,7 +98,7 @@ export class ColorDetector implements IEditorContribution {
dispose(): void {
this.stop();
this.removeAllDecorations();
- this._globalToDispose = dispose(this._globalToDispose);
+ super.dispose();
}
private onModelChanged(): void {
@@ -113,7 +113,7 @@ export class ColorDetector implements IEditorContribution {
return;
}
- this._localToDispose.push(this._editor.onDidChangeModelContent((e) => {
+ this._localToDispose.add(this._editor.onDidChangeModelContent((e) => {
if (!this._timeoutTimer) {
this._timeoutTimer = new TimeoutTimer();
this._timeoutTimer.cancelAndSet(() => {
@@ -149,7 +149,7 @@ export class ColorDetector implements IEditorContribution {
this._computePromise.cancel();
this._computePromise = null;
}
- this._localToDispose = dispose(this._localToDispose);
+ this._localToDispose.clear();
}
private updateDecorations(colorDatas: IColorData[]): void {
diff --git a/src/vs/editor/contrib/find/simpleFindWidget.ts b/src/vs/editor/contrib/find/simpleFindWidget.ts
index c7833dcc253..2c1cb22025f 100644
--- a/src/vs/editor/contrib/find/simpleFindWidget.ts
+++ b/src/vs/editor/contrib/find/simpleFindWidget.ts
@@ -99,29 +99,29 @@ export abstract class SimpleFindWidget extends Widget {
}
}));
- const prevBtn = new SimpleButton({
+ const prevBtn = this._register(new SimpleButton({
label: NLS_PREVIOUS_MATCH_BTN_LABEL,
className: 'previous',
onTrigger: () => {
this.find(true);
}
- });
+ }));
- const nextBtn = new SimpleButton({
+ const nextBtn = this._register(new SimpleButton({
label: NLS_NEXT_MATCH_BTN_LABEL,
className: 'next',
onTrigger: () => {
this.find(false);
}
- });
+ }));
- const closeBtn = new SimpleButton({
+ const closeBtn = this._register(new SimpleButton({
label: NLS_CLOSE_BTN_LABEL,
className: 'close-fw',
onTrigger: () => {
this.hide();
}
- });
+ }));
this._innerDomNode = document.createElement('div');
this._innerDomNode.classList.add('simple-find-part');
diff --git a/src/vs/editor/contrib/folding/folding.ts b/src/vs/editor/contrib/folding/folding.ts
index 389ef232a1b..e5d922f71f6 100644
--- a/src/vs/editor/contrib/folding/folding.ts
+++ b/src/vs/editor/contrib/folding/folding.ts
@@ -9,7 +9,7 @@ import * as types from 'vs/base/common/types';
import { escapeRegExpCharacters } from 'vs/base/common/strings';
import { RunOnceScheduler, Delayer, CancelablePromise, createCancelablePromise } from 'vs/base/common/async';
import { KeyCode, KeyMod, KeyChord } from 'vs/base/common/keyCodes';
-import { IDisposable, dispose } from 'vs/base/common/lifecycle';
+import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
import { ScrollType, IEditorContribution } from 'vs/editor/common/editorCommon';
import { ITextModel } from 'vs/editor/common/model';
import { registerEditorAction, registerEditorContribution, ServicesAccessor, EditorAction, registerInstantiatedEditorAction } from 'vs/editor/browser/editorExtensions';
@@ -46,7 +46,7 @@ interface FoldingStateMemento {
provider?: string;
}
-export class FoldingController implements IEditorContribution {
+export class FoldingController extends Disposable implements IEditorContribution {
static MAX_FOLDING_REGIONS = 5000;
@@ -73,27 +73,25 @@ export class FoldingController implements IEditorContribution {
private foldingModelPromise: Promise | null;
private updateScheduler: Delayer | null;
- private globalToDispose: IDisposable[];
private cursorChangedScheduler: RunOnceScheduler | null;
- private localToDispose: IDisposable[];
+ private readonly localToDispose = this._register(new DisposableStore());
constructor(editor: ICodeEditor) {
+ super();
this.editor = editor;
this._isEnabled = this.editor.getConfiguration().contribInfo.folding;
this._autoHideFoldingControls = this.editor.getConfiguration().contribInfo.showFoldingControls === 'mouseover';
this._useFoldingProviders = this.editor.getConfiguration().contribInfo.foldingStrategy !== 'indentation';
- this.globalToDispose = [];
- this.localToDispose = [];
this.foldingDecorationProvider = new FoldingDecorationProvider(editor);
this.foldingDecorationProvider.autoHideFoldingControls = this._autoHideFoldingControls;
- this.globalToDispose.push(this.editor.onDidChangeModel(() => this.onModelChanged()));
+ this._register(this.editor.onDidChangeModel(() => this.onModelChanged()));
- this.globalToDispose.push(this.editor.onDidChangeConfiguration((e: IConfigurationChangedEvent) => {
+ this._register(this.editor.onDidChangeConfiguration((e: IConfigurationChangedEvent) => {
if (e.contribInfo) {
let oldIsEnabled = this._isEnabled;
this._isEnabled = this.editor.getConfiguration().contribInfo.folding;
@@ -113,7 +111,6 @@ export class FoldingController implements IEditorContribution {
}
}
}));
- this.globalToDispose.push({ dispose: () => dispose(this.localToDispose) });
this.onModelChanged();
}
@@ -121,10 +118,6 @@ export class FoldingController implements IEditorContribution {
return ID;
}
- public dispose(): void {
- this.globalToDispose = dispose(this.globalToDispose);
- }
-
/**
* Store view state.
*/
@@ -173,7 +166,7 @@ export class FoldingController implements IEditorContribution {
}
private onModelChanged(): void {
- this.localToDispose = dispose(this.localToDispose);
+ this.localToDispose.clear();
let model = this.editor.getModel();
if (!this._isEnabled || !model || model.isTooLargeForTokenization()) {
@@ -182,23 +175,23 @@ export class FoldingController implements IEditorContribution {
}
this.foldingModel = new FoldingModel(model, this.foldingDecorationProvider);
- this.localToDispose.push(this.foldingModel);
+ this.localToDispose.add(this.foldingModel);
this.hiddenRangeModel = new HiddenRangeModel(this.foldingModel);
- this.localToDispose.push(this.hiddenRangeModel);
- this.localToDispose.push(this.hiddenRangeModel.onDidChange(hr => this.onHiddenRangesChanges(hr)));
+ this.localToDispose.add(this.hiddenRangeModel);
+ this.localToDispose.add(this.hiddenRangeModel.onDidChange(hr => this.onHiddenRangesChanges(hr)));
this.updateScheduler = new Delayer(200);
this.cursorChangedScheduler = new RunOnceScheduler(() => this.revealCursor(), 200);
- this.localToDispose.push(this.cursorChangedScheduler);
- this.localToDispose.push(FoldingRangeProviderRegistry.onDidChange(() => this.onFoldingStrategyChanged()));
- this.localToDispose.push(this.editor.onDidChangeModelLanguageConfiguration(() => this.onFoldingStrategyChanged())); // covers model language changes as well
- this.localToDispose.push(this.editor.onDidChangeModelContent(() => this.onModelContentChanged()));
- this.localToDispose.push(this.editor.onDidChangeCursorPosition(() => this.onCursorPositionChanged()));
- this.localToDispose.push(this.editor.onMouseDown(e => this.onEditorMouseDown(e)));
- this.localToDispose.push(this.editor.onMouseUp(e => this.onEditorMouseUp(e)));
- this.localToDispose.push({
+ this.localToDispose.add(this.cursorChangedScheduler);
+ this.localToDispose.add(FoldingRangeProviderRegistry.onDidChange(() => this.onFoldingStrategyChanged()));
+ this.localToDispose.add(this.editor.onDidChangeModelLanguageConfiguration(() => this.onFoldingStrategyChanged())); // covers model language changes as well
+ this.localToDispose.add(this.editor.onDidChangeModelContent(() => this.onModelContentChanged()));
+ this.localToDispose.add(this.editor.onDidChangeCursorPosition(() => this.onCursorPositionChanged()));
+ this.localToDispose.add(this.editor.onMouseDown(e => this.onEditorMouseDown(e)));
+ this.localToDispose.add(this.editor.onMouseUp(e => this.onEditorMouseUp(e)));
+ this.localToDispose.add({
dispose: () => {
if (this.foldingRegionPromise) {
this.foldingRegionPromise.cancel();
diff --git a/src/vs/editor/contrib/goToDefinition/goToDefinitionMouse.ts b/src/vs/editor/contrib/goToDefinition/goToDefinitionMouse.ts
index 2f36e372857..45314c2d1ab 100644
--- a/src/vs/editor/contrib/goToDefinition/goToDefinitionMouse.ts
+++ b/src/vs/editor/contrib/goToDefinition/goToDefinitionMouse.ts
@@ -16,7 +16,7 @@ import { DefinitionProviderRegistry, LocationLink } from 'vs/editor/common/modes
import { ICodeEditor, IMouseTarget, MouseTargetType } from 'vs/editor/browser/editorBrowser';
import { registerEditorContribution } from 'vs/editor/browser/editorExtensions';
import { getDefinitionsAtPosition } from './goToDefinition';
-import { IDisposable, dispose } from 'vs/base/common/lifecycle';
+import { Disposable } from 'vs/base/common/lifecycle';
import { ITextModelService } from 'vs/editor/common/services/resolverService';
import { registerThemingParticipant } from 'vs/platform/theme/common/themeService';
import { editorActiveLinkForeground } from 'vs/platform/theme/common/colorRegistry';
@@ -27,13 +27,12 @@ import { IWordAtPosition, IModelDeltaDecoration, ITextModel, IFoundBracket } fro
import { Position } from 'vs/editor/common/core/position';
import { withNullAsUndefined } from 'vs/base/common/types';
-class GotoDefinitionWithMouseEditorContribution implements editorCommon.IEditorContribution {
+class GotoDefinitionWithMouseEditorContribution extends Disposable implements editorCommon.IEditorContribution {
private static readonly ID = 'editor.contrib.gotodefinitionwithmouse';
static MAX_SOURCE_PREVIEW_LINES = 8;
private readonly editor: ICodeEditor;
- private toUnhook: IDisposable[];
private decorations: string[];
private currentWordUnderMouse: IWordAtPosition | null;
private previousPromise: CancelablePromise | null;
@@ -43,19 +42,19 @@ class GotoDefinitionWithMouseEditorContribution implements editorCommon.IEditorC
@ITextModelService private readonly textModelResolverService: ITextModelService,
@IModeService private readonly modeService: IModeService
) {
- this.toUnhook = [];
+ super();
this.decorations = [];
this.editor = editor;
this.previousPromise = null;
let linkGesture = new ClickLinkGesture(editor);
- this.toUnhook.push(linkGesture);
+ this._register(linkGesture);
- this.toUnhook.push(linkGesture.onMouseMoveOrRelevantKeyDown(([mouseEvent, keyboardEvent]) => {
+ this._register(linkGesture.onMouseMoveOrRelevantKeyDown(([mouseEvent, keyboardEvent]) => {
this.startFindDefinition(mouseEvent, withNullAsUndefined(keyboardEvent));
}));
- this.toUnhook.push(linkGesture.onExecute((mouseEvent: ClickLinkMouseEvent) => {
+ this._register(linkGesture.onExecute((mouseEvent: ClickLinkMouseEvent) => {
if (this.isEnabled(mouseEvent)) {
this.gotoDefinition(mouseEvent.target, mouseEvent.hasSideBySideModifier).then(() => {
this.removeDecorations();
@@ -66,7 +65,7 @@ class GotoDefinitionWithMouseEditorContribution implements editorCommon.IEditorC
}
}));
- this.toUnhook.push(linkGesture.onCancel(() => {
+ this._register(linkGesture.onCancel(() => {
this.removeDecorations();
this.currentWordUnderMouse = null;
}));
@@ -301,10 +300,6 @@ class GotoDefinitionWithMouseEditorContribution implements editorCommon.IEditorC
public getId(): string {
return GotoDefinitionWithMouseEditorContribution.ID;
}
-
- public dispose(): void {
- this.toUnhook = dispose(this.toUnhook);
- }
}
registerEditorContribution(GotoDefinitionWithMouseEditorContribution);
diff --git a/src/vs/editor/contrib/goToDefinition/goToDefinitionResultsNavigation.ts b/src/vs/editor/contrib/goToDefinition/goToDefinitionResultsNavigation.ts
index 557e5125896..bf25f5d6181 100644
--- a/src/vs/editor/contrib/goToDefinition/goToDefinitionResultsNavigation.ts
+++ b/src/vs/editor/contrib/goToDefinition/goToDefinitionResultsNavigation.ts
@@ -15,9 +15,9 @@ import { ICodeEditorService } from 'vs/editor/browser/services/codeEditorService
import { Range } from 'vs/editor/common/core/range';
import { Disposable, dispose, IDisposable, combinedDisposable } from 'vs/base/common/lifecycle';
import { Emitter, Event } from 'vs/base/common/event';
-import { IStatusbarService } from 'vs/platform/statusbar/common/statusbar';
import { localize } from 'vs/nls';
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
+import { INotificationService } from 'vs/platform/notification/common/notification';
export const ctxHasSymbols = new RawContextKey('hasSymbols', false);
@@ -45,7 +45,7 @@ class SymbolNavigationService implements ISymbolNavigationService {
constructor(
@IContextKeyService contextKeyService: IContextKeyService,
@ICodeEditorService private readonly _editorService: ICodeEditorService,
- @IStatusbarService private readonly _statusbarService: IStatusbarService,
+ @INotificationService private readonly _notificationService: INotificationService,
@IKeybindingService private readonly _keybindingService: IKeybindingService,
) {
this._ctxHasSymbols = ctxHasSymbols.bindTo(contextKeyService);
@@ -143,7 +143,7 @@ class SymbolNavigationService implements ISymbolNavigationService {
? localize('location.kb', "Symbol {0} of {1}, {2} for next", this._currentIdx + 1, this._currentModel!.references.length, kb.getLabel())
: localize('location', "Symbol {0} of {1}", this._currentIdx + 1, this._currentModel!.references.length);
- this._currentMessage = this._statusbarService.setStatusMessage(message);
+ this._currentMessage = this._notificationService.status(message);
}
}
diff --git a/src/vs/editor/contrib/gotoError/gotoError.ts b/src/vs/editor/contrib/gotoError/gotoError.ts
index 4a9a2aa118d..d865ad9bb6d 100644
--- a/src/vs/editor/contrib/gotoError/gotoError.ts
+++ b/src/vs/editor/contrib/gotoError/gotoError.ts
@@ -6,7 +6,7 @@
import * as nls from 'vs/nls';
import { Emitter } from 'vs/base/common/event';
import { KeyCode, KeyMod } from 'vs/base/common/keyCodes';
-import { IDisposable, dispose } from 'vs/base/common/lifecycle';
+import { IDisposable, dispose, Disposable } from 'vs/base/common/lifecycle';
import { URI } from 'vs/base/common/uri';
import { RawContextKey, IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
import { IMarker, IMarkerService, MarkerSeverity } from 'vs/platform/markers/common/markers';
@@ -27,29 +27,28 @@ import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions';
import { Action } from 'vs/base/common/actions';
import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding';
-class MarkerModel {
+class MarkerModel extends Disposable {
private readonly _editor: ICodeEditor;
private _markers: IMarker[];
private _nextIdx: number;
- private _toUnbind: IDisposable[];
private _ignoreSelectionChange: boolean;
private readonly _onCurrentMarkerChanged: Emitter;
private readonly _onMarkerSetChanged: Emitter;
constructor(editor: ICodeEditor, markers: IMarker[]) {
+ super();
this._editor = editor;
this._markers = [];
this._nextIdx = -1;
- this._toUnbind = [];
this._ignoreSelectionChange = false;
this._onCurrentMarkerChanged = new Emitter();
this._onMarkerSetChanged = new Emitter();
this.setMarkers(markers);
// listen on editor
- this._toUnbind.push(this._editor.onDidDispose(() => this.dispose()));
- this._toUnbind.push(this._editor.onDidChangeCursorPosition(() => {
+ this._register(this._editor.onDidDispose(() => this.dispose()));
+ this._register(this._editor.onDidChangeCursorPosition(() => {
if (this._ignoreSelectionChange) {
return;
}
@@ -188,10 +187,6 @@ class MarkerModel {
public indexOf(marker: IMarker): number {
return 1 + this._markers.indexOf(marker);
}
-
- public dispose(): void {
- this._toUnbind = dispose(this._toUnbind);
- }
}
export class MarkerController implements editorCommon.IEditorContribution {
diff --git a/src/vs/editor/contrib/gotoError/gotoErrorWidget.ts b/src/vs/editor/contrib/gotoError/gotoErrorWidget.ts
index 2ac2c54af5e..607177aa4e5 100644
--- a/src/vs/editor/contrib/gotoError/gotoErrorWidget.ts
+++ b/src/vs/editor/contrib/gotoError/gotoErrorWidget.ts
@@ -6,15 +6,14 @@
import 'vs/css!./media/gotoErrorWidget';
import * as nls from 'vs/nls';
import * as dom from 'vs/base/browser/dom';
-import { IDisposable, dispose, Disposable } from 'vs/base/common/lifecycle';
+import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
import { IMarker, MarkerSeverity, IRelatedInformation } from 'vs/platform/markers/common/markers';
import { Position } from 'vs/editor/common/core/position';
import { Range } from 'vs/editor/common/core/range';
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
-import { registerColor, oneOf, textLinkForeground } from 'vs/platform/theme/common/colorRegistry';
+import { registerColor, oneOf, textLinkForeground, editorErrorForeground, editorErrorBorder, editorWarningForeground, editorWarningBorder, editorInfoForeground, editorInfoBorder } from 'vs/platform/theme/common/colorRegistry';
import { IThemeService, ITheme, registerThemingParticipant } from 'vs/platform/theme/common/themeService';
import { Color } from 'vs/base/common/color';
-import { editorErrorForeground, editorErrorBorder, editorWarningForeground, editorWarningBorder, editorInfoForeground, editorInfoBorder } from 'vs/editor/common/view/editorColorRegistry';
import { ScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElement';
import { ScrollbarVisibility } from 'vs/base/common/scrollable';
import { ScrollType } from 'vs/editor/common/editorCommon';
@@ -27,6 +26,7 @@ import { IAction } from 'vs/base/common/actions';
import { IActionBarOptions, ActionsOrientation } from 'vs/base/browser/ui/actionbar/actionbar';
import { peekViewTitleForeground, peekViewTitleInfoForeground } from 'vs/editor/contrib/referenceSearch/referencesWidget';
import { AccessibilitySupport } from 'vs/platform/accessibility/common/accessibility';
+import { SeverityIcon } from 'vs/platform/severityIcon/common/severityIcon';
class MessageWidget extends Disposable {
@@ -164,8 +164,9 @@ export class MarkerNavigationWidget extends PeekViewWidget {
private _parentContainer: HTMLElement;
private _container: HTMLElement;
+ private _icon: HTMLElement;
private _message: MessageWidget;
- private _callOnDispose: IDisposable[] = [];
+ private readonly _callOnDispose = new DisposableStore();
private _severity: MarkerSeverity;
private _backgroundColor?: Color;
private _onDidSelectRelatedInformation = new Emitter();
@@ -183,7 +184,7 @@ export class MarkerNavigationWidget extends PeekViewWidget {
this._backgroundColor = Color.white;
this._applyTheme(_themeService.getTheme());
- this._callOnDispose.push(_themeService.onThemeChange(this._applyTheme.bind(this)));
+ this._callOnDispose.add(_themeService.onThemeChange(this._applyTheme.bind(this)));
this.create();
}
@@ -214,7 +215,7 @@ export class MarkerNavigationWidget extends PeekViewWidget {
}
dispose(): void {
- this._callOnDispose = dispose(this._callOnDispose);
+ this._callOnDispose.dispose();
super.dispose();
}
@@ -227,6 +228,10 @@ export class MarkerNavigationWidget extends PeekViewWidget {
this._actionbarWidget.push(this.actions, { label: false, icon: true });
}
+ protected _fillTitleIcon(container: HTMLElement): void {
+ this._icon = dom.append(container, dom.$(''));
+ }
+
protected _getActionBarOptions(): IActionBarOptions {
return {
orientation: ActionsOrientation.HORIZONTAL_REVERSE
@@ -274,13 +279,7 @@ export class MarkerNavigationWidget extends PeekViewWidget {
: nls.localize('change', "{0} of {1} problem", markerIdx, markerCount);
this.setTitle(basename(model.uri), detail);
}
- let headingIconClassName = 'error';
- if (this._severity === MarkerSeverity.Warning) {
- headingIconClassName = 'warning';
- } else if (this._severity === MarkerSeverity.Info) {
- headingIconClassName = 'info';
- }
- this.setTitleIcon(headingIconClassName);
+ this._icon.className = SeverityIcon.className(MarkerSeverity.toSeverity(this._severity));
this.editor.revealPositionInCenter(position, ScrollType.Smooth);
diff --git a/src/vs/editor/contrib/gotoError/media/gotoErrorWidget.css b/src/vs/editor/contrib/gotoError/media/gotoErrorWidget.css
index 5b5b607e81f..6680fb166cd 100644
--- a/src/vs/editor/contrib/gotoError/media/gotoErrorWidget.css
+++ b/src/vs/editor/contrib/gotoError/media/gotoErrorWidget.css
@@ -5,28 +5,10 @@
/* marker zone */
-.monaco-editor .peekview-widget .head .peekview-title .icon.warning {
- background: url('status-warning.svg') center center no-repeat;
-}
-
-.monaco-editor .peekview-widget .head .peekview-title .icon.error {
- background: url('status-error.svg') center center no-repeat;
-}
-
-.monaco-editor .peekview-widget .head .peekview-title .icon.info {
- background: url('status-info.svg') center center no-repeat;
-}
-
-.vs-dark .monaco-editor .peekview-widget .head .peekview-title .icon.warning {
- background: url('status-warning-inverse.svg') center center no-repeat;
-}
-
-.vs-dark .monaco-editor .peekview-widget .head .peekview-title .icon.error {
- background: url('status-error-inverse.svg') center center no-repeat;
-}
-
-.vs-dark .monaco-editor .peekview-widget .head .peekview-title .icon.info {
- background: url('status-info-inverse.svg') center center no-repeat;
+.monaco-editor .peekview-widget .head .peekview-title .severity-icon {
+ display: inline-block;
+ vertical-align: text-top;
+ margin-right: 4px;
}
.monaco-editor .marker-widget {
diff --git a/src/vs/editor/contrib/gotoError/media/status-error-inverse.svg b/src/vs/editor/contrib/gotoError/media/status-error-inverse.svg
deleted file mode 100644
index 3c852a7ffde..00000000000
--- a/src/vs/editor/contrib/gotoError/media/status-error-inverse.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/vs/editor/contrib/gotoError/media/status-error.svg b/src/vs/editor/contrib/gotoError/media/status-error.svg
deleted file mode 100644
index a1ddb39fed6..00000000000
--- a/src/vs/editor/contrib/gotoError/media/status-error.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/vs/editor/contrib/gotoError/media/status-info-inverse.svg b/src/vs/editor/contrib/gotoError/media/status-info-inverse.svg
deleted file mode 100644
index d38c363e0e4..00000000000
--- a/src/vs/editor/contrib/gotoError/media/status-info-inverse.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/vs/editor/contrib/gotoError/media/status-info.svg b/src/vs/editor/contrib/gotoError/media/status-info.svg
deleted file mode 100644
index 6e2e22f67bc..00000000000
--- a/src/vs/editor/contrib/gotoError/media/status-info.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/vs/editor/contrib/gotoError/media/status-warning-inverse.svg b/src/vs/editor/contrib/gotoError/media/status-warning-inverse.svg
deleted file mode 100644
index df44e61b326..00000000000
--- a/src/vs/editor/contrib/gotoError/media/status-warning-inverse.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/vs/editor/contrib/gotoError/media/status-warning.svg b/src/vs/editor/contrib/gotoError/media/status-warning.svg
deleted file mode 100644
index f4e2a84b0af..00000000000
--- a/src/vs/editor/contrib/gotoError/media/status-warning.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/src/vs/editor/contrib/multicursor/multicursor.ts b/src/vs/editor/contrib/multicursor/multicursor.ts
index 9a699df3229..ec0925af31a 100644
--- a/src/vs/editor/contrib/multicursor/multicursor.ts
+++ b/src/vs/editor/contrib/multicursor/multicursor.ts
@@ -6,7 +6,7 @@
import * as nls from 'vs/nls';
import { RunOnceScheduler } from 'vs/base/common/async';
import { KeyChord, KeyCode, KeyMod } from 'vs/base/common/keyCodes';
-import { Disposable, IDisposable, dispose } from 'vs/base/common/lifecycle';
+import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
import { EditorAction, ServicesAccessor, registerEditorAction, registerEditorContribution } from 'vs/editor/browser/editorExtensions';
import { RevealTarget } from 'vs/editor/common/controller/cursorCommon';
@@ -427,7 +427,7 @@ export class MultiCursorSelectionController extends Disposable implements IEdito
private readonly _editor: ICodeEditor;
private _ignoreSelectionChange: boolean;
private _session: MultiCursorSession | null;
- private _sessionDispose: IDisposable[];
+ private readonly _sessionDispose = this._register(new DisposableStore());
public static get(editor: ICodeEditor): MultiCursorSelectionController {
return editor.getContribution(MultiCursorSelectionController.ID);
@@ -438,7 +438,6 @@ export class MultiCursorSelectionController extends Disposable implements IEdito
this._editor = editor;
this._ignoreSelectionChange = false;
this._session = null;
- this._sessionDispose = [];
}
public dispose(): void {
@@ -468,27 +467,25 @@ export class MultiCursorSelectionController extends Disposable implements IEdito
}
findController.getState().change(newState, false);
- this._sessionDispose = [
- this._editor.onDidChangeCursorSelection((e) => {
- if (this._ignoreSelectionChange) {
- return;
- }
+ this._sessionDispose.add(this._editor.onDidChangeCursorSelection((e) => {
+ if (this._ignoreSelectionChange) {
+ return;
+ }
+ this._endSession();
+ }));
+ this._sessionDispose.add(this._editor.onDidBlurEditorText(() => {
+ this._endSession();
+ }));
+ this._sessionDispose.add(findController.getState().onFindReplaceStateChange((e) => {
+ if (e.matchCase || e.wholeWord) {
this._endSession();
- }),
- this._editor.onDidBlurEditorText(() => {
- this._endSession();
- }),
- findController.getState().onFindReplaceStateChange((e) => {
- if (e.matchCase || e.wholeWord) {
- this._endSession();
- }
- })
- ];
+ }
+ }));
}
}
private _endSession(): void {
- this._sessionDispose = dispose(this._sessionDispose);
+ this._sessionDispose.clear();
if (this._session && this._session.isDisconnectedFromFindController) {
const newState: INewFindReplaceState = {
wholeWordOverride: FindOptionOverride.NotSet,
diff --git a/src/vs/editor/contrib/parameterHints/parameterHintsWidget.ts b/src/vs/editor/contrib/parameterHints/parameterHintsWidget.ts
index 5c365daebac..f7eae70292e 100644
--- a/src/vs/editor/contrib/parameterHints/parameterHintsWidget.ts
+++ b/src/vs/editor/contrib/parameterHints/parameterHintsWidget.ts
@@ -8,7 +8,7 @@ import { domEvent, stop } from 'vs/base/browser/event';
import * as aria from 'vs/base/browser/ui/aria/aria';
import { DomScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElement';
import { Event } from 'vs/base/common/event';
-import { dispose, IDisposable } from 'vs/base/common/lifecycle';
+import { IDisposable, Disposable, DisposableStore } from 'vs/base/common/lifecycle';
import 'vs/css!./parameterHints';
import { ContentWidgetPositionPreference, ICodeEditor, IContentWidget, IContentWidgetPosition } from 'vs/editor/browser/editorBrowser';
import { IConfigurationChangedEvent } from 'vs/editor/common/config/editorOptions';
@@ -25,12 +25,12 @@ import { ParameterHintsModel, TriggerContext } from 'vs/editor/contrib/parameter
const $ = dom.$;
-export class ParameterHintsWidget implements IContentWidget, IDisposable {
+export class ParameterHintsWidget extends Disposable implements IContentWidget, IDisposable {
private static readonly ID = 'editor.widget.parameterHintsWidget';
private readonly markdownRenderer: MarkdownRenderer;
- private renderDisposeables: IDisposable[];
+ private readonly renderDisposeables = this._register(new DisposableStore());
private model: ParameterHintsModel | null;
private readonly keyVisible: IContextKey;
private readonly keyMultipleSignatures: IContextKey;
@@ -41,7 +41,6 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
private visible: boolean;
private announcedLabel: string | null;
private scrollbar: DomScrollableElement;
- private disposables: IDisposable[];
// Editor.IContentWidget.allowEditorOverflow
allowEditorOverflow = true;
@@ -52,14 +51,14 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
@IOpenerService openerService: IOpenerService,
@IModeService modeService: IModeService,
) {
+ super();
this.markdownRenderer = new MarkdownRenderer(editor, modeService, openerService);
this.model = new ParameterHintsModel(editor);
this.keyVisible = Context.Visible.bindTo(contextKeyService);
this.keyMultipleSignatures = Context.MultipleSignatures.bindTo(contextKeyService);
this.visible = false;
- this.disposables = [];
- this.disposables.push(this.model.onChangedHints(newParameterHints => {
+ this._register(this.model.onChangedHints(newParameterHints => {
if (newParameterHints) {
this.show();
this.render(newParameterHints);
@@ -79,16 +78,16 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
const next = dom.append(buttons, $('.button.next'));
const onPreviousClick = stop(domEvent(previous, 'click'));
- onPreviousClick(this.previous, this, this.disposables);
+ this._register(onPreviousClick(this.previous, this));
const onNextClick = stop(domEvent(next, 'click'));
- onNextClick(this.next, this, this.disposables);
+ this._register(onNextClick(this.next, this));
this.overloads = dom.append(wrapper, $('.overloads'));
const body = $('.body');
this.scrollbar = new DomScrollableElement(body, {});
- this.disposables.push(this.scrollbar);
+ this._register(this.scrollbar);
wrapper.appendChild(this.scrollbar.getDomNode());
this.signature = dom.append(body, $('.signature'));
@@ -99,7 +98,7 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
this.hide();
this.element.style.userSelect = 'text';
- this.disposables.push(this.editor.onDidChangeCursorSelection(e => {
+ this._register(this.editor.onDidChangeCursorSelection(e => {
if (this.visible) {
this.editor.layoutContentWidget(this);
}
@@ -112,11 +111,11 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
updateFont();
- Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor))
+ this._register(Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor))
.filter(e => e.fontInfo)
- .on(updateFont, null, this.disposables);
+ .on(updateFont, null));
- this.disposables.push(this.editor.onDidLayoutChange(e => this.updateMaxHeight()));
+ this._register(this.editor.onDidLayoutChange(e => this.updateMaxHeight()));
this.updateMaxHeight();
}
@@ -190,8 +189,7 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
this.renderParameters(code, signature, hints.activeParameter);
}
- dispose(this.renderDisposeables);
- this.renderDisposeables = [];
+ this.renderDisposeables.clear();
const activeParameter = signature.parameters[hints.activeParameter];
@@ -202,7 +200,7 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
} else {
const renderedContents = this.markdownRenderer.render(activeParameter.documentation);
dom.addClass(renderedContents.element, 'markdown-docs');
- this.renderDisposeables.push(renderedContents);
+ this.renderDisposeables.add(renderedContents);
documentation.appendChild(renderedContents.element);
}
dom.append(this.docs, $('p', {}, documentation));
@@ -216,7 +214,7 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
} else {
const renderedContents = this.markdownRenderer.render(signature.documentation);
dom.addClass(renderedContents.element, 'markdown-docs');
- this.renderDisposeables.push(renderedContents);
+ this.renderDisposeables.add(renderedContents);
dom.append(this.docs, renderedContents.element);
}
@@ -323,8 +321,7 @@ export class ParameterHintsWidget implements IContentWidget, IDisposable {
}
dispose(): void {
- this.disposables = dispose(this.disposables);
- this.renderDisposeables = dispose(this.renderDisposeables);
+ super.dispose();
if (this.model) {
this.model.dispose();
diff --git a/src/vs/editor/contrib/referenceSearch/media/peekViewWidget.css b/src/vs/editor/contrib/referenceSearch/media/peekViewWidget.css
index 67fb333dd4d..ac669d39341 100644
--- a/src/vs/editor/contrib/referenceSearch/media/peekViewWidget.css
+++ b/src/vs/editor/contrib/referenceSearch/media/peekViewWidget.css
@@ -19,14 +19,6 @@
cursor: pointer;
}
-.monaco-editor .peekview-widget .head .peekview-title .icon {
- display: inline-block;
- height: 16px;
- width: 16px;
- vertical-align: text-bottom;
- margin-right: 4px;
-}
-
.monaco-editor .peekview-widget .head .peekview-title .dirname:not(:empty) {
font-size: 0.9em;
margin-left: 0.5em;
diff --git a/src/vs/editor/contrib/referenceSearch/peekViewWidget.ts b/src/vs/editor/contrib/referenceSearch/peekViewWidget.ts
index a2c2f81aa96..cf34d9ea9cc 100644
--- a/src/vs/editor/contrib/referenceSearch/peekViewWidget.ts
+++ b/src/vs/editor/contrib/referenceSearch/peekViewWidget.ts
@@ -85,7 +85,6 @@ export abstract class PeekViewWidget extends ZoneWidget {
private _onDidClose = new Emitter();
protected _headElement: HTMLDivElement;
- protected _headingIcon: HTMLElement;
protected _primaryHeading: HTMLElement;
protected _secondaryHeading: HTMLElement;
protected _metaHeading: HTMLElement;
@@ -155,11 +154,11 @@ export abstract class PeekViewWidget extends ZoneWidget {
dom.append(this._headElement, titleElement);
dom.addStandardDisposableListener(titleElement, 'click', event => this._onTitleClick(event));
- this._headingIcon = dom.$('span');
+ this._fillTitleIcon(titleElement);
this._primaryHeading = dom.$('span.filename');
this._secondaryHeading = dom.$('span.dirname');
this._metaHeading = dom.$('span.meta');
- dom.append(titleElement, this._headingIcon, this._primaryHeading, this._secondaryHeading, this._metaHeading);
+ dom.append(titleElement, this._primaryHeading, this._secondaryHeading, this._metaHeading);
const actionsContainer = dom.$('.peekview-actions');
dom.append(this._headElement, actionsContainer);
@@ -174,6 +173,9 @@ export abstract class PeekViewWidget extends ZoneWidget {
}), { label: false, icon: true });
}
+ protected _fillTitleIcon(container: HTMLElement): void {
+ }
+
protected _getActionBarOptions(): IActionBarOptions {
return {};
}
@@ -182,10 +184,6 @@ export abstract class PeekViewWidget extends ZoneWidget {
// implement me
}
- public setTitleIcon(iconClassName: string): void {
- this._headingIcon.className = iconClassName ? `icon ${iconClassName}` : '';
- }
-
public setTitle(primaryHeading: string, secondaryHeading?: string): void {
this._primaryHeading.innerHTML = strings.escape(primaryHeading);
this._primaryHeading.setAttribute('aria-label', primaryHeading);
diff --git a/src/vs/editor/contrib/referenceSearch/referencesWidget.ts b/src/vs/editor/contrib/referenceSearch/referencesWidget.ts
index 3c9e6e91b33..45aef6a5e58 100644
--- a/src/vs/editor/contrib/referenceSearch/referencesWidget.ts
+++ b/src/vs/editor/contrib/referenceSearch/referencesWidget.ts
@@ -230,7 +230,10 @@ export class ReferenceWidget extends PeekViewWidget {
dispose(): void {
this.setModel(undefined);
this._callOnDispose = dispose(this._callOnDispose);
- dispose(this._preview, this._previewNotAvailableMessage, this._tree, this._previewModelReference);
+ dispose(this._preview);
+ dispose(this._previewNotAvailableMessage);
+ dispose(this._tree);
+ dispose(this._previewModelReference);
this._splitView.dispose();
super.dispose();
}
diff --git a/src/vs/editor/contrib/suggest/suggestWidget.ts b/src/vs/editor/contrib/suggest/suggestWidget.ts
index 5fd984f9af7..265ccca9ab8 100644
--- a/src/vs/editor/contrib/suggest/suggestWidget.ts
+++ b/src/vs/editor/contrib/suggest/suggestWidget.ts
@@ -9,7 +9,7 @@ import { createMatches } from 'vs/base/common/filters';
import * as strings from 'vs/base/common/strings';
import { Event, Emitter } from 'vs/base/common/event';
import { onUnexpectedError } from 'vs/base/common/errors';
-import { IDisposable, dispose, toDisposable } from 'vs/base/common/lifecycle';
+import { IDisposable, dispose, toDisposable, Disposable, DisposableStore } from 'vs/base/common/lifecycle';
import { addClass, append, $, hide, removeClass, show, toggleClass, getDomNodePagePosition, hasClass, addDisposableListener } from 'vs/base/browser/dom';
import { IListVirtualDelegate, IListEvent, IListRenderer, IListMouseEvent } from 'vs/base/browser/ui/list/list';
import { List } from 'vs/base/browser/ui/list/listWidget';
@@ -103,7 +103,9 @@ class Renderer implements IListRenderer
renderTemplate(container: HTMLElement): ISuggestionTemplateData {
const data = Object.create(null);
- data.disposables = [];
+ const disposables = new DisposableStore();
+ data.disposables = [disposables];
+
data.root = container;
addClass(data.root, 'show-file-icons');
@@ -114,7 +116,7 @@ class Renderer implements IListRenderer
const main = append(text, $('.main'));
data.iconLabel = new IconLabel(main, { supportHighlights: true });
- data.disposables.push(data.iconLabel);
+ disposables.add(data.iconLabel);
data.typeLabel = append(main, $('span.type-label'));
@@ -142,9 +144,9 @@ class Renderer implements IListRenderer
configureFont();
- Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor))
+ disposables.add(Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor))
.filter(e => e.fontInfo || e.contribInfo)
- .on(configureFont, null, data.disposables);
+ .on(configureFont, null));
return data;
}
@@ -226,7 +228,7 @@ const enum State {
Details
}
-class SuggestionDetails {
+class SuggestionDetails extends Disposable {
private el: HTMLElement;
private close: HTMLElement;
@@ -236,8 +238,7 @@ class SuggestionDetails {
private type: HTMLElement;
private docs: HTMLElement;
private ariaLabel: string | null;
- private disposables: IDisposable[];
- private renderDisposeable: IDisposable;
+ private readonly renderDisposeable = this._register(new DisposableStore());
private borderWidth: number = 1;
constructor(
@@ -247,16 +248,16 @@ class SuggestionDetails {
private readonly markdownRenderer: MarkdownRenderer,
private readonly triggerKeybindingLabel: string
) {
- this.disposables = [];
+ super();
this.el = append(container, $('.details'));
- this.disposables.push(toDisposable(() => container.removeChild(this.el)));
+ this._register(toDisposable(() => container.removeChild(this.el)));
this.body = $('.body');
this.scrollbar = new DomScrollableElement(this.body, {});
append(this.el, this.scrollbar.getDomNode());
- this.disposables.push(this.scrollbar);
+ this._register(this.scrollbar);
this.header = append(this.body, $('.header'));
this.close = append(this.header, $('span.close'));
@@ -268,11 +269,11 @@ class SuggestionDetails {
this.configureFont();
- Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor))
+ this._register(Event.chain(this.editor.onDidChangeConfiguration.bind(this.editor))
.filter(e => e.fontInfo)
- .on(this.configureFont, this, this.disposables);
+ .on(this.configureFont, this));
- markdownRenderer.onDidRenderCodeBlock(() => this.scrollbar.scanDomNode(), this, this.disposables);
+ this._register(markdownRenderer.onDidRenderCodeBlock(() => this.scrollbar.scanDomNode(), this));
}
get element() {
@@ -280,7 +281,7 @@ class SuggestionDetails {
}
render(item: CompletionItem): void {
- this.renderDisposeable = dispose(this.renderDisposeable);
+ this.renderDisposeable.clear();
if (!item || !canExpandCompletionItem(item)) {
this.type.textContent = '';
@@ -297,7 +298,7 @@ class SuggestionDetails {
addClass(this.docs, 'markdown-docs');
this.docs.innerHTML = '';
const renderedContents = this.markdownRenderer.render(item.completion.documentation);
- this.renderDisposeable = renderedContents;
+ this.renderDisposeable.add(renderedContents);
this.docs.appendChild(renderedContents.element);
}
@@ -377,11 +378,6 @@ class SuggestionDetails {
this.close.style.height = lineHeightPx;
this.close.style.width = lineHeightPx;
}
-
- dispose(): void {
- this.disposables = dispose(this.disposables);
- this.renderDisposeable = dispose(this.renderDisposeable);
- }
}
export interface ISelectedSuggestion {
diff --git a/src/vs/editor/contrib/suggest/wordContextKey.ts b/src/vs/editor/contrib/suggest/wordContextKey.ts
index de2a026e5aa..9461b86d339 100644
--- a/src/vs/editor/contrib/suggest/wordContextKey.ts
+++ b/src/vs/editor/contrib/suggest/wordContextKey.ts
@@ -4,15 +4,14 @@
*--------------------------------------------------------------------------------------------*/
import { RawContextKey, IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey';
-import { IDisposable, dispose } from 'vs/base/common/lifecycle';
+import { IDisposable, dispose, Disposable } from 'vs/base/common/lifecycle';
import { ICodeEditor } from 'vs/editor/browser/editorBrowser';
-export class WordContextKey {
+export class WordContextKey extends Disposable {
static readonly AtEnd = new RawContextKey('atEndOfWord', false);
private readonly _ckAtEnd: IContextKey;
- private readonly _confListener: IDisposable;
private _enabled: boolean;
private _selectionListener?: IDisposable;
@@ -21,13 +20,15 @@ export class WordContextKey {
private readonly _editor: ICodeEditor,
@IContextKeyService contextKeyService: IContextKeyService,
) {
+ super();
this._ckAtEnd = WordContextKey.AtEnd.bindTo(contextKeyService);
- this._confListener = this._editor.onDidChangeConfiguration(e => e.contribInfo && this._update());
+ this._register(this._editor.onDidChangeConfiguration(e => e.contribInfo && this._update()));
this._update();
}
dispose(): void {
- dispose(this._confListener, this._selectionListener);
+ super.dispose();
+ dispose(this._selectionListener);
this._ckAtEnd.reset();
}
diff --git a/src/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.ts b/src/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.ts
index e48dcba6535..1fc21b5fc7f 100644
--- a/src/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.ts
+++ b/src/vs/editor/standalone/browser/iPadShowKeyboard/iPadShowKeyboard.ts
@@ -6,24 +6,23 @@
import 'vs/css!./iPadShowKeyboard';
import * as browser from 'vs/base/browser/browser';
import * as dom from 'vs/base/browser/dom';
-import { IDisposable, dispose } from 'vs/base/common/lifecycle';
+import { Disposable } from 'vs/base/common/lifecycle';
import { ICodeEditor, IOverlayWidget, IOverlayWidgetPosition, OverlayWidgetPositionPreference } from 'vs/editor/browser/editorBrowser';
import { registerEditorContribution } from 'vs/editor/browser/editorExtensions';
import { IEditorContribution } from 'vs/editor/common/editorCommon';
-export class IPadShowKeyboard implements IEditorContribution {
+export class IPadShowKeyboard extends Disposable implements IEditorContribution {
private static readonly ID = 'editor.contrib.iPadShowKeyboard';
private readonly editor: ICodeEditor;
private widget: ShowKeyboardWidget | null;
- private toDispose: IDisposable[];
constructor(editor: ICodeEditor) {
+ super();
this.editor = editor;
- this.toDispose = [];
if (browser.isIPad) {
- this.toDispose.push(editor.onDidChangeConfiguration(() => this.update()));
+ this._register(editor.onDidChangeConfiguration(() => this.update()));
this.update();
}
}
@@ -48,7 +47,7 @@ export class IPadShowKeyboard implements IEditorContribution {
}
public dispose(): void {
- this.toDispose = dispose(this.toDispose);
+ super.dispose();
if (this.widget) {
this.widget.dispose();
this.widget = null;
@@ -56,25 +55,24 @@ export class IPadShowKeyboard implements IEditorContribution {
}
}
-class ShowKeyboardWidget implements IOverlayWidget {
+class ShowKeyboardWidget extends Disposable implements IOverlayWidget {
private static readonly ID = 'editor.contrib.ShowKeyboardWidget';
private readonly editor: ICodeEditor;
private readonly _domNode: HTMLElement;
- private _toDispose: IDisposable[];
constructor(editor: ICodeEditor) {
+ super();
this.editor = editor;
this._domNode = document.createElement('textarea');
this._domNode.className = 'iPadShowKeyboard';
- this._toDispose = [];
- this._toDispose.push(dom.addDisposableListener(this._domNode, 'touchstart', (e) => {
+ this._register(dom.addDisposableListener(this._domNode, 'touchstart', (e) => {
this.editor.focus();
}));
- this._toDispose.push(dom.addDisposableListener(this._domNode, 'focus', (e) => {
+ this._register(dom.addDisposableListener(this._domNode, 'focus', (e) => {
this.editor.focus();
}));
@@ -83,7 +81,7 @@ class ShowKeyboardWidget implements IOverlayWidget {
public dispose(): void {
this.editor.removeOverlayWidget(this);
- this._toDispose = dispose(this._toDispose);
+ super.dispose();
}
// ----- IOverlayWidget API
diff --git a/src/vs/editor/standalone/browser/simpleServices.ts b/src/vs/editor/standalone/browser/simpleServices.ts
index 71b9b2b5d9c..a699ce708ec 100644
--- a/src/vs/editor/standalone/browser/simpleServices.ts
+++ b/src/vs/editor/standalone/browser/simpleServices.ts
@@ -8,7 +8,7 @@ import * as dom from 'vs/base/browser/dom';
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
import { Emitter, Event } from 'vs/base/common/event';
import { Keybinding, ResolvedKeybinding, SimpleKeybinding, createKeybinding } from 'vs/base/common/keyCodes';
-import { IDisposable, IReference, ImmortalReference, toDisposable, DisposableStore } from 'vs/base/common/lifecycle';
+import { IDisposable, IReference, ImmortalReference, toDisposable, DisposableStore, Disposable } from 'vs/base/common/lifecycle';
import { OS, isLinux, isMacintosh } from 'vs/base/common/platform';
import Severity from 'vs/base/common/severity';
import { URI } from 'vs/base/common/uri';
@@ -37,7 +37,7 @@ import { IKeybindingItem, KeybindingsRegistry } from 'vs/platform/keybinding/com
import { ResolvedKeybindingItem } from 'vs/platform/keybinding/common/resolvedKeybindingItem';
import { USLayoutResolvedKeybinding } from 'vs/platform/keybinding/common/usLayoutResolvedKeybinding';
import { ILabelService, ResourceLabelFormatter } from 'vs/platform/label/common/label';
-import { INotification, INotificationHandle, INotificationService, IPromptChoice, IPromptOptions, NoOpNotification } from 'vs/platform/notification/common/notification';
+import { INotification, INotificationHandle, INotificationService, IPromptChoice, IPromptOptions, NoOpNotification, IStatusMessageOptions } from 'vs/platform/notification/common/notification';
import { IProgressRunner, ILocalProgressService } from 'vs/platform/progress/common/progress';
import { ITelemetryInfo, ITelemetryService } from 'vs/platform/telemetry/common/telemetry';
import { IWorkspace, IWorkspaceContextService, IWorkspaceFolder, IWorkspaceFoldersChangeEvent, WorkbenchState, WorkspaceFolder } from 'vs/platform/workspace/common/workspace';
@@ -220,6 +220,10 @@ export class SimpleNotificationService implements INotificationService {
public prompt(severity: Severity, message: string, choices: IPromptChoice[], options?: IPromptOptions): INotificationHandle {
return SimpleNotificationService.NO_OP;
}
+
+ public status(message: string | Error, options?: IStatusMessageOptions): IDisposable {
+ return Disposable.None;
+ }
}
export class StandaloneCommandService implements ICommandService {
diff --git a/src/vs/editor/standalone/browser/standaloneLanguages.ts b/src/vs/editor/standalone/browser/standaloneLanguages.ts
index 8a1f4a9c183..f3ea17ca812 100644
--- a/src/vs/editor/standalone/browser/standaloneLanguages.ts
+++ b/src/vs/editor/standalone/browser/standaloneLanguages.ts
@@ -250,7 +250,7 @@ export interface IEncodedLineTokens {
* - f = foreground ColorId (9 bits)
* - b = background ColorId (9 bits)
* - The color value for each colorId is defined in IStandaloneThemeData.customTokenColors:
- * e.g colorId = 1 is stored in IStandaloneThemeData.customTokenColors[1]. Color id = 0 means no color,
+ * e.g. colorId = 1 is stored in IStandaloneThemeData.customTokenColors[1]. Color id = 0 means no color,
* id = 1 is for the default foreground color, id = 2 for the default background.
*/
tokens: Uint32Array;
diff --git a/src/vs/loader.js b/src/vs/loader.js
index 4eddcab3a02..2de484960b1 100644
--- a/src/vs/loader.js
+++ b/src/vs/loader.js
@@ -235,6 +235,7 @@ var AMDLoader;
*--------------------------------------------------------------------------------------------*/
var AMDLoader;
(function (AMDLoader) {
+ ;
var ConfigurationOptionsUtil = (function () {
function ConfigurationOptionsUtil() {
}
@@ -305,22 +306,8 @@ var AMDLoader;
if (typeof options.nodeCachedData.writeDelay !== 'number' || options.nodeCachedData.writeDelay < 0) {
options.nodeCachedData.writeDelay = 1000 * 7;
}
- if (typeof options.nodeCachedData.onData !== 'function') {
- options.nodeCachedData.onData = function (err) {
- if (err && err.errorCode === 'cachedDataRejected') {
- console.warn('Rejected cached data from file: ' + err.path);
- }
- else if (err && err.errorCode) {
- console.error('Problems handling cached data file: ' + err.path);
- console.error(err.detail);
- }
- else if (err) {
- console.error(err);
- }
- };
- }
if (!options.nodeCachedData.path || typeof options.nodeCachedData.path !== 'string') {
- options.nodeCachedData.onData('INVALID cached data configuration, \'path\' MUST be set');
+ options.onError('INVALID cached data configuration, \'path\' MUST be set');
options.nodeCachedData = undefined;
}
}
@@ -660,7 +647,6 @@ var AMDLoader;
this._env = env;
this._didInitialize = false;
this._didPatchNodeRequire = false;
- this._hasCreateCachedData = false;
}
NodeScriptLoader.prototype._init = function (nodeRequire) {
if (this._didInitialize) {
@@ -672,14 +658,17 @@ var AMDLoader;
this._vm = nodeRequire('vm');
this._path = nodeRequire('path');
this._crypto = nodeRequire('crypto');
- // check for `createCachedData`-api
- this._hasCreateCachedData = typeof (new this._vm.Script('').createCachedData) === 'function';
};
// patch require-function of nodejs such that we can manually create a script
// from cached data. this is done by overriding the `Module._compile` function
NodeScriptLoader.prototype._initNodeRequire = function (nodeRequire, moduleManager) {
+ // It is important to check for `nodeCachedData` first and then set `_didPatchNodeRequire`.
+ // That's because `nodeCachedData` is set _after_ calling this for the first time...
var nodeCachedData = moduleManager.getConfig().getOptionsLiteral().nodeCachedData;
- if (!nodeCachedData || this._didPatchNodeRequire) {
+ if (!nodeCachedData) {
+ return;
+ }
+ if (this._didPatchNodeRequire) {
return;
}
this._didPatchNodeRequire = true;
@@ -708,13 +697,13 @@ var AMDLoader;
content = content.replace(/^#!.*/, '');
// create wrapper function
var wrapper = Module.wrap(content);
- var cachedDataPath = that._getCachedDataPath(nodeCachedData.seed, nodeCachedData.path, filename);
+ var cachedDataPath = that._getCachedDataPath(nodeCachedData, filename);
var options = { filename: filename };
try {
options.cachedData = that._fs.readFileSync(cachedDataPath);
}
catch (e) {
- options.produceCachedData = !that._hasCreateCachedData;
+ // ignore
}
var script = new that._vm.Script(wrapper, options);
var compileWrapper = script.runInThisContext(options);
@@ -722,7 +711,7 @@ var AMDLoader;
var require = makeRequireFunction(this);
var args = [this.exports, require, this, filename, dirname, process, _commonjsGlobal, Buffer];
var result = compileWrapper.apply(this.exports, args);
- that._processCachedData(moduleManager, script, wrapper, cachedDataPath, !options.cachedData);
+ that._processCachedData(script, cachedDataPath, Boolean(options.cachedData), moduleManager.getConfig(), moduleManager.getRecorder());
return result;
};
};
@@ -780,16 +769,16 @@ var AMDLoader;
_this._loadAndEvalScript(moduleManager, scriptSrc, vmScriptSrc, contents, { filename: vmScriptSrc }, recorder, callback, errorback);
}
else {
- var cachedDataPath_1 = _this._getCachedDataPath(opts.nodeCachedData.seed, opts.nodeCachedData.path, scriptSrc);
+ var cachedDataPath_1 = _this._getCachedDataPath(opts.nodeCachedData, scriptSrc);
_this._fs.readFile(cachedDataPath_1, function (_err, cachedData) {
// create script options
var options = {
filename: vmScriptSrc,
- produceCachedData: !_this._hasCreateCachedData && typeof cachedData === 'undefined',
cachedData: cachedData
};
+ recorder.record(cachedData ? 60 /* CachedDataFound */ : 61 /* CachedDataMissed */, scriptSrc);
var script = _this._loadAndEvalScript(moduleManager, scriptSrc, vmScriptSrc, contents, options, recorder, callback, errorback);
- _this._processCachedData(moduleManager, script, contents, cachedDataPath_1, !options.cachedData);
+ _this._processCachedData(script, cachedDataPath_1, Boolean(cachedData), moduleManager.getConfig(), recorder);
});
}
});
@@ -818,74 +807,56 @@ var AMDLoader;
}
return script;
};
- NodeScriptLoader.prototype._getCachedDataPath = function (seed, basedir, filename) {
- var hash = this._crypto.createHash('md5').update(filename, 'utf8').update(seed, 'utf8').digest('hex');
+ NodeScriptLoader.prototype._getCachedDataPath = function (config, filename) {
+ var hash = this._crypto.createHash('md5').update(filename, 'utf8').update(config.seed, 'utf8').digest('hex');
var basename = this._path.basename(filename).replace(/\.js$/, '');
- return this._path.join(basedir, basename + "-" + hash + ".code");
+ return this._path.join(config.path, basename + "-" + hash + ".code");
};
- NodeScriptLoader.prototype._processCachedData = function (moduleManager, script, contents, cachedDataPath, createCachedData) {
+ NodeScriptLoader.prototype._processCachedData = function (script, cachedDataPath, hadCachedData, config, recorder) {
var _this = this;
if (script.cachedDataRejected) {
- // data rejected => delete cache file
- moduleManager.getConfig().getOptionsLiteral().nodeCachedData.onData({
- errorCode: 'cachedDataRejected',
- path: cachedDataPath
+ // rejected cached data
+ // (1) delete data
+ // (2) create new data
+ recorder.record(62 /* CachedDataRejected */, cachedDataPath);
+ this._fs.unlink(cachedDataPath, function (err) {
+ if (err) {
+ config.onError(err);
+ }
+ _this._createCachedData(script, cachedDataPath, config, recorder);
});
- NodeScriptLoader._runSoon(function () {
- return _this._fs.unlink(cachedDataPath, function (err) {
- if (err) {
- moduleManager.getConfig().getOptionsLiteral().nodeCachedData.onData({
- errorCode: 'unlink',
- path: cachedDataPath,
- detail: err
- });
- }
- });
- }, moduleManager.getConfig().getOptionsLiteral().nodeCachedData.writeDelay / 2);
}
- else if (script.cachedDataProduced) {
- // data produced => tell outside world
- moduleManager.getConfig().getOptionsLiteral().nodeCachedData.onData(undefined, {
- path: cachedDataPath
- });
- // data produced => write cache file
- NodeScriptLoader._runSoon(function () {
- return _this._fs.writeFile(cachedDataPath, script.cachedData, function (err) {
- if (err) {
- moduleManager.getConfig().getOptionsLiteral().nodeCachedData.onData({
- errorCode: 'writeFile',
- path: cachedDataPath,
- detail: err
- });
- }
- });
- }, moduleManager.getConfig().getOptionsLiteral().nodeCachedData.writeDelay);
- }
- else if (this._hasCreateCachedData && createCachedData) {
- // NEW world
- // data produced => tell outside world
- moduleManager.getConfig().getOptionsLiteral().nodeCachedData.onData(undefined, {
- path: cachedDataPath
- });
- // soon'ish create and save cached data
- NodeScriptLoader._runSoon(function () {
- var data = script.createCachedData(contents);
- _this._fs.writeFile(cachedDataPath, data, function (err) {
- if (!err) {
- return;
- }
- moduleManager.getConfig().getOptionsLiteral().nodeCachedData.onData({
- errorCode: 'writeFile',
- path: cachedDataPath,
- detail: err
- });
- });
- }, moduleManager.getConfig().getOptionsLiteral().nodeCachedData.writeDelay);
+ else if (!hadCachedData) {
+ // create cached data unless we already had
+ // and accepted cached data
+ this._createCachedData(script, cachedDataPath, config, recorder);
}
};
- NodeScriptLoader._runSoon = function (callback, minTimeout) {
- var timeout = minTimeout + Math.ceil(Math.random() * minTimeout);
- setTimeout(callback, timeout);
+ NodeScriptLoader.prototype._createCachedData = function (script, cachedDataPath, config, recorder) {
+ var _this = this;
+ var timeout = Math.ceil(config.getOptionsLiteral().nodeCachedData.writeDelay * (1 + Math.random()));
+ var lastSize = -1;
+ var iteration = 0;
+ var createLoop = function () {
+ setTimeout(function () {
+ var data = script.createCachedData();
+ if (data.length === lastSize) {
+ return;
+ }
+ lastSize = data.length;
+ _this._fs.writeFile(cachedDataPath, data, function (err) {
+ if (err) {
+ config.onError(err);
+ }
+ recorder.record(63 /* CachedDataCreated */, cachedDataPath);
+ createLoop();
+ });
+ }, timeout * (Math.pow(4, iteration++)));
+ };
+ // with some delay (`timeout`) create cached data
+ // and repeat that (with backoff delay) until the
+ // data seems to be not changing anymore
+ createLoop();
};
return NodeScriptLoader;
}());
diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts
index 2405c549d10..9a44a9563e4 100644
--- a/src/vs/monaco.d.ts
+++ b/src/vs/monaco.d.ts
@@ -4271,7 +4271,7 @@ declare namespace monaco.languages {
* - f = foreground ColorId (9 bits)
* - b = background ColorId (9 bits)
* - The color value for each colorId is defined in IStandaloneThemeData.customTokenColors:
- * e.g colorId = 1 is stored in IStandaloneThemeData.customTokenColors[1]. Color id = 0 means no color,
+ * e.g. colorId = 1 is stored in IStandaloneThemeData.customTokenColors[1]. Color id = 0 means no color,
* id = 1 is for the default foreground color, id = 2 for the default background.
*/
tokens: Uint32Array;
@@ -5449,16 +5449,21 @@ declare namespace monaco.languages {
arguments?: any[];
}
- export interface ICodeLensSymbol {
+ export interface CodeLens {
range: IRange;
id?: string;
command?: Command;
}
+ export interface CodeLensList {
+ lenses: CodeLens[];
+ dispose(): void;
+ }
+
export interface CodeLensProvider {
onDidChange?: IEvent;
- provideCodeLenses(model: editor.ITextModel, token: CancellationToken): ProviderResult;
- resolveCodeLens?(model: editor.ITextModel, codeLens: ICodeLensSymbol, token: CancellationToken): ProviderResult;
+ provideCodeLenses(model: editor.ITextModel, token: CancellationToken): ProviderResult;
+ resolveCodeLens?(model: editor.ITextModel, codeLens: CodeLens, token: CancellationToken): ProviderResult;
}
export interface ILanguageExtensionPoint {
diff --git a/src/vs/platform/actions/common/menuService.ts b/src/vs/platform/actions/common/menuService.ts
index 1523ae10337..e0ee881b773 100644
--- a/src/vs/platform/actions/common/menuService.ts
+++ b/src/vs/platform/actions/common/menuService.ts
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import { Emitter, Event } from 'vs/base/common/event';
-import { dispose, IDisposable } from 'vs/base/common/lifecycle';
+import { Disposable } from 'vs/base/common/lifecycle';
import { IMenu, IMenuActionOptions, IMenuItem, IMenuService, isIMenuItem, ISubmenuItem, MenuId, MenuItemAction, MenuRegistry, SubmenuItemAction } from 'vs/platform/actions/common/actions';
import { ICommandService } from 'vs/platform/commands/common/commands';
import { ContextKeyExpr, IContextKeyService, IContextKeyChangeEvent } from 'vs/platform/contextkey/common/contextkey';
@@ -27,10 +27,9 @@ export class MenuService implements IMenuService {
type MenuItemGroup = [string, Array];
-class Menu implements IMenu {
+class Menu extends Disposable implements IMenu {
- private readonly _onDidChange = new Emitter();
- private readonly _disposables: IDisposable[] = [];
+ private readonly _onDidChange = this._register(new Emitter());
private _menuGroups: MenuItemGroup[];
private _contextKeys: Set;
@@ -40,23 +39,24 @@ class Menu implements IMenu {
@ICommandService private readonly _commandService: ICommandService,
@IContextKeyService private readonly _contextKeyService: IContextKeyService
) {
+ super();
this._build();
// rebuild this menu whenever the menu registry reports an
// event for this MenuId
- Event.debounce(
+ this._register(Event.debounce(
Event.filter(MenuRegistry.onDidChangeMenu, menuId => menuId === this._id),
() => { },
50
- )(this._build, this, this._disposables);
+ )(this._build, this));
// when context keys change we need to check if the menu also
// has changed
- Event.debounce(
+ this._register(Event.debounce(
this._contextKeyService.onDidChangeContext,
(last, event) => last || event.affectsSome(this._contextKeys),
50
- )(e => e && this._onDidChange.fire(undefined), this, this._disposables);
+ )(e => e && this._onDidChange.fire(undefined), this));
}
private _build(): void {
@@ -95,11 +95,6 @@ class Menu implements IMenu {
this._onDidChange.fire(this);
}
- dispose() {
- dispose(this._disposables);
- this._onDidChange.dispose();
- }
-
get onDidChange(): Event {
return this._onDidChange.event;
}
diff --git a/src/vs/platform/configuration/node/configuration.ts b/src/vs/platform/configuration/node/configuration.ts
deleted file mode 100644
index 1d3a6cd3412..00000000000
--- a/src/vs/platform/configuration/node/configuration.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-/*---------------------------------------------------------------------------------------------
- * Copyright (c) Microsoft Corporation. All rights reserved.
- * Licensed under the MIT License. See License.txt in the project root for license information.
- *--------------------------------------------------------------------------------------------*/
-
-import { Disposable } from 'vs/base/common/lifecycle';
-import { onUnexpectedError } from 'vs/base/common/errors';
-import { ConfigurationModelParser, ConfigurationModel } from 'vs/platform/configuration/common/configurationModels';
-import { ConfigWatcher } from 'vs/base/node/config';
-import { Event, Emitter } from 'vs/base/common/event';
-
-export class NodeBasedUserConfiguration extends Disposable {
-
- private userConfigModelWatcher: ConfigWatcher;
- private initializePromise: Promise;
-
- private readonly _onDidChangeConfiguration: Emitter = this._register(new Emitter