Merge remote-tracking branch 'origin/master' into aeschli/tokenScopes

This commit is contained in:
Martin Aeschlimann 2019-09-27 15:55:22 +02:00
commit a5ab40556d
1025 changed files with 38709 additions and 18258 deletions

View file

@ -39,9 +39,17 @@
action: 'close',
comment: "This issue is being closed to keep the number of issues in our inbox on a manageable level, we are closing issues that are not going to be addressed in the foreseeable future: We look at the number of votes the issue has received and the number of duplicate issues filed. More details [here](https://aka.ms/vscode-out-of-scope). If you disagree and feel that this issue is crucial: We are happy to listen and to reconsider.\n\nIf you wonder what we are up to, please see our [roadmap](https://aka.ms/vscoderoadmap) and [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nThanks for your understanding and happy coding!"
},
{
type: 'comment',
name: 'causedByExtension',
allowUsers: ['cleidigh', 'usernamehw', 'gjsjohnmurray', 'IllusionMH'],
action: 'updateLabels',
addLabel: '*caused-by-extension'
},
{
type: 'label',
name: '*caused-by-extension',
allowTriggerByBot: true,
action: 'close',
comment: "This issue is caused by an extension, please file it with the repository (or contact) the extension has linked in its overview in VS Code or the [marketplace](https://aka.ms/vscodemarketplace) for VS Code. See also our [issue reporting](https://aka.ms/vscodeissuereporting) guidelines.\n\nHappy Coding!"
},

7
.vscode/launch.json vendored
View file

@ -216,7 +216,10 @@
"cwd": "${workspaceFolder}",
"outFiles": [
"${workspaceFolder}/out/**/*.js"
]
],
"env": {
"MOCHA_COLORS": "true"
}
},
{
"type": "node",
@ -279,4 +282,4 @@
]
},
]
}
}

View file

@ -61,4 +61,4 @@
"msjsdiag.debugger-for-chrome": "workspace"
},
"files.insertFinalNewline": true
}
}

6
.vscode/tasks.json vendored
View file

@ -5,7 +5,10 @@
"type": "npm",
"script": "watch",
"label": "Build VS Code",
"group": "build",
"group": {
"kind": "build",
"isDefault": true
},
"isBackground": true,
"presentation": {
"reveal": "never"
@ -82,6 +85,5 @@
"task": "hygiene",
"problemMatcher": []
},
]
}

View file

@ -1,3 +1,3 @@
disturl "https://atom.io/download/electron"
target "4.2.10"
target "6.0.9"
runtime "electron"

View file

@ -1,12 +1,8 @@
pool:
vmImage: 'Ubuntu-16.04'
trigger:
branches:
include: ['master']
pr:
branches:
include: ['master']
trigger: none
pr: none
steps:
- task: NodeTool@0

View file

@ -1,7 +1,7 @@
[
{
"name": "ms-vscode.node-debug",
"version": "1.38.5",
"version": "1.38.8",
"repo": "https://github.com/Microsoft/vscode-node-debug",
"metadata": {
"id": "b6ded8fb-a0a0-4c1c-acbd-ab2a3bc995a6",
@ -16,7 +16,7 @@
},
{
"name": "ms-vscode.node-debug2",
"version": "1.33.0",
"version": "1.39.0",
"repo": "https://github.com/Microsoft/vscode-node-debug2",
"metadata": {
"id": "36d19e17-7569-4841-a001-947eb18602b2",

View file

@ -41,12 +41,7 @@ var editorEntryPoints = [
];
var editorResources = [
'out-build/vs/{base,editor}/**/*.{svg,png}',
'!out-build/vs/base/browser/ui/splitview/**/*',
'!out-build/vs/base/browser/ui/toolbar/**/*',
'!out-build/vs/base/browser/ui/octiconLabel/**/*',
'!out-build/vs/workbench/**',
'!**/test/**'
'out-editor-build/vs/base/browser/ui/codiconLabel/**/*.ttf'
];
var BUNDLED_FILE_HEADER = [

View file

@ -72,6 +72,7 @@ const indentationFilter = [
// except multiple specific folders
'!**/octicons/**',
'!**/codicon/**',
'!**/fixtures/**',
'!**/lib/**',
'!extensions/**/out/**',

View file

@ -68,6 +68,7 @@ const vscodeResources = [
'out-build/vs/base/node/languagePacks.js',
'out-build/vs/base/node/{stdForkStart.js,terminateProcess.sh,cpuUsage.sh,ps.sh}',
'out-build/vs/base/browser/ui/octiconLabel/octicons/**',
'out-build/vs/base/browser/ui/codiconLabel/codicon/**',
'out-build/vs/workbench/browser/media/*-theme.css',
'out-build/vs/workbench/contrib/debug/**/*.json',
'out-build/vs/workbench/contrib/externalTerminal/**/*.scpt',
@ -75,7 +76,6 @@ const vscodeResources = [
'out-build/vs/workbench/contrib/webview/electron-browser/pre/*.js',
'out-build/vs/**/markdown.css',
'out-build/vs/workbench/contrib/tasks/**/*.json',
'out-build/vs/workbench/contrib/welcome/walkThrough/**/*.md',
'out-build/vs/platform/files/**/*.exe',
'out-build/vs/platform/files/**/*.md',
'out-build/vs/code/electron-browser/workbench/**',

View file

@ -1080,7 +1080,7 @@ function prepareI18nPackFiles(externalExtensions, resultingTranslationPaths, pse
resultingTranslationPaths.push({ id: 'vscode', resourceName: 'main.i18n.json' });
this.queue(translatedMainFile);
for (let extension in extensionsPacks) {
const translatedExtFile = createI18nFile(`.build/extensions/${extension}`, extensionsPacks[extension]);
const translatedExtFile = createI18nFile(`extensions/${extension}`, extensionsPacks[extension]);
this.queue(translatedExtFile);
const externalExtensionId = externalExtensions[extension];
if (externalExtensionId) {

View file

@ -106,6 +106,10 @@
"name": "vs/workbench/contrib/quickopen",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/contrib/userData",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/contrib/remote",
"project": "vscode-workbench"
@ -182,6 +186,10 @@
"name": "vs/workbench/contrib/outline",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/contrib/userDataSync",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/services/actions",
"project": "vscode-workbench"
@ -234,6 +242,10 @@
"name": "vs/workbench/services/keybinding",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/services/lifecycle",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/services/mode",
"project": "vscode-workbench"
@ -259,7 +271,7 @@
"project": "vscode-workbench"
},
{
"name": "vs/workbench/services/workspace",
"name": "vs/workbench/services/workspaces",
"project": "vscode-workbench"
},
{
@ -277,6 +289,10 @@
{
"name": "vs/workbench/services/notification",
"project": "vscode-workbench"
},
{
"name": "vs/workbench/services/userData",
"project": "vscode-workbench"
}
]
}

View file

@ -1245,7 +1245,7 @@ export function prepareI18nPackFiles(externalExtensions: Map<string>, resultingT
this.queue(translatedMainFile);
for (let extension in extensionsPacks) {
const translatedExtFile = createI18nFile(`.build/extensions/${extension}`, extensionsPacks[extension]);
const translatedExtFile = createI18nFile(`extensions/${extension}`, extensionsPacks[extension]);
this.queue(translatedExtFile);
const externalExtensionId = externalExtensions[extension];

View file

@ -130,7 +130,7 @@ function createESMSourcesAndResources2(options) {
write(getDestAbsoluteFilePath(file), JSON.stringify(tsConfig, null, '\t'));
continue;
}
if (/\.d\.ts$/.test(file) || /\.css$/.test(file) || /\.js$/.test(file)) {
if (/\.d\.ts$/.test(file) || /\.css$/.test(file) || /\.js$/.test(file) || /\.ttf$/.test(file)) {
// Transport the files directly
write(getDestAbsoluteFilePath(file), fs.readFileSync(path.join(SRC_FOLDER, file)));
continue;
@ -250,35 +250,37 @@ function transportCSS(module, enqueue, write) {
const filename = path.join(SRC_DIR, module);
const fileContents = fs.readFileSync(filename).toString();
const inlineResources = 'base64'; // see https://github.com/Microsoft/monaco-editor/issues/148
const inlineResourcesLimit = 300000; //3000; // see https://github.com/Microsoft/monaco-editor/issues/336
const newContents = _rewriteOrInlineUrls(fileContents, inlineResources === 'base64', inlineResourcesLimit);
const newContents = _rewriteOrInlineUrls(fileContents, inlineResources === 'base64');
write(module, newContents);
return true;
function _rewriteOrInlineUrls(contents, forceBase64, inlineByteLimit) {
function _rewriteOrInlineUrls(contents, forceBase64) {
return _replaceURL(contents, (url) => {
let imagePath = path.join(path.dirname(module), url);
let fileContents = fs.readFileSync(path.join(SRC_DIR, imagePath));
if (fileContents.length < inlineByteLimit) {
const MIME = /\.svg$/.test(url) ? 'image/svg+xml' : 'image/png';
let DATA = ';base64,' + fileContents.toString('base64');
if (!forceBase64 && /\.svg$/.test(url)) {
// .svg => url encode as explained at https://codepen.io/tigt/post/optimizing-svgs-in-data-uris
let newText = fileContents.toString()
.replace(/"/g, '\'')
.replace(/</g, '%3C')
.replace(/>/g, '%3E')
.replace(/&/g, '%26')
.replace(/#/g, '%23')
.replace(/\s+/g, ' ');
let encodedData = ',' + newText;
if (encodedData.length < DATA.length) {
DATA = encodedData;
}
}
return '"data:' + MIME + DATA + '"';
const fontMatch = url.match(/^(.*).ttf\?(.*)$/);
if (fontMatch) {
const relativeFontPath = `${fontMatch[1]}.ttf`; // trim the query parameter
const fontPath = path.join(path.dirname(module), relativeFontPath);
enqueue(fontPath);
return relativeFontPath;
}
enqueue(imagePath);
return url;
const imagePath = path.join(path.dirname(module), url);
const fileContents = fs.readFileSync(path.join(SRC_DIR, imagePath));
const MIME = /\.svg$/.test(url) ? 'image/svg+xml' : 'image/png';
let DATA = ';base64,' + fileContents.toString('base64');
if (!forceBase64 && /\.svg$/.test(url)) {
// .svg => url encode as explained at https://codepen.io/tigt/post/optimizing-svgs-in-data-uris
let newText = fileContents.toString()
.replace(/"/g, '\'')
.replace(/</g, '%3C')
.replace(/>/g, '%3E')
.replace(/&/g, '%26')
.replace(/#/g, '%23')
.replace(/\s+/g, ' ');
let encodedData = ',' + newText;
if (encodedData.length < DATA.length) {
DATA = encodedData;
}
}
return '"data:' + MIME + DATA + '"';
});
}
function _replaceURL(contents, replacer) {

View file

@ -154,7 +154,7 @@ export function createESMSourcesAndResources2(options: IOptions2): void {
continue;
}
if (/\.d\.ts$/.test(file) || /\.css$/.test(file) || /\.js$/.test(file)) {
if (/\.d\.ts$/.test(file) || /\.css$/.test(file) || /\.js$/.test(file) || /\.ttf$/.test(file)) {
// Transport the files directly
write(getDestAbsoluteFilePath(file), fs.readFileSync(path.join(SRC_FOLDER, file)));
continue;
@ -290,40 +290,41 @@ function transportCSS(module: string, enqueue: (module: string) => void, write:
const filename = path.join(SRC_DIR, module);
const fileContents = fs.readFileSync(filename).toString();
const inlineResources = 'base64'; // see https://github.com/Microsoft/monaco-editor/issues/148
const inlineResourcesLimit = 300000;//3000; // see https://github.com/Microsoft/monaco-editor/issues/336
const newContents = _rewriteOrInlineUrls(fileContents, inlineResources === 'base64', inlineResourcesLimit);
const newContents = _rewriteOrInlineUrls(fileContents, inlineResources === 'base64');
write(module, newContents);
return true;
function _rewriteOrInlineUrls(contents: string, forceBase64: boolean, inlineByteLimit: number): string {
function _rewriteOrInlineUrls(contents: string, forceBase64: boolean): string {
return _replaceURL(contents, (url) => {
let imagePath = path.join(path.dirname(module), url);
let fileContents = fs.readFileSync(path.join(SRC_DIR, imagePath));
if (fileContents.length < inlineByteLimit) {
const MIME = /\.svg$/.test(url) ? 'image/svg+xml' : 'image/png';
let DATA = ';base64,' + fileContents.toString('base64');
if (!forceBase64 && /\.svg$/.test(url)) {
// .svg => url encode as explained at https://codepen.io/tigt/post/optimizing-svgs-in-data-uris
let newText = fileContents.toString()
.replace(/"/g, '\'')
.replace(/</g, '%3C')
.replace(/>/g, '%3E')
.replace(/&/g, '%26')
.replace(/#/g, '%23')
.replace(/\s+/g, ' ');
let encodedData = ',' + newText;
if (encodedData.length < DATA.length) {
DATA = encodedData;
}
}
return '"data:' + MIME + DATA + '"';
const fontMatch = url.match(/^(.*).ttf\?(.*)$/);
if (fontMatch) {
const relativeFontPath = `${fontMatch[1]}.ttf`; // trim the query parameter
const fontPath = path.join(path.dirname(module), relativeFontPath);
enqueue(fontPath);
return relativeFontPath;
}
enqueue(imagePath);
return url;
const imagePath = path.join(path.dirname(module), url);
const fileContents = fs.readFileSync(path.join(SRC_DIR, imagePath));
const MIME = /\.svg$/.test(url) ? 'image/svg+xml' : 'image/png';
let DATA = ';base64,' + fileContents.toString('base64');
if (!forceBase64 && /\.svg$/.test(url)) {
// .svg => url encode as explained at https://codepen.io/tigt/post/optimizing-svgs-in-data-uris
let newText = fileContents.toString()
.replace(/"/g, '\'')
.replace(/</g, '%3C')
.replace(/>/g, '%3E')
.replace(/&/g, '%26')
.replace(/#/g, '%23')
.replace(/\s+/g, ' ');
let encodedData = ',' + newText;
if (encodedData.length < DATA.length) {
DATA = encodedData;
}
}
return '"data:' + MIME + DATA + '"';
});
}

View file

@ -31,4 +31,4 @@ if (!/yarn\.js$|yarnpkg$/.test(process.env['npm_execpath'])) {
if (err) {
console.error('');
process.exit(1);
}
}

View file

@ -46,58 +46,6 @@
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
]
},
{
// Reason: The npm module does not contain a repository field.
// waiting for https://github.com/xtermjs/xterm.js/issues/2395
"name": "xterm-addon-search",
"fullLicenseText": [
"Copyright (c) 2017, The xterm.js authors (https://github.com/xtermjs/xterm.js)",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy",
"of this software and associated documentation files (the \"Software\"), to deal",
"in the Software without restriction, including without limitation the rights",
"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell",
"copies of the Software, and to permit persons to whom the Software is",
"furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in",
"all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,",
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN",
"THE SOFTWARE."
]
},
{
// Reason: The npm module does not contain a repository field.
// waiting for https://github.com/xtermjs/xterm.js/issues/2395
"name": "xterm-addon-web-links",
"fullLicenseText": [
"Copyright (c) 2017, The xterm.js authors (https://github.com/xtermjs/xterm.js)",
"",
"Permission is hereby granted, free of charge, to any person obtaining a copy",
"of this software and associated documentation files (the \"Software\"), to deal",
"in the Software without restriction, including without limitation the rights",
"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell",
"copies of the Software, and to permit persons to whom the Software is",
"furnished to do so, subject to the following conditions:",
"",
"The above copyright notice and this permission notice shall be included in",
"all copies or substantial portions of the Software.",
"",
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,",
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN",
"THE SOFTWARE."
]
},
{
// Reason: The license at https://git.coolaj86.com/coolaj86/atob.js/src/branch/master/LICENSE
// cannot be found by the OSS tool automatically.

View file

@ -6,7 +6,7 @@
"git": {
"name": "chromium",
"repositoryUrl": "https://chromium.googlesource.com/chromium/src",
"commitHash": "c6a08e5368de4352903e702cde750b33239a50ab"
"commitHash": "91f08db83c2ce8c722ddf0911ead8f7c473bedfa"
}
},
"licenseDetail": [
@ -40,7 +40,7 @@
"SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
],
"isOnlyProductionDependency": true,
"version": "69.0.3497.128"
"version": "76.0.3809.146"
},
{
"component": {
@ -48,11 +48,11 @@
"git": {
"name": "nodejs",
"repositoryUrl": "https://github.com/nodejs/node",
"commitHash": "8c70b2084ce5f76ea1e3b3c4ccdeee4483fe338b"
"commitHash": "64219741218aa87e259cf8257596073b8e747f0a"
}
},
"isOnlyProductionDependency": true,
"version": "10.11.0"
"version": "12.4.0"
},
{
"component": {
@ -60,12 +60,12 @@
"git": {
"name": "electron",
"repositoryUrl": "https://github.com/electron/electron",
"commitHash": "4e4c7527c63fcf27dffaeb58bde996b8d859c0ed"
"commitHash": "407747b48c47cdeed156a73dde1c47609470c95a"
}
},
"isOnlyProductionDependency": true,
"license": "MIT",
"version": "4.2.10"
"version": "6.0.9"
},
{
"component": {

View file

@ -51,7 +51,7 @@
"url": "vscode://schemas/keybindings"
},
{
"fileMatch": "vscode://defaultsettings/settings.json",
"fileMatch": "vscode://defaultsettings/*/*.json",
"url": "vscode://schemas/settings/default"
},
{

View file

@ -54,6 +54,7 @@ export class SettingsDocument {
completions.push(this.newSimpleCompletionItem('${folderName}', range, localize('folderName', "name of the workspace folder the file is contained in (e.g. myFolder)")));
completions.push(this.newSimpleCompletionItem('${folderPath}', range, localize('folderPath', "file path of the workspace folder the file is contained in (e.g. /Users/Development/myFolder)")));
completions.push(this.newSimpleCompletionItem('${appName}', range, localize('appName', "e.g. VS Code")));
completions.push(this.newSimpleCompletionItem('${remoteName}', range, localize('remoteName', "e.g. SSH")));
completions.push(this.newSimpleCompletionItem('${dirty}', range, localize('dirty', "a dirty indicator if the active editor is dirty")));
completions.push(this.newSimpleCompletionItem('${separator}', range, localize('separator', "a conditional separator (' - ') that only shows when surrounded by variables with values")));

View file

@ -8,6 +8,7 @@ var updateGrammar = require('../../../build/npm/update-grammar');
updateGrammar.update('jeff-hykin/cpp-textmate-grammar', '/syntaxes/c.tmLanguage.json', './syntaxes/c.tmLanguage.json', undefined, 'master', 'source/languages/cpp/');
updateGrammar.update('jeff-hykin/cpp-textmate-grammar', '/syntaxes/cpp.tmLanguage.json', './syntaxes/cpp.tmLanguage.json', undefined, 'master', 'source/languages/cpp/');
updateGrammar.update('jeff-hykin/cpp-textmate-grammar', '/syntaxes/cpp.embedded.macro.tmLanguage.json', './syntaxes/cpp.embedded.macro.tmLanguage.json', undefined, 'master', 'source/languages/cpp/');
// `source.c.platform` which is still included by other grammars
updateGrammar.update('textmate/c.tmbundle', 'Syntaxes/Platform.tmLanguage', './syntaxes/platform.tmLanguage.json');

View file

@ -6,11 +6,11 @@
"git": {
"name": "jeff-hykin/cpp-textmate-grammar",
"repositoryUrl": "https://github.com/jeff-hykin/cpp-textmate-grammar",
"commitHash": "7e5b098736796056fa99d1ef50e1b95b6131d16c"
"commitHash": "dd94b6a93799f2bce7e29b2515d96553e34574b0"
}
},
"license": "MIT",
"version": "1.14.3",
"version": "1.14.6",
"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."
},
{
@ -42,4 +42,4 @@
}
],
"version": 1
}
}

View file

@ -5,44 +5,82 @@
"version": "1.0.0",
"publisher": "vscode",
"license": "MIT",
"engines": { "vscode": "*" },
"engines": {
"vscode": "*"
},
"scripts": {
"update-grammar": "node ./build/update-grammars.js"
},
"contributes": {
"languages": [{
"id": "c",
"extensions": [ ".c", ".i"],
"aliases": [ "C", "c" ],
"configuration": "./language-configuration.json"
},
{
"id": "cpp",
"extensions": [ ".cpp", ".cc", ".cxx", ".c++", ".hpp", ".hh", ".hxx", ".h", ".ii", ".ino", ".inl", ".ipp", ".hpp.in", ".h.in" ],
"aliases": [ "C++", "Cpp", "cpp"],
"configuration": "./language-configuration.json"
}],
"grammars": [{
"language": "c",
"scopeName": "source.c",
"path": "./syntaxes/c.tmLanguage.json"
},
{
"language": "cpp",
"scopeName": "source.cpp",
"path": "./syntaxes/cpp.tmLanguage.json"
},
{
"scopeName": "source.c.platform",
"path": "./syntaxes/platform.tmLanguage.json"
}],
"snippets": [{
"language": "c",
"path": "./snippets/c.json"
},
{
"language": "cpp",
"path": "./snippets/cpp.json"
}]
"languages": [
{
"id": "c",
"extensions": [
".c",
".i"
],
"aliases": [
"C",
"c"
],
"configuration": "./language-configuration.json"
},
{
"id": "cpp",
"extensions": [
".cpp",
".cc",
".cxx",
".c++",
".hpp",
".hh",
".hxx",
".h",
".ii",
".ino",
".inl",
".ipp",
".hpp.in",
".h.in"
],
"aliases": [
"C++",
"Cpp",
"cpp"
],
"configuration": "./language-configuration.json"
}
],
"grammars": [
{
"language": "c",
"scopeName": "source.c",
"path": "./syntaxes/c.tmLanguage.json"
},
{
"language": "cpp",
"scopeName": "source.cpp.embedded.macro",
"path": "./syntaxes/cpp.embedded.macro.tmLanguage.json"
},
{
"language": "cpp",
"scopeName": "source.cpp",
"path": "./syntaxes/cpp.tmLanguage.json"
},
{
"scopeName": "source.c.platform",
"path": "./syntaxes/platform.tmLanguage.json"
}
],
"snippets": [
{
"language": "c",
"path": "./snippets/c.json"
},
{
"language": "cpp",
"path": "./snippets/cpp.json"
}
]
}
}

View file

@ -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/7e5b098736796056fa99d1ef50e1b95b6131d16c",
"version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/dd94b6a93799f2bce7e29b2515d96553e34574b0",
"name": "C",
"scopeName": "source.c",
"patterns": [
@ -1150,93 +1150,89 @@
"comments": {
"patterns": [
{
"name": "comment.line.documentation.c",
"while": "(?-mix:(?:^)(?>\\s*)(\\/\\/[!\\/]+))",
"whileCaptures": {
"1": {
"name": "punctuation.definition.comment.continuation.documentation.c"
}
},
"begin": "(\\/\\/[!\\/]+)",
"beginCaptures": {
"match": "(?:^)(?>\\s*)(\\/\\/[!\\/]+)(.*)",
"captures": {
"1": {
"name": "punctuation.definition.comment.documentation.c"
},
"2": {
"patterns": [
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.c"
},
"2": {
"name": "markup.italic.doxygen.c"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.c"
},
"2": {
"name": "markup.bold.doxygen.c"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.c"
},
"2": {
"name": "markup.inline.raw.string.c"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]param)\\s+(\\b\\w+\\b)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.c"
},
"2": {
"name": "variable.parameter.c"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
"name": "storage.type.class.gtkdoc"
},
{
"match": "[\\\\@]\\S++(?!(?:\\n|$))",
"name": "invalid.unknown.documentation.command.c"
}
]
}
},
"patterns": [
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.c"
},
"2": {
"name": "markup.italic.doxygen.c"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.c"
},
"2": {
"name": "markup.bold.doxygen.c"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.c"
},
"2": {
"name": "markup.inline.raw.string.c"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]param)\\s+(\\b\\w+\\b)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.c"
},
"2": {
"name": "variable.parameter.c"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
"name": "storage.type.class.gtkdoc"
},
{
"match": "[\\\\@]\\S++(?!(?:\\n|$))",
"name": "invalid.unknown.documentation.command.c"
}
]
"name": "comment.line.double-slash.documentation.c"
},
{
"match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",
@ -1328,7 +1324,7 @@
},
{
"name": "comment.block.documentation.c",
"begin": "(\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))",
"begin": "((?>\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))",
"beginCaptures": {
"1": {
"name": "punctuation.definition.comment.begin.documentation.c"
@ -1341,89 +1337,6 @@
}
},
"patterns": [
{
"while": "(?-mix:(?:^)(?>\\s*)(?![!*]*\\*\\/)((?>\\**)))",
"whileCaptures": {
"1": {
"name": "punctuation.definition.comment.continuation.documentation.c"
}
},
"begin": "\\G",
"patterns": [
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.c"
},
"2": {
"name": "markup.italic.doxygen.c"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.c"
},
"2": {
"name": "markup.bold.doxygen.c"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.c"
},
"2": {
"name": "markup.inline.raw.string.c"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]param)\\s+(\\b\\w+\\b)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.c"
},
"2": {
"name": "variable.parameter.c"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"
},
{
"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
"name": "storage.type.class.gtkdoc"
},
{
"match": "[\\\\@]\\S++(?!(?:\\n|$))",
"name": "invalid.unknown.documentation.command.c"
}
]
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.c"

File diff suppressed because one or more lines are too long

View file

@ -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/f474f06151d2d86bc78de3503b4aed22d7177c91",
"version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/dd94b6a93799f2bce7e29b2515d96553e34574b0",
"name": "C++",
"scopeName": "source.cpp",
"patterns": [
@ -1502,6 +1502,268 @@
},
"comments": {
"patterns": [
{
"match": "(?:^)(?>\\s*)(\\/\\/[!\\/]+)(.*)",
"captures": {
"1": {
"name": "punctuation.definition.comment.documentation.cpp"
},
"2": {
"patterns": [
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.italic.doxygen.cpp"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.bold.doxygen.cpp"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.inline.raw.string.cpp"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]param)\\s+(\\b\\w+\\b)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "variable.parameter.cpp"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
"name": "storage.type.class.gtkdoc.cpp"
},
{
"match": "[\\\\@]\\S++(?!(?:\\n|$))",
"name": "invalid.unknown.documentation.command.cpp"
}
]
}
},
"name": "comment.line.double-slash.documentation.cpp"
},
{
"match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)",
"captures": {
"1": {
"name": "punctuation.definition.comment.begin.documentation.cpp"
},
"2": {
"patterns": [
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.italic.doxygen.cpp"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.bold.doxygen.cpp"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.inline.raw.string.cpp"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]param)\\s+(\\b\\w+\\b)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "variable.parameter.cpp"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
"name": "storage.type.class.gtkdoc.cpp"
},
{
"match": "[\\\\@]\\S++(?!(?:\\n|$))",
"name": "invalid.unknown.documentation.command.cpp"
}
]
},
"3": {
"name": "punctuation.definition.comment.end.documentation.cpp"
}
},
"name": "comment.block.documentation.cpp"
},
{
"name": "comment.block.documentation.cpp",
"begin": "((?>\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))",
"beginCaptures": {
"1": {
"name": "punctuation.definition.comment.begin.documentation.cpp"
}
},
"end": "([!*]*\\*\\/)",
"endCaptures": {
"1": {
"name": "punctuation.definition.comment.end.documentation.cpp"
}
},
"patterns": [
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.italic.doxygen.cpp"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.bold.doxygen.cpp"
}
}
},
{
"match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "markup.inline.raw.string.cpp"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "((?<=[\\s*!\\/])[\\\\@]param)\\s+(\\b\\w+\\b)",
"captures": {
"1": {
"name": "storage.type.class.doxygen.cpp"
},
"2": {
"name": "variable.parameter.cpp"
}
}
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?",
"name": "storage.type.class.doxygen.cpp"
},
{
"match": "(?:\\b[A-Z]+:|@[a-z_]+:)",
"name": "storage.type.class.gtkdoc.cpp"
},
{
"match": "[\\\\@]\\S++(?!(?:\\n|$))",
"name": "invalid.unknown.documentation.command.cpp"
}
]
},
{
"include": "#emacs_file_banner"
},
@ -6911,6 +7173,9 @@
},
{
"include": "#comma"
},
{
"include": "#comments"
}
]
},
@ -7270,6 +7535,9 @@
},
{
"include": "#comma"
},
{
"include": "#comments"
}
]
},
@ -13574,7 +13842,7 @@
]
},
"struct_declare": {
"match": "(struct)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\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}))*(?!\\w))(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\b(?!final\\W|final\\$|override\\W|override\\$)((?<!\\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}))*(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)",
"match": "(struct)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\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}))*(?!\\w))(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\b(?!final\\W|final\\$|override\\W|override\\$)((?<!\\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}))*(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?![:{])",
"captures": {
"1": {
"name": "storage.type.struct.declare.cpp"
@ -13756,7 +14024,7 @@
}
},
"union_declare": {
"match": "(union)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\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}))*(?!\\w))(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\b(?!final\\W|final\\$|override\\W|override\\$)((?<!\\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}))*(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)",
"match": "(union)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\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}))*(?!\\w))(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\b(?!final\\W|final\\$|override\\W|override\\$)((?<!\\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}))*(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?![:{])",
"captures": {
"1": {
"name": "storage.type.union.declare.cpp"
@ -13938,7 +14206,7 @@
}
},
"enum_declare": {
"match": "(enum)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\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}))*(?!\\w))(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\b(?!final\\W|final\\$|override\\W|override\\$)((?<!\\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}))*(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)",
"match": "(enum)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\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}))*(?!\\w))(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\b(?!final\\W|final\\$|override\\W|override\\$)((?<!\\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}))*(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?![:{])",
"captures": {
"1": {
"name": "storage.type.enum.declare.cpp"
@ -14120,7 +14388,7 @@
}
},
"class_declare": {
"match": "(class)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\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}))*(?!\\w))(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\b(?!final\\W|final\\$|override\\W|override\\$)((?<!\\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}))*(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?!:)",
"match": "(class)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((?<!\\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}))*(?!\\w))(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))?(?:(?:\\&|\\*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))*(?:\\&|\\*))?((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\b(?!final\\W|final\\$|override\\W|override\\$)((?<!\\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}))*(?!\\w))((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?=\\S)(?![:{])",
"captures": {
"1": {
"name": "storage.type.class.declare.cpp"

View file

@ -0,0 +1,13 @@
#define DOCTEST_IMPLEMENT_FIXTURE(der, base, func, decorators) \
namespace { \
struct der : public base \
{ \
void f(); \
}; \
static void func() { \
der v; \
v.f(); \
} \
DOCTEST_REGISTER_FUNCTION(DOCTEST_EMPTY, func, decorators) \
} \
inline DOCTEST_NOINLINE void der::f()

View file

@ -0,0 +1,10 @@
struct Foo {
Foo();
int a;
int b;
int c;
};
Foo::Foo()
: a(1),
// b(2),
c(3) {}

View file

@ -3,10 +3,10 @@
"c": "#",
"t": "source.cpp keyword.control.directive.conditional.ifndef.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -14,10 +14,10 @@
"c": "ifndef",
"t": "source.cpp keyword.control.directive.conditional.ifndef.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -58,10 +58,10 @@
"c": "#",
"t": "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",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -69,10 +69,10 @@
"c": "define",
"t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -102,10 +102,10 @@
"c": "#",
"t": "source.cpp keyword.control.directive.endif.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -113,10 +113,10 @@
"c": "endif",
"t": "source.cpp keyword.control.directive.endif.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
}

View file

@ -3,10 +3,10 @@
"c": "#",
"t": "source.cpp keyword.control.directive.conditional.ifndef.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -14,10 +14,10 @@
"c": "ifndef",
"t": "source.cpp keyword.control.directive.conditional.ifndef.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -47,10 +47,10 @@
"c": "#",
"t": "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",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -58,10 +58,10 @@
"c": "define",
"t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -91,10 +91,10 @@
"c": "#",
"t": "source.cpp keyword.control.directive.endif.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -102,10 +102,10 @@
"c": "endif",
"t": "source.cpp keyword.control.directive.endif.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,530 @@
[
{
"c": "struct",
"t": "source.cpp meta.block.struct.cpp meta.head.struct.cpp storage.type.struct.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 meta.block.struct.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
},
{
"c": "Foo",
"t": "source.cpp meta.block.struct.cpp meta.head.struct.cpp entity.name.type.struct.cpp",
"r": {
"dark_plus": "entity.name.type: #4EC9B0",
"light_plus": "entity.name.type: #267F99",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "entity.name.type: #4EC9B0"
}
},
{
"c": " ",
"t": "source.cpp meta.block.struct.cpp meta.head.struct.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 meta.block.struct.cpp meta.head.struct.cpp punctuation.section.block.begin.bracket.curly.struct.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 meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.special.constructor.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
},
{
"c": "Foo",
"t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "entity.name.function: #DCDCAA"
}
},
{
"c": "(",
"t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp punctuation.section.parameters.begin.bracket.round.special.constructor.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 meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp punctuation.section.parameters.end.bracket.round.special.constructor.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 meta.block.struct.cpp meta.body.struct.cpp punctuation.terminator.statement.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 meta.block.struct.cpp meta.body.struct.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
},
{
"c": "int",
"t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp storage.type.primitive.cpp storage.type.built-in.primitive.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": " a",
"t": "source.cpp meta.block.struct.cpp meta.body.struct.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 meta.block.struct.cpp meta.body.struct.cpp punctuation.terminator.statement.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 meta.block.struct.cpp meta.body.struct.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
},
{
"c": "int",
"t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp storage.type.primitive.cpp storage.type.built-in.primitive.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": " b",
"t": "source.cpp meta.block.struct.cpp meta.body.struct.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 meta.block.struct.cpp meta.body.struct.cpp punctuation.terminator.statement.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 meta.block.struct.cpp meta.body.struct.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
},
{
"c": "int",
"t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp storage.type.primitive.cpp storage.type.built-in.primitive.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": " c",
"t": "source.cpp meta.block.struct.cpp meta.body.struct.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 meta.block.struct.cpp meta.body.struct.cpp punctuation.terminator.statement.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 meta.block.struct.cpp meta.body.struct.cpp punctuation.section.block.end.bracket.curly.struct.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 meta.block.struct.cpp punctuation.terminator.statement.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
},
{
"c": "Foo",
"t": "source.cpp meta.function.definition.special.constructor.cpp entity.name.type.constructor.cpp",
"r": {
"dark_plus": "entity.name.type: #4EC9B0",
"light_plus": "entity.name.type: #267F99",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "entity.name.type: #4EC9B0"
}
},
{
"c": "::",
"t": "source.cpp meta.function.definition.special.constructor.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
},
{
"c": "Foo",
"t": "source.cpp meta.function.definition.special.constructor.cpp entity.name.function.definition.special.constructor.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "entity.name.function: #DCDCAA"
}
},
{
"c": "(",
"t": "source.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp punctuation.section.parameters.begin.bracket.round.special.constructor.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 meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp punctuation.section.parameters.end.bracket.round.special.constructor.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 meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.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 meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp punctuation.separator.initializers.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 meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
},
{
"c": "a",
"t": "source.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp entity.name.function.call.initializer.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "entity.name.function: #DCDCAA"
}
},
{
"c": "(",
"t": "source.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
},
{
"c": "1",
"t": "source.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp meta.parameter.initialization.cpp constant.numeric.decimal.cpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
"dark_vs": "constant.numeric: #B5CEA8",
"light_vs": "constant.numeric: #09885A",
"hc_black": "constant.numeric: #B5CEA8"
}
},
{
"c": ")",
"t": "source.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp punctuation.section.arguments.end.bracket.round.function.call.initializer.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 meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp punctuation.separator.delimiter.comma.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 meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp comment.line.double-slash.cpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
"dark_vs": "comment: #6A9955",
"light_vs": "comment: #008000",
"hc_black": "comment: #7CA668"
}
},
{
"c": "//",
"t": "source.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
"dark_vs": "comment: #6A9955",
"light_vs": "comment: #008000",
"hc_black": "comment: #7CA668"
}
},
{
"c": " b(2),",
"t": "source.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp comment.line.double-slash.cpp",
"r": {
"dark_plus": "comment: #6A9955",
"light_plus": "comment: #008000",
"dark_vs": "comment: #6A9955",
"light_vs": "comment: #008000",
"hc_black": "comment: #7CA668"
}
},
{
"c": " ",
"t": "source.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
},
{
"c": "c",
"t": "source.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp entity.name.function.call.initializer.cpp",
"r": {
"dark_plus": "entity.name.function: #DCDCAA",
"light_plus": "entity.name.function: #795E26",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "entity.name.function: #DCDCAA"
}
},
{
"c": "(",
"t": "source.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
},
{
"c": "3",
"t": "source.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp meta.parameter.initialization.cpp constant.numeric.decimal.cpp",
"r": {
"dark_plus": "constant.numeric: #B5CEA8",
"light_plus": "constant.numeric: #09885A",
"dark_vs": "constant.numeric: #B5CEA8",
"light_vs": "constant.numeric: #09885A",
"hc_black": "constant.numeric: #B5CEA8"
}
},
{
"c": ")",
"t": "source.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp punctuation.section.arguments.end.bracket.round.function.call.initializer.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 meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.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 meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.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 meta.function.definition.special.constructor.cpp meta.body.function.definition.special.constructor.cpp punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp",
"r": {
"dark_plus": "default: #D4D4D4",
"light_plus": "default: #000000",
"dark_vs": "default: #D4D4D4",
"light_vs": "default: #000000",
"hc_black": "default: #FFFFFF"
}
}
]

View file

@ -69,10 +69,10 @@
"c": "#",
"t": "source.c meta.preprocessor.include.c keyword.control.directive.include.c punctuation.definition.directive.c",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -80,10 +80,10 @@
"c": "include",
"t": "source.c meta.preprocessor.include.c keyword.control.directive.include.c",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -135,10 +135,10 @@
"c": "#",
"t": "source.c meta.preprocessor.include.c keyword.control.directive.include.c punctuation.definition.directive.c",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -146,10 +146,10 @@
"c": "include",
"t": "source.c meta.preprocessor.include.c keyword.control.directive.include.c",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},

View file

@ -3,10 +3,10 @@
"c": "#",
"t": "source.cpp keyword.control.directive.conditional.if.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -14,10 +14,10 @@
"c": "if",
"t": "source.cpp keyword.control.directive.conditional.if.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -652,10 +652,10 @@
"c": "#",
"t": "source.cpp keyword.control.directive.endif.cpp punctuation.definition.directive.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -663,10 +663,10 @@
"c": "endif",
"t": "source.cpp keyword.control.directive.endif.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},

View file

@ -25,10 +25,10 @@
"c": "#",
"t": "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",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -36,10 +36,10 @@
"c": "include",
"t": "source.cpp meta.preprocessor.include.cpp keyword.control.directive.include.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -157,10 +157,10 @@
"c": "#",
"t": "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",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -168,10 +168,10 @@
"c": "define",
"t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -198,8 +198,8 @@
}
},
{
"c": " extern \"C\"",
"t": "source.cpp meta.preprocessor.macro.cpp",
"c": " ",
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.extern.cpp",
"r": {
"dark_plus": "meta.preprocessor: #569CD6",
"light_plus": "meta.preprocessor: #0000FF",
@ -208,6 +208,61 @@
"hc_black": "meta.preprocessor: #569CD6"
}
},
{
"c": "extern",
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.extern.cpp meta.head.extern.cpp storage.type.extern.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 meta.preprocessor.macro.cpp meta.block.extern.cpp meta.head.extern.cpp",
"r": {
"dark_plus": "meta.preprocessor: #569CD6",
"light_plus": "meta.preprocessor: #0000FF",
"dark_vs": "meta.preprocessor: #569CD6",
"light_vs": "meta.preprocessor: #0000FF",
"hc_black": "meta.preprocessor: #569CD6"
}
},
{
"c": "\"",
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.extern.cpp meta.head.extern.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": "C",
"t": "source.cpp meta.preprocessor.macro.cpp meta.block.extern.cpp meta.head.extern.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 meta.preprocessor.macro.cpp meta.block.extern.cpp meta.head.extern.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": "class",
"t": "source.cpp meta.block.class.cpp meta.head.class.cpp storage.type.class.cpp",

View file

@ -6,7 +6,7 @@
"type": "extensionHost",
"request": "launch",
"args": [
"--extensionDevelopmentPath=${workspaceFolder}",
"--extensionDevelopmentPath=${workspaceFolder}"
],
"outFiles": [
"${workspaceFolder}/out/**/*.js"

View file

@ -10,6 +10,7 @@
"activationEvents": [
"onDebugResolve"
],
"enableProposedApi": true,
"main": "./out/extension",
"scripts": {
"compile": "gulp compile-extension:debug-server-ready",

View file

@ -10,7 +10,8 @@ import * as nls from 'vscode-nls';
const localize = nls.loadMessageBundle();
const PATTERN = 'listening on.* (https?://\\S+|[0-9]+)'; // matches "listening on port 3000" or "Now listening on: https://localhost:5001"
const URI_FORMAT = 'http://localhost:%s';
const URI_PORT_FORMAT = 'http://localhost:%s';
const URI_FORMAT = '%s';
const WEB_ROOT = '${workspaceFolder}';
interface ServerReadyAction {
@ -21,7 +22,9 @@ interface ServerReadyAction {
}
class ServerReadyDetector extends vscode.Disposable {
static detectors = new Map<vscode.DebugSession, ServerReadyDetector>();
private static detectors = new Map<vscode.DebugSession, ServerReadyDetector>();
private static terminalDataListener: vscode.Disposable | undefined;
private hasFired = false;
private shellPid?: number;
@ -55,6 +58,29 @@ class ServerReadyDetector extends vscode.Disposable {
}
}
static async startListeningTerminalData() {
if (!this.terminalDataListener) {
this.terminalDataListener = vscode.window.onDidWriteTerminalData(async e => {
// first find the detector with a matching pid
const pid = await e.terminal.processId;
for (let [, detector] of this.detectors) {
if (detector.shellPid === pid) {
detector.detectPattern(e.data);
return;
}
}
// if none found, try all detectors until one matches
for (let [, detector] of this.detectors) {
if (detector.detectPattern(e.data)) {
return;
}
}
});
}
}
private constructor(private session: vscode.DebugSession) {
super(() => this.internalDispose());
@ -66,53 +92,37 @@ class ServerReadyDetector extends vscode.Disposable {
this.disposables = [];
}
async trackTerminals() {
let terminals: vscode.Terminal[] = [];
// either find the terminal where the debug is started with "runInTerminal" or use all terminals
for (let terminal of vscode.window.terminals) {
if (!this.shellPid || await terminal.processId === this.shellPid) {
terminals.push(terminal);
}
}
this.shellPid = undefined;
this.disposables.push(vscode.window.onDidWriteTerminalData(e => {
if (terminals.indexOf(e.terminal) !== -1) {
this.detectPattern(e.data);
}
}));
}
detectPattern(s: string): void {
detectPattern(s: string): boolean {
if (!this.hasFired) {
const matches = this.regexp.exec(s);
if (matches && matches.length >= 1) {
this.openExternalWithString(this.session, matches.length > 1 ? matches[1] : '');
this.hasFired = true;
this.internalDispose();
return true;
}
}
return false;
}
private openExternalWithString(session: vscode.DebugSession, captureString: string) {
const args: ServerReadyAction = session.configuration.serverReadyAction;
const format = args.uriFormat || URI_FORMAT;
let uri;
if (captureString === '') {
// nothing captured by reg exp -> use the uriFormat as the target url without substitution
// nothing captured by reg exp -> use the uriFormat as the target uri without substitution
// verify that format does not contain '%s'
const format = args.uriFormat || '';
if (format.indexOf('%s') >= 0) {
const errMsg = localize('server.ready.nocapture.error', "Format uri ('{0}') uses a substitution placeholder but pattern did not capture anything.", format);
vscode.window.showErrorMessage(errMsg, { modal: true }).then(_ => undefined);
return;
}
captureString = format;
} else if (/^[0-9]+$/.test(captureString)) {
// looks like a port number -> use the uriFormat and substitute a single "%s" with the port
uri = format;
} else {
// if no uriFormat is specified guess the appropriate format based on the captureString
const format = args.uriFormat || (/^[0-9]+$/.test(captureString) ? URI_PORT_FORMAT : URI_FORMAT);
// verify that format only contains a single '%s'
const s = format.split('%s');
if (s.length !== 2) {
@ -120,23 +130,22 @@ class ServerReadyDetector extends vscode.Disposable {
vscode.window.showErrorMessage(errMsg, { modal: true }).then(_ => undefined);
return;
}
captureString = util.format(format, captureString);
} else {
// use the string as is
uri = util.format(format, captureString);
}
this.openExternalWithUri(session, captureString);
this.openExternalWithUri(session, uri);
}
private openExternalWithUri(session: vscode.DebugSession, uri: string) {
const args: ServerReadyAction = session.configuration.serverReadyAction;
switch (args.action || 'openExternally') {
case 'openExternally':
vscode.env.openExternal(vscode.Uri.parse(uri));
break;
case 'debugWithChrome':
case 'debugWithChrome':
if (vscode.env.remoteName === 'wsl' || !!vscode.extensions.getExtension('msjsdiag.debugger-for-chrome')) {
vscode.debug.startDebugging(session.workspaceFolder, {
type: 'chrome',
@ -150,6 +159,7 @@ class ServerReadyDetector extends vscode.Disposable {
vscode.window.showErrorMessage(errMsg, { modal: true }).then(_ => undefined);
}
break;
default:
// not supported
break;
@ -163,7 +173,7 @@ export function activate(context: vscode.ExtensionContext) {
if (session && session.configuration.serverReadyAction) {
const detector = ServerReadyDetector.start(session);
if (detector) {
detector.trackTerminals();
ServerReadyDetector.startListeningTerminalData();
}
}
}));

View file

@ -450,7 +450,7 @@
"@emmetio/html-matcher": "^0.3.3",
"@emmetio/math-expression": "^0.1.1",
"image-size": "^0.5.2",
"vscode-emmet-helper": "^1.2.15",
"vscode-emmet-helper": "^1.2.16",
"vscode-html-languageservice": "^3.0.3"
}
}

View file

@ -2469,10 +2469,10 @@ vinyl@~2.0.1:
remove-trailing-separator "^1.0.1"
replace-ext "^1.0.0"
vscode-emmet-helper@^1.2.15:
version "1.2.15"
resolved "https://registry.yarnpkg.com/vscode-emmet-helper/-/vscode-emmet-helper-1.2.15.tgz#62dbfbf49bb9ebe329cb7bffdda5aaac725eea7a"
integrity sha512-JplvmMMWSvm/6/dZezix2ADPM49u6YahPYjs/QToohUpomW/2Eb27ecCrkCyOGBPfKLKGiOPHCssss8TSDA9ag==
vscode-emmet-helper@^1.2.16:
version "1.2.16"
resolved "https://registry.yarnpkg.com/vscode-emmet-helper/-/vscode-emmet-helper-1.2.16.tgz#cfefb8b54c68178b4696d4abae806bb3a2b043e8"
integrity sha512-BuQK6fTV2w65Yd0/CJGj1EOvcJ9NHWfrMJ9nA8pjnu9jzAAnXLhnbviuGT9medMiPU0mp0tJqc/8Z0qlXcqdGw==
dependencies:
"@emmetio/extract-abbreviation" "0.1.6"
jsonc-parser "^1.0.0"

View file

@ -469,11 +469,11 @@
},
{
"command": "git.clean",
"when": "config.git.enabled && gitOpenRepositoryCount != 0 && !gitFreshRepository"
"when": "config.git.enabled && gitOpenRepositoryCount != 0"
},
{
"command": "git.cleanAll",
"when": "config.git.enabled && gitOpenRepositoryCount != 0 && !gitFreshRepository"
"when": "config.git.enabled && gitOpenRepositoryCount != 0"
},
{
"command": "git.commit",
@ -763,7 +763,7 @@
{
"command": "git.cleanAll",
"group": "5_stage",
"when": "scmProvider == git && !gitFreshRepository"
"when": "scmProvider == git"
},
{
"command": "git.stashIncludeUntracked",
@ -831,7 +831,7 @@
},
{
"command": "git.cleanAll",
"when": "scmProvider == git && scmResourceGroup == workingTree && !gitFreshRepository",
"when": "scmProvider == git && scmResourceGroup == workingTree",
"group": "1_modification"
},
{
@ -841,7 +841,7 @@
},
{
"command": "git.cleanAll",
"when": "scmProvider == git && scmResourceGroup == workingTree && !gitFreshRepository",
"when": "scmProvider == git && scmResourceGroup == workingTree",
"group": "inline"
},
{
@ -850,6 +850,53 @@
"group": "inline"
}
],
"scm/resourceFolder/context": [
{
"command": "git.stage",
"when": "scmProvider == git && scmResourceGroup == merge",
"group": "1_modification"
},
{
"command": "git.stage",
"when": "scmProvider == git && scmResourceGroup == merge",
"group": "inline"
},
{
"command": "git.unstage",
"when": "scmProvider == git && scmResourceGroup == index",
"group": "1_modification"
},
{
"command": "git.unstage",
"when": "scmProvider == git && scmResourceGroup == index",
"group": "inline"
},
{
"command": "git.stage",
"when": "scmProvider == git && scmResourceGroup == workingTree",
"group": "1_modification"
},
{
"command": "git.clean",
"when": "scmProvider == git && scmResourceGroup == workingTree",
"group": "1_modification"
},
{
"command": "git.clean",
"when": "scmProvider == git && scmResourceGroup == workingTree",
"group": "inline"
},
{
"command": "git.stage",
"when": "scmProvider == git && scmResourceGroup == workingTree",
"group": "inline"
},
{
"command": "git.ignore",
"when": "scmProvider == git && scmResourceGroup == workingTree",
"group": "1_modification@3"
}
],
"scm/resourceState/context": [
{
"command": "git.stage",
@ -933,12 +980,12 @@
},
{
"command": "git.clean",
"when": "scmProvider == git && scmResourceGroup == workingTree && !gitFreshRepository",
"when": "scmProvider == git && scmResourceGroup == workingTree",
"group": "1_modification"
},
{
"command": "git.clean",
"when": "scmProvider == git && scmResourceGroup == workingTree && !gitFreshRepository",
"when": "scmProvider == git && scmResourceGroup == workingTree",
"group": "inline"
},
{

View file

@ -55,7 +55,7 @@
"command.syncRebase": "Sync (Rebase)",
"command.publish": "Publish Branch",
"command.showOutput": "Show Git Output",
"command.ignore": "Add File to .gitignore",
"command.ignore": "Add to .gitignore",
"command.stashIncludeUntracked": "Stash (Include Untracked)",
"command.stash": "Stash",
"command.stashPop": "Pop Stash...",

View file

@ -9,7 +9,7 @@ import { Repository, GitResourceGroup } from './repository';
import { Model } from './model';
import { debounce } from './decorators';
import { filterEvent, dispose, anyEvent, fireEvent } from './util';
import { GitErrorCodes } from './api/git';
import { GitErrorCodes, Status } from './api/git';
type Callback = { resolve: (status: boolean) => void, reject: (err: any) => void };
@ -122,12 +122,18 @@ class GitDecorationProvider implements DecorationProvider {
}
private collectDecorationData(group: GitResourceGroup, bucket: Map<string, Decoration>): void {
group.resourceStates.forEach(r => {
if (r.resourceDecoration) {
for (const r of group.resourceStates) {
const decoration = r.resourceDecoration;
if (decoration) {
// not deleted and has a decoration
bucket.set(r.original.toString(), r.resourceDecoration);
bucket.set(r.original.toString(), decoration);
if (r.type === Status.INDEX_RENAMED) {
bucket.set(r.resourceUri.toString(), decoration);
}
}
});
}
}
private collectSubmoduleDecorationData(bucket: Map<string, Decoration>): void {

View file

@ -190,7 +190,7 @@ export class Model {
openRepositoriesToDispose.forEach(r => r.dispose());
}
private async onDidChangeVisibleTextEditors(editors: TextEditor[]): Promise<void> {
private async onDidChangeVisibleTextEditors(editors: readonly TextEditor[]): Promise<void> {
const config = workspace.getConfiguration('git');
const autoRepositoryDetection = config.get<boolean | 'subFolders' | 'openEditors'>('autoRepositoryDetection');

View file

@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { commands, Uri, Command, EventEmitter, Event, scm, SourceControl, SourceControlInputBox, SourceControlResourceGroup, SourceControlResourceState, SourceControlResourceDecorations, SourceControlInputBoxValidation, Disposable, ProgressLocation, window, workspace, WorkspaceEdit, ThemeColor, Decoration, Memento, SourceControlInputBoxValidationType, OutputChannel, LogLevel, env, ProgressOptions, CancellationToken } from 'vscode';
import { Uri, Command, EventEmitter, Event, scm, SourceControl, SourceControlInputBox, SourceControlResourceGroup, SourceControlResourceState, SourceControlResourceDecorations, SourceControlInputBoxValidation, Disposable, ProgressLocation, window, workspace, WorkspaceEdit, ThemeColor, Decoration, Memento, SourceControlInputBoxValidationType, OutputChannel, LogLevel, env, ProgressOptions, CancellationToken } from 'vscode';
import { Repository as BaseRepository, Commit, Stash, GitError, Submodule, CommitOptions, ForcePushMode } from './git';
import { anyEvent, filterEvent, eventToPromise, dispose, find, isDescendant, IDisposable, onceEvent, EmptyDisposable, debounceEvent, combinedDisposable } from './util';
import { memoize, throttle, debounce } from './decorators';
@ -633,7 +633,6 @@ export class Repository implements Disposable {
private isRepositoryHuge = false;
private didWarnAboutLimit = false;
private isFreshRepository: boolean | undefined = undefined;
private disposables: Disposable[] = [];
@ -1507,15 +1506,6 @@ export class Repository implements Disposable {
// set count badge
this.setCountBadge();
// Disable `Discard All Changes` for "fresh" repositories
// https://github.com/Microsoft/vscode/issues/43066
const isFreshRepository = !this._HEAD || !this._HEAD.commit;
if (this.isFreshRepository !== isFreshRepository) {
commands.executeCommand('setContext', 'gitFreshRepository', isFreshRepository);
this.isFreshRepository = isFreshRepository;
}
this._onDidChangeStatus.fire();
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.6, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 16 16" style="enable-background:new 0 0 16 16;" xml:space="preserve">
<style type="text/css">
.st0{fill-rule:evenodd;clip-rule:evenodd;fill:#C5C5C5;}
</style>
<g>
<path class="st0" d="M2,14.1l-1.1-1L0.9,3l1-1.1l12.1,0l1.1,1l0,10.1L14,14.1H2z M13.9,12.9V3.1H2.1v9.8H13.9z M8.9,12.1V7.9h4.2
v4.2H8.9z M11.9,10.9V9.1h-1.8v1.8H11.9z M2.9,12.1v-1.2h4.2v1.2H2.9z M2.9,9.1V7.9h4.2v1.2H2.9z M2.9,7.1V3.9h10.2v3.2H2.9z
M11.9,5.9V5.1H4.1v0.8H11.9z"/>
<path d="M14,2l1,1v10l-1,1H2l-1-1V3l1-1H14 M2,13h12V3H2V13 M13,4v3H3V4H13 M4,6h8V5H4V6 M13,8v4H9V8H13 M10,11h2V9h-2V11 M7,8v1H3
V8H7 M7,11v1H3v-1H7 M14.1,1.8L14.1,1.8H2H1.9L1.9,1.9l-1,1L0.8,2.9V3v10v0.1l0.1,0.1l1,1l0.1,0.1H2h12h0.1l0.1-0.1l1-1l0.1-0.1V13
V3V2.9l-0.1-0.1L14.1,1.8L14.1,1.8L14.1,1.8z M2.2,3.2h11.6v9.6H2.2V3.2L2.2,3.2z M13.2,3.8H13H3H2.8V4v3v0.2H3h10h0.2V7V4V3.8
L13.2,3.8z M4.2,5.2h7.6v0.6H4.2V5.2L4.2,5.2z M13.2,7.8H13H9H8.8V8v4v0.2H9h4h0.2V12V8V7.8L13.2,7.8z M10.2,9.2h1.6v1.6h-1.6V9.2
L10.2,9.2z M7.2,7.8H7H3H2.8V8v1v0.2H3h4h0.2V9V8V7.8L7.2,7.8z M7.2,10.8H7H3H2.8V11v1v0.2H3h4h0.2V12v-1V10.8L7.2,10.8z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -8,7 +8,6 @@ html, body {
max-height: 100%;
}
body img {
max-width: none;
max-height: none;
@ -34,6 +33,7 @@ body img {
padding: 0;
background-position: 0 0, 8px 8px;
background-size: 16px 16px;
border: 1px solid var(--vscode-imagePreview-border);
}
.container.image img {

View file

@ -58,7 +58,8 @@
20
];
const isMac = getSettings().isMac;
const settings = getSettings();
const isMac = settings.isMac;
const vscode = acquireVsCodeApi();
@ -71,7 +72,7 @@
// Elements
const container = /** @type {HTMLElement} */(document.querySelector('body'));
const image = document.querySelector('img');
const image = document.createElement('img');
function updateScale(newScale) {
if (!image || !image.parentElement) {
@ -248,6 +249,9 @@
}
});
image.src = decodeURI(settings.src);
document.body.append(image);
window.addEventListener('message', e => {
switch (e.data.type) {
case 'setScale':

View file

@ -2,8 +2,10 @@
"name": "image-preview",
"displayName": "%displayName%",
"description": "%description%",
"extensionKind": "ui",
"version": "1.0.0",
"publisher": "vscode",
"icon": "icon.png",
"enableProposedApi": true,
"license": "MIT",
"aiKey": "AIF-d9b70cd4-b9f9-4d70-929b-a071c400b217",
@ -24,7 +26,8 @@
"displayName": "%webviewEditors.displayName%",
"selector": [
{
"filenamePattern": "*.{jpg,jpe,jpeg,png,bmp,gif,ico,tga,tif,tiff,webp}"
"filenamePattern": "*.{jpg,jpe,jpeg,png,bmp,gif,ico,tga,tif,tiff,webp}",
"mime": "image/*"
}
]
}

View file

@ -80,7 +80,8 @@ export class Preview extends Disposable {
private getWebiewContents(webviewEditor: vscode.WebviewEditor, resource: vscode.Uri): string {
const settings = {
isMac: process.platform === 'darwin'
isMac: process.platform === 'darwin',
src: this.getResourcePath(webviewEditor, resource)
};
return /* html */`<!DOCTYPE html>
@ -95,12 +96,19 @@ export class Preview extends Disposable {
<meta id="image-preview-settings" data-settings="${escapeAttribute(JSON.stringify(settings))}">
</head>
<body class="container image scale-to-fit">
<img src="${escapeAttribute(webviewEditor.webview.asWebviewUri(resource))}">
<script src="${escapeAttribute(this.extensionResource('/media/main.js'))}"></script>
</body>
</html>`;
}
private getResourcePath(webviewEditor: vscode.WebviewEditor, resource: vscode.Uri) {
if (resource.scheme === 'data') {
return encodeURI(resource.toString(true));
}
return encodeURI(webviewEditor.webview.asWebviewUri(resource).toString(true));
}
private extensionResource(path: string) {
return this.webviewEditor.webview.asWebviewUri(this.extensionRoot.with({
path: this.extensionRoot.path + path

View file

@ -14,7 +14,7 @@
"dependencies": {
"jsonc-parser": "^2.1.1",
"request-light": "^0.2.4",
"vscode-json-languageservice": "^3.3.3",
"vscode-json-languageservice": "^3.3.4",
"vscode-languageserver": "^5.3.0-next.8",
"vscode-nls": "^4.1.1",
"vscode-uri": "^2.0.3"

View file

@ -73,10 +73,10 @@ request-light@^0.2.4:
https-proxy-agent "^2.2.1"
vscode-nls "^4.0.0"
vscode-json-languageservice@^3.3.3:
version "3.3.3"
resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.3.3.tgz#f7e512a2cd5e82fecbebf507d6fceaea47661297"
integrity sha512-5vL3OXTUuQpn6+tGd47dopio+7WwbtIZ07zfYMzAUX8eVWPZjfEsLeSWmQk5Xw+vwgu+j5zC4koz5UofLDGGRA==
vscode-json-languageservice@^3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/vscode-json-languageservice/-/vscode-json-languageservice-3.3.4.tgz#4ff67580491d3a5dc469f4a78643f20adff0278d"
integrity sha512-/nuI4uDBfxyVyeGtBdYwP/tIaXYKOoymUOSozYKLzsmrDmu555gZpzc11LrARa96z92wSaa5hfjTtNMAoM2mxw==
dependencies:
jsonc-parser "^2.1.1"
vscode-languageserver-types "^3.15.0-next.2"

View file

@ -5,7 +5,7 @@
"Once accepted there, we are happy to receive an update request."
],
"version": "https://github.com/Microsoft/vscode-JSON.tmLanguage/commit/9bd83f1c252b375e957203f21793316203f61f70",
"name": "JSON (Javascript Next)",
"name": "JSON (JavaScript Next)",
"scopeName": "source.json",
"patterns": [
{
@ -210,4 +210,4 @@
]
}
}
}
}

View file

@ -182,13 +182,12 @@ pre.hljs code > div {
overflow: auto;
}
/** Theming */
pre code {
color: var(--vscode-editor-foreground);
tab-size: 4;
}
/** Theming */
.vscode-light pre {
background-color: rgba(220, 220, 220, 0.4);

View file

@ -1,50 +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 vscode from 'vscode';
import { Disposable } from './util/dispose';
export class DocumentIndex extends Disposable {
private readonly _uriMap = new Map();
constructor() {
super();
for (let doc of vscode.workspace.textDocuments) {
this._registerDoc(doc);
}
this._register(
vscode.workspace.onDidOpenTextDocument((doc) => {
this._registerDoc(doc);
})
);
this._register(
vscode.workspace.onDidCloseTextDocument((doc) => {
this._unregisterDoc(doc.uri);
})
);
}
getByUri(uri: vscode.Uri): vscode.TextDocument | undefined {
return this._uriMap.get(uri.toString());
}
private _registerDoc(doc: vscode.TextDocument) {
const uri = doc.uri.toString();
if (this._uriMap.has(uri)) {
throw new Error(`The document ${uri} is already registered.`);
}
this._uriMap.set(uri, doc);
}
private _unregisterDoc(uri: vscode.Uri) {
if (!this._uriMap.has(uri.toString())) {
throw new Error(`The document ${uri.toString()} is not registered.`);
}
this._uriMap.delete(uri.toString());
}
}

View file

@ -10,7 +10,6 @@ import { Lazy, lazy } from '../util/lazy';
import MDDocumentSymbolProvider from './documentSymbolProvider';
import { SkinnyTextDocument, SkinnyTextLine } from '../tableOfContentsProvider';
import { flatten } from '../util/arrays';
import { DocumentIndex } from '../docIndex';
export interface WorkspaceMarkdownDocumentProvider {
getAllMarkdownDocuments(): Thenable<Iterable<SkinnyTextDocument>>;
@ -27,7 +26,6 @@ class VSCodeWorkspaceMarkdownDocumentProvider extends Disposable implements Work
private readonly _onDidDeleteMarkdownDocumentEmitter = this._register(new vscode.EventEmitter<vscode.Uri>());
private _watcher: vscode.FileSystemWatcher | undefined;
private _docIndex: DocumentIndex = this._register(new DocumentIndex());
async getAllMarkdownDocuments() {
const resources = await vscode.workspace.findFiles('**/*.md', '**/node_modules/**');
@ -83,9 +81,9 @@ class VSCodeWorkspaceMarkdownDocumentProvider extends Disposable implements Work
}
private async getMarkdownDocument(resource: vscode.Uri): Promise<SkinnyTextDocument | undefined> {
const existingDocument = this._docIndex.getByUri(resource);
if (existingDocument) {
return existingDocument;
const matchingDocuments = vscode.workspace.textDocuments.filter((doc) => doc.uri.toString() === resource.toString());
if (matchingDocuments.length !== 0) {
return matchingDocuments[0];
}
const bytes = await vscode.workspace.fs.readFile(resource);

View file

@ -100,6 +100,7 @@ export default class MergeConflictCodeLensProvider implements vscode.CodeLensPro
this.codeLensRegistrationHandle = vscode.languages.registerCodeLensProvider([
{ scheme: 'file' },
{ scheme: 'untitled' },
{ scheme: 'vscode-userdata' },
], this);
}
}

View file

@ -47,10 +47,10 @@
"c": "#",
"t": "source.objc meta.preprocessor.include.objc keyword.control.directive.import.objc punctuation.definition.directive.objc",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -58,10 +58,10 @@
"c": "import",
"t": "source.objc meta.preprocessor.include.objc keyword.control.directive.import.objc",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -113,10 +113,10 @@
"c": "#",
"t": "source.objc meta.preprocessor.include.objc keyword.control.directive.import.objc punctuation.definition.directive.objc",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -124,10 +124,10 @@
"c": "import",
"t": "source.objc meta.preprocessor.include.objc keyword.control.directive.import.objc",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -2038,10 +2038,10 @@
"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",
"dark_vs": "keyword.operator: #D4D4D4",
"light_vs": "keyword.operator: #000000",
"dark_plus": "keyword.operator.minus.exponent: #B5CEA8",
"light_plus": "keyword.operator.minus.exponent: #09885A",
"dark_vs": "keyword.operator.minus.exponent: #B5CEA8",
"light_vs": "keyword.operator.minus.exponent: #09885A",
"hc_black": "keyword.operator: #D4D4D4"
}
},

View file

@ -47,10 +47,10 @@
"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",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -58,10 +58,10 @@
"c": "import",
"t": "source.objcpp meta.preprocessor.include.objcpp keyword.control.directive.import.objcpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -113,10 +113,10 @@
"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",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -124,10 +124,10 @@
"c": "import",
"t": "source.objcpp meta.preprocessor.include.objcpp keyword.control.directive.import.objcpp",
"r": {
"dark_plus": "keyword.control: #C586C0",
"light_plus": "keyword.control: #AF00DB",
"dark_vs": "keyword.control: #569CD6",
"light_vs": "keyword.control: #0000FF",
"dark_plus": "keyword.control.directive: #569CD6",
"light_plus": "keyword.control.directive: #0000FF",
"dark_vs": "keyword.control.directive: #569CD6",
"light_vs": "keyword.control.directive: #0000FF",
"hc_black": "keyword.control: #C586C0"
}
},
@ -2038,10 +2038,10 @@
"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",
"dark_vs": "keyword.operator: #D4D4D4",
"light_vs": "keyword.operator: #000000",
"dark_plus": "keyword.operator.minus.exponent: #B5CEA8",
"light_plus": "keyword.operator.minus.exponent: #09885A",
"dark_vs": "keyword.operator.minus.exponent: #B5CEA8",
"light_vs": "keyword.operator.minus.exponent: #09885A",
"hc_black": "keyword.operator: #D4D4D4"
}
},

View file

@ -3,7 +3,7 @@
"version": "0.0.1",
"description": "Dependencies shared by all extensions",
"dependencies": {
"typescript": "3.6.3-insiders.20190909"
"typescript": "3.6.3"
},
"scripts": {
"postinstall": "node ./postinstall"

View file

@ -8,8 +8,9 @@ const updateGrammar = require('../../../build/npm/update-grammar');
function adaptInjectionScope(grammar) {
// we're using the HTML grammar from https://github.com/textmate/html.tmbundle which has moved away from source.js.embedded.html
// also we need to add source.css scope for PHP code in <style> tags, which are handled differently in atom
const oldInjectionKey = "text.html.php - (meta.embedded | meta.tag), L:((text.html.php meta.tag) - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.js.embedded.html - (meta.embedded.block.php | meta.embedded.line.php))";
const newInjectionKey = "text.html.php - (meta.embedded | meta.tag), L:((text.html.php meta.tag) - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.js - (meta.embedded.block.php | meta.embedded.line.php))";
const newInjectionKey = "text.html.php - (meta.embedded | meta.tag), L:((text.html.php meta.tag) - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.js - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.css - (meta.embedded.block.php | meta.embedded.line.php))";
const injections = grammar.injections;
const injection = injections[oldInjectionKey];

View file

@ -109,7 +109,7 @@
}
]
},
"text.html.php - (meta.embedded | meta.tag), L:((text.html.php meta.tag) - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.js - (meta.embedded.block.php | meta.embedded.line.php))": {
"text.html.php - (meta.embedded | meta.tag), L:((text.html.php meta.tag) - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.js - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.css - (meta.embedded.block.php | meta.embedded.line.php))": {
"patterns": [
{
"include": "#php-tag"

View file

@ -23,6 +23,7 @@
"support.type",
"entity.name.type",
"entity.name.namespace",
"entity.other.attribute",
"entity.name.scope-resolution",
"entity.name.class",
"storage.type.numeric.go",
@ -76,7 +77,8 @@
"source.cpp keyword.operator.new",
"keyword.operator.delete",
"keyword.other.using",
"keyword.other.operator"
"keyword.other.operator",
"entity.name.operator"
],
"settings": {
"foreground": "#C586C0"
@ -170,6 +172,12 @@
"settings": {
"foreground": "#d7ba7d"
}
},
{
"scope": "entity.name.label",
"settings": {
"foreground": "#C8C8C8"
}
}
]
}

View file

@ -44,7 +44,11 @@
},
{
"scope": [
"constant.numeric"
"constant.numeric",
"entity.name.operator.custom-literal.number",
"variable.other.enummember",
"keyword.operator.plus.exponent",
"keyword.operator.minus.exponent"
],
"settings": {
"foreground": "#b5cea8"
@ -166,7 +170,10 @@
}
},
{
"scope": "meta.preprocessor",
"scope": [
"meta.preprocessor",
"keyword.control.directive"
],
"settings": {
"foreground": "#569cd6"
}
@ -208,13 +215,19 @@
}
},
{
"scope": "storage.modifier",
"scope": [
"storage.modifier",
"keyword.operator.noexcept"
],
"settings": {
"foreground": "#569cd6"
}
},
{
"scope": "string",
"scope": [
"string",
"entity.name.operator.custom-literal.string",
],
"settings": {
"foreground": "#ce9178"
}
@ -294,8 +307,11 @@
"keyword.operator.expression",
"keyword.operator.cast",
"keyword.operator.sizeof",
"keyword.operator.typeid",
"keyword.operator.alignas",
"keyword.operator.instanceof",
"keyword.operator.logical.python"
"keyword.operator.logical.python",
"keyword.operator.wordlike"
],
"settings": {
"foreground": "#569cd6"
@ -347,4 +363,4 @@
}
}
]
}
}

View file

@ -23,6 +23,7 @@
"support.type",
"entity.name.type",
"entity.name.namespace",
"entity.other.attribute",
"entity.name.scope-resolution",
"entity.name.class",
"storage.type.numeric.go",
@ -76,7 +77,8 @@
"source.cpp keyword.operator.new",
"source.cpp keyword.operator.delete",
"keyword.other.using",
"keyword.other.operator"
"keyword.other.operator",
"entity.name.operator"
],
"settings": {
"foreground": "#AF00DB"
@ -170,7 +172,12 @@
"settings": {
"foreground": "#ff0000"
}
},
{
"scope": "entity.name.label",
"settings": {
"foreground": "#000000"
}
}
]
}

View file

@ -4,7 +4,10 @@
"include": "./light_defaults.json",
"tokenColors": [
{
"scope": ["meta.embedded", "source.groovy.embedded"],
"scope": [
"meta.embedded",
"source.groovy.embedded"
],
"settings": {
"foreground": "#000000ff"
}
@ -41,7 +44,11 @@
},
{
"scope": [
"constant.numeric"
"constant.numeric",
"entity.name.operator.custom-literal.number",
"variable.other.enummember",
"keyword.operator.plus.exponent",
"keyword.operator.minus.exponent"
],
"settings": {
"foreground": "#09885a"
@ -161,7 +168,10 @@
}
},
{
"scope": "meta.preprocessor",
"scope": [
"meta.preprocessor",
"keyword.control.directive"
],
"settings": {
"foreground": "#0000ff"
}
@ -197,13 +207,19 @@
}
},
{
"scope": "storage.modifier",
"scope": [
"storage.modifier",
"keyword.operator.noexcept"
],
"settings": {
"foreground": "#0000ff"
}
},
{
"scope": "string",
"scope": [
"string",
"entity.name.operator.custom-literal.string",
],
"settings": {
"foreground": "#a31515"
}
@ -315,8 +331,11 @@
"keyword.operator.expression",
"keyword.operator.cast",
"keyword.operator.sizeof",
"keyword.operator.typeid",
"keyword.operator.alignas",
"keyword.operator.instanceof",
"keyword.operator.logical.python"
"keyword.operator.logical.python",
"keyword.operator.wordlike"
],
"settings": {
"foreground": "#0000ff"
@ -368,4 +387,4 @@
}
}
]
}
}

View file

@ -1,4 +1,5 @@
{
"allowTrailingCommas": true,
"title": "JSON schema for the TypeScript compiler's configuration file",
"type": "object",
"default": {

View file

@ -66,7 +66,7 @@
"null"
],
"default": null,
"description": "%typescript.tsdk.desc%",
"markdownDescription": "%typescript.tsdk.desc%",
"scope": "window"
},
"typescript.disableAutomaticTypeAcquisition": {
@ -264,6 +264,22 @@
"description": "%format.placeOpenBraceOnNewLineForControlBlocks%",
"scope": "resource"
},
"typescript.format.semicolons": {
"type": "string",
"default": "ignore",
"description": "%format.semicolons%",
"scope": "resource",
"enum": [
"ignore",
"insert",
"remove"
],
"enumDescriptions": [
"%format.semicolons.ignore%",
"%format.semicolons.insert%",
"%format.semicolons.remove%"
]
},
"javascript.validate.enable": {
"type": "boolean",
"default": true,
@ -360,6 +376,22 @@
"description": "%format.placeOpenBraceOnNewLineForControlBlocks%",
"scope": "resource"
},
"javascript.format.semicolons": {
"type": "string",
"default": "ignore",
"description": "%format.semicolons%",
"scope": "resource",
"enum": [
"ignore",
"insert",
"remove"
],
"enumDescriptions": [
"%format.semicolons.ignore%",
"%format.semicolons.insert%",
"%format.semicolons.remove%"
]
},
"javascript.implicitProjectConfig.checkJs": {
"type": "boolean",
"default": false,

View file

@ -4,10 +4,10 @@
"reloadProjects.title": "Reload Project",
"configuration.typescript": "TypeScript",
"configuration.suggest.completeFunctionCalls": "Complete functions with their parameter signature.",
"typescript.tsdk.desc": "Specifies the folder path containing the tsserver and lib*.d.ts files to use.",
"typescript.tsdk.desc": "Specifies the folder path to the tsserver and lib*.d.ts files under a TypeScript install to use for IntelliSense, for example: `./node_modules/typescript/lib`.\n\n- When specified as a user setting, the TypeScript version from `typescript.tsdk` automatically replaces the built-in TypeScript version.\n- When specified as a workspace setting, `typescript.tsdk` allows you to switch to use that workspace version of TypeScript for IntelliSense with the `TypeScript: Select TypeScript version` command.\n\nSee the [TypeScript documentation](https://code.visualstudio.com/docs/typescript/typescript-compiling#_using-newer-typescript-versions) for more detail about managing TypeScript versions.",
"typescript.disableAutomaticTypeAcquisition": "Disables automatic type acquisition. Automatic type acquisition fetches `@types` packages from npm to improve IntelliSense for external libraries.",
"typescript.tsserver.log": "Enables logging of the TS server to a file. This log can be used to diagnose TS Server issues. The log may contain file paths, source code, and other potentially sensitive information from your project.",
"typescript.tsserver.pluginPaths": "Additional paths to discover Typescript Language Service plugins. Requires using TypeScript 2.3.0 or newer in the workspace.",
"typescript.tsserver.pluginPaths": "Additional paths to discover TypeScript Language Service plugins. Requires using TypeScript 2.3.0 or newer in the workspace.",
"typescript.tsserver.pluginPaths.item": "Either an absolute or relative path. Relative path will be resolved against workspace folder(s).",
"typescript.tsserver.trace": "Enables tracing of messages sent to the TS server. This trace can be used to diagnose TS Server issues. The trace may contain file paths, source code, and other potentially sensitive information from your project.",
"typescript.validate.enable": "Enable/disable TypeScript validation.",
@ -28,6 +28,10 @@
"format.insertSpaceAfterTypeAssertion": "Defines space handling after type assertions in TypeScript. Requires using TypeScript 2.4 or newer in the workspace.",
"format.placeOpenBraceOnNewLineForFunctions": "Defines whether an open brace is put onto a new line for functions or not.",
"format.placeOpenBraceOnNewLineForControlBlocks": "Defines whether an open brace is put onto a new line for control blocks or not.",
"format.semicolons": "Defines handling of optional semicolons. Requires using TypeScript 3.7 or newer in the workspace.",
"format.semicolons.ignore": "Dont insert or remove any semicolons.",
"format.semicolons.insert": "Insert semicolons at statement ends.",
"format.semicolons.remove": "Remove unnecessary semicolons.",
"javascript.validate.enable": "Enable/disable JavaScript validation.",
"goToProjectConfig.title": "Go to Project Configuration",
"javascript.referencesCodeLens.enabled": "Enable/disable references CodeLens in JavaScript files.",
@ -70,4 +74,4 @@
"configuration.surveys.enabled": "Enabled/disable occasional surveys that help us improve VS Code's JavaScript and TypeScript support.",
"configuration.suggest.completeJSDocs": "Enable/disable suggestion to complete JSDoc comments.",
"typescript.preferences.renameShorthandProperties": "Enable/disable introducing aliases for object shorthand properties during renames. Requires using TypeScript 3.4 or newer in the workspace."
}
}

View file

@ -416,7 +416,7 @@ class TypeScriptCompletionItemProvider implements vscode.CompletionItemProvider
isNewIdentifierLocation = response.body.isNewIdentifierLocation;
isMemberCompletion = response.body.isMemberCompletion;
if (isMemberCompletion) {
const dotMatch = line.text.slice(0, position.character).match(/\.\s*$/) || undefined;
const dotMatch = line.text.slice(0, position.character).match(/\??\.\s*$/) || undefined;
if (dotMatch) {
const range = new vscode.Range(position.translate({ characterDelta: -dotMatch[0].length }), position);
const text = document.getText(range);

View file

@ -144,7 +144,9 @@ export default class FileConfigurationManager extends Disposable {
isTypeScriptDocument(document) ? 'typescript.format' : 'javascript.format',
document.uri);
return {
// `semicolons` added to `Proto.FormatCodeSettings` in TypeScript 3.7:
// remove intersection type after upgrading TypeScript.
const settings: Proto.FormatCodeSettings & { semicolons?: string } = {
tabSize: options.tabSize,
indentSize: options.tabSize,
convertTabsToSpaces: options.insertSpaces,
@ -165,7 +167,10 @@ export default class FileConfigurationManager extends Disposable {
insertSpaceAfterTypeAssertion: config.get<boolean>('insertSpaceAfterTypeAssertion'),
placeOpenBraceOnNewLineForFunctions: config.get<boolean>('placeOpenBraceOnNewLineForFunctions'),
placeOpenBraceOnNewLineForControlBlocks: config.get<boolean>('placeOpenBraceOnNewLineForControlBlocks'),
semicolons: config.get<string>('semicolons'),
};
return settings;
}
private getPreferences(document: vscode.TextDocument): Proto.UserPreferences {
@ -201,4 +206,4 @@ function getImportModuleSpecifierPreference(config: vscode.WorkspaceConfiguratio
case 'non-relative': return 'non-relative';
default: return undefined;
}
}
}

View file

@ -75,7 +75,7 @@ export default class TscTaskProvider implements vscode.TaskProvider {
const badTsconfig = /\\tsconfig.*\.json/;
if (badTsconfig.exec(definition.tsconfig) !== null) {
// Warn that the task has the wrong slash type
vscode.window.showWarningMessage(localize('badTsConfig', "Typescript Task in tasks.json contains \"\\\\\". Typescript tasks tsconfig must use \"/\""));
vscode.window.showWarningMessage(localize('badTsConfig', "TypeScript Task in tasks.json contains \"\\\\\". TypeScript tasks tsconfig must use \"/\""));
return undefined;
}

View file

@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
import * as assert from 'assert';
import { env, extensions, ExtensionKind } from 'vscode';
import { env, extensions, ExtensionKind, UIKind } from 'vscode';
suite('env-namespace', () => {
@ -44,4 +44,9 @@ suite('env-namespace', () => {
assert.fail();
}
});
test('env.uiKind', function () {
const kind = env.uiKind;
assert.equal(kind, UIKind.Desktop);
});
});

View file

@ -2,7 +2,7 @@
# yarn lockfile v1
typescript@3.6.3-insiders.20190909:
version "3.6.3-insiders.20190909"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.3-insiders.20190909.tgz#65b6b2d809288311a970819849e1964ac73e1fda"
integrity sha512-Lr7ONd8Y05EhrI+zKoI5tgvO5dhuRDrK5pyOLG33DeMln8zb8w7Yc8AoIEyqvxB5Btj9F7zBmXBXJdTI3SuX0Q==
typescript@3.6.3:
version "3.6.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.6.3.tgz#fea942fabb20f7e1ca7164ff626f1a9f3f70b4da"
integrity sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw==

View file

@ -1,7 +1,7 @@
{
"name": "code-oss-dev",
"version": "1.39.0",
"distro": "3a4752953831a3a185b68c86cbe0022b55aff6d6",
"distro": "13ad3edfae7fc8e54c16b95b7ed4f5b6e41571ab",
"author": {
"name": "Microsoft Corporation"
},
@ -30,6 +30,7 @@
"dependencies": {
"@microsoft/applicationinsights-web": "^2.1.1",
"applicationinsights": "1.0.8",
"chokidar": "3.1.0",
"graceful-fs": "4.1.11",
"http-proxy-agent": "^2.1.0",
"https-proxy-agent": "^2.2.1",
@ -38,7 +39,7 @@
"keytar": "^4.11.0",
"native-is-elevated": "0.3.0",
"native-keymap": "2.0.0",
"native-watchdog": "1.0.0",
"native-watchdog": "1.2.0",
"node-pty": "0.9.0-beta19",
"nsfw": "1.2.5",
"onigasm-umd": "^2.2.2",
@ -46,13 +47,12 @@
"spdlog": "^0.9.0",
"sudo-prompt": "9.0.0",
"v8-inspect-profiler": "^0.0.20",
"vscode-chokidar": "2.1.7",
"vscode-minimist": "^1.2.1",
"vscode-proxy-agent": "0.4.0",
"vscode-ripgrep": "^1.5.7",
"vscode-sqlite3": "4.0.8",
"vscode-textmate": "^4.2.2",
"xterm": "4.0.0",
"xterm": "4.1.0-beta8",
"xterm-addon-search": "0.2.0",
"xterm-addon-web-links": "0.2.0",
"yauzl": "^2.9.2",
@ -97,7 +97,7 @@
"gulp-rename": "^1.2.0",
"gulp-replace": "^0.5.4",
"gulp-shell": "^0.6.5",
"gulp-tsb": "4.0.2",
"gulp-tsb": "4.0.4",
"gulp-tslint": "^8.1.3",
"gulp-untar": "^0.0.7",
"gulp-vinyl-zip": "^2.1.2",
@ -133,7 +133,7 @@
"vinyl": "^2.0.0",
"vinyl-fs": "^3.0.0",
"vsce": "1.48.0",
"vscode-debugprotocol": "1.36.0",
"vscode-debugprotocol": "1.37.0",
"vscode-nls-dev": "^3.3.1",
"webpack": "^4.16.5",
"webpack-cli": "^3.3.8",

View file

@ -23,4 +23,4 @@
"extensionAllowedProposedApi": [
"ms-vscode.references-view"
]
}
}

View file

@ -1,3 +1,3 @@
disturl "http://nodejs.org/dist"
target "10.11.0"
target "12.4.0"
runtime "node"

View file

@ -4,24 +4,24 @@
"dependencies": {
"@microsoft/applicationinsights-web": "^2.1.1",
"applicationinsights": "1.0.8",
"chokidar": "3.1.0",
"cookie": "^0.4.0",
"graceful-fs": "4.1.11",
"http-proxy-agent": "^2.1.0",
"https-proxy-agent": "^2.2.1",
"iconv-lite": "0.5.0",
"jschardet": "1.6.0",
"native-watchdog": "1.0.0",
"native-watchdog": "1.2.0",
"node-pty": "0.9.0-beta19",
"nsfw": "1.2.5",
"onigasm-umd": "^2.2.2",
"semver-umd": "^5.5.3",
"spdlog": "^0.9.0",
"vscode-chokidar": "2.1.7",
"vscode-minimist": "^1.2.1",
"vscode-proxy-agent": "0.4.0",
"vscode-ripgrep": "^1.5.7",
"vscode-textmate": "^4.2.2",
"xterm": "4.0.0",
"xterm": "4.1.0-beta8",
"xterm-addon-search": "0.2.0",
"xterm-addon-web-links": "0.2.0",
"yauzl": "^2.9.2",

View file

@ -6,7 +6,7 @@
"onigasm-umd": "^2.2.2",
"semver-umd": "^5.5.3",
"vscode-textmate": "^4.2.2",
"xterm": "4.0.0",
"xterm": "4.1.0-beta8",
"xterm-addon-search": "0.2.0",
"xterm-addon-web-links": "0.2.0"
}

View file

@ -109,7 +109,7 @@ xterm-addon-web-links@0.2.0:
resolved "https://registry.yarnpkg.com/xterm-addon-web-links/-/xterm-addon-web-links-0.2.0.tgz#b408a0be46211d8d4a0bb5e701d8f3c2bd07d473"
integrity sha512-dq81c4Pzli2PgKVBgY2REte9sCVibR3df8AP3SEvCTM9uYFnUFxtxzMTplPnc7+rXabVhFdbU6x+rstIk8HNQg==
xterm@4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.0.0.tgz#eac93e08cbe69cf238cbace9185ed9e38873df1a"
integrity sha512-Xbx3vvf9FnrUcI1qU31Jww7/fc/NqpXGqgByTvjj7+g3/yPvt/RvLkP/LLMcof2kLAC3evzZGMiovs7NkjdWDw==
xterm@4.1.0-beta8:
version "4.1.0-beta8"
resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.1.0-beta8.tgz#c1ef323ba336d92f5b52302b66f672dfff75b3ef"
integrity sha512-6lf+XVv0qT285w49P92tSYoUB406jdbgdhnPKNzxCIGtGX8kcwK+pHZ8HncDwcEhmTmI4LZ/WXPGtOQJg+onwg==

File diff suppressed because it is too large Load diff

View file

@ -2,7 +2,7 @@
Name=@@NAME_LONG@@ - URL Handler
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=@@EXEC@@ --open-url %U
Exec=@@EXEC@@ --no-sandbox --open-url %U
Icon=@@ICON@@
Type=Application
NoDisplay=true

View file

@ -2,7 +2,7 @@
Name=@@NAME_LONG@@
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=@@EXEC@@ --unity-launch %F
Exec=@@EXEC@@ --no-sandbox --unity-launch %F
Icon=@@ICON@@
Type=Application
StartupNotify=false
@ -14,5 +14,5 @@ Keywords=vscode;
[Desktop Action new-empty-window]
Name=New Empty Window
Exec=@@EXEC@@ --new-window %F
Exec=@@EXEC@@ --no-sandbox --new-window %F
Icon=@@ICON@@

View file

@ -27,15 +27,15 @@ if grep -qi Microsoft /proc/version; then
WSL_EXT_ID="ms-vscode-remote.remote-wsl"
if [ $WSL_BUILD -ge 41955 -a $WSL_BUILD -lt 41959 ]; then
# WSL2 in workaround for https://github.com/microsoft/WSL/issues/4337
# WSL2 workaround for https://github.com/microsoft/WSL/issues/4337
CWD="$(pwd)"
cd "$VSCODE_PATH"
cmd.exe /C ".\\bin\\$APP_NAME.cmd --locate-extension $WSL_EXT_ID >remote-wsl-loc.txt"
WSL_EXT_WLOC="$(cat ./remote-wsl-loc.txt)"
rm remote-wsl-loc.txt
cmd.exe /C ".\\bin\\$APP_NAME.cmd --locate-extension $WSL_EXT_ID >%TEMP%\\remote-wsl-loc.txt"
WSL_EXT_WLOC=$(cmd.exe /C type %TEMP%\\remote-wsl-loc.txt)
cd "$CWD"
else
WSL_EXT_WLOC=$(ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" --locate-extension $WSL_EXT_ID)
ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" --locate-extension $WSL_EXT_ID >/tmp/remote-wsl-loc.txt 2>/dev/null
WSL_EXT_WLOC=$(cat /tmp/remote-wsl-loc.txt)
fi
if [ -n "$WSL_EXT_WLOC" ]; then
# replace \r\n with \n in WSL_EXT_WLOC

View file

@ -8,6 +8,7 @@ if [[ "$OSTYPE" == "darwin"* ]]; then
else
ROOT=$(dirname $(dirname $(readlink -f $0)))
VSCODEUSERDATADIR=`mktemp -d 2>/dev/null`
LINUX_NO_SANDBOX="--no-sandbox" # Electron 6 introduces a chrome-sandbox that requires root to run. This can fail. Disable sandbox via --no-sandbox.
fi
cd $ROOT
@ -36,13 +37,13 @@ fi
./scripts/test.sh --runGlob **/*.integrationTest.js "$@"
# Tests in the extension host
"$INTEGRATION_TEST_ELECTRON_PATH" $ROOT/extensions/vscode-api-tests/testWorkspace --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/singlefolder-tests --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --disable-inspect --user-data-dir=$VSCODEUSERDATADIR
"$INTEGRATION_TEST_ELECTRON_PATH" $ROOT/extensions/vscode-api-tests/testworkspace.code-workspace --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/workspace-tests --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --disable-inspect --user-data-dir=$VSCODEUSERDATADIR
"$INTEGRATION_TEST_ELECTRON_PATH" $ROOT/extensions/vscode-colorize-tests/test --extensionDevelopmentPath=$ROOT/extensions/vscode-colorize-tests --extensionTestsPath=$ROOT/extensions/vscode-colorize-tests/out --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --disable-inspect --user-data-dir=$VSCODEUSERDATADIR
"$INTEGRATION_TEST_ELECTRON_PATH" $ROOT/extensions/markdown-language-features/test-fixtures --extensionDevelopmentPath=$ROOT/extensions/markdown-language-features --extensionTestsPath=$ROOT/extensions/markdown-language-features/out/test --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --disable-inspect --user-data-dir=$VSCODEUSERDATADIR
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_NO_SANDBOX $ROOT/extensions/vscode-api-tests/testWorkspace --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/singlefolder-tests --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --disable-inspect --user-data-dir=$VSCODEUSERDATADIR
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_NO_SANDBOX $ROOT/extensions/vscode-api-tests/testworkspace.code-workspace --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/workspace-tests --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --disable-inspect --user-data-dir=$VSCODEUSERDATADIR
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_NO_SANDBOX $ROOT/extensions/vscode-colorize-tests/test --extensionDevelopmentPath=$ROOT/extensions/vscode-colorize-tests --extensionTestsPath=$ROOT/extensions/vscode-colorize-tests/out --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --disable-inspect --user-data-dir=$VSCODEUSERDATADIR
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_NO_SANDBOX $ROOT/extensions/markdown-language-features/test-fixtures --extensionDevelopmentPath=$ROOT/extensions/markdown-language-features --extensionTestsPath=$ROOT/extensions/markdown-language-features/out/test --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --disable-inspect --user-data-dir=$VSCODEUSERDATADIR
mkdir -p $ROOT/extensions/emmet/test-fixtures
"$INTEGRATION_TEST_ELECTRON_PATH" $ROOT/extensions/emmet/test-fixtures --extensionDevelopmentPath=$ROOT/extensions/emmet --extensionTestsPath=$ROOT/extensions/emmet/out/test --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --disable-inspect --user-data-dir=$VSCODEUSERDATADIR
"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_NO_SANDBOX $ROOT/extensions/emmet/test-fixtures --extensionDevelopmentPath=$ROOT/extensions/emmet --extensionTestsPath=$ROOT/extensions/emmet/out/test --disable-telemetry --disable-crash-reporter --disable-updates --disable-extensions --skip-getting-started --disable-inspect --user-data-dir=$VSCODEUSERDATADIR
rm -rf $ROOT/extensions/emmet/test-fixtures
# Remote Integration Tests

View file

@ -34,5 +34,5 @@ else
cd $ROOT ; \
ELECTRON_ENABLE_LOGGING=1 \
"$CODE" \
test/electron/index.js "$@"
test/electron/index.js --no-sandbox "$@" # Electron 6 introduces a chrome-sandbox that requires root to run. This can fail. Disable sandbox via --no-sandbox.
fi

18
src/bootstrap.js vendored
View file

@ -21,6 +21,7 @@ process.on('SIGPIPE', () => {
//#endregion
//#region Add support for redirecting the loading of node modules
exports.injectNodeModuleLookupPath = function (injectPath) {
if (!injectPath) {
throw new Error('Missing injectPath');
@ -36,10 +37,8 @@ exports.injectNodeModuleLookupPath = function (injectPath) {
const originalResolveLookupPaths = Module._resolveLookupPaths;
// @ts-ignore
Module._resolveLookupPaths = function (moduleName, parent, newReturn) {
const result = originalResolveLookupPaths(moduleName, parent, newReturn);
const paths = newReturn ? result : result[1];
Module._resolveLookupPaths = function (moduleName, parent) {
const paths = originalResolveLookupPaths(moduleName, parent);
for (let i = 0, len = paths.length; i < len; i++) {
if (paths[i] === nodeModulesPath) {
paths.splice(i, 0, injectPath);
@ -47,7 +46,7 @@ exports.injectNodeModuleLookupPath = function (injectPath) {
}
}
return result;
return paths;
};
};
//#endregion
@ -71,11 +70,10 @@ exports.enableASARSupport = function (nodeModulesPath) {
// @ts-ignore
const originalResolveLookupPaths = Module._resolveLookupPaths;
// @ts-ignore
Module._resolveLookupPaths = function (request, parent, newReturn) {
const result = originalResolveLookupPaths(request, parent, newReturn);
const paths = newReturn ? result : result[1];
// @ts-ignore
Module._resolveLookupPaths = function (request, parent) {
const paths = originalResolveLookupPaths(request, parent);
for (let i = 0, len = paths.length; i < len; i++) {
if (paths[i] === NODE_MODULES_PATH) {
paths.splice(i, 0, NODE_MODULES_ASAR_PATH);
@ -83,7 +81,7 @@ exports.enableASARSupport = function (nodeModulesPath) {
}
}
return result;
return paths;
};
};
//#endregion

View file

@ -17,7 +17,7 @@ const paths = require('./paths');
// @ts-ignore
const product = require('../product.json');
// @ts-ignore
const app = require('electron').app;
const { app, protocol } = require('electron');
// Enable portable support
const portable = bootstrap.configurePortable();
@ -33,6 +33,11 @@ app.setPath('userData', userDataPath);
// Update cwd based on environment and platform
setCurrentWorkingDirectory();
// Register custom schemes with privileges
protocol.registerSchemesAsPrivileged([
{ scheme: 'vscode-resource', privileges: { secure: true, supportFetchAPI: true, corsEnabled: true } }
]);
// Global app listeners
registerListeners();
@ -102,7 +107,7 @@ function onReady() {
});
};
// We recevied a valid nlsConfig from a user defined locale
// We received a valid nlsConfig from a user defined locale
if (nlsConfig) {
startup(nlsConfig);
}

View file

@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
declare module 'vscode-chokidar' {
declare module 'chokidar' {
// TypeScript Version: 3.0
@ -197,4 +197,4 @@ declare module 'vscode-chokidar' {
paths: string | string[],
options?: WatchOptions
): FSWatcher;
}
}

File diff suppressed because it is too large Load diff

View file

@ -650,24 +650,32 @@ declare module 'xterm' {
clear(): void;
/**
* Writes text to the terminal.
* @param data The text to write to the terminal.
* Write data to the terminal.
* @param data The data to write to the terminal. This can either be raw
* bytes given as Uint8Array from the pty or a string. Raw bytes will always
* be treated as UTF-8 encoded, string data as UTF-16.
* @param callback Optional callback that fires when the data was processed
* by the parser.
*/
write(data: string): void;
write(data: string | Uint8Array, callback?: () => void): void;
/**
* Writes text to the terminal, followed by a break line character (\n).
* @param data The text to write to the terminal.
* Writes data to the terminal, followed by a break line character (\n).
* @param data The data to write to the terminal. This can either be raw
* bytes given as Uint8Array from the pty or a string. Raw bytes will always
* be treated as UTF-8 encoded, string data as UTF-16.
* @param callback Optional callback that fires when the data was processed
* by the parser.
*/
writeln(data: string): void;
writeln(data: string | Uint8Array, callback?: () => void): void;
/**
* Writes UTF8 data to the terminal. This has a slight performance advantage
* over the string based write method due to lesser data conversions needed
* on the way from the pty to xterm.js.
* Write UTF8 data to the terminal.
* @param data The data to write to the terminal.
* @param callback Optional callback when data was processed.
* @deprecated use `write` instead
*/
writeUtf8(data: Uint8Array): void;
writeUtf8(data: Uint8Array, callback?: () => void): void;
/**
* Writes text to the terminal, performing the necessary transformations for pasted text.
@ -804,7 +812,7 @@ declare module 'xterm' {
*/
export interface ITerminalAddon extends IDisposable {
/**
* (EXPERIMENTAL) This is called when the addon is activated.
* This is called when the addon is activated.
*/
activate(terminal: Terminal): void;
}

View file

@ -203,16 +203,16 @@ export const toggleClass: (node: HTMLElement | SVGElement, className: string, sh
class DomListener implements IDisposable {
private _handler: (e: any) => void;
private _node: Element | Window | Document;
private _node: EventTarget;
private readonly _type: string;
private readonly _useCapture: boolean;
private readonly _options: boolean | AddEventListenerOptions;
constructor(node: Element | Window | Document, type: string, handler: (e: any) => void, useCapture?: boolean) {
constructor(node: EventTarget, type: string, handler: (e: any) => void, options?: boolean | AddEventListenerOptions) {
this._node = node;
this._type = type;
this._handler = handler;
this._useCapture = (useCapture || false);
this._node.addEventListener(this._type, this._handler, this._useCapture);
this._options = (options || false);
this._node.addEventListener(this._type, this._handler, this._options);
}
public dispose(): void {
@ -221,7 +221,7 @@ class DomListener implements IDisposable {
return;
}
this._node.removeEventListener(this._type, this._handler, this._useCapture);
this._node.removeEventListener(this._type, this._handler, this._options);
// Prevent leakers from holding on to the dom or handler func
this._node = null!;
@ -229,9 +229,10 @@ class DomListener implements IDisposable {
}
}
export function addDisposableListener<K extends keyof GlobalEventHandlersEventMap>(node: Element | Window | Document, type: K, handler: (event: GlobalEventHandlersEventMap[K]) => void, useCapture?: boolean): IDisposable;
export function addDisposableListener(node: Element | Window | Document, type: string, handler: (event: any) => void, useCapture?: boolean): IDisposable;
export function addDisposableListener(node: Element | Window | Document, type: string, handler: (event: any) => void, useCapture?: boolean): IDisposable {
export function addDisposableListener<K extends keyof GlobalEventHandlersEventMap>(node: EventTarget, type: K, handler: (event: GlobalEventHandlersEventMap[K]) => void, useCapture?: boolean): IDisposable;
export function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, useCapture?: boolean): IDisposable;
export function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, useCapture: AddEventListenerOptions): IDisposable;
export function addDisposableListener(node: EventTarget, type: string, handler: (event: any) => void, useCapture?: boolean | AddEventListenerOptions): IDisposable {
return new DomListener(node, type, handler, useCapture);
}
@ -559,13 +560,11 @@ class SizeUtils {
// Position & Dimension
export class Dimension {
public width: number;
public height: number;
constructor(width: number, height: number) {
this.width = width;
this.height = height;
}
constructor(
public readonly width: number,
public readonly height: number,
) { }
static equals(a: Dimension | undefined, b: Dimension | undefined): boolean {
if (a === b) {
@ -782,6 +781,12 @@ export function createStyleSheet(container: HTMLElement = document.getElementsBy
return style;
}
export function createMetaElement(container: HTMLElement = document.getElementsByTagName('head')[0]): HTMLMetaElement {
let meta = document.createElement('meta');
container.appendChild(meta);
return meta;
}
let _sharedStyleSheet: HTMLStyleElement | null = null;
function getSharedStyleSheet(): HTMLStyleElement {
if (!_sharedStyleSheet) {

View file

@ -40,7 +40,8 @@
transform: scale(1.272019649, 1.272019649); /* 1.272019649 = √φ */
}
.monaco-action-bar .action-item .icon {
.monaco-action-bar .action-item .icon,
.monaco-action-bar .action-item .codicon {
display: inline-block;
}
@ -95,4 +96,4 @@
display: flex;
align-items: center;
justify-content: center;
}
}

View file

@ -311,14 +311,14 @@ export class ActionViewItem extends BaseActionViewItem {
if (this.options.icon) {
this.cssClass = this.getAction().class;
DOM.addClass(this.label, 'icon');
DOM.addClass(this.label, 'codicon');
if (this.cssClass) {
DOM.addClasses(this.label, this.cssClass);
}
this.updateEnabled();
} else {
DOM.removeClass(this.label, 'icon');
DOM.removeClass(this.label, 'codicon');
}
}

View file

@ -99,7 +99,7 @@ export class Checkbox extends Widget {
this.domNode = document.createElement('div');
this.domNode.title = this._opts.title;
this.domNode.className = 'monaco-custom-checkbox ' + (this._opts.actionClassName || '') + ' ' + (this._checked ? 'checked' : 'unchecked');
this.domNode.className = 'monaco-custom-checkbox codicon ' + (this._opts.actionClassName || '') + ' ' + (this._checked ? 'checked' : 'unchecked');
this.domNode.tabIndex = 0;
this.domNode.setAttribute('role', 'checkbox');
this.domNode.setAttribute('aria-checked', String(this._checked));

View file

@ -3,8 +3,12 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { ISCMResourceGroup, ISCMResource } from 'vs/workbench/contrib/scm/common/scm';
@keyframes codicon-spin {
100% {
transform:rotate(360deg);
}
}
export function isSCMResource(element: ISCMResourceGroup | ISCMResource): element is ISCMResource {
return !!(element as ISCMResource).sourceUri;
}
.codicon-animation-spin {
animation: octicon-spin 1.5s linear infinite;
}

View file

@ -0,0 +1,355 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
@font-face {
font-family: "codicon";
src: url("./codicon.ttf?3b584136fb1f0186a1ee578cdcb5240b") format("truetype");
}
.codicon[class*='codicon-'] {
font: normal normal normal 16px/1 codicon;
display: inline-block;
text-decoration: none;
text-rendering: auto;
text-align: center;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
.codicon-add:before { content: "\ea60" }
.codicon-plus:before { content: "\ea60" }
.codicon-gist-new:before { content: "\ea60" }
.codicon-repo-create:before { content: "\ea60" }
.codicon-lightbulb:before { content: "\ea61" }
.codicon-light-bulb:before { content: "\ea61" }
.codicon-repo:before { content: "\ea62" }
.codicon-repo-delete:before { content: "\ea62" }
.codicon-gist-fork:before { content: "\ea63" }
.codicon-repo-forked:before { content: "\ea63" }
.codicon-git-pull-request:before { content: "\ea64" }
.codicon-git-pull-request-abandoned:before { content: "\ea64" }
.codicon-record-keys:before { content: "\ea65" }
.codicon-keyboard:before { content: "\ea65" }
.codicon-tag:before { content: "\ea66" }
.codicon-tag-add:before { content: "\ea66" }
.codicon-tag-remove:before { content: "\ea66" }
.codicon-person:before { content: "\ea67" }
.codicon-person-add:before { content: "\ea67" }
.codicon-person-follow:before { content: "\ea67" }
.codicon-person-outline:before { content: "\ea67" }
.codicon-person-filled:before { content: "\ea67" }
.codicon-git-branch:before { content: "\ea68" }
.codicon-git-branch-create:before { content: "\ea68" }
.codicon-git-branch-delete:before { content: "\ea68" }
.codicon-source-control:before { content: "\ea68" }
.codicon-mirror:before { content: "\ea69" }
.codicon-mirror-public:before { content: "\ea69" }
.codicon-star:before { content: "\ea6a" }
.codicon-star-add:before { content: "\ea6a" }
.codicon-star-delete:before { content: "\ea6a" }
.codicon-comment:before { content: "\ea6b" }
.codicon-comment-add:before { content: "\ea6b" }
.codicon-alert:before { content: "\ea6c" }
.codicon-warning:before { content: "\ea6c" }
.codicon-search:before { content: "\ea6d" }
.codicon-search-save:before { content: "\ea6d" }
.codicon-log-out:before { content: "\ea6e" }
.codicon-sign-out:before { content: "\ea6e" }
.codicon-log-in:before { content: "\ea6f" }
.codicon-sign-in:before { content: "\ea6f" }
.codicon-eye:before { content: "\ea70" }
.codicon-eye-unwatch:before { content: "\ea70" }
.codicon-eye-watch:before { content: "\ea70" }
.codicon-circle-filled:before { content: "\ea71" }
.codicon-primitive-dot:before { content: "\ea71" }
.codicon-stop:before { content: "\ea72" }
.codicon-primitive-square:before { content: "\ea72" }
.codicon-edit:before { content: "\ea73" }
.codicon-pencil:before { content: "\ea73" }
.codicon-info:before { content: "\ea74" }
.codicon-issue-opened:before { content: "\ea74" }
.codicon-gist-private:before { content: "\ea75" }
.codicon-git-fork-private:before { content: "\ea75" }
.codicon-lock:before { content: "\ea75" }
.codicon-mirror-private:before { content: "\ea75" }
.codicon-close:before { content: "\ea76" }
.codicon-remove-close:before { content: "\ea76" }
.codicon-x:before { content: "\ea76" }
.codicon-repo-sync:before { content: "\ea77" }
.codicon-sync:before { content: "\ea77" }
.codicon-clone:before { content: "\ea78" }
.codicon-desktop-download:before { content: "\ea78" }
.codicon-beaker:before { content: "\ea79" }
.codicon-microscope:before { content: "\ea79" }
.codicon-vm:before { content: "\ea7a" }
.codicon-device-desktop:before { content: "\ea7a" }
.codicon-file:before { content: "\ea7b" }
.codicon-file-text:before { content: "\ea7b" }
.codicon-more:before { content: "\ea7c" }
.codicon-kebab-horizontal:before { content: "\ea7c" }
.codicon-mail-reply:before { content: "\ea7d" }
.codicon-reply:before { content: "\ea7d" }
.codicon-organization:before { content: "\ea7e" }
.codicon-organization-filled:before { content: "\ea7e" }
.codicon-organization-outline:before { content: "\ea7e" }
.codicon-new-file:before { content: "\ea7f" }
.codicon-file-add:before { content: "\ea7f" }
.codicon-new-folder:before { content: "\ea80" }
.codicon-file-directory-create:before { content: "\ea80" }
.codicon-Vector:before { content: "\f101" }
.codicon-activate-breakpoints:before { content: "\f102" }
.codicon-archive:before { content: "\f103" }
.codicon-array:before { content: "\f104" }
.codicon-arrow-both:before { content: "\f105" }
.codicon-arrow-down:before { content: "\f106" }
.codicon-arrow-left:before { content: "\f107" }
.codicon-arrow-right:before { content: "\f108" }
.codicon-arrow-small-down:before { content: "\f109" }
.codicon-arrow-small-left:before { content: "\f10a" }
.codicon-arrow-small-right:before { content: "\f10b" }
.codicon-arrow-small-up:before { content: "\f10c" }
.codicon-arrow-up:before { content: "\f10d" }
.codicon-bell:before { content: "\f10e" }
.codicon-bold:before { content: "\f10f" }
.codicon-book:before { content: "\f110" }
.codicon-bookmark:before { content: "\f111" }
.codicon-boolean:before { content: "\f112" }
.codicon-breakpoint-conditional-unverified:before { content: "\f113" }
.codicon-breakpoint-conditional:before { content: "\f114" }
.codicon-breakpoint-data-unverified:before { content: "\f115" }
.codicon-breakpoint-data:before { content: "\f116" }
.codicon-breakpoint-log-unverified:before { content: "\f117" }
.codicon-breakpoint-log:before { content: "\f118" }
.codicon-briefcase:before { content: "\f119" }
.codicon-broadcast:before { content: "\f11a" }
.codicon-browser:before { content: "\f11b" }
.codicon-bug:before { content: "\f11c" }
.codicon-calendar:before { content: "\f11d" }
.codicon-case-sensitive:before { content: "\f11e" }
.codicon-check:before { content: "\f11f" }
.codicon-checklist:before { content: "\f120" }
.codicon-chevron-down:before { content: "\f121" }
.codicon-chevron-left:before { content: "\f122" }
.codicon-chevron-right:before { content: "\f123" }
.codicon-chevron-up:before { content: "\f124" }
.codicon-circle-outline:before { content: "\f125" }
.codicon-circle-slash:before { content: "\f126" }
.codicon-circuit-board:before { content: "\f127" }
.codicon-class:before { content: "\f128" }
.codicon-clear-all:before { content: "\f129" }
.codicon-clippy:before { content: "\f12a" }
.codicon-close-all:before { content: "\f12b" }
.codicon-cloud-download:before { content: "\f12c" }
.codicon-cloud-upload:before { content: "\f12d" }
.codicon-code:before { content: "\f12e" }
.codicon-collapse-all:before { content: "\f12f" }
.codicon-color-mode:before { content: "\f130" }
.codicon-color:before { content: "\f131" }
.codicon-comment-discussion:before { content: "\f132" }
.codicon-compare-changes:before { content: "\f133" }
.codicon-console:before { content: "\f134" }
.codicon-constant:before { content: "\f135" }
.codicon-continue:before { content: "\f136" }
.codicon-credit-card:before { content: "\f137" }
.codicon-current-and-breakpoint:before { content: "\f138" }
.codicon-current:before { content: "\f139" }
.codicon-dash:before { content: "\f13a" }
.codicon-dashboard:before { content: "\f13b" }
.codicon-database:before { content: "\f13c" }
.codicon-debug:before { content: "\f13d" }
.codicon-device-camera-video:before { content: "\f13e" }
.codicon-device-camera:before { content: "\f13f" }
.codicon-device-mobile:before { content: "\f140" }
.codicon-diff-added:before { content: "\f141" }
.codicon-diff-ignored:before { content: "\f142" }
.codicon-diff-modified:before { content: "\f143" }
.codicon-diff-removed:before { content: "\f144" }
.codicon-diff-renamed:before { content: "\f145" }
.codicon-diff:before { content: "\f146" }
.codicon-discard:before { content: "\f147" }
.codicon-disconnect-:before { content: "\f148" }
.codicon-editor-layout:before { content: "\f149" }
.codicon-ellipsis:before { content: "\f14a" }
.codicon-empty-window:before { content: "\f14b" }
.codicon-enumerator-member:before { content: "\f14c" }
.codicon-enumerator:before { content: "\f14d" }
.codicon-error:before { content: "\f14e" }
.codicon-event:before { content: "\f14f" }
.codicon-exclude:before { content: "\f150" }
.codicon-extensions:before { content: "\f151" }
.codicon-eye-closed:before { content: "\f152" }
.codicon-field:before { content: "\f153" }
.codicon-file-binary:before { content: "\f154" }
.codicon-file-code:before { content: "\f155" }
.codicon-file-media:before { content: "\f156" }
.codicon-file-pdf:before { content: "\f157" }
.codicon-file-submodule:before { content: "\f158" }
.codicon-file-symlink-directory:before { content: "\f159" }
.codicon-file-symlink-file:before { content: "\f15a" }
.codicon-file-zip:before { content: "\f15b" }
.codicon-files:before { content: "\f15c" }
.codicon-filter:before { content: "\f15d" }
.codicon-flame:before { content: "\f15e" }
.codicon-fold-down:before { content: "\f15f" }
.codicon-fold-up:before { content: "\f160" }
.codicon-fold:before { content: "\f161" }
.codicon-folder-active:before { content: "\f162" }
.codicon-folder-opened:before { content: "\f163" }
.codicon-folder:before { content: "\f164" }
.codicon-gear:before { content: "\f165" }
.codicon-gift:before { content: "\f166" }
.codicon-gist-secret:before { content: "\f167" }
.codicon-gist:before { content: "\f168" }
.codicon-git-commit:before { content: "\f169" }
.codicon-git-compare:before { content: "\f16a" }
.codicon-git-merge:before { content: "\f16b" }
.codicon-github-action:before { content: "\f16c" }
.codicon-github-alt:before { content: "\f16d" }
.codicon-github:before { content: "\f16e" }
.codicon-globe:before { content: "\f16f" }
.codicon-go-to-file:before { content: "\f170" }
.codicon-grabber:before { content: "\f171" }
.codicon-graph:before { content: "\f172" }
.codicon-gripper:before { content: "\f173" }
.codicon-heart:before { content: "\f174" }
.codicon-history:before { content: "\f175" }
.codicon-home:before { content: "\f176" }
.codicon-horizontal-rule:before { content: "\f177" }
.codicon-hubot:before { content: "\f178" }
.codicon-inbox:before { content: "\f179" }
.codicon-interface:before { content: "\f17a" }
.codicon-issue-closed:before { content: "\f17b" }
.codicon-issue-reopened:before { content: "\f17c" }
.codicon-issues:before { content: "\f17d" }
.codicon-italic:before { content: "\f17e" }
.codicon-jersey:before { content: "\f17f" }
.codicon-json:before { content: "\f180" }
.codicon-kebab-vertical:before { content: "\f181" }
.codicon-key:before { content: "\f182" }
.codicon-keyword:before { content: "\f183" }
.codicon-law:before { content: "\f184" }
.codicon-lightbulb-autofix:before { content: "\f185" }
.codicon-link-external:before { content: "\f186" }
.codicon-link:before { content: "\f187" }
.codicon-list-ordered:before { content: "\f188" }
.codicon-list-unordered:before { content: "\f189" }
.codicon-live-share:before { content: "\f18a" }
.codicon-loading:before { content: "\f18b" }
.codicon-location:before { content: "\f18c" }
.codicon-mail-read:before { content: "\f18d" }
.codicon-mail:before { content: "\f18e" }
.codicon-markdown:before { content: "\f18f" }
.codicon-megaphone:before { content: "\f190" }
.codicon-mention:before { content: "\f191" }
.codicon-method:before { content: "\f192" }
.codicon-milestone:before { content: "\f193" }
.codicon-misc:before { content: "\f194" }
.codicon-mortar-board:before { content: "\f195" }
.codicon-move:before { content: "\f196" }
.codicon-multiple-windows:before { content: "\f197" }
.codicon-mute:before { content: "\f198" }
.codicon-namespace:before { content: "\f199" }
.codicon-no-newline:before { content: "\f19a" }
.codicon-note:before { content: "\f19b" }
.codicon-numeric:before { content: "\f19c" }
.codicon-octoface:before { content: "\f19d" }
.codicon-open-preview:before { content: "\f19e" }
.codicon-operator:before { content: "\f19f" }
.codicon-package:before { content: "\f1a0" }
.codicon-paintcan:before { content: "\f1a1" }
.codicon-parameter:before { content: "\f1a2" }
.codicon-pause:before { content: "\f1a3" }
.codicon-pin:before { content: "\f1a4" }
.codicon-play:before { content: "\f1a5" }
.codicon-plug:before { content: "\f1a6" }
.codicon-preserve-case:before { content: "\f1a7" }
.codicon-preview:before { content: "\f1a8" }
.codicon-project:before { content: "\f1a9" }
.codicon-property:before { content: "\f1aa" }
.codicon-pulse:before { content: "\f1ab" }
.codicon-question:before { content: "\f1ac" }
.codicon-quote:before { content: "\f1ad" }
.codicon-radio-tower:before { content: "\f1ae" }
.codicon-reactions:before { content: "\f1af" }
.codicon-references:before { content: "\f1b0" }
.codicon-refresh:before { content: "\f1b1" }
.codicon-regex:before { content: "\f1b2" }
.codicon-remote:before { content: "\f1b3" }
.codicon-remove:before { content: "\f1b4" }
.codicon-replace-all:before { content: "\f1b5" }
.codicon-replace:before { content: "\f1b6" }
.codicon-repo-clone:before { content: "\f1b7" }
.codicon-repo-force-push:before { content: "\f1b8" }
.codicon-repo-pull:before { content: "\f1b9" }
.codicon-repo-push:before { content: "\f1ba" }
.codicon-report:before { content: "\f1bb" }
.codicon-request-changes:before { content: "\f1bc" }
.codicon-restart:before { content: "\f1bd" }
.codicon-rocket:before { content: "\f1be" }
.codicon-root-folder-opened:before { content: "\f1bf" }
.codicon-root-folder:before { content: "\f1c0" }
.codicon-rss:before { content: "\f1c1" }
.codicon-ruby:before { content: "\f1c2" }
.codicon-ruler:before { content: "\f1c3" }
.codicon-save-all:before { content: "\f1c4" }
.codicon-save-as:before { content: "\f1c5" }
.codicon-save:before { content: "\f1c6" }
.codicon-screen-full:before { content: "\f1c7" }
.codicon-screen-normal:before { content: "\f1c8" }
.codicon-search-stop:before { content: "\f1c9" }
.codicon-selection:before { content: "\f1ca" }
.codicon-server:before { content: "\f1cb" }
.codicon-settings:before { content: "\f1cc" }
.codicon-shield:before { content: "\f1cd" }
.codicon-smiley:before { content: "\f1ce" }
.codicon-snippet:before { content: "\f1cf" }
.codicon-sort-precedence:before { content: "\f1d0" }
.codicon-split-horizontal:before { content: "\f1d1" }
.codicon-split-vertical:before { content: "\f1d2" }
.codicon-squirrel:before { content: "\f1d3" }
.codicon-star-empty:before { content: "\f1d4" }
.codicon-star-full:before { content: "\f1d5" }
.codicon-star-half:before { content: "\f1d6" }
.codicon-start:before { content: "\f1d7" }
.codicon-step-into:before { content: "\f1d8" }
.codicon-step-out:before { content: "\f1d9" }
.codicon-step-over:before { content: "\f1da" }
.codicon-string:before { content: "\f1db" }
.codicon-structure:before { content: "\f1dc" }
.codicon-tasklist:before { content: "\f1dd" }
.codicon-telescope:before { content: "\f1de" }
.codicon-text-size:before { content: "\f1df" }
.codicon-three-bars:before { content: "\f1e0" }
.codicon-thumbsdown:before { content: "\f1e1" }
.codicon-thumbsup:before { content: "\f1e2" }
.codicon-tools:before { content: "\f1e3" }
.codicon-trash:before { content: "\f1e4" }
.codicon-triangle-down:before { content: "\f1e5" }
.codicon-triangle-left:before { content: "\f1e6" }
.codicon-triangle-right:before { content: "\f1e7" }
.codicon-triangle-up:before { content: "\f1e8" }
.codicon-twitter:before { content: "\f1e9" }
.codicon-unfold:before { content: "\f1ea" }
.codicon-unlock:before { content: "\f1eb" }
.codicon-unmute:before { content: "\f1ec" }
.codicon-unverified:before { content: "\f1ed" }
.codicon-variable:before { content: "\f1ee" }
.codicon-verified:before { content: "\f1ef" }
.codicon-versions:before { content: "\f1f0" }
.codicon-vm-active:before { content: "\f1f1" }
.codicon-vm-outline:before { content: "\f1f2" }
.codicon-vm-running:before { content: "\f1f3" }
.codicon-watch:before { content: "\f1f4" }
.codicon-whitespace:before { content: "\f1f5" }
.codicon-whole-word:before { content: "\f1f6" }
.codicon-window:before { content: "\f1f7" }
.codicon-word-wrap:before { content: "\f1f8" }
.codicon-zoom-in:before { content: "\f1f9" }
.codicon-zoom-out:before { content: "\f1fa" }

View file

@ -0,0 +1,33 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import 'vs/css!./codicon/codicon';
import 'vs/css!./codicon/codicon-animations';
import { escape } from 'vs/base/common/strings';
function expand(text: string): string {
return text.replace(/\$\(((.+?)(~(.*?))?)\)/g, (_match, _g1, name, _g3, animation) => {
return `<span class="codicon codicon-${name} ${animation ? `codicon-animation-${animation}` : ''}"></span>`;
});
}
export function renderCodicons(label: string): string {
return expand(escape(label));
}
export class CodiconLabel {
constructor(
private readonly _container: HTMLElement
) { }
set text(text: string) {
this._container.innerHTML = renderCodicons(text || '');
}
set title(title: string) {
this._container.title = title;
}
}

Some files were not shown because too many files have changed in this diff Show more