diff --git a/.github/classifier.yml b/.github/classifier.yml index 645a350b6ae..15bc6a788bd 100644 --- a/.github/classifier.yml +++ b/.github/classifier.yml @@ -10,7 +10,7 @@ color-picker: [], css-less-sass: [], debug: { - assignees: [ isidorn ], + assignees: [ weinand ], assignLabel: false }, diff-editor: [], diff --git a/OSSREADME.json b/OSSREADME.json index b24bd919d93..04632292dc1 100644 --- a/OSSREADME.json +++ b/OSSREADME.json @@ -711,29 +711,6 @@ "END OF TERMS AND CONDITIONS" ] }, -{ - "isLicense": true, - "name": "noice-json-rpc", - "repositoryURL": "https://github.com/nojvek/noice-json-rpc", - "license": "MIT", - "licenseDetail": [ - "Copyright (c) Manoj Patel", - "", - "MIT License", - "", - "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." - ] -}, { "isLicense": true, "name": "@types/source-map", diff --git a/ThirdPartyNotices.txt b/ThirdPartyNotices.txt index 6911462197f..bb4ebdee783 100644 --- a/ThirdPartyNotices.txt +++ b/ThirdPartyNotices.txt @@ -60,7 +60,8 @@ This project incorporates components from the projects listed below. The origina 53. textmate/ruby.tmbundle (https://github.com/textmate/ruby.tmbundle) 54. textmate/yaml.tmbundle (https://github.com/textmate/yaml.tmbundle) 55. TypeScript-TmLanguage version 0.1.8 (https://github.com/Microsoft/TypeScript-TmLanguage) -56. vscode-swift version 0.0.1 (https://github.com/owensd/vscode-swift) +56. vscode-logfile-highlighter version 1.2.0 (https://github.com/emilast/vscode-logfile-highlighter) +57. vscode-swift version 0.0.1 (https://github.com/owensd/vscode-swift) %% atom/language-c NOTICES AND INFORMATION BEGIN HERE @@ -1823,6 +1824,32 @@ THE SOFTWARE. ========================================= END OF TypeScript-TmLanguage NOTICES AND INFORMATION +%% vscode-logfile-highlighter NOTICES AND INFORMATION BEGIN HERE +========================================= +The MIT License (MIT) + +Copyright (c) 2015 emilast + +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. +========================================= +END OF vscode-logfile-highlighter NOTICES AND INFORMATION + %% vscode-swift NOTICES AND INFORMATION BEGIN HERE ========================================= The MIT License (MIT) diff --git a/build/builtInExtensions.json b/build/builtInExtensions.json index 16ff3450751..f7491809856 100644 --- a/build/builtInExtensions.json +++ b/build/builtInExtensions.json @@ -1,7 +1,7 @@ [ { "name": "ms-vscode.node-debug", - "version": "1.20.7", + "version": "1.20.10", "repo": "https://github.com/Microsoft/vscode-node-debug" }, { diff --git a/build/builtin/.eslintrc b/build/builtin/.eslintrc new file mode 100644 index 00000000000..84e384941f3 --- /dev/null +++ b/build/builtin/.eslintrc @@ -0,0 +1,20 @@ +{ + "env": { + "node": true, + "es6": true, + "browser": true + }, + "rules": { + "no-console": 0, + "no-cond-assign": 0, + "no-unused-vars": 1, + "no-extra-semi": "warn", + "semi": "warn" + }, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaFeatures": { + "experimentalObjectRestSpread": true + } + } +} \ No newline at end of file diff --git a/build/builtin/browser-main.js b/build/builtin/browser-main.js new file mode 100644 index 00000000000..160bac61968 --- /dev/null +++ b/build/builtin/browser-main.js @@ -0,0 +1,125 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +const fs = require('fs'); +const path = require('path'); +const os = require('os'); +const { remote } = require('electron'); +const dialog = remote.dialog; + +const builtInExtensionsPath = path.join(__dirname, '..', 'builtInExtensions.json'); +const controlFilePath = path.join(os.homedir(), '.vscode-oss-dev', 'extensions', 'control.json'); + +function readJson(filePath) { + return JSON.parse(fs.readFileSync(filePath)); +} + +function writeJson(filePath, obj) { + fs.writeFileSync(filePath, JSON.stringify(obj, null, 2)); +} + +function renderOption(form, id, title, value, checked) { + const input = document.createElement('input'); + input.type = 'radio'; + input.id = id; + input.name = 'choice'; + input.value = value; + input.checked = !!checked; + form.appendChild(input); + + const label = document.createElement('label'); + label.setAttribute('for', id); + label.textContent = title; + form.appendChild(label); + + return input; +} + +function render(el, state) { + function setState(state) { + try { + writeJson(controlFilePath, state.control); + } catch (err) { + console.error(err); + } + + el.innerHTML = ''; + render(el, state); + } + + const ul = document.createElement('ul'); + const { builtin, control } = state; + + for (const ext of builtin) { + const controlState = control[ext.name] || 'marketplace'; + + const li = document.createElement('li'); + ul.appendChild(li); + + const name = document.createElement('code'); + name.textContent = ext.name; + li.appendChild(name); + + const form = document.createElement('form'); + li.appendChild(form); + + const marketplaceInput = renderOption(form, `marketplace-${ext.name}`, 'Marketplace', 'marketplace', controlState === 'marketplace'); + marketplaceInput.onchange = function () { + control[ext.name] = 'marketplace'; + setState({ builtin, control }); + }; + + const disabledInput = renderOption(form, `disabled-${ext.name}`, 'Disabled', 'disabled', controlState === 'disabled'); + disabledInput.onchange = function () { + control[ext.name] = 'disabled'; + setState({ builtin, control }); + }; + + let local = undefined; + + if (controlState !== 'marketplace' && controlState !== 'disabled') { + local = controlState; + } + + const localInput = renderOption(form, `local-${ext.name}`, 'Local', 'local', !!local); + localInput.onchange = function () { + const result = dialog.showOpenDialog(remote.getCurrentWindow(), { + title: 'Choose Folder', + properties: ['openDirectory'] + }); + + if (result && result.length >= 1) { + control[ext.name] = result[0]; + } + + setState({ builtin, control }); + }; + + if (local) { + const localSpan = document.createElement('code'); + localSpan.className = 'local'; + localSpan.textContent = local; + form.appendChild(localSpan); + } + } + + el.appendChild(ul); +} + +function main() { + const el = document.getElementById('extensions'); + const builtin = readJson(builtInExtensionsPath); + let control; + + try { + control = readJson(controlFilePath); + } catch (err) { + control = {}; + } + + render(el, { builtin, control }); +} + +window.onload = main; \ No newline at end of file diff --git a/build/builtin/index.html b/build/builtin/index.html new file mode 100644 index 00000000000..13c84e0375c --- /dev/null +++ b/build/builtin/index.html @@ -0,0 +1,46 @@ + + + + + + + + + Manage Built-in Extensions + + + + + + +

Built-in Extensions

+
+ + + \ No newline at end of file diff --git a/build/builtin/main.js b/build/builtin/main.js new file mode 100644 index 00000000000..849027ad2b9 --- /dev/null +++ b/build/builtin/main.js @@ -0,0 +1,20 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +const { app, BrowserWindow } = require('electron'); +const url = require('url'); +const path = require('path'); + +let window = null; + +app.once('ready', () => { + window = new BrowserWindow({ width: 800, height: 600 }); + window.setMenuBarVisibility(false); + window.loadURL(url.format({ pathname: path.join(__dirname, 'index.html'), protocol: 'file:', slashes: true })); + // window.webContents.openDevTools(); + window.once('closed', () => window = null); +}); + +app.on('window-all-closed', () => app.quit()); \ No newline at end of file diff --git a/build/builtin/package.json b/build/builtin/package.json new file mode 100644 index 00000000000..6843791a5d8 --- /dev/null +++ b/build/builtin/package.json @@ -0,0 +1,5 @@ +{ + "name": "builtin", + "version": "0.1.0", + "main": "main.js" +} \ No newline at end of file diff --git a/build/gulpfile.extensions.js b/build/gulpfile.extensions.js index 385b024609b..55094f4f449 100644 --- a/build/gulpfile.extensions.js +++ b/build/gulpfile.extensions.js @@ -63,10 +63,10 @@ const tasks = compilations.map(function (tsconfigFile) { let headerId, headerOut; let index = relativeDirname.indexOf('/'); if (index < 0) { - headerId = relativeDirname; + headerId = 'vscode.' + relativeDirname; headerOut = 'out'; } else { - headerId = relativeDirname.substr(0, index); + headerId = 'vscode.' + relativeDirname.substr(0, index); headerOut = relativeDirname.substr(index + 1) + '/out'; } diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index 1da37657bb9..240153c168d 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -34,6 +34,7 @@ const i18n = require('./lib/i18n'); const glob = require('glob'); const deps = require('./dependencies'); const getElectronVersion = require('./lib/electron').getElectronVersion; +// const createAsar = require('./lib/asar').createAsar; const productionDependencies = deps.getProductionDependencies(path.dirname(__dirname)); const baseModules = Object.keys(process.binding('natives')).filter(n => !/^_|\//.test(n)); @@ -92,7 +93,7 @@ const BUNDLED_FILE_HEADER = [ ' *--------------------------------------------------------*/' ].join('\n'); -const languages = i18n.defaultLanguages.concat(process.env.VSCODE_QUALITY !== 'stable' ? i18n.extraLanguages : []); +const languages = i18n.defaultLanguages.concat([]); // i18n.defaultLanguages.concat(process.env.VSCODE_QUALITY !== 'stable' ? i18n.extraLanguages : []); gulp.task('clean-optimized-vscode', util.rimraf('out-vscode')); gulp.task('optimize-vscode', ['clean-optimized-vscode', 'compile-build', 'compile-extensions-build'], common.optimizeTask({ @@ -301,9 +302,10 @@ function packageTask(platform, arch, opts) { .pipe(util.cleanNodeModule('windows-process-tree', ['binding.gyp', 'build/**', 'src/**'], ['**/*.node'])) .pipe(util.cleanNodeModule('gc-signals', ['binding.gyp', 'build/**', 'src/**', 'deps/**'], ['**/*.node', 'src/index.js'])) .pipe(util.cleanNodeModule('keytar', ['binding.gyp', 'build/**', 'src/**', 'script/**', 'node_modules/**'], ['**/*.node'])) - .pipe(util.cleanNodeModule('node-pty', ['binding.gyp', 'build/**', 'src/**', 'tools/**'], ['build/Release/**'])) + .pipe(util.cleanNodeModule('node-pty', ['binding.gyp', 'build/**', 'src/**', 'tools/**'], ['build/Release/*.exe', 'build/Release/*.dll', 'build/Release/*.node'])) .pipe(util.cleanNodeModule('nsfw', ['binding.gyp', 'build/**', 'src/**', 'openpa/**', 'includes/**'], ['**/*.node', '**/*.a'])) .pipe(util.cleanNodeModule('vsda', ['binding.gyp', 'README.md', 'build/**', '*.bat', '*.sh', '*.cpp', '*.h'], ['build/Release/vsda.node'])); + // .pipe(createAsar(path.join(process.cwd(), 'node_modules'), ['**/*.node', '**/vscode-ripgrep/bin/*', '**/node-pty/build/Release/*'], 'app/node_modules.asar')); let all = es.merge( packageJsonStream, @@ -399,7 +401,7 @@ const apiHostname = process.env.TRANSIFEX_API_URL; const apiName = process.env.TRANSIFEX_API_NAME; const apiToken = process.env.TRANSIFEX_API_TOKEN; -gulp.task('vscode-translations-push', function () { +gulp.task('vscode-translations-push', [ 'optimize-vscode' ], function () { const pathToMetadata = './out-vscode/nls.metadata.json'; const pathToExtensions = './extensions/*'; const pathToSetup = 'build/win32/**/{Default.isl,messages.en.isl}'; @@ -412,7 +414,7 @@ gulp.task('vscode-translations-push', function () { ).pipe(i18n.pushXlfFiles(apiHostname, apiName, apiToken)); }); -gulp.task('vscode-translations-push-test', function () { +gulp.task('vscode-translations-push-test', [ 'optimize-vscode' ], function () { const pathToMetadata = './out-vscode/nls.metadata.json'; const pathToExtensions = './extensions/*'; const pathToSetup = 'build/win32/**/{Default.isl,messages.en.isl}'; diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js index 89fb9d95264..28f062bf749 100644 --- a/build/gulpfile.vscode.linux.js +++ b/build/gulpfile.vscode.linux.js @@ -217,10 +217,10 @@ function prepareSnapPackage(arch) { function buildSnapPackage(arch) { const snapBuildPath = getSnapBuildPath(arch); - + const snapFilename = `${product.applicationName}-${packageJson.version}-${linuxPackageRevision}-${arch}.snap`; return shell.task([ `chmod +x ${snapBuildPath}/electron-launch`, - `cd ${snapBuildPath} && snapcraft snap` + `cd ${snapBuildPath} && snapcraft snap --output ../${snapFilename}` ]); } diff --git a/build/lib/asar.js b/build/lib/asar.js new file mode 100644 index 00000000000..cd961e2a6de --- /dev/null +++ b/build/lib/asar.js @@ -0,0 +1,118 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +'use strict'; +Object.defineProperty(exports, "__esModule", { value: true }); +var path = require("path"); +var es = require("event-stream"); +var pickle = require("chromium-pickle-js"); +var Filesystem = require("asar/lib/filesystem"); +var VinylFile = require("vinyl"); +var minimatch = require("minimatch"); +function createAsar(folderPath, unpackGlobs, destFilename) { + var shouldUnpackFile = function (file) { + for (var i = 0; i < unpackGlobs.length; i++) { + if (minimatch(file.relative, unpackGlobs[i])) { + return true; + } + } + return false; + }; + var filesystem = new Filesystem(folderPath); + var out = []; + // Keep track of pending inserts + var pendingInserts = 0; + var onFileInserted = function () { pendingInserts--; }; + // Do not insert twice the same directory + var seenDir = {}; + var insertDirectoryRecursive = function (dir) { + if (seenDir[dir]) { + return; + } + var lastSlash = dir.lastIndexOf('/'); + if (lastSlash === -1) { + lastSlash = dir.lastIndexOf('\\'); + } + if (lastSlash !== -1) { + insertDirectoryRecursive(dir.substring(0, lastSlash)); + } + seenDir[dir] = true; + filesystem.insertDirectory(dir); + }; + var insertDirectoryForFile = function (file) { + var lastSlash = file.lastIndexOf('/'); + if (lastSlash === -1) { + lastSlash = file.lastIndexOf('\\'); + } + if (lastSlash !== -1) { + insertDirectoryRecursive(file.substring(0, lastSlash)); + } + }; + var insertFile = function (relativePath, stat, shouldUnpack) { + insertDirectoryForFile(relativePath); + pendingInserts++; + filesystem.insertFile(relativePath, shouldUnpack, { stat: stat }, {}, onFileInserted); + }; + return es.through(function (file) { + if (file.stat.isDirectory()) { + return; + } + if (!file.stat.isFile()) { + throw new Error("unknown item in stream!"); + } + var shouldUnpack = shouldUnpackFile(file); + insertFile(file.relative, { size: file.contents.length, mode: file.stat.mode }, shouldUnpack); + if (shouldUnpack) { + // The file goes outside of xx.asar, in a folder xx.asar.unpacked + var relative = path.relative(folderPath, file.path); + this.queue(new VinylFile({ + cwd: folderPath, + base: folderPath, + path: path.join(destFilename + '.unpacked', relative), + stat: file.stat, + contents: file.contents + })); + } + else { + // The file goes inside of xx.asar + out.push(file.contents); + } + }, function () { + var _this = this; + var finish = function () { + { + var headerPickle = pickle.createEmpty(); + headerPickle.writeString(JSON.stringify(filesystem.header)); + var headerBuf = headerPickle.toBuffer(); + var sizePickle = pickle.createEmpty(); + sizePickle.writeUInt32(headerBuf.length); + var sizeBuf = sizePickle.toBuffer(); + out.unshift(headerBuf); + out.unshift(sizeBuf); + } + var contents = Buffer.concat(out); + out.length = 0; + _this.queue(new VinylFile({ + cwd: folderPath, + base: folderPath, + path: destFilename, + contents: contents + })); + _this.queue(null); + }; + // Call finish() only when all file inserts have finished... + if (pendingInserts === 0) { + finish(); + } + else { + onFileInserted = function () { + pendingInserts--; + if (pendingInserts === 0) { + finish(); + } + }; + } + }); +} +exports.createAsar = createAsar; diff --git a/build/lib/asar.ts b/build/lib/asar.ts new file mode 100644 index 00000000000..c4a93a3e533 --- /dev/null +++ b/build/lib/asar.ts @@ -0,0 +1,131 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +'use strict'; + +import * as path from 'path'; +import * as es from 'event-stream'; +import * as pickle from 'chromium-pickle-js'; +import * as Filesystem from 'asar/lib/filesystem'; +import * as VinylFile from 'vinyl'; +import * as minimatch from 'minimatch'; + +export function createAsar(folderPath: string, unpackGlobs: string[], destFilename: string): NodeJS.ReadWriteStream { + + const shouldUnpackFile = (file: VinylFile): boolean => { + for (let i = 0; i < unpackGlobs.length; i++) { + if (minimatch(file.relative, unpackGlobs[i])) { + return true; + } + } + return false; + }; + + const filesystem = new Filesystem(folderPath); + const out: Buffer[] = []; + + // Keep track of pending inserts + let pendingInserts = 0; + let onFileInserted = () => { pendingInserts--; }; + + // Do not insert twice the same directory + const seenDir: { [key: string]: boolean; } = {}; + const insertDirectoryRecursive = (dir: string) => { + if (seenDir[dir]) { + return; + } + + let lastSlash = dir.lastIndexOf('/'); + if (lastSlash === -1) { + lastSlash = dir.lastIndexOf('\\'); + } + if (lastSlash !== -1) { + insertDirectoryRecursive(dir.substring(0, lastSlash)); + } + seenDir[dir] = true; + filesystem.insertDirectory(dir); + }; + + const insertDirectoryForFile = (file: string) => { + let lastSlash = file.lastIndexOf('/'); + if (lastSlash === -1) { + lastSlash = file.lastIndexOf('\\'); + } + if (lastSlash !== -1) { + insertDirectoryRecursive(file.substring(0, lastSlash)); + } + }; + + const insertFile = (relativePath: string, stat: { size: number; mode: number; }, shouldUnpack: boolean) => { + insertDirectoryForFile(relativePath); + pendingInserts++; + filesystem.insertFile(relativePath, shouldUnpack, { stat: stat }, {}, onFileInserted); + }; + + return es.through(function (file) { + if (file.stat.isDirectory()) { + return; + } + if (!file.stat.isFile()) { + throw new Error(`unknown item in stream!`); + } + const shouldUnpack = shouldUnpackFile(file); + insertFile(file.relative, { size: file.contents.length, mode: file.stat.mode }, shouldUnpack); + + if (shouldUnpack) { + // The file goes outside of xx.asar, in a folder xx.asar.unpacked + const relative = path.relative(folderPath, file.path); + this.queue(new VinylFile({ + cwd: folderPath, + base: folderPath, + path: path.join(destFilename + '.unpacked', relative), + stat: file.stat, + contents: file.contents + })); + } else { + // The file goes inside of xx.asar + out.push(file.contents); + } + }, function () { + + let finish = () => { + { + const headerPickle = pickle.createEmpty(); + headerPickle.writeString(JSON.stringify(filesystem.header)); + const headerBuf = headerPickle.toBuffer(); + + const sizePickle = pickle.createEmpty(); + sizePickle.writeUInt32(headerBuf.length); + const sizeBuf = sizePickle.toBuffer(); + + out.unshift(headerBuf); + out.unshift(sizeBuf); + } + + const contents = Buffer.concat(out); + out.length = 0; + + this.queue(new VinylFile({ + cwd: folderPath, + base: folderPath, + path: destFilename, + contents: contents + })); + this.queue(null); + }; + + // Call finish() only when all file inserts have finished... + if (pendingInserts === 0) { + finish(); + } else { + onFileInserted = () => { + pendingInserts--; + if (pendingInserts === 0) { + finish(); + } + }; + } + }); +} diff --git a/build/lib/builtInExtensions.js b/build/lib/builtInExtensions.js index c744349c7ee..245509379c1 100644 --- a/build/lib/builtInExtensions.js +++ b/build/lib/builtInExtensions.js @@ -7,6 +7,7 @@ const fs = require('fs'); const path = require('path'); +const os = require('os'); const mkdirp = require('mkdirp'); const rimraf = require('rimraf'); const es = require('event-stream'); @@ -17,7 +18,7 @@ const util = require('gulp-util'); const root = path.dirname(path.dirname(__dirname)); const builtInExtensions = require('../builtInExtensions'); -const controlFilePath = path.join(process.env['HOME'], '.vscode-oss-dev', 'extensions', 'control.json'); +const controlFilePath = path.join(os.homedir(), '.vscode-oss-dev', 'extensions', 'control.json'); function getExtensionPath(extension) { return path.join(root, '.build', 'builtInExtensions', extension.name); @@ -58,7 +59,6 @@ function syncExtension(extension, controlState) { switch (controlState) { case 'disabled': util.log(util.colors.blue('[disabled]'), util.colors.gray(extension.name)); - rimraf.sync(getExtensionPath(extension)); return es.readArray([]); case 'marketplace': @@ -74,7 +74,7 @@ function syncExtension(extension, controlState) { return es.readArray([]); } - util.log(util.colors.blue('[local]'), `${extension.name}: ${controlState}`, util.colors.green('✔︎')); + util.log(util.colors.blue('[local]'), `${extension.name}: ${util.colors.cyan(controlState)}`, util.colors.green('✔︎')); return es.readArray([]); } } @@ -94,7 +94,7 @@ function writeControlFile(control) { function main() { util.log('Syncronizing built-in extensions...'); - util.log('Control file:', controlFilePath); + util.log(`You can manage built-in extensions with the ${util.colors.cyan('--builtin')} flag`); const control = readControlFile(); const streams = []; @@ -114,7 +114,6 @@ function main() { process.exit(1); }) .on('end', () => { - util.log(`${streams.length} built-in extensions processed.`); process.exit(0); }); } diff --git a/build/lib/i18n.js b/build/lib/i18n.js index b77dc91a0d5..a728537802e 100644 --- a/build/lib/i18n.js +++ b/build/lib/i18n.js @@ -40,15 +40,12 @@ exports.extraLanguages = [ { id: 'hu', folderName: 'hun' }, { id: 'tr', folderName: 'trk' } ]; -exports.pseudoLanguage = { id: 'pseudo', folderName: 'pseudo', transifexId: 'pseudo' }; // non built-in extensions also that are transifex and need to be part of the language packs -var externalExtensionsWithTranslations = [ - //"azure-account", - "vscode-chrome-debug", - "vscode-chrome-debug-core", - "vscode-node-debug", - "vscode-node-debug2" -]; +var externalExtensionsWithTranslations = { + 'vscode-chrome-debug': 'msjsdiag.debugger-for-chrome', + 'vscode-node-debug': 'ms-vscode.node-debug', + 'vscode-node-debug2': 'ms-vscode.node-debug2' +}; var LocalizeInfo; (function (LocalizeInfo) { function is(value) { @@ -145,6 +142,10 @@ var XLF = /** @class */ (function () { return this.buffer.join('\r\n'); }; XLF.prototype.addFile = function (original, keys, messages) { + if (keys.length === 0) { + console.log('No keys in ' + original); + return; + } if (keys.length !== messages.length) { throw new Error("Unmatching keys(" + keys.length + ") and messages(" + messages.length + ")."); } @@ -196,6 +197,31 @@ var XLF = /** @class */ (function () { line.append(content); this.buffer.push(line.toString()); }; + XLF.parsePseudo = function (xlfString) { + return new Promise(function (resolve, reject) { + var parser = new xml2js.Parser(); + var files = []; + parser.parseString(xlfString, function (err, result) { + var fileNodes = result['xliff']['file']; + fileNodes.forEach(function (file) { + var originalFilePath = file.$.original; + var messages = {}; + var transUnits = file.body[0]['trans-unit']; + if (transUnits) { + transUnits.forEach(function (unit) { + var key = unit.$.id; + var val = pseudify(unit.source[0]['_'].toString()); + if (key && val) { + messages[key] = decodeEntities(val); + } + }); + files.push({ messages: messages, originalFilePath: originalFilePath, language: 'ps' }); + } + }); + resolve(files); + }); + }); + }; XLF.parse = function (xlfString) { return new Promise(function (resolve, reject) { var parser = new xml2js.Parser(); @@ -219,20 +245,22 @@ var XLF = /** @class */ (function () { } var messages = {}; var transUnits = file.body[0]['trans-unit']; - transUnits.forEach(function (unit) { - var key = unit.$.id; - if (!unit.target) { - return; // No translation available - } - var val = unit.target.toString(); - if (key && val) { - messages[key] = decodeEntities(val); - } - else { - reject(new Error("XLF parsing error: XLIFF file does not contain full localization data. ID or target translation for one of the trans-unit nodes is not present.")); - } - }); - files.push({ messages: messages, originalFilePath: originalFilePath, language: language.toLowerCase() }); + if (transUnits) { + transUnits.forEach(function (unit) { + var key = unit.$.id; + if (!unit.target) { + return; // No translation available + } + var val = unit.target.toString(); + if (key && val) { + messages[key] = decodeEntities(val); + } + else { + reject(new Error("XLF parsing error: XLIFF file does not contain full localization data. ID or target translation for one of the trans-unit nodes is not present.")); + } + }); + files.push({ messages: messages, originalFilePath: originalFilePath, language: language.toLowerCase() }); + } }); resolve(files); }); @@ -894,7 +922,7 @@ function updateResource(project, slug, xlfFile, apiHostname, credentials) { } // cache resources var _coreAndExtensionResources; -function pullCoreAndExtensionsXlfFiles(apiHostname, username, password, language, includeExternalExtensions) { +function pullCoreAndExtensionsXlfFiles(apiHostname, username, password, language, externalExtensions) { if (!_coreAndExtensionResources) { _coreAndExtensionResources = []; // editor and workbench @@ -905,15 +933,14 @@ function pullCoreAndExtensionsXlfFiles(apiHostname, username, password, language var extensionsToLocalize_1 = Object.create(null); glob.sync('./extensions/**/*.nls.json').forEach(function (extension) { return extensionsToLocalize_1[extension.split('/')[2]] = true; }); glob.sync('./extensions/*/node_modules/vscode-nls').forEach(function (extension) { return extensionsToLocalize_1[extension.split('/')[2]] = true; }); - if (includeExternalExtensions) { - for (var _i = 0, externalExtensionsWithTranslations_1 = externalExtensionsWithTranslations; _i < externalExtensionsWithTranslations_1.length; _i++) { - var extension = externalExtensionsWithTranslations_1[_i]; - extensionsToLocalize_1[extension] = true; - } - } Object.keys(extensionsToLocalize_1).forEach(function (extension) { _coreAndExtensionResources.push({ name: extension, project: extensionsProject }); }); + if (externalExtensions) { + for (var resourceName in externalExtensions) { + _coreAndExtensionResources.push({ name: resourceName, project: extensionsProject }); + } + } } return pullXlfFiles(apiHostname, username, password, language, _coreAndExtensionResources); } @@ -955,7 +982,7 @@ function retrieveResource(language, resource, apiHostname, credentials) { return limiter.queue(function () { return new Promise(function (resolve, reject) { var slug = resource.name.replace(/\//g, '_'); var project = resource.project; - var transifexLanguageId = language.transifexId || language.id; + var transifexLanguageId = language.id === 'ps' ? 'en' : language.transifexId || language.id; var options = { hostname: apiHostname, path: "/api/2/project/" + project + "/resource/" + slug + "/translation/" + transifexLanguageId + "?file&mode=onlyreviewed", @@ -963,7 +990,7 @@ function retrieveResource(language, resource, apiHostname, credentials) { port: 443, method: 'GET' }; - console.log('Fetching ' + options.path); + console.log('[transifex] Fetching ' + options.path); var request = https.request(options, function (res) { var xlfBuffer = []; res.on('data', function (chunk) { return xlfBuffer.push(chunk); }); @@ -972,7 +999,7 @@ function retrieveResource(language, resource, apiHostname, credentials) { resolve(new File({ contents: Buffer.concat(xlfBuffer), path: project + "/" + slug + ".xlf" })); } else if (res.statusCode === 404) { - console.log(slug + " in " + project + " returned no data."); + console.log("[transifex] " + slug + " in " + project + " returned no data."); resolve(null); } else { @@ -1026,11 +1053,13 @@ function createI18nFile(originalFilePath, messages) { }); } var i18nPackVersion = "1.0.0"; -function pullI18nPackFiles(apiHostname, username, password, language) { - return pullCoreAndExtensionsXlfFiles(apiHostname, username, password, language, true).pipe(prepareI18nPackFiles()); +function pullI18nPackFiles(apiHostname, username, password, language, resultingTranslationPaths) { + return pullCoreAndExtensionsXlfFiles(apiHostname, username, password, language, externalExtensionsWithTranslations) + .pipe(prepareI18nPackFiles(externalExtensionsWithTranslations, resultingTranslationPaths, language.id === 'ps')); } exports.pullI18nPackFiles = pullI18nPackFiles; -function prepareI18nPackFiles() { +function prepareI18nPackFiles(externalExtensions, resultingTranslationPaths, pseudo) { + if (pseudo === void 0) { pseudo = false; } var parsePromises = []; var mainPack = { version: i18nPackVersion, contents: {} }; var extensionsPacks = {}; @@ -1038,8 +1067,8 @@ function prepareI18nPackFiles() { var stream = this; var project = path.dirname(xlf.path); var resource = path.basename(xlf.path, '.xlf'); - console.log(resource); - var parsePromise = XLF.parse(xlf.contents.toString()); + var contents = xlf.contents.toString(); + var parsePromise = pseudo ? XLF.parsePseudo(contents) : XLF.parse(contents); parsePromises.push(parsePromise); parsePromise.then(function (resolvedFiles) { resolvedFiles.forEach(function (file) { @@ -1050,9 +1079,14 @@ function prepareI18nPackFiles() { if (!extPack) { extPack = extensionsPacks[resource] = { version: i18nPackVersion, contents: {} }; } - var secondSlash = path.indexOf('/', firstSlash + 1); - var key = externalExtensionsWithTranslations.indexOf(resource) !== -1 ? path : path.substr(secondSlash + 1); - extPack.contents[key] = file.messages; + var externalId = externalExtensions[resource]; + if (!externalId) { + var secondSlash = path.indexOf('/', firstSlash + 1); + extPack.contents[path.substr(secondSlash + 1)] = file.messages; + } + else { + extPack.contents[path] = file.messages; + } } else { mainPack.contents[path.substr(firstSlash + 1)] = file.messages; @@ -1064,10 +1098,18 @@ function prepareI18nPackFiles() { Promise.all(parsePromises) .then(function () { var translatedMainFile = createI18nFile('./main', mainPack); + resultingTranslationPaths.push({ id: 'vscode', resourceName: 'main.i18n.json' }); _this.queue(translatedMainFile); for (var extension in extensionsPacks) { var translatedExtFile = createI18nFile("./extensions/" + extension, extensionsPacks[extension]); _this.queue(translatedExtFile); + var externalExtensionId = externalExtensions[extension]; + if (externalExtensionId) { + resultingTranslationPaths.push({ id: externalExtensionId, resourceName: "extensions/" + extension + ".i18n.json" }); + } + else { + resultingTranslationPaths.push({ id: "vscode." + extension, resourceName: "extensions/" + extension + ".i18n.json" }); + } } _this.queue(null); }) @@ -1173,3 +1215,6 @@ function encodeEntities(value) { function decodeEntities(value) { return value.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&'); } +function pseudify(message) { + return '\uFF3B' + message.replace(/[aouei]/g, '$&$&') + '\uFF3D'; +} diff --git a/build/lib/i18n.ts b/build/lib/i18n.ts index 672bd189816..e92468a799f 100644 --- a/build/lib/i18n.ts +++ b/build/lib/i18n.ts @@ -56,16 +56,13 @@ export const extraLanguages: Language[] = [ { id: 'tr', folderName: 'trk' } ]; -export const pseudoLanguage: Language = { id: 'pseudo', folderName: 'pseudo', transifexId: 'pseudo' }; - // non built-in extensions also that are transifex and need to be part of the language packs -const externalExtensionsWithTranslations = [ - //"azure-account", - "vscode-chrome-debug", - "vscode-chrome-debug-core", - "vscode-node-debug", - "vscode-node-debug2" -]; +const externalExtensionsWithTranslations = { + 'vscode-chrome-debug': 'msjsdiag.debugger-for-chrome', + 'vscode-node-debug': 'ms-vscode.node-debug', + 'vscode-node-debug2': 'ms-vscode.node-debug2' +}; + interface Map { [key: string]: V; @@ -226,6 +223,10 @@ export class XLF { } public addFile(original: string, keys: (string | LocalizeInfo)[], messages: string[]) { + if (keys.length === 0) { + console.log('No keys in ' + original); + return; + } if (keys.length !== messages.length) { throw new Error(`Unmatching keys(${keys.length}) and messages(${messages.length}).`); } @@ -284,6 +285,32 @@ export class XLF { this.buffer.push(line.toString()); } + static parsePseudo = function (xlfString: string): Promise { + return new Promise((resolve, reject) => { + let parser = new xml2js.Parser(); + let files: { messages: Map, originalFilePath: string, language: string }[] = []; + parser.parseString(xlfString, function (err, result) { + const fileNodes: any[] = result['xliff']['file']; + fileNodes.forEach(file => { + const originalFilePath = file.$.original; + const messages: Map = {}; + const transUnits = file.body[0]['trans-unit']; + if (transUnits) { + transUnits.forEach(unit => { + const key = unit.$.id; + const val = pseudify(unit.source[0]['_'].toString()); + if (key && val) { + messages[key] = decodeEntities(val); + } + }); + files.push({ messages: messages, originalFilePath: originalFilePath, language: 'ps' }); + } + }); + resolve(files); + }); + }); + }; + static parse = function (xlfString: string): Promise { return new Promise((resolve, reject) => { let parser = new xml2js.Parser(); @@ -305,29 +332,29 @@ export class XLF { if (!originalFilePath) { reject(new Error(`XLF parsing error: XLIFF file node does not contain original attribute to determine the original location of the resource file.`)); } - const language = file.$['target-language']; + let language = file.$['target-language']; if (!language) { reject(new Error(`XLF parsing error: XLIFF file node does not contain target-language attribute to determine translated language.`)); } + const messages: Map = {}; - let messages: Map = {}; const transUnits = file.body[0]['trans-unit']; + if (transUnits) { + transUnits.forEach(unit => { + const key = unit.$.id; + if (!unit.target) { + return; // No translation available + } - transUnits.forEach(unit => { - const key = unit.$.id; - if (!unit.target) { - return; // No translation available - } - - const val = unit.target.toString(); - if (key && val) { - messages[key] = decodeEntities(val); - } else { - reject(new Error(`XLF parsing error: XLIFF file does not contain full localization data. ID or target translation for one of the trans-unit nodes is not present.`)); - } - }); - - files.push({ messages: messages, originalFilePath: originalFilePath, language: language.toLowerCase() }); + const val = unit.target.toString(); + if (key && val) { + messages[key] = decodeEntities(val); + } else { + reject(new Error(`XLF parsing error: XLIFF file does not contain full localization data. ID or target translation for one of the trans-unit nodes is not present.`)); + } + }); + files.push({ messages: messages, originalFilePath: originalFilePath, language: language.toLowerCase() }); + } }); resolve(files); @@ -1011,7 +1038,7 @@ function updateResource(project: string, slug: string, xlfFile: File, apiHostnam // cache resources let _coreAndExtensionResources: Resource[]; -export function pullCoreAndExtensionsXlfFiles(apiHostname: string, username: string, password: string, language: Language, includeExternalExtensions?: boolean): NodeJS.ReadableStream { +export function pullCoreAndExtensionsXlfFiles(apiHostname: string, username: string, password: string, language: Language, externalExtensions?: Map): NodeJS.ReadableStream { if (!_coreAndExtensionResources) { _coreAndExtensionResources = []; // editor and workbench @@ -1024,15 +1051,15 @@ export function pullCoreAndExtensionsXlfFiles(apiHostname: string, username: str glob.sync('./extensions/**/*.nls.json', ).forEach(extension => extensionsToLocalize[extension.split('/')[2]] = true); glob.sync('./extensions/*/node_modules/vscode-nls', ).forEach(extension => extensionsToLocalize[extension.split('/')[2]] = true); - if (includeExternalExtensions) { - for (let extension of externalExtensionsWithTranslations) { - extensionsToLocalize[extension] = true; - } - } - Object.keys(extensionsToLocalize).forEach(extension => { _coreAndExtensionResources.push({ name: extension, project: extensionsProject }); }); + + if (externalExtensions) { + for (let resourceName in externalExtensions) { + _coreAndExtensionResources.push({ name: resourceName, project: extensionsProject }); + } + } } return pullXlfFiles(apiHostname, username, password, language, _coreAndExtensionResources); } @@ -1078,7 +1105,7 @@ function retrieveResource(language: Language, resource: Resource, apiHostname, c return limiter.queue(() => new Promise((resolve, reject) => { const slug = resource.name.replace(/\//g, '_'); const project = resource.project; - const transifexLanguageId = language.transifexId || language.id; + let transifexLanguageId = language.id === 'ps' ? 'en' : language.transifexId || language.id; const options = { hostname: apiHostname, path: `/api/2/project/${project}/resource/${slug}/translation/${transifexLanguageId}?file&mode=onlyreviewed`, @@ -1086,7 +1113,7 @@ function retrieveResource(language: Language, resource: Resource, apiHostname, c port: 443, method: 'GET' }; - console.log('Fetching ' + options.path); + console.log('[transifex] Fetching ' + options.path); let request = https.request(options, (res) => { let xlfBuffer: Buffer[] = []; @@ -1095,7 +1122,7 @@ function retrieveResource(language: Language, resource: Resource, apiHostname, c if (res.statusCode === 200) { resolve(new File({ contents: Buffer.concat(xlfBuffer), path: `${project}/${slug}.xlf` })); } else if (res.statusCode === 404) { - console.log(`${slug} in ${project} returned no data.`); + console.log(`[transifex] ${slug} in ${project} returned no data.`); resolve(null); } else { reject(`${slug} in ${project} returned no data. Response code: ${res.statusCode}.`); @@ -1160,11 +1187,17 @@ interface I18nPack { const i18nPackVersion = "1.0.0"; -export function pullI18nPackFiles(apiHostname: string, username: string, password: string, language: Language): NodeJS.ReadableStream { - return pullCoreAndExtensionsXlfFiles(apiHostname, username, password, language, true).pipe(prepareI18nPackFiles()); +export interface TranslationPath { + id: string; + resourceName: string; } -export function prepareI18nPackFiles() { +export function pullI18nPackFiles(apiHostname: string, username: string, password: string, language: Language, resultingTranslationPaths: TranslationPath[]): NodeJS.ReadableStream { + return pullCoreAndExtensionsXlfFiles(apiHostname, username, password, language, externalExtensionsWithTranslations) + .pipe(prepareI18nPackFiles(externalExtensionsWithTranslations, resultingTranslationPaths, language.id === 'ps')); +} + +export function prepareI18nPackFiles(externalExtensions: Map, resultingTranslationPaths: TranslationPath[], pseudo = false): NodeJS.ReadWriteStream { let parsePromises: Promise[] = []; let mainPack: I18nPack = { version: i18nPackVersion, contents: {} }; let extensionsPacks: Map = {}; @@ -1172,8 +1205,8 @@ export function prepareI18nPackFiles() { let stream = this; let project = path.dirname(xlf.path); let resource = path.basename(xlf.path, '.xlf'); - console.log(resource); - let parsePromise = XLF.parse(xlf.contents.toString()); + let contents = xlf.contents.toString(); + let parsePromise = pseudo ? XLF.parsePseudo(contents) : XLF.parse(contents); parsePromises.push(parsePromise); parsePromise.then( resolvedFiles => { @@ -1186,9 +1219,13 @@ export function prepareI18nPackFiles() { if (!extPack) { extPack = extensionsPacks[resource] = { version: i18nPackVersion, contents: {} }; } - const secondSlash = path.indexOf('/', firstSlash + 1); - let key = externalExtensionsWithTranslations.indexOf(resource) !== -1 ? path: path.substr(secondSlash + 1); - extPack.contents[key] = file.messages; + const externalId = externalExtensions[resource]; + if (!externalId) { // internal extension: remove 'extensions/extensionId/' segnent + const secondSlash = path.indexOf('/', firstSlash + 1); + extPack.contents[path.substr(secondSlash + 1)] = file.messages; + } else { + extPack.contents[path] = file.messages; + } } else { mainPack.contents[path.substr(firstSlash + 1)] = file.messages; } @@ -1199,10 +1236,20 @@ export function prepareI18nPackFiles() { Promise.all(parsePromises) .then(() => { const translatedMainFile = createI18nFile('./main', mainPack); + resultingTranslationPaths.push({ id: 'vscode', resourceName: 'main.i18n.json' }); + this.queue(translatedMainFile); for (let extension in extensionsPacks) { const translatedExtFile = createI18nFile(`./extensions/${extension}`, extensionsPacks[extension]); this.queue(translatedExtFile); + + const externalExtensionId = externalExtensions[extension]; + if (externalExtensionId) { + resultingTranslationPaths.push({ id: externalExtensionId, resourceName: `extensions/${extension}.i18n.json` }); + } else { + resultingTranslationPaths.push({ id: `vscode.${extension}`, resourceName: `extensions/${extension}.i18n.json` }); + } + } this.queue(null); }) @@ -1308,4 +1355,8 @@ function encodeEntities(value: string): string { function decodeEntities(value: string): string { return value.replace(/</g, '<').replace(/>/g, '>').replace(/&/g, '&'); +} + +function pseudify(message: string) { + return '\uFF3B' + message.replace(/[aouei]/g, '$&$&') + '\uFF3D'; } \ No newline at end of file diff --git a/build/npm/update-localization-extension.js b/build/npm/update-localization-extension.js index bcdaa56d304..ca41f25783e 100644 --- a/build/npm/update-localization-extension.js +++ b/build/npm/update-localization-extension.js @@ -36,14 +36,14 @@ function update(idOrPath) { } localizations.forEach(function (localization) { - if (!localization.languageId || !localization.languageName || !localization.translations) { - throw new Error('Each localization contribution must define "languageId", "languageName" and "translations" properties.'); + if (!localization.languageId || !localization.languageName || !localization.localizedLanguageName) { + throw new Error('Each localization contribution must define "languageId", "languageName" and "localizedLanguageName" properties.'); } let server = localization.server || 'www.transifex.com'; let userName = localization.userName || 'api'; let apiToken = process.env.TRANSIFEX_API_TOKEN; let languageId = localization.transifexId || localization.languageId; - let translationDataFolder = path.join(locExtFolder, localization.translations); + let translationDataFolder = path.join(locExtFolder, 'translations'); if (fs.existsSync(translationDataFolder) && fs.existsSync(path.join(translationDataFolder, 'main.i18n.json'))) { console.log('Clearing \'' + translationDataFolder + '\'...'); @@ -51,8 +51,16 @@ function update(idOrPath) { } console.log('Downloading translations for \'' + languageId + '\' to \'' + translationDataFolder + '\'...'); - i18n.pullI18nPackFiles(server, userName, apiToken, { id: languageId }) - .pipe(vfs.dest(translationDataFolder)); + const translationPaths = []; + i18n.pullI18nPackFiles(server, userName, apiToken, { id: languageId }, translationPaths) + .pipe(vfs.dest(translationDataFolder)).on('end', function () { + localization.translations = []; + for (let tp of translationPaths) { + localization.translations.push({ id: tp.id, path: `./translations/${tp.resourceName}`}); + } + fs.writeFileSync(path.join(locExtFolder, 'package.json'), JSON.stringify(packageJSON, null, '\t')); + }); + }); diff --git a/build/win32/code.iss b/build/win32/code.iss index 4230f7d0517..2045e468961 100644 --- a/build/win32/code.iss +++ b/build/win32/code.iss @@ -51,6 +51,8 @@ Type: filesandordirs; Name: "{app}\resources\app\out"; Check: IsNotUpdate Type: filesandordirs; Name: "{app}\resources\app\plugins"; Check: IsNotUpdate Type: filesandordirs; Name: "{app}\resources\app\extensions"; Check: IsNotUpdate Type: filesandordirs; Name: "{app}\resources\app\node_modules"; Check: IsNotUpdate +Type: filesandordirs; Name: "{app}\resources\app\node_modules.asar.unpacked"; Check: IsNotUpdate +Type: files; Name: "{app}\resources\app\node_modules.asar"; Check: IsNotUpdate Type: files; Name: "{app}\resources\app\Credits_45.0.2454.85.html"; Check: IsNotUpdate [UninstallDelete] @@ -1003,7 +1005,7 @@ begin Result := ExpandConstant('{app}'); end; -function BoolToStr(Value: Boolean): String; +function BoolToStr(Value: Boolean): String; begin if Value then Result := 'true' diff --git a/extensions/configuration-editing/package.json b/extensions/configuration-editing/package.json index ed2819ba97f..c5030630b40 100644 --- a/extensions/configuration-editing/package.json +++ b/extensions/configuration-editing/package.json @@ -20,7 +20,7 @@ }, "dependencies": { "jsonc-parser": "^1.0.0", - "vscode-nls": "^3.1.2" + "vscode-nls": "^3.2.1" }, "contributes": { "jsonValidation": [ diff --git a/extensions/configuration-editing/yarn.lock b/extensions/configuration-editing/yarn.lock index 3aecfb034d5..29d3d43ae80 100644 --- a/extensions/configuration-editing/yarn.lock +++ b/extensions/configuration-editing/yarn.lock @@ -10,6 +10,6 @@ jsonc-parser@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-1.0.0.tgz#ddcc864ae708e60a7a6dd36daea00172fa8d9272" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" diff --git a/extensions/css/package.json b/extensions/css/package.json index 5f4354623e6..8893cc34b93 100644 --- a/extensions/css/package.json +++ b/extensions/css/package.json @@ -714,7 +714,7 @@ }, "dependencies": { "vscode-languageclient": "^3.5.0", - "vscode-nls": "^3.1.2" + "vscode-nls": "^3.2.1" }, "devDependencies": { "@types/node": "7.0.43" diff --git a/extensions/css/server/package.json b/extensions/css/server/package.json index 5af88ec2a75..bd00c7a2c6d 100644 --- a/extensions/css/server/package.json +++ b/extensions/css/server/package.json @@ -8,7 +8,7 @@ "node": "*" }, "dependencies": { - "vscode-css-languageservice": "^3.0.3", + "vscode-css-languageservice": "^3.0.5", "vscode-languageserver": "^3.5.0" }, "devDependencies": { diff --git a/extensions/css/server/yarn.lock b/extensions/css/server/yarn.lock index 0420acb7d88..5e8284700f9 100644 --- a/extensions/css/server/yarn.lock +++ b/extensions/css/server/yarn.lock @@ -6,9 +6,9 @@ version "7.0.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" -vscode-css-languageservice@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-3.0.3.tgz#02cc4efa5335f5104e0a2f3b6920faaf59db4f7a" +vscode-css-languageservice@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-3.0.5.tgz#8470989c07bbe740db4fa621423e98384d2c342f" dependencies: vscode-languageserver-types "3.5.0" vscode-nls "^2.0.1" diff --git a/extensions/css/yarn.lock b/extensions/css/yarn.lock index e6c3983fb99..d7ec451f0e1 100644 --- a/extensions/css/yarn.lock +++ b/extensions/css/yarn.lock @@ -27,6 +27,6 @@ vscode-languageserver-types@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" diff --git a/extensions/emmet/package.json b/extensions/emmet/package.json index d56ce44d207..3e4c95432fa 100644 --- a/extensions/emmet/package.json +++ b/extensions/emmet/package.json @@ -178,6 +178,26 @@ "type": "boolean", "default": false, "description": "%emmetPreferencesAllowCompactBoolean%" + }, + "css.webkitProperties": { + "type": "string", + "default": null, + "description": "%emmetPreferencesCssWebkitProperties%" + }, + "css.mozProperties": { + "type": "string", + "default": null, + "description": "%emmetPreferencesCssMozProperties%" + }, + "css.oProperties": { + "type": "string", + "default": null, + "description": "%emmetPreferencesCssOProperties%" + }, + "css.msProperties": { + "type": "string", + "default": null, + "description": "%emmetPreferencesCssMsProperties%" } } }, @@ -317,9 +337,9 @@ "@emmetio/html-matcher": "^0.3.3", "@emmetio/css-parser": "ramya-rao-a/css-parser#vscode", "@emmetio/math-expression": "^0.1.1", - "vscode-emmet-helper": "^1.1.22", + "vscode-emmet-helper": "^1.1.24", "vscode-languageserver-types": "^3.5.0", "image-size": "^0.5.2", - "vscode-nls": "3.1.2" + "vscode-nls": "3.2.1" } } \ No newline at end of file diff --git a/extensions/emmet/package.nls.json b/extensions/emmet/package.nls.json index 52df8adca11..91d30dafd83 100644 --- a/extensions/emmet/package.nls.json +++ b/extensions/emmet/package.nls.json @@ -47,5 +47,9 @@ "emmetPreferencesFilterCommentTrigger": "A comma-separated list of attribute names that should exist in abbreviation for the comment filter to be applied", "emmetPreferencesFormatNoIndentTags": "An array of tag names that should not get inner indentation", "emmetPreferencesFormatForceIndentTags": "An array of tag names that should always get inner indentation", - "emmetPreferencesAllowCompactBoolean": "If true, compact notation of boolean attributes are produced" + "emmetPreferencesAllowCompactBoolean": "If true, compact notation of boolean attributes are produced", + "emmetPreferencesCssWebkitProperties": "Comma separated css properties that get webkit vendor prefix when used in emmet abbreviation that starts with `-`. Set to empty string to avoid webkit prefix always.", + "emmetPreferencesCssMozProperties": "Comma separated css properties that get moz vendor prefix when used in emmet abbreviation that starts with `-`. Set to empty string to avoid moz prefix always.", + "emmetPreferencesCssOProperties": "Comma separated css properties that get o vendor prefix when used in emmet abbreviation that starts with `-`. Set to empty string to avoid o prefix always.", + "emmetPreferencesCssMsProperties": "Comma separated css properties that get ms vendor prefix when used in emmet abbreviation that starts with `-`. Set to empty string to avoid ms prefix always." } diff --git a/extensions/emmet/src/util.ts b/extensions/emmet/src/util.ts index 02ac3f982b3..fde2c573dd3 100644 --- a/extensions/emmet/src/util.ts +++ b/extensions/emmet/src/util.ts @@ -47,10 +47,10 @@ export const LANGUAGE_MODES: any = { 'haml': ['!', '.', '}', ':', '*', '$', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 'xml': ['.', '}', '*', '$', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 'xsl': ['!', '.', '}', '*', '$', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], - 'css': [':', ';', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], - 'scss': [':', ';', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], + 'css': [':', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], + 'scss': [':', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 'sass': [':', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], - 'less': [':', ';', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], + 'less': [':', '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 'stylus': [':', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 'javascriptreact': ['.', '}', '*', '$', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'], 'typescriptreact': ['.', '}', '*', '$', ']', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] diff --git a/extensions/emmet/yarn.lock b/extensions/emmet/yarn.lock index dc280420de1..07e78ff4742 100644 --- a/extensions/emmet/yarn.lock +++ b/extensions/emmet/yarn.lock @@ -2052,9 +2052,9 @@ vinyl@~2.0.1: remove-trailing-separator "^1.0.1" replace-ext "^1.0.0" -vscode-emmet-helper@^1.1.22: - version "1.1.22" - resolved "https://registry.yarnpkg.com/vscode-emmet-helper/-/vscode-emmet-helper-1.1.22.tgz#3ba407f98e60d1153a8f1ed073ccaaa2587d2771" +vscode-emmet-helper@^1.1.24: + version "1.1.24" + resolved "https://registry.yarnpkg.com/vscode-emmet-helper/-/vscode-emmet-helper-1.1.24.tgz#032d3aa3a3e30ed87b7056a902300f1e0eb4016d" dependencies: "@emmetio/extract-abbreviation" "^0.1.4" jsonc-parser "^1.0.0" @@ -2068,9 +2068,9 @@ vscode-languageserver-types@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374" -vscode-nls@3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" vscode@1.0.1: version "1.0.1" diff --git a/extensions/extension-editing/package.json b/extensions/extension-editing/package.json index fe7e6bdb413..6c13e41f4a1 100644 --- a/extensions/extension-editing/package.json +++ b/extensions/extension-editing/package.json @@ -23,7 +23,7 @@ "jsonc-parser": "^1.0.0", "markdown-it": "^8.3.1", "parse5": "^3.0.2", - "vscode-nls": "^3.1.2" + "vscode-nls": "^3.2.1" }, "contributes": { "jsonValidation": [ diff --git a/extensions/extension-editing/yarn.lock b/extensions/extension-editing/yarn.lock index e0072b69ac8..350fdcb5fe3 100644 --- a/extensions/extension-editing/yarn.lock +++ b/extensions/extension-editing/yarn.lock @@ -58,6 +58,6 @@ uc.micro@^1.0.1, uc.micro@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.3.tgz#7ed50d5e0f9a9fb0a573379259f2a77458d50192" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" diff --git a/extensions/git/package.json b/extensions/git/package.json index 5834266c26e..202d73c4c00 100644 --- a/extensions/git/package.json +++ b/extensions/git/package.json @@ -336,35 +336,35 @@ }, { "command": "git.close", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.refresh", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.openFile", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.openHEADFile", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.openChange", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.stage", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.stageAll", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.stageSelectedRanges", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.stageChange", @@ -372,7 +372,7 @@ }, { "command": "git.revertSelectedRanges", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.revertChange", @@ -384,147 +384,147 @@ }, { "command": "git.unstage", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.unstageAll", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.unstageSelectedRanges", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.clean", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.cleanAll", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.commit", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.commitStaged", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.commitStagedSigned", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.commitStagedAmend", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.commitAll", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.commitAllSigned", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.commitAllAmend", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.undoCommit", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.checkout", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.branch", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.deleteBranch", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.renameBranch", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.pull", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.pullFrom", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.pullRebase", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.pullFrom", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.merge", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.createTag", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.fetch", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.push", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.pushTo", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.pushWithTags", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.sync", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.syncRebase", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.publish", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.showOutput", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.ignore", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.stashIncludeUntracked", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.stash", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.stashPop", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" }, { "command": "git.stashPopLatest", - "when": "gitOpenRepositoryCount != 0" + "when": "config.git.enabled && gitOpenRepositoryCount != 0" } ], "scm/title": [ @@ -809,27 +809,27 @@ { "command": "git.openFile", "group": "navigation", - "when": "gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme != extension && resourceScheme != merge-conflict.conflict-diff" + "when": "config.git.enabled && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme != extension && resourceScheme != merge-conflict.conflict-diff" }, { "command": "git.openChange", "group": "navigation", - "when": "gitOpenRepositoryCount != 0 && !isInDiffEditor && resourceScheme == file" + "when": "config.git.enabled && gitOpenRepositoryCount != 0 && !isInDiffEditor && resourceScheme == file" }, { "command": "git.stageSelectedRanges", "group": "2_git@1", - "when": "gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme != merge-conflict.conflict-diff" + "when": "config.git.enabled && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme != merge-conflict.conflict-diff" }, { "command": "git.unstageSelectedRanges", "group": "2_git@2", - "when": "gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme != merge-conflict.conflict-diff" + "when": "config.git.enabled && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme != merge-conflict.conflict-diff" }, { "command": "git.revertSelectedRanges", "group": "2_git@3", - "when": "gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme != merge-conflict.conflict-diff" + "when": "config.git.enabled && gitOpenRepositoryCount != 0 && isInDiffEditor && resourceScheme != merge-conflict.conflict-diff" } ], "scm/change/title": [ @@ -946,6 +946,22 @@ "type": "boolean", "default": true, "description": "%config.showInlineOpenFileAction%" + }, + "git.inputValidation": { + "type": "string", + "enum": [ + "always", + "warn", + "off" + ], + "default": "warn", + "description": "%config.inputValidation%" + }, + "git.detectSubmodules": { + "type": "boolean", + "scope": "resource", + "default": true, + "description": "%config.detectSubmodules%" } } }, @@ -1010,8 +1026,8 @@ "byline": "^5.0.0", "file-type": "^7.2.0", "iconv-lite": "0.4.19", - "vscode-extension-telemetry": "0.0.8", - "vscode-nls": "^3.1.2", + "vscode-extension-telemetry": "0.0.11", + "vscode-nls": "^3.2.1", "which": "^1.3.0" }, "devDependencies": { diff --git a/extensions/git/package.nls.json b/extensions/git/package.nls.json index 28c41092842..b7c0719c132 100644 --- a/extensions/git/package.nls.json +++ b/extensions/git/package.nls.json @@ -66,6 +66,8 @@ "config.decorations.enabled": "Controls if Git contributes colors and badges to the explorer and the open editors view.", "config.promptToSaveFilesBeforeCommit": "Controls whether Git should check for unsaved files before committing.", "config.showInlineOpenFileAction": "Controls whether to show an inline Open File action in the Git changes view.", + "config.inputValidation": "Controls when to show input validation the input counter.", + "config.detectSubmodules": "Controls whether to automatically detect git submodules.", "colors.modified": "Color for modified resources.", "colors.deleted": "Color for deleted resources.", "colors.untracked": "Color for untracked resources.", diff --git a/extensions/git/src/main.ts b/extensions/git/src/main.ts index c00b71b12af..3fdb055e264 100644 --- a/extensions/git/src/main.ts +++ b/extensions/git/src/main.ts @@ -14,7 +14,7 @@ import { CommandCenter } from './commands'; import { GitContentProvider } from './contentProvider'; import { GitDecorations } from './decorationProvider'; import { Askpass } from './askpass'; -import { toDisposable } from './util'; +import { toDisposable, filterEvent, mapEvent, eventToPromise } from './util'; import TelemetryReporter from 'vscode-extension-telemetry'; import { API, createApi } from './api'; @@ -93,11 +93,27 @@ async function _activate(context: ExtensionContext, disposables: Disposable[]): } export function activate(context: ExtensionContext): API { + const config = workspace.getConfiguration('git', null); + const enabled = config.get('enabled'); + const disposables: Disposable[] = []; context.subscriptions.push(new Disposable(() => Disposable.from(...disposables).dispose())); - const activatePromise = _activate(context, disposables); - const modelPromise = activatePromise.then(model => model || Promise.reject('Git model not found')); + let activatePromise: Promise; + + if (enabled) { + activatePromise = _activate(context, disposables); + } else { + const onConfigChange = filterEvent(workspace.onDidChangeConfiguration, e => e.affectsConfiguration('git')); + const onEnabled = filterEvent(onConfigChange, () => workspace.getConfiguration('git', null).get('enabled') === true); + + activatePromise = eventToPromise(onEnabled) + .then(() => _activate(context, disposables)); + } + + const modelPromise = activatePromise + .then(model => model || Promise.reject('Git model not found')); + activatePromise.catch(err => console.error(err)); return createApi(modelPromise); diff --git a/extensions/git/src/model.ts b/extensions/git/src/model.ts index 954cb774c86..235b07787ba 100644 --- a/extensions/git/src/model.ts +++ b/extensions/git/src/model.ts @@ -191,11 +191,13 @@ export class Model { } try { - const repositoryRoot = await this.git.getRepositoryRoot(path); + const rawRoot = await this.git.getRepositoryRoot(path); // This can happen whenever `path` has the wrong case sensitivity in // case insensitive file systems // https://github.com/Microsoft/vscode/issues/33498 + const repositoryRoot = Uri.file(rawRoot).fsPath; + if (this.getRepository(repositoryRoot)) { return; } @@ -217,14 +219,9 @@ export class Model { const disappearListener = onDidDisappearRepository(() => dispose()); const changeListener = repository.onDidChangeRepository(uri => this._onDidChangeRepository.fire({ repository, uri })); const originalResourceChangeListener = repository.onDidChangeOriginalResource(uri => this._onDidChangeOriginalResource.fire({ repository, uri })); - const scanSubmodules = () => { - repository.submodules - .map(r => path.join(repository.root, r.path)) - .forEach(p => this.eventuallyScanPossibleGitRepository(p)); - }; - const statusListener = repository.onDidRunGitStatus(scanSubmodules); - scanSubmodules(); + const statusListener = repository.onDidRunGitStatus(() => this.scanSubmodules(repository)); + this.scanSubmodules(repository); const dispose = () => { disappearListener.dispose(); @@ -242,6 +239,20 @@ export class Model { this._onDidOpenRepository.fire(repository); } + private scanSubmodules(repository: Repository): void { + const shouldScanSubmodules = workspace + .getConfiguration('git', Uri.file(repository.root)) + .get('detectSubmodules') === true; + + if (!shouldScanSubmodules) { + return; + } + + repository.submodules + .map(r => path.join(repository.root, r.path)) + .forEach(p => this.eventuallyScanPossibleGitRepository(p)); + } + close(repository: Repository): void { const openRepository = this.getOpenRepository(repository); diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts index cd9c8a197a6..893b2ce2939 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -5,7 +5,7 @@ 'use strict'; -import { Uri, Command, EventEmitter, Event, scm, SourceControl, SourceControlInputBox, SourceControlResourceGroup, SourceControlResourceState, SourceControlResourceDecorations, Disposable, ProgressLocation, window, workspace, WorkspaceEdit, ThemeColor, DecorationData, Memento } from 'vscode'; +import { Uri, Command, EventEmitter, Event, scm, SourceControl, SourceControlInputBox, SourceControlResourceGroup, SourceControlResourceState, SourceControlResourceDecorations, SourceControlInputBoxValidation, Disposable, ProgressLocation, window, workspace, WorkspaceEdit, ThemeColor, DecorationData, Memento, SourceControlInputBoxValidationType } from 'vscode'; import { Repository as BaseRepository, Ref, Branch, Remote, Commit, GitErrorCodes, Stash, RefType, GitError, Submodule, DiffOptions } from './git'; import { anyEvent, filterEvent, eventToPromise, dispose, find, isDescendant, IDisposable, onceEvent, EmptyDisposable, debounceEvent } from './util'; import { memoize, throttle, debounce } from './decorators'; @@ -419,6 +419,8 @@ class ProgressManager { export class Repository implements Disposable { + private static readonly InputValidationLength = 72; + private _onDidChangeRepository = new EventEmitter(); readonly onDidChangeRepository: Event = this._onDidChangeRepository.event; @@ -521,7 +523,7 @@ export class Repository implements Disposable { this._sourceControl.inputBox.placeholder = localize('commitMessage', "Message (press {0} to commit)"); this._sourceControl.acceptInputCommand = { command: 'git.commitWithInput', title: localize('commit', "Commit"), arguments: [this._sourceControl] }; this._sourceControl.quickDiffProvider = this; - this._sourceControl.inputBox.lineWarningLength = 72; + this._sourceControl.inputBox.validateInput = this.validateInput.bind(this); this.disposables.push(this._sourceControl); this._mergeGroup = this._sourceControl.createResourceGroup('merge', localize('merge changes', "Merge Changes")); @@ -549,6 +551,43 @@ export class Repository implements Disposable { this.status(); } + validateInput(text: string, position: number): SourceControlInputBoxValidation | undefined { + const config = workspace.getConfiguration('git'); + const setting = config.get<'always' | 'warn' | 'off'>('inputValidation'); + + if (setting === 'off') { + return; + } + + let start = 0, end; + let match: RegExpExecArray | null; + const regex = /\r?\n/g; + + while ((match = regex.exec(text)) && position > match.index) { + start = match.index + match[0].length; + } + + end = match ? match.index : text.length; + + const line = text.substring(start, end); + + if (line.length <= Repository.InputValidationLength) { + if (setting !== 'always') { + return; + } + + return { + message: localize('commitMessageCountdown', "{0} characters left in current line", Repository.InputValidationLength - line.length), + type: SourceControlInputBoxValidationType.Information + }; + } else { + return { + message: localize('commitMessageWarning', "{0} characters over {1} in current line", line.length - Repository.InputValidationLength, Repository.InputValidationLength), + type: SourceControlInputBoxValidationType.Warning + }; + } + } + provideOriginalResource(uri: Uri): Uri | undefined { if (uri.scheme !== 'file') { return; diff --git a/extensions/git/yarn.lock b/extensions/git/yarn.lock index 807d677b30a..f840f51b49f 100644 --- a/extensions/git/yarn.lock +++ b/extensions/git/yarn.lock @@ -30,9 +30,13 @@ version "1.0.28" resolved "https://registry.yarnpkg.com/@types/which/-/which-1.0.28.tgz#016e387629b8817bed653fe32eab5d11279c8df6" -applicationinsights@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-0.18.0.tgz#162ebb48a383408bc4de44db32b417307f45bbc1" +applicationinsights@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.1.tgz#53446b830fe8d5d619eee2a278b31d3d25030927" + dependencies: + diagnostic-channel "0.2.0" + diagnostic-channel-publishers "0.2.1" + zone.js "0.7.6" balanced-match@^1.0.0: version "1.0.0" @@ -69,6 +73,16 @@ debug@2.6.8: dependencies: ms "2.0.0" +diagnostic-channel-publishers@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3" + +diagnostic-channel@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17" + dependencies: + semver "^5.3.0" + diff@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" @@ -229,22 +243,25 @@ path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" +semver@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + supports-color@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" dependencies: has-flag "^1.0.0" -vscode-extension-telemetry@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.8.tgz#2261bff986b6690a6f1f746a45ac5bd1f85d29e0" +vscode-extension-telemetry@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.11.tgz#f2dde487f01d2b079f55ab47a0247f5a772c4e06" dependencies: - applicationinsights "0.18.0" - winreg "1.2.3" + applicationinsights "1.0.1" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" which@^1.3.0: version "1.3.0" @@ -252,10 +269,10 @@ which@^1.3.0: dependencies: isexe "^2.0.0" -winreg@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.3.tgz#93ad116b2696da87d58f7265a8fcea5254a965d5" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +zone.js@0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009" diff --git a/extensions/grunt/package.json b/extensions/grunt/package.json index c63b52e02b4..4966ea7271b 100644 --- a/extensions/grunt/package.json +++ b/extensions/grunt/package.json @@ -15,7 +15,7 @@ "watch": "gulp watch-extension:grunt" }, "dependencies": { - "vscode-nls": "^3.1.2" + "vscode-nls": "^3.2.1" }, "devDependencies": { "@types/node": "7.0.43" diff --git a/extensions/grunt/yarn.lock b/extensions/grunt/yarn.lock index e2fc7ae342e..112e5f2ac8d 100644 --- a/extensions/grunt/yarn.lock +++ b/extensions/grunt/yarn.lock @@ -6,6 +6,6 @@ version "7.0.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" diff --git a/extensions/gulp/package.json b/extensions/gulp/package.json index 525398dcf9a..8ab76f556d0 100644 --- a/extensions/gulp/package.json +++ b/extensions/gulp/package.json @@ -15,7 +15,7 @@ "watch": "gulp watch-extension:gulp" }, "dependencies": { - "vscode-nls": "^3.1.2" + "vscode-nls": "^3.2.1" }, "devDependencies": { "@types/node": "7.0.43" diff --git a/extensions/gulp/yarn.lock b/extensions/gulp/yarn.lock index e2fc7ae342e..112e5f2ac8d 100644 --- a/extensions/gulp/yarn.lock +++ b/extensions/gulp/yarn.lock @@ -6,6 +6,6 @@ version "7.0.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" diff --git a/extensions/html/package.json b/extensions/html/package.json index c9662fab156..a8bbb91b761 100644 --- a/extensions/html/package.json +++ b/extensions/html/package.json @@ -224,9 +224,9 @@ } }, "dependencies": { - "vscode-extension-telemetry": "0.0.8", + "vscode-extension-telemetry": "0.0.11", "vscode-languageclient": "^3.5.0", - "vscode-nls": "^3.1.2" + "vscode-nls": "^3.2.1" }, "devDependencies": { "@types/node": "7.0.43" diff --git a/extensions/html/server/package.json b/extensions/html/server/package.json index 37ab867085e..1afa6e9672d 100644 --- a/extensions/html/server/package.json +++ b/extensions/html/server/package.json @@ -8,10 +8,10 @@ "node": "*" }, "dependencies": { - "vscode-css-languageservice": "^3.0.3", - "vscode-html-languageservice": "^2.0.14", + "vscode-css-languageservice": "^3.0.5", + "vscode-html-languageservice": "^2.0.15", "vscode-languageserver": "^3.5.0", - "vscode-nls": "^3.1.2", + "vscode-nls": "^3.2.1", "vscode-uri": "^1.0.1" }, "devDependencies": { diff --git a/extensions/html/server/yarn.lock b/extensions/html/server/yarn.lock index f12116b9872..bd284a09edd 100644 --- a/extensions/html/server/yarn.lock +++ b/extensions/html/server/yarn.lock @@ -10,16 +10,16 @@ version "7.0.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" -vscode-css-languageservice@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-3.0.3.tgz#02cc4efa5335f5104e0a2f3b6920faaf59db4f7a" +vscode-css-languageservice@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/vscode-css-languageservice/-/vscode-css-languageservice-3.0.5.tgz#8470989c07bbe740db4fa621423e98384d2c342f" dependencies: vscode-languageserver-types "3.5.0" vscode-nls "^2.0.1" -vscode-html-languageservice@^2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-2.0.14.tgz#15491c11bb7e196f6fd03b6c6c768901935862eb" +vscode-html-languageservice@^2.0.15: + version "2.0.15" + resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-2.0.15.tgz#e3ec34c4d62bc636f8a16c9b474e5851ca13aab0" dependencies: vscode-languageserver-types "3.5.0" vscode-nls "^2.0.2" @@ -51,9 +51,9 @@ vscode-nls@^2.0.1, vscode-nls@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-2.0.2.tgz#808522380844b8ad153499af5c3b03921aea02da" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" vscode-uri@^1.0.1: version "1.0.1" diff --git a/extensions/html/yarn.lock b/extensions/html/yarn.lock index fac01e86dad..47c5c2e51b7 100644 --- a/extensions/html/yarn.lock +++ b/extensions/html/yarn.lock @@ -6,16 +6,33 @@ version "7.0.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" -applicationinsights@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-0.18.0.tgz#162ebb48a383408bc4de44db32b417307f45bbc1" - -vscode-extension-telemetry@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.8.tgz#2261bff986b6690a6f1f746a45ac5bd1f85d29e0" +applicationinsights@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.1.tgz#53446b830fe8d5d619eee2a278b31d3d25030927" dependencies: - applicationinsights "0.18.0" - winreg "1.2.3" + diagnostic-channel "0.2.0" + diagnostic-channel-publishers "0.2.1" + zone.js "0.7.6" + +diagnostic-channel-publishers@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3" + +diagnostic-channel@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17" + dependencies: + semver "^5.3.0" + +semver@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +vscode-extension-telemetry@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.11.tgz#f2dde487f01d2b079f55ab47a0247f5a772c4e06" + dependencies: + applicationinsights "1.0.1" vscode-jsonrpc@^3.5.0: version "3.5.0" @@ -38,10 +55,10 @@ vscode-languageserver-types@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" -winreg@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.3.tgz#93ad116b2696da87d58f7265a8fcea5254a965d5" +zone.js@0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009" diff --git a/extensions/jake/package.json b/extensions/jake/package.json index 374be5cea88..7d2d4b4524e 100644 --- a/extensions/jake/package.json +++ b/extensions/jake/package.json @@ -15,7 +15,7 @@ "watch": "gulp watch-extension:jake" }, "dependencies": { - "vscode-nls": "^3.1.2" + "vscode-nls": "^3.2.1" }, "devDependencies": { "@types/node": "7.0.43" diff --git a/extensions/jake/yarn.lock b/extensions/jake/yarn.lock index e2fc7ae342e..112e5f2ac8d 100644 --- a/extensions/jake/yarn.lock +++ b/extensions/jake/yarn.lock @@ -6,6 +6,6 @@ version "7.0.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" diff --git a/extensions/javascript/package.json b/extensions/javascript/package.json index b3377418c01..341bfc1512a 100644 --- a/extensions/javascript/package.json +++ b/extensions/javascript/package.json @@ -13,7 +13,7 @@ "dependencies": { "jsonc-parser": "^1.0.0", "request-light": "^0.2.2", - "vscode-nls": "^3.1.2" + "vscode-nls": "^3.2.1" }, "scripts": { "compile": "gulp compile-extension:javascript", diff --git a/extensions/javascript/yarn.lock b/extensions/javascript/yarn.lock index 72d121783eb..bab69ccbd1f 100644 --- a/extensions/javascript/yarn.lock +++ b/extensions/javascript/yarn.lock @@ -72,6 +72,6 @@ vscode-nls@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-2.0.2.tgz#808522380844b8ad153499af5c3b03921aea02da" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" diff --git a/extensions/json/package.json b/extensions/json/package.json index e5ae54bde5b..5b9b79b5c11 100644 --- a/extensions/json/package.json +++ b/extensions/json/package.json @@ -162,9 +162,9 @@ } }, "dependencies": { - "vscode-extension-telemetry": "0.0.8", + "vscode-extension-telemetry": "0.0.11", "vscode-languageclient": "^3.5.0", - "vscode-nls": "^3.1.2" + "vscode-nls": "^3.2.1" }, "devDependencies": { "@types/node": "7.0.43" diff --git a/extensions/json/server/package.json b/extensions/json/server/package.json index 562689ecf52..6a27caaa942 100644 --- a/extensions/json/server/package.json +++ b/extensions/json/server/package.json @@ -12,7 +12,7 @@ "request-light": "^0.2.2", "vscode-json-languageservice": "^3.0.4", "vscode-languageserver": "^3.5.0", - "vscode-nls": "^3.1.2", + "vscode-nls": "^3.2.1", "vscode-uri": "^1.0.1" }, "devDependencies": { diff --git a/extensions/json/server/yarn.lock b/extensions/json/server/yarn.lock index 8c005a3357a..fde3e6efbe8 100644 --- a/extensions/json/server/yarn.lock +++ b/extensions/json/server/yarn.lock @@ -99,9 +99,9 @@ vscode-nls@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-2.0.2.tgz#808522380844b8ad153499af5c3b03921aea02da" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" vscode-uri@^1.0.1: version "1.0.1" diff --git a/extensions/json/yarn.lock b/extensions/json/yarn.lock index fac01e86dad..47c5c2e51b7 100644 --- a/extensions/json/yarn.lock +++ b/extensions/json/yarn.lock @@ -6,16 +6,33 @@ version "7.0.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" -applicationinsights@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-0.18.0.tgz#162ebb48a383408bc4de44db32b417307f45bbc1" - -vscode-extension-telemetry@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.8.tgz#2261bff986b6690a6f1f746a45ac5bd1f85d29e0" +applicationinsights@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.1.tgz#53446b830fe8d5d619eee2a278b31d3d25030927" dependencies: - applicationinsights "0.18.0" - winreg "1.2.3" + diagnostic-channel "0.2.0" + diagnostic-channel-publishers "0.2.1" + zone.js "0.7.6" + +diagnostic-channel-publishers@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3" + +diagnostic-channel@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17" + dependencies: + semver "^5.3.0" + +semver@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +vscode-extension-telemetry@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.11.tgz#f2dde487f01d2b079f55ab47a0247f5a772c4e06" + dependencies: + applicationinsights "1.0.1" vscode-jsonrpc@^3.5.0: version "3.5.0" @@ -38,10 +55,10 @@ vscode-languageserver-types@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz#e48d79962f0b8e02de955e3f524908e2b19c0374" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" -winreg@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.3.tgz#93ad116b2696da87d58f7265a8fcea5254a965d5" +zone.js@0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009" diff --git a/extensions/markdown/package.json b/extensions/markdown/package.json index 6d86a3d88fb..ec99b44b91d 100644 --- a/extensions/markdown/package.json +++ b/extensions/markdown/package.json @@ -92,7 +92,10 @@ "commands": [ { "command": "markdown.showPreview", - "title": "%markdown.preview.title%", + "title": { + "original": "Open Preview", + "value": "%markdown.preview.title%" + }, "category": "Markdown", "icon": { "light": "./media/Preview.svg", @@ -101,7 +104,10 @@ }, { "command": "markdown.showPreviewToSide", - "title": "%markdown.previewSide.title%", + "title": { + "original": "Open Preview to the Side", + "value": "%markdown.previewSide.title%" + }, "category": "Markdown", "icon": { "light": "./media/PreviewOnRightPane_16x.svg", @@ -110,7 +116,10 @@ }, { "command": "markdown.showSource", - "title": "%markdown.showSource.title%", + "title": { + "original": "Show Source", + "value": "%markdown.showSource.title%" + }, "category": "Markdown", "icon": { "light": "./media/ViewSource.svg", @@ -119,12 +128,18 @@ }, { "command": "markdown.refreshPreview", - "title": "%markdown.refreshPreview.title%", + "title": { + "original": "Refresh Preview", + "value": "%markdown.refreshPreview.title%" + }, "category": "Markdown" }, { "command": "markdown.showPreviewSecuritySelector", - "title": "%markdown.showPreviewSecuritySelector.title%", + "title": { + "original": "Change Preview Security Settings", + "value": "%markdown.showPreviewSecuritySelector.title%" + }, "category": "Markdown" } ], @@ -313,8 +328,8 @@ "highlight.js": "9.5.0", "markdown-it": "^8.4.0", "markdown-it-named-headers": "0.0.4", - "vscode-extension-telemetry": "^0.0.8", - "vscode-nls": "^3.1.2" + "vscode-extension-telemetry": "^0.0.11", + "vscode-nls": "^3.2.1" }, "devDependencies": { "@types/highlight.js": "9.1.10", @@ -323,4 +338,4 @@ "gulp-rename": "^1.2.2", "gulp-replace": "^0.5.4" } -} +} \ No newline at end of file diff --git a/extensions/markdown/src/security.ts b/extensions/markdown/src/security.ts index 5f0898e4972..56312a59d5f 100644 --- a/extensions/markdown/src/security.ts +++ b/extensions/markdown/src/security.ts @@ -127,7 +127,7 @@ export class PreviewSecuritySelector { label: this.cspArbiter.shouldDisableSecurityWarnings() ? localize('enableSecurityWarning.title', "Enable preview security warnings in this workspace") : localize('disableSecurityWarning.title', "Disable preview security warning in this workspace"), - description: localize('toggleSecurityWarning.description', 'Does not effect the content security level') + description: localize('toggleSecurityWarning.description', 'Does not affect the content security level') }, ], { placeHolder: localize( diff --git a/extensions/markdown/yarn.lock b/extensions/markdown/yarn.lock index 5e1e4c7a48b..b1ed9e8c9a1 100644 --- a/extensions/markdown/yarn.lock +++ b/extensions/markdown/yarn.lock @@ -14,9 +14,13 @@ version "7.0.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" -applicationinsights@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-0.18.0.tgz#162ebb48a383408bc4de44db32b417307f45bbc1" +applicationinsights@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.1.tgz#53446b830fe8d5d619eee2a278b31d3d25030927" + dependencies: + diagnostic-channel "0.2.0" + diagnostic-channel-publishers "0.2.1" + zone.js "0.7.6" argparse@^1.0.7: version "1.0.9" @@ -32,6 +36,16 @@ core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" +diagnostic-channel-publishers@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3" + +diagnostic-channel@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17" + dependencies: + semver "^5.3.0" + entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" @@ -129,6 +143,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" +semver@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -155,17 +173,16 @@ util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" -vscode-extension-telemetry@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.8.tgz#2261bff986b6690a6f1f746a45ac5bd1f85d29e0" +vscode-extension-telemetry@^0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.11.tgz#f2dde487f01d2b079f55ab47a0247f5a772c4e06" dependencies: - applicationinsights "0.18.0" - winreg "1.2.3" + applicationinsights "1.0.1" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" -winreg@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.3.tgz#93ad116b2696da87d58f7265a8fcea5254a965d5" +zone.js@0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009" diff --git a/extensions/merge-conflict/package.json b/extensions/merge-conflict/package.json index d7a0031df97..146b7fd061a 100644 --- a/extensions/merge-conflict/package.json +++ b/extensions/merge-conflict/package.json @@ -99,8 +99,8 @@ } }, "dependencies": { - "vscode-extension-telemetry": "0.0.8", - "vscode-nls": "^3.1.2" + "vscode-extension-telemetry": "0.0.11", + "vscode-nls": "^3.2.1" }, "devDependencies": { "@types/node": "8.0.33" diff --git a/extensions/merge-conflict/yarn.lock b/extensions/merge-conflict/yarn.lock index bd0aecc3553..74ebd7c4fcf 100644 --- a/extensions/merge-conflict/yarn.lock +++ b/extensions/merge-conflict/yarn.lock @@ -6,21 +6,38 @@ version "8.0.33" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.33.tgz#1126e94374014e54478092830704f6ea89df04cd" -applicationinsights@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-0.18.0.tgz#162ebb48a383408bc4de44db32b417307f45bbc1" - -vscode-extension-telemetry@0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.8.tgz#2261bff986b6690a6f1f746a45ac5bd1f85d29e0" +applicationinsights@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.1.tgz#53446b830fe8d5d619eee2a278b31d3d25030927" dependencies: - applicationinsights "0.18.0" - winreg "1.2.3" + diagnostic-channel "0.2.0" + diagnostic-channel-publishers "0.2.1" + zone.js "0.7.6" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +diagnostic-channel-publishers@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3" -winreg@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.3.tgz#93ad116b2696da87d58f7265a8fcea5254a965d5" +diagnostic-channel@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17" + dependencies: + semver "^5.3.0" + +semver@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +vscode-extension-telemetry@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.11.tgz#f2dde487f01d2b079f55ab47a0247f5a772c4e06" + dependencies: + applicationinsights "1.0.1" + +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" + +zone.js@0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009" diff --git a/extensions/npm/package.json b/extensions/npm/package.json index dba83356e28..f8e04312c27 100644 --- a/extensions/npm/package.json +++ b/extensions/npm/package.json @@ -15,7 +15,7 @@ "watch": "gulp watch-extension:npm" }, "dependencies": { - "vscode-nls": "^3.1.2" + "vscode-nls": "^3.2.1" }, "devDependencies": { "@types/node": "7.0.43" diff --git a/extensions/npm/yarn.lock b/extensions/npm/yarn.lock index e2fc7ae342e..112e5f2ac8d 100644 --- a/extensions/npm/yarn.lock +++ b/extensions/npm/yarn.lock @@ -6,6 +6,6 @@ version "7.0.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" diff --git a/extensions/package.json b/extensions/package.json index ca4c11ec80a..c02d9fac51a 100644 --- a/extensions/package.json +++ b/extensions/package.json @@ -3,7 +3,7 @@ "version": "0.0.1", "description": "Dependencies shared by all extensions", "dependencies": { - "typescript": "2.7.1-insiders.20180127" + "typescript": "2.7.1" }, "scripts": { "postinstall": "node ./postinstall" diff --git a/extensions/php/build/update-grammar.js b/extensions/php/build/update-grammar.js index 55cd1ae9c41..94b73aa7354 100644 --- a/extensions/php/build/update-grammar.js +++ b/extensions/php/build/update-grammar.js @@ -20,6 +20,21 @@ function adaptInjectionScope(grammar) { injections[newInjectionKey] = injection; } -updateGrammar.update('atom/language-php', 'grammars/php.cson', './syntaxes/php.tmLanguage.json', undefined); +// Workaround for https://github.com/Microsoft/vscode/issues/40279 +// and https://github.com/Microsoft/vscode-textmate/issues/59 +function fixBadRegex(grammar) { + const scopeResolution = grammar.repository['scope-resolution']; + if (scopeResolution) { + const match = scopeResolution.patterns[0].match; + if (match === '(?i)([a-z_\\x{7f}-\\x{7fffffff}\\\\][a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]*)(?=\\s*::)') { + scopeResolution.patterns[0].match = '([A-Za-z_\\x{7f}-\\x{7fffffff}\\\\][A_Za-z0-9_\\x{7f}-\\x{7fffffff}\\\\]*)(?=\\s*::)'; + return; + } + } + + throw new Error(`fixBadRegex callback couldn't patch the regex. It may be obsolete`); +} + +updateGrammar.update('atom/language-php', 'grammars/php.cson', './syntaxes/php.tmLanguage.json', fixBadRegex); updateGrammar.update('atom/language-php', 'grammars/html.cson', './syntaxes/html.tmLanguage.json', adaptInjectionScope); diff --git a/extensions/php/package.json b/extensions/php/package.json index bfe9fcaa5c5..f1408fe4a10 100644 --- a/extensions/php/package.json +++ b/extensions/php/package.json @@ -10,7 +10,7 @@ ], "main": "./out/phpMain", "dependencies": { - "vscode-nls": "^3.1.2" + "vscode-nls": "^3.2.1" }, "contributes": { "languages": [ diff --git a/extensions/php/syntaxes/php.tmLanguage.json b/extensions/php/syntaxes/php.tmLanguage.json index 9cacdd3c23c..9940c618083 100644 --- a/extensions/php/syntaxes/php.tmLanguage.json +++ b/extensions/php/syntaxes/php.tmLanguage.json @@ -2430,7 +2430,7 @@ "scope-resolution": { "patterns": [ { - "match": "(?i)([a-z_\\x{7f}-\\x{7fffffff}\\\\][a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]*)(?=\\s*::)", + "match": "([A-Za-z_\\x{7f}-\\x{7fffffff}\\\\][A_Za-z0-9_\\x{7f}-\\x{7fffffff}\\\\]*)(?=\\s*::)", "captures": { "1": { "patterns": [ diff --git a/extensions/php/yarn.lock b/extensions/php/yarn.lock index e2fc7ae342e..112e5f2ac8d 100644 --- a/extensions/php/yarn.lock +++ b/extensions/php/yarn.lock @@ -6,6 +6,6 @@ version "7.0.43" resolved "https://registry.yarnpkg.com/@types/node/-/node-7.0.43.tgz#a187e08495a075f200ca946079c914e1a5fe962c" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" diff --git a/extensions/typescript/package.json b/extensions/typescript/package.json index 27656dec922..3a94a50c4c3 100644 --- a/extensions/typescript/package.json +++ b/extensions/typescript/package.json @@ -13,8 +13,8 @@ }, "dependencies": { "semver": "4.3.6", - "vscode-extension-telemetry": "^0.0.8", - "vscode-nls": "^3.1.2" + "vscode-extension-telemetry": "^0.0.11", + "vscode-nls": "^3.2.1" }, "devDependencies": { "@types/node": "8.0.33", @@ -445,37 +445,58 @@ "commands": [ { "command": "typescript.reloadProjects", - "title": "%typescript.reloadProjects.title%", + "title": { + "original": "Reload Project", + "value": "%typescript.reloadProjects.title%" + }, "category": "TypeScript" }, { "command": "javascript.reloadProjects", - "title": "%javascript.reloadProjects.title%", + "title": { + "original": "Reload Project", + "value": "%javascript.reloadProjects.title%" + }, "category": "JavaScript" }, { "command": "typescript.selectTypeScriptVersion", - "title": "%typescript.selectTypeScriptVersion.title%", + "title": { + "original": "Select TypeScript Version", + "value": "%typescript.selectTypeScriptVersion.title%" + }, "category": "TypeScript" }, { "command": "typescript.goToProjectConfig", - "title": "%typescript.goToProjectConfig.title%", + "title": { + "original": "Go to Project Configuration", + "value": "%typescript.goToProjectConfig.title%" + }, "category": "TypeScript" }, { "command": "javascript.goToProjectConfig", - "title": "%javascript.goToProjectConfig.title%", + "title": { + "original": "Go to Project Configuration", + "value": "%javascript.goToProjectConfig.title%" + }, "category": "JavaScript" }, { "command": "typescript.openTsServerLog", - "title": "%typescript.openTsServerLog.title%", + "title": { + "original": "Open TS Server log", + "value": "%typescript.openTsServerLog.title%" + }, "category": "TypeScript" }, { "command": "typescript.restartTsServer", - "title": "%typescript.restartTsServer%", + "title": { + "original": "Restart TS server", + "value": "%typescript.restartTsServer%" + }, "category": "TypeScript" } ], diff --git a/extensions/typescript/src/features/completionItemProvider.ts b/extensions/typescript/src/features/completionItemProvider.ts index 75c44273c7d..485f0bb2029 100644 --- a/extensions/typescript/src/features/completionItemProvider.ts +++ b/extensions/typescript/src/features/completionItemProvider.ts @@ -26,6 +26,7 @@ class MyCompletionItem extends CompletionItem { constructor( public readonly position: Position, public readonly document: TextDocument, + line: string, public readonly tsEntry: Proto.CompletionEntry, enableDotCompletions: boolean, useCodeSnippetsOnMethodSuggest: boolean @@ -61,6 +62,11 @@ class MyCompletionItem extends CompletionItem { if (this.insertText[0] === '[') { // o.x -> o['x'] this.filterText = '.' + this.label; } + + // Make sure we only replace a single line at most + if (!this.range.isSingleLine) { + this.range = new Range(this.range.start.line, this.range.start.character, this.range.start.line, line.length); + } } } @@ -69,6 +75,7 @@ class MyCompletionItem extends CompletionItem { this.filterText = this.label; this.label += '?'; } + } public resolve(): void { @@ -249,6 +256,7 @@ export default class TypeScriptCompletionItemProvider implements CompletionItemP return []; } + const line = document.lineAt(position.line); const config = this.getConfiguration(document.uri); if (context.triggerCharacter === '"' || context.triggerCharacter === '\'') { @@ -257,8 +265,8 @@ export default class TypeScriptCompletionItemProvider implements CompletionItemP } // make sure we are in something that looks like the start of an import - const line = document.lineAt(position.line).text.slice(0, position.character); - if (!line.match(/\b(from|import)\s*["']$/) && !line.match(/\b(import|require)\(['"]$/)) { + const pre = line.text.slice(0, position.character); + if (!pre.match(/\b(from|import)\s*["']$/) && !pre.match(/\b(import|require)\(['"]$/)) { return []; } } @@ -269,16 +277,16 @@ export default class TypeScriptCompletionItemProvider implements CompletionItemP } // make sure we are in something that looks like an import path - const line = document.lineAt(position.line).text.slice(0, position.character); - if (!line.match(/\b(from|import)\s*["'][^'"]*$/) && !line.match(/\b(import|require)\(['"][^'"]*$/)) { + const pre = line.text.slice(0, position.character); + if (!pre.match(/\b(from|import)\s*["'][^'"]*$/) && !pre.match(/\b(import|require)\(['"][^'"]*$/)) { return []; } } if (context.triggerCharacter === '@') { // make sure we are in something that looks like the start of a jsdoc comment - const line = document.lineAt(position.line).text.slice(0, position.character); - if (!line.match(/^\s*\*[ ]?@/) && !line.match(/\/\*\*+[ ]?@/)) { + const pre = line.text.slice(0, position.character); + if (!pre.match(/^\s*\*[ ]?@/) && !pre.match(/\/\*\*+[ ]?@/)) { return []; } } @@ -329,7 +337,7 @@ export default class TypeScriptCompletionItemProvider implements CompletionItemP if (!config.autoImportSuggestions && element.hasAction) { continue; } - const item = new MyCompletionItem(position, document, element, enableDotCompletions, config.useCodeSnippetsOnMethodSuggest); + const item = new MyCompletionItem(position, document, line.text, element, enableDotCompletions, config.useCodeSnippetsOnMethodSuggest); completionItems.push(item); } } @@ -375,10 +383,34 @@ export default class TypeScriptCompletionItemProvider implements CompletionItemP } const detail = details[0]; item.detail = detail.displayParts.length ? Previewer.plain(detail.displayParts) : undefined; + item.documentation = this.getDocumentation(detail, item); + + if (detail.codeActions && detail.codeActions.length) { + item.command = { + title: '', + command: ApplyCompletionCodeActionCommand.ID, + arguments: [filepath, detail.codeActions] + }; + } + + if (detail && item.useCodeSnippet) { + const shouldCompleteFunction = await this.isValidFunctionCompletionContext(filepath, item.position); + if (shouldCompleteFunction) { + item.insertText = this.snippetForFunctionCall(item, detail); + } + return item; + } + + return item; + } + + private getDocumentation( + detail: Proto.CompletionEntryDetails, + item: MyCompletionItem + ): MarkdownString | undefined { const documentation = new MarkdownString(); if (detail.source) { let importPath = `'${Previewer.plain(detail.source)}'`; - if (this.client.apiVersion.has260Features() && !this.client.apiVersion.has262Features()) { // Try to resolve the real import name that will be added if (detail.codeActions && detail.codeActions[0]) { @@ -399,27 +431,9 @@ export default class TypeScriptCompletionItemProvider implements CompletionItemP } documentation.appendMarkdown('\n\n'); } - Previewer.addMarkdownDocumentation(documentation, detail.documentation, detail.tags); - item.documentation = documentation; - if (detail.codeActions && detail.codeActions.length) { - item.command = { - title: '', - command: ApplyCompletionCodeActionCommand.ID, - arguments: [filepath, detail.codeActions] - }; - } - - if (detail && item.useCodeSnippet) { - const shouldCompleteFunction = await this.isValidFunctionCompletionContext(filepath, item.position); - if (shouldCompleteFunction) { - item.insertText = this.snippetForFunctionCall(item, detail); - } - return item; - } - - return item; + return documentation.value.length ? documentation : undefined; } private async isValidFunctionCompletionContext(filepath: string, position: Position): Promise { diff --git a/extensions/typescript/src/features/diagnostics.ts b/extensions/typescript/src/features/diagnostics.ts index 526ed6f8ce4..606940ed7eb 100644 --- a/extensions/typescript/src/features/diagnostics.ts +++ b/extensions/typescript/src/features/diagnostics.ts @@ -94,4 +94,8 @@ export default class DiagnosticsManager { const syntaxDiagnostics = this.syntaxDiagnostics.get(file); this.currentDiagnostics.set(file, semanticDiagnostics.concat(syntaxDiagnostics)); } + + public getDiagnostics(file: Uri): Diagnostic[] { + return this.currentDiagnostics.get(file) || []; + } } \ No newline at end of file diff --git a/extensions/typescript/src/features/quickFixProvider.ts b/extensions/typescript/src/features/quickFixProvider.ts index d83c23d64da..6960233c56d 100644 --- a/extensions/typescript/src/features/quickFixProvider.ts +++ b/extensions/typescript/src/features/quickFixProvider.ts @@ -12,6 +12,7 @@ import FormattingConfigurationManager from './formattingConfigurationManager'; import { getEditForCodeAction, applyCodeActionCommands } from '../utils/codeAction'; import { Command, CommandManager } from '../utils/commandManager'; import { createWorkspaceEditFromFileCodeEdits } from '../utils/workspaceEdit'; +import DiagnosticsManager from './diagnostics'; import * as nls from 'vscode-nls'; const localize = nls.loadMessageBundle(); @@ -31,6 +32,49 @@ class ApplyCodeActionCommand implements Command { } } + +class ApplyFixAllCodeAction implements Command { + public static readonly ID = '_typescript.applyFixAllCodeAction'; + public readonly id = ApplyFixAllCodeAction.ID; + + constructor( + private readonly client: ITypeScriptServiceClient + ) { } + + public async execute( + file: string, + tsAction: Proto.CodeFixAction, + ): Promise { + if (!tsAction.fixId) { + return; + } + + const args: Proto.GetCombinedCodeFixRequestArgs = { + scope: { + type: 'file', + args: { file } + }, + fixId: tsAction.fixId + }; + + try { + const combinedCodeFixesResponse = await this.client.execute('getCombinedCodeFix', args); + if (!combinedCodeFixesResponse.body) { + return; + } + + const edit = createWorkspaceEditFromFileCodeEdits(this.client, combinedCodeFixesResponse.body.changes); + await vscode.workspace.applyEdit(edit); + + if (combinedCodeFixesResponse.command) { + await vscode.commands.executeCommand(ApplyCodeActionCommand.ID, combinedCodeFixesResponse.command); + } + } catch { + // noop + } + } +} + class SupportedCodeActionProvider { private _supportedCodeActions?: Thenable>; @@ -61,9 +105,12 @@ export default class TypeScriptQuickFixProvider implements vscode.CodeActionProv constructor( private readonly client: ITypeScriptServiceClient, private readonly formattingConfigurationManager: FormattingConfigurationManager, - commandManager: CommandManager + commandManager: CommandManager, + private readonly diagnosticsManager: DiagnosticsManager ) { commandManager.register(new ApplyCodeActionCommand(client)); + commandManager.register(new ApplyFixAllCodeAction(client)); + this.supportedCodeActionProvider = new SupportedCodeActionProvider(client); } @@ -91,12 +138,13 @@ export default class TypeScriptQuickFixProvider implements vscode.CodeActionProv const results: vscode.CodeAction[] = []; for (const diagnostic of fixableDiagnostics) { - results.push(...await this.getFixesForDiagnostic(file, diagnostic, token)); + results.push(...await this.getFixesForDiagnostic(document, file, diagnostic, token)); } return results; } private async getFixesForDiagnostic( + document: vscode.TextDocument, file: string, diagnostic: vscode.Diagnostic, token: vscode.CancellationToken @@ -109,7 +157,7 @@ export default class TypeScriptQuickFixProvider implements vscode.CodeActionProv if (codeFixesResponse.body) { const results: vscode.CodeAction[] = []; for (const tsCodeFix of codeFixesResponse.body) { - results.push(...await this.getAllFixesForTsCodeAction(file, diagnostic, tsCodeFix, token)); + results.push(...await this.getAllFixesForTsCodeAction(document, file, diagnostic, tsCodeFix)); } return results; } @@ -117,13 +165,13 @@ export default class TypeScriptQuickFixProvider implements vscode.CodeActionProv } private async getAllFixesForTsCodeAction( + document: vscode.TextDocument, file: string, diagnostic: vscode.Diagnostic, - tsAction: Proto.CodeFixAction, - token: vscode.CancellationToken + tsAction: Proto.CodeFixAction ): Promise> { const singleFix = this.getSingleFixForTsCodeAction(diagnostic, tsAction); - const fixAll = await this.getFixAllForTsCodeAction(file, diagnostic, tsAction, token); + const fixAll = await this.getFixAllForTsCodeAction(document, file, diagnostic, tsAction); return fixAll ? [singleFix, fixAll] : [singleFix]; } @@ -145,44 +193,30 @@ export default class TypeScriptQuickFixProvider implements vscode.CodeActionProv } private async getFixAllForTsCodeAction( + document: vscode.TextDocument, file: string, diagnostic: vscode.Diagnostic, tsAction: Proto.CodeFixAction, - token: vscode.CancellationToken ): Promise { if (!tsAction.fixId || !this.client.apiVersion.has270Features()) { return undefined; } - const args: Proto.GetCombinedCodeFixRequestArgs = { - scope: { - type: 'file', - args: { file } - }, - fixId: tsAction.fixId - }; - - try { - const combinedCodeFixesResponse = await this.client.execute('getCombinedCodeFix', args, token); - if (!combinedCodeFixesResponse.body) { - return undefined; - } - - const codeAction = new vscode.CodeAction( - localize('fixAllInFileLabel', '{0} (Fix all in file)', tsAction.description), - vscode.CodeActionKind.QuickFix); - codeAction.edit = createWorkspaceEditFromFileCodeEdits(this.client, combinedCodeFixesResponse.body.changes); - codeAction.diagnostics = [diagnostic]; - if (tsAction.commands) { - codeAction.command = { - command: ApplyCodeActionCommand.ID, - arguments: [tsAction], - title: tsAction.description - }; - } - return codeAction; - } catch { - return undefined; + // Make sure there are multiple diagnostics of the same type in the file + if (!this.diagnosticsManager.getDiagnostics(document.uri).some(x => x.code === diagnostic.code && x !== diagnostic)) { + return; } + + const action = new vscode.CodeAction( + localize('fixAllInFileLabel', '{0} (Fix all in file)', tsAction.description), + vscode.CodeActionKind.QuickFix); + action.diagnostics = [diagnostic]; + + action.command = { + command: ApplyFixAllCodeAction.ID, + arguments: [file, tsAction], + title: '' + }; + return action; } } diff --git a/extensions/typescript/src/languageProvider.ts b/extensions/typescript/src/languageProvider.ts index 39d5ef0616f..1f291018a30 100644 --- a/extensions/typescript/src/languageProvider.ts +++ b/extensions/typescript/src/languageProvider.ts @@ -123,7 +123,7 @@ export default class LanguageProvider { this.disposables.push(languages.registerDocumentSymbolProvider(selector, new (await import('./features/documentSymbolProvider')).default(client))); this.disposables.push(languages.registerSignatureHelpProvider(selector, new (await import('./features/signatureHelpProvider')).default(client), '(', ',')); this.disposables.push(languages.registerRenameProvider(selector, new (await import('./features/renameProvider')).default(client))); - this.disposables.push(languages.registerCodeActionsProvider(selector, new (await import('./features/quickFixProvider')).default(client, this.formattingOptionsManager, commandManager))); + this.disposables.push(languages.registerCodeActionsProvider(selector, new (await import('./features/quickFixProvider')).default(client, this.formattingOptionsManager, commandManager, this.diagnosticsManager))); this.disposables.push(languages.registerCodeActionsProvider(selector, new (await import('./features/refactorProvider')).default(client, this.formattingOptionsManager, commandManager))); this.registerVersionDependentProviders(); diff --git a/extensions/typescript/src/typescriptServiceClient.ts b/extensions/typescript/src/typescriptServiceClient.ts index a36818b3905..595d56d117f 100644 --- a/extensions/typescript/src/typescriptServiceClient.ts +++ b/extensions/typescript/src/typescriptServiceClient.ts @@ -354,8 +354,9 @@ export default class TypeScriptServiceClient implements ITypeScriptServiceClient return this.servicePromise = new Promise(async (resolve, reject) => { try { const tsServerForkArgs = await this.getTsServerArgs(currentVersion); + const debugPort = this.getDebugPort(); const tsServerForkOptions: electron.IForkOptions = { - execArgv: [] // [`--debug-brk=5859`] + execArgv: debugPort ? [`--inspect=${debugPort}`] : [] // [`--debug-brk=5859`] }; electron.fork(currentVersion.tsServerPath, tsServerForkArgs, tsServerForkOptions, this.logger, (err: any, childProcess: cp.ChildProcess | null) => { if (err || !childProcess) { @@ -942,6 +943,18 @@ export default class TypeScriptServiceClient implements ITypeScriptServiceClient return args; } + + private getDebugPort(): number | undefined { + const value = process.env['TSS_DEBUG']; + if (value) { + const port = parseInt(value); + if (!isNaN(port)) { + return port; + } + } + return undefined; + } + private resetClientVersion() { this._apiVersion = API.defaultVersion; this._tsserverVersion = undefined; diff --git a/extensions/typescript/yarn.lock b/extensions/typescript/yarn.lock index 5f6bdee5635..0fcc8a28cac 100644 --- a/extensions/typescript/yarn.lock +++ b/extensions/typescript/yarn.lock @@ -10,25 +10,42 @@ version "5.4.0" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-5.4.0.tgz#f3658535af7f1f502acd6da7daf405ffeb1f7ee4" -applicationinsights@0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-0.18.0.tgz#162ebb48a383408bc4de44db32b417307f45bbc1" +applicationinsights@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/applicationinsights/-/applicationinsights-1.0.1.tgz#53446b830fe8d5d619eee2a278b31d3d25030927" + dependencies: + diagnostic-channel "0.2.0" + diagnostic-channel-publishers "0.2.1" + zone.js "0.7.6" + +diagnostic-channel-publishers@0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/diagnostic-channel-publishers/-/diagnostic-channel-publishers-0.2.1.tgz#8e2d607a8b6d79fe880b548bc58cc6beb288c4f3" + +diagnostic-channel@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/diagnostic-channel/-/diagnostic-channel-0.2.0.tgz#cc99af9612c23fb1fff13612c72f2cbfaa8d5a17" + dependencies: + semver "^5.3.0" semver@4.3.6: version "4.3.6" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" -vscode-extension-telemetry@^0.0.8: - version "0.0.8" - resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.8.tgz#2261bff986b6690a6f1f746a45ac5bd1f85d29e0" +semver@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + +vscode-extension-telemetry@^0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.11.tgz#f2dde487f01d2b079f55ab47a0247f5a772c4e06" dependencies: - applicationinsights "0.18.0" - winreg "1.2.3" + applicationinsights "1.0.1" -vscode-nls@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.1.2.tgz#c1b63f4338ac49c852267633dd99717916424a74" +vscode-nls@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/vscode-nls/-/vscode-nls-3.2.1.tgz#b1f3e04e8a94a715d5a7bcbc8339c51e6d74ca51" -winreg@1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/winreg/-/winreg-1.2.3.tgz#93ad116b2696da87d58f7265a8fcea5254a965d5" +zone.js@0.7.6: + version "0.7.6" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.7.6.tgz#fbbc39d3e0261d0986f1ba06306eb3aeb0d22009" diff --git a/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts b/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts index 87ec01ef072..e720f740945 100644 --- a/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts +++ b/extensions/vscode-api-tests/src/singlefolder-tests/workspace.test.ts @@ -523,42 +523,42 @@ suite('workspace-namespace', () => { }); - test('applyEdit should fail when editing deleted resource', async () => { - const resource = await createRandomFile(); + // test('applyEdit should fail when editing deleted resource', async () => { + // const resource = await createRandomFile(); - const edit = new vscode.WorkspaceEdit(); - edit.deleteResource(resource); - try { - edit.insert(resource, new vscode.Position(0, 0), ''); - assert.fail(false, 'Should disallow edit of deleted resource'); - } catch { - // noop - } - }); + // const edit = new vscode.WorkspaceEdit(); + // edit.deleteResource(resource); + // try { + // edit.insert(resource, new vscode.Position(0, 0), ''); + // assert.fail(false, 'Should disallow edit of deleted resource'); + // } catch { + // // noop + // } + // }); - test('applyEdit should fail when renaming deleted resource', async () => { - const resource = await createRandomFile(); + // test('applyEdit should fail when renaming deleted resource', async () => { + // const resource = await createRandomFile(); - const edit = new vscode.WorkspaceEdit(); - edit.deleteResource(resource); - try { - edit.renameResource(resource, resource); - assert.fail(false, 'Should disallow rename of deleted resource'); - } catch { - // noop - } - }); + // const edit = new vscode.WorkspaceEdit(); + // edit.deleteResource(resource); + // try { + // edit.renameResource(resource, resource); + // assert.fail(false, 'Should disallow rename of deleted resource'); + // } catch { + // // noop + // } + // }); - test('applyEdit should fail when editing renamed from resource', async () => { - const resource = await createRandomFile(); - const newResource = vscode.Uri.parse(resource.fsPath + '.1'); - const edit = new vscode.WorkspaceEdit(); - edit.renameResource(resource, newResource); - try { - edit.insert(resource, new vscode.Position(0, 0), ''); - assert.fail(false, 'Should disallow editing renamed file'); - } catch { - // noop - } - }); + // test('applyEdit should fail when editing renamed from resource', async () => { + // const resource = await createRandomFile(); + // const newResource = vscode.Uri.parse(resource.fsPath + '.1'); + // const edit = new vscode.WorkspaceEdit(); + // edit.renameResource(resource, newResource); + // try { + // edit.insert(resource, new vscode.Position(0, 0), ''); + // assert.fail(false, 'Should disallow editing renamed file'); + // } catch { + // // noop + // } + // }); }); diff --git a/extensions/yarn.lock b/extensions/yarn.lock index 7318e7362b6..e08176b1bf4 100644 --- a/extensions/yarn.lock +++ b/extensions/yarn.lock @@ -2,6 +2,6 @@ # yarn lockfile v1 -typescript@2.7.1-insiders.20180127: - version "2.7.1-insiders.20180127" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.1-insiders.20180127.tgz#db1f0d903e86c0867ec5c6e04ef10ded9ad9399b" +typescript@2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.7.1.tgz#bb3682c2c791ac90e7c6210b26478a8da085c359" diff --git a/i18n/chs/extensions/css/client/out/cssMain.i18n.json b/i18n/chs/extensions/css/client/out/cssMain.i18n.json index e64cca9eac1..bbb5b917ca9 100644 --- a/i18n/chs/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/chs/extensions/css/client/out/cssMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cssserver.name": "CSS 语言服务器", "folding.start": "折叠区域开始", "folding.end": "折叠区域结束" diff --git a/i18n/chs/extensions/git/out/askpass-main.i18n.json b/i18n/chs/extensions/git/out/askpass-main.i18n.json index cd8bc885e08..fc1422d5377 100644 --- a/i18n/chs/extensions/git/out/askpass-main.i18n.json +++ b/i18n/chs/extensions/git/out/askpass-main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "missOrInvalid": "凭据丢失或无效。" } \ No newline at end of file diff --git a/i18n/chs/extensions/git/out/autofetch.i18n.json b/i18n/chs/extensions/git/out/autofetch.i18n.json index 823bb93043f..b43728b21e1 100644 --- a/i18n/chs/extensions/git/out/autofetch.i18n.json +++ b/i18n/chs/extensions/git/out/autofetch.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "yes": "是", "read more": "了解详细信息", "no": "否", diff --git a/i18n/chs/extensions/git/out/commands.i18n.json b/i18n/chs/extensions/git/out/commands.i18n.json index a19bebe875b..15aa9f39edd 100644 --- a/i18n/chs/extensions/git/out/commands.i18n.json +++ b/i18n/chs/extensions/git/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "tag at": "{0} 处的 Tag", "remote branch at": "{0} 处的远程分支", "create branch": "$(plus) 创建新分支", diff --git a/i18n/chs/extensions/git/out/main.i18n.json b/i18n/chs/extensions/git/out/main.i18n.json index 99ef376ae53..64d8ce0c2ee 100644 --- a/i18n/chs/extensions/git/out/main.i18n.json +++ b/i18n/chs/extensions/git/out/main.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "looking": "在 {0} 查找 Git 中", "using git": "使用 {1} 中的 Git {0}", "downloadgit": "下载 Git", diff --git a/i18n/chs/extensions/git/out/model.i18n.json b/i18n/chs/extensions/git/out/model.i18n.json index e0223bbb637..fbdfc9bf2fe 100644 --- a/i18n/chs/extensions/git/out/model.i18n.json +++ b/i18n/chs/extensions/git/out/model.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "no repositories": "没有可用存储库", "pick repo": "选择存储库" } \ No newline at end of file diff --git a/i18n/chs/extensions/git/out/repository.i18n.json b/i18n/chs/extensions/git/out/repository.i18n.json index 1e99b7312ed..d79cda47d61 100644 --- a/i18n/chs/extensions/git/out/repository.i18n.json +++ b/i18n/chs/extensions/git/out/repository.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "open": "打开", "index modified": "已修改索引", "modified": "已修改", @@ -21,11 +23,13 @@ "deleted by us": "已被我们删除", "both added": "两者均已添加", "both modified": "二者均已修改", - "commitMessage": "消息(按 {0} 提交)", + "commitMessage": "消息 (按 {0} 提交)", "commit": "提交", "merge changes": "合并更改", "staged changes": "暂存的更改", "changes": "更改", + "commitMessageCountdown": "当前行剩余 {0} 个字符", + "commitMessageWarning": "当前行比 {1} 超出 {0} 个字符", "ok": "确定", "neveragain": "不再显示", "huge": "Git 存储库“{0}”中存在大量活动更改,将仅启用部分 Git 功能。" diff --git a/i18n/chs/extensions/git/out/statusbar.i18n.json b/i18n/chs/extensions/git/out/statusbar.i18n.json index 2b0e7c726f1..b5019c165fd 100644 --- a/i18n/chs/extensions/git/out/statusbar.i18n.json +++ b/i18n/chs/extensions/git/out/statusbar.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "checkout": "签出...", "sync changes": "同步更改", "publish changes": "发布更改", diff --git a/i18n/chs/extensions/git/package.i18n.json b/i18n/chs/extensions/git/package.i18n.json index b5db77436c0..2288b8204dd 100644 --- a/i18n/chs/extensions/git/package.i18n.json +++ b/i18n/chs/extensions/git/package.i18n.json @@ -71,6 +71,8 @@ "config.enableCommitSigning": "启用使用 GPG 签名的提交", "config.discardAllScope": "控制运行“放弃所有更改”命令时放弃的更改类型。\"all\" 放弃所有更改。\"tracked\" 只放弃跟踪的文件。\"prompt\" 表示在每次运行此操作时显示提示对话框。", "config.decorations.enabled": "控制 Git 是否向资源管理器和“打开的编辑器”视图添加颜色和小标。", + "config.promptToSaveFilesBeforeCommit": "控制 Git 是否在提交之前检查未保存的文件。", + "config.showInlineOpenFileAction": "控制是否在 Git 更改视图中显示内联“打开文件”操作。", "colors.modified": "已修改资源的颜色。", "colors.deleted": "已删除资源的颜色。", "colors.untracked": "未跟踪资源的颜色。", diff --git a/i18n/chs/extensions/grunt/out/main.i18n.json b/i18n/chs/extensions/grunt/out/main.i18n.json index 70515dd5f8c..1212c2fb367 100644 --- a/i18n/chs/extensions/grunt/out/main.i18n.json +++ b/i18n/chs/extensions/grunt/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "在文件夹 {0} 中自动检测 Grunt 失败,错误: {1}" } \ No newline at end of file diff --git a/i18n/chs/extensions/gulp/out/main.i18n.json b/i18n/chs/extensions/gulp/out/main.i18n.json index 1fa76c74238..fe8ac1df9fc 100644 --- a/i18n/chs/extensions/gulp/out/main.i18n.json +++ b/i18n/chs/extensions/gulp/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "在文件夹 {0} 中自动检测 gulp 失败,错误: {1}" } \ No newline at end of file diff --git a/i18n/chs/extensions/html/client/out/htmlMain.i18n.json b/i18n/chs/extensions/html/client/out/htmlMain.i18n.json index ff2b693ae94..9df9ff90438 100644 --- a/i18n/chs/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/chs/extensions/html/client/out/htmlMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "htmlserver.name": "HTML 语言服务器", "folding.start": "折叠区域开始", "folding.end": "折叠区域结束" diff --git a/i18n/chs/extensions/jake/out/main.i18n.json b/i18n/chs/extensions/jake/out/main.i18n.json index 21787a778e5..c930a80d85c 100644 --- a/i18n/chs/extensions/jake/out/main.i18n.json +++ b/i18n/chs/extensions/jake/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "在文件夹 {0} 中自动检测 Jake 失败,错误: {1}" } \ No newline at end of file diff --git a/i18n/chs/extensions/json/client/out/jsonMain.i18n.json b/i18n/chs/extensions/json/client/out/jsonMain.i18n.json index 95a990288e0..dac0ceb960a 100644 --- a/i18n/chs/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/chs/extensions/json/client/out/jsonMain.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "jsonserver.name": "JSON 语言服务器" } \ No newline at end of file diff --git a/i18n/chs/extensions/markdown/out/commands.i18n.json b/i18n/chs/extensions/markdown/out/commands.i18n.json index d598feff8a0..a4778a6ab94 100644 --- a/i18n/chs/extensions/markdown/out/commands.i18n.json +++ b/i18n/chs/extensions/markdown/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "previewTitle": "预览 {0}", "onPreviewStyleLoadError": "无法加载“markdown.styles”:{0}" } \ No newline at end of file diff --git a/i18n/chs/extensions/markdown/out/features/previewContentProvider.i18n.json b/i18n/chs/extensions/markdown/out/features/previewContentProvider.i18n.json index 4ff7c59a498..6a53189d1b3 100644 --- a/i18n/chs/extensions/markdown/out/features/previewContentProvider.i18n.json +++ b/i18n/chs/extensions/markdown/out/features/previewContentProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "preview.securityMessage.text": "已禁用此文档中的部分内容", "preview.securityMessage.title": "已禁用此 Markdown 预览中的可能不安全的内容。更改 Markdown 预览安全设置以允许不安全内容或启用脚本。", "preview.securityMessage.label": "已禁用内容安全警告" diff --git a/i18n/chs/extensions/markdown/out/security.i18n.json b/i18n/chs/extensions/markdown/out/security.i18n.json index c1daf87e291..317a83b9106 100644 --- a/i18n/chs/extensions/markdown/out/security.i18n.json +++ b/i18n/chs/extensions/markdown/out/security.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "strict.title": "严格", "strict.description": "仅载入安全内容", "insecureContent.title": "允许不安全内容", @@ -13,6 +15,5 @@ "moreInfo.title": "详细信息", "enableSecurityWarning.title": "在此工作区中启用预览安全警告", "disableSecurityWarning.title": "在此工作区中取消预览安全警告", - "toggleSecurityWarning.description": "不影响内容安全等级", "preview.showPreviewSecuritySelector.title": "选择此工作区中 Markdown 预览的安全设置" } \ No newline at end of file diff --git a/i18n/chs/extensions/merge-conflict/out/codelensProvider.i18n.json b/i18n/chs/extensions/merge-conflict/out/codelensProvider.i18n.json index 91a343efd7d..926b56a9bd5 100644 --- a/i18n/chs/extensions/merge-conflict/out/codelensProvider.i18n.json +++ b/i18n/chs/extensions/merge-conflict/out/codelensProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "acceptCurrentChange": "采用当前更改", "acceptIncomingChange": "采用传入的更改", "acceptBothChanges": "保留双方更改", diff --git a/i18n/chs/extensions/merge-conflict/out/commandHandler.i18n.json b/i18n/chs/extensions/merge-conflict/out/commandHandler.i18n.json index 836475b99dc..143b1bf90a7 100644 --- a/i18n/chs/extensions/merge-conflict/out/commandHandler.i18n.json +++ b/i18n/chs/extensions/merge-conflict/out/commandHandler.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cursorNotInConflict": "编辑器光标不在合并冲突内", "compareChangesTitle": "{0}:当前更改 ⟷ 传入的更改", "cursorOnCommonAncestorsRange": "编辑器光标在共同来源块上,请将其移动至“当前”或“传入”区域中", diff --git a/i18n/chs/extensions/merge-conflict/out/mergeDecorator.i18n.json b/i18n/chs/extensions/merge-conflict/out/mergeDecorator.i18n.json index 6fb9fc93479..4d2a79f628f 100644 --- a/i18n/chs/extensions/merge-conflict/out/mergeDecorator.i18n.json +++ b/i18n/chs/extensions/merge-conflict/out/mergeDecorator.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "currentChange": "(当前更改)", "incomingChange": "(传入的更改)" } \ No newline at end of file diff --git a/i18n/chs/extensions/npm/out/main.i18n.json b/i18n/chs/extensions/npm/out/main.i18n.json index 11008f170c5..e0f67df3bad 100644 --- a/i18n/chs/extensions/npm/out/main.i18n.json +++ b/i18n/chs/extensions/npm/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "npm.parseError": "Npm 任务检测: 无法分析文件 {0}" } \ No newline at end of file diff --git a/i18n/chs/extensions/php/out/features/validationProvider.i18n.json b/i18n/chs/extensions/php/out/features/validationProvider.i18n.json index 96ca7ce5b85..c5281f10087 100644 --- a/i18n/chs/extensions/php/out/features/validationProvider.i18n.json +++ b/i18n/chs/extensions/php/out/features/validationProvider.i18n.json @@ -1,11 +1,13 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "php.useExecutablePath": "是否允许执行 {0} (定义为工作区设置)以进行 PHP 文件的 lint 操作?", - "php.yes": "允许", + "php.yes": "Allow", "php.no": "不允许", "wrongExecutable": "无法验证,因为 {0} 不是有效的 PHP 可执行文件。请使用设置 \"php.validate.executablePath\" 配置 PHP 可执行文件。", "noExecutable": "无法验证,因为未设置任何 PHP 可执行文件。请使用设置 \"php.validate.executablePath\" 配置 PHP 可执行文件。", diff --git a/i18n/chs/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json b/i18n/chs/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json new file mode 100644 index 00000000000..a28934c2fcd --- /dev/null +++ b/i18n/chs/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "previewOnGitHub": "在 GitHub 中预览", + "similarIssues": "类似的问题", + "noResults": "未找到结果", + "stepsToReproduce": "重现步骤", + "bugDescription": "您是怎么遇到这个问题的? 您需要执行哪些步骤来稳定重现此问题? 您期望发生什么,实际上发生了什么?", + "performanceIssueDesciption": "这个性能问题是在什么时候发生的? 比如,它在启动时还是在一系列特定的操作之后发生的? 您提供的任何细节都能帮助我们进行调查。", + "description": "描述", + "disabledExtensions": "扩展已禁用" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json b/i18n/chs/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json new file mode 100644 index 00000000000..c3c6010d742 --- /dev/null +++ b/i18n/chs/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json @@ -0,0 +1,28 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "completeInEnglish": "请使用英文填写表单。", + "issueTypeLabel": "我想提交", + "bugReporter": "问题报告", + "performanceIssue": "性能问题", + "featureRequest": "功能请求", + "issueTitleLabel": "标题", + "issueTitleRequired": "请输入标题。", + "vscodeVersion": "VS Code 版本", + "osVersion": "操作系统版本", + "systemInfo": "我的系统信息", + "sendData": "发送我的数据", + "processes": "当前运行的进程", + "workspaceStats": "我的工作区数据", + "extensions": "我的扩展", + "disableExtensions": "禁用所有扩展并重新加载窗口", + "showRunningExtensions": "查看所有运行中的扩展", + "githubMarkdown": "我们支持 GitHub 版 Markdown。您将能在 GitHub 上预览时编辑问题并添加截图。", + "issueDescriptionRequired": "请输入说明。", + "loadingData": "正在加载数据..." +} \ No newline at end of file diff --git a/i18n/chs/src/vs/code/electron-main/logUploader.i18n.json b/i18n/chs/src/vs/code/electron-main/logUploader.i18n.json new file mode 100644 index 00000000000..1fd7562e04e --- /dev/null +++ b/i18n/chs/src/vs/code/electron-main/logUploader.i18n.json @@ -0,0 +1,21 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "invalidEndpoint": "日志上传端点无效", + "beginUploading": "正在上传...", + "didUploadLogs": "上传成功! 日志文件 ID: {0}", + "userDeniedUpload": "已取消上传", + "logUploadPromptHeader": "是否将会话日志上传到安全端点?", + "logUploadPromptBody": "请在此处审阅您的日志文件:“{0}”", + "logUploadPromptBodyDetails": "日志可能包含个人信息,例如完整路径和文件内容。", + "logUploadPromptKey": "我已经审阅了日志 (输入 \"y\" 确认上传)", + "postError": "上传日志时出错: {0}", + "responseError": "上传日志时出错。收到 {0} — {1}", + "parseError": "分析响应时出错", + "zipError": "压缩日志时出错: {0}" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/code/electron-main/menus.i18n.json b/i18n/chs/src/vs/code/electron-main/menus.i18n.json index d590c3af217..75721aa12ca 100644 --- a/i18n/chs/src/vs/code/electron-main/menus.i18n.json +++ b/i18n/chs/src/vs/code/electron-main/menus.i18n.json @@ -90,6 +90,7 @@ "miMarker": "问题(&&P)", "miAdditionalViews": "其他视图(&&V)", "miCommandPalette": "命令面板(&&C)...", + "miOpenView": "打开视图(&&O)...", "miToggleFullScreen": "切换全屏(&&F)", "miToggleZenMode": "切换 Zen 模式", "miToggleMenuBar": "切换菜单栏(&&B)", @@ -180,12 +181,13 @@ "miConfigureTask": "配置任务(&&C)...", "miConfigureBuildTask": "配置默认生成任务(&&F)...", "accessibilityOptionsWindowTitle": "辅助功能选项", - "miRestartToUpdate": "重启以更新...", + "miCheckForUpdates": "检查更新...", "miCheckingForUpdates": "正在检查更新...", "miDownloadUpdate": "下载可用更新", "miDownloadingUpdate": "正在下载更新...", + "miInstallUpdate": "安装更新...", "miInstallingUpdate": "正在安装更新...", - "miCheckForUpdates": "检查更新...", + "miRestartToUpdate": "重启以更新...", "aboutDetail": "版本 {0}\n提交 {1}\n日期 {2}\nShell {3}\n渲染器 {4}\nNode {5}\n架构 {6}", "okButton": "确定", "copy": "复制(&&C)" diff --git a/i18n/chs/src/vs/editor/browser/services/bulkEdit.i18n.json b/i18n/chs/src/vs/editor/browser/services/bulkEdit.i18n.json index 187234fb7c6..25c58451792 100644 --- a/i18n/chs/src/vs/editor/browser/services/bulkEdit.i18n.json +++ b/i18n/chs/src/vs/editor/browser/services/bulkEdit.i18n.json @@ -6,8 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "conflict": "这些文件也已同时更改: {0}", "summary.0": "未做编辑", "summary.nm": "在 {1} 个文件中进行了 {0} 次编辑", - "summary.n0": "在 1 个文件中进行了 {0} 次编辑" + "summary.n0": "在 1 个文件中进行了 {0} 次编辑", + "conflict": "这些文件也已同时更改: {0}" } \ No newline at end of file diff --git a/i18n/chs/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/chs/src/vs/editor/common/config/commonEditorConfig.i18n.json index f33ef59b1b9..d22aea0f7d1 100644 --- a/i18n/chs/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/chs/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -28,6 +28,7 @@ "scrollBeyondLastLine": "控制编辑器是否可以滚动到最后一行之后", "smoothScrolling": "控制编辑器是否在滚动时使用动画", "minimap.enabled": "控制是否显示 minimap", + "minimap.side": "控制在哪一侧显示小地图。可选值为 \"right\" (右) 和 \"left\" (左)", "minimap.showSlider": "控制是否自动隐藏小地图滑块。可选值为 \"always\" 和 \"mouseover\"", "minimap.renderCharacters": "呈现某行上的实际字符(与颜色块相反)", "minimap.maxColumn": "限制最小映射的宽度,尽量多地呈现特定数量的列", @@ -74,7 +75,7 @@ "cursorBlinking": "控制光标动画样式,可能的值为 \"blink\"、\"smooth\"、\"phase\"、\"expand\" 和 \"solid\"", "mouseWheelZoom": "通过使用鼠标滚轮同时按住 Ctrl 可缩放编辑器的字体", "cursorStyle": "控制光标样式,接受的值为 \"block\"、\"block-outline\"、\"line\"、\"line-thin\" 、\"underline\" 和 \"underline-thin\"", - "lineCursorWidth": "当 editor.cursorStyle 设置为 \"line\" 时控制光标的宽度。", + "cursorWidth": "当 editor.cursorStyle 设置为 \"line\" 时控制光标的宽度。", "fontLigatures": "启用字体连字", "hideCursorInOverviewRuler": "控制光标是否应隐藏在概述标尺中。", "renderWhitespace": "控制编辑器在空白字符上显示特殊符号的方式。可选值为 \"none\"(无)、\"boundary\"(边界) 或 \"all\"(所有)。选择 \"boundary\" 选项,则不会在单词之间的单个空格上显示特殊符号。", diff --git a/i18n/chs/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json b/i18n/chs/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json index b128931adcb..616ef02d88c 100644 --- a/i18n/chs/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json +++ b/i18n/chs/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json @@ -6,5 +6,7 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "smartSelect.jumpBracket": "转到括号" + "overviewRulerBracketMatchForeground": "概览标尺上表示匹配括号的标记颜色。", + "smartSelect.jumpBracket": "转到括号", + "smartSelect.selectToBracket": "选择括号所有内容" } \ No newline at end of file diff --git a/i18n/chs/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json b/i18n/chs/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json index e91a6328762..2ae7fb21ca1 100644 --- a/i18n/chs/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json +++ b/i18n/chs/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json @@ -8,5 +8,6 @@ ], "quickFixWithKb": "显示修补程序({0})", "quickFix": "显示修补程序", - "quickfix.trigger.label": "快速修复" + "quickfix.trigger.label": "快速修复", + "refactor.label": "重构" } \ No newline at end of file diff --git a/i18n/chs/src/vs/platform/environment/node/argv.i18n.json b/i18n/chs/src/vs/platform/environment/node/argv.i18n.json index cad996c87e7..95889a422aa 100644 --- a/i18n/chs/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/chs/src/vs/platform/environment/node/argv.i18n.json @@ -10,11 +10,10 @@ "diff": "将两个文件相互比较。", "add": "将文件夹添加到最后一个活动窗口。", "goto": "打开路径下的文件并定位到特定行和特定列。", - "newWindow": "强制创建一个新的 Code 实例。", - "reuseWindow": "在上一活动窗口中强制打开文件或文件夹。", + "newWindow": "强制打开新窗口。", + "reuseWindow": "强制打开上一个活动窗口中的文件或文件夹。", "wait": "等文件关闭后再返回。", "locale": "要使用的区域设置(例如 en-US 或 zh-TW)。", - "userDataDir": "指定存放用户数据的目录。此目录在以 root 身份运行时十分有用。", "version": "打印版本。", "help": "打印使用情况。", "extensionHomePath": "设置扩展的根路径。", @@ -33,7 +32,6 @@ "inspect-brk-extensions": "允许在扩展主机在启动后暂停时进行扩展的调试与分析。检查开发人员工具可获取连接 URI。", "disableGPU": "禁用 GPU 硬件加速。", "uploadLogs": "将当前会话的日志上传到安全端点。", - "issue": "报告问题。", "usage": "使用情况", "options": "选项", "paths": "路径", diff --git a/i18n/chs/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json b/i18n/chs/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json index 76b8decb6b2..5584072ab37 100644 --- a/i18n/chs/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json +++ b/i18n/chs/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json @@ -13,6 +13,7 @@ "cancel": "取消", "errorInstallingDependencies": "安装依赖项时出错。{0}", "notFoundCompatible": "无法安装“{0}”;没有可用的版本与 VS Code “{1}”兼容。", + "malicious extension": "无法安装此扩展,它被报告存在问题。", "notFoundCompatibleDependency": "无法安装。找不到与 VS Code 当前版本 ({1}) 兼容的依赖扩展“{0}”。", "quitCode": "无法安装扩展。请在重启 VS Code 后重新安装。", "exitCode": "无法安装扩展。请在重启 VS Code 后重新安装。", diff --git a/i18n/chs/src/vs/platform/issue/electron-main/issueService.i18n.json b/i18n/chs/src/vs/platform/issue/electron-main/issueService.i18n.json new file mode 100644 index 00000000000..5d2b8cde0c8 --- /dev/null +++ b/i18n/chs/src/vs/platform/issue/electron-main/issueService.i18n.json @@ -0,0 +1,10 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "issueReporter": "问题报告程序" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/platform/list/browser/listService.i18n.json b/i18n/chs/src/vs/platform/list/browser/listService.i18n.json index 0763ae0a256..09bafab2ad9 100644 --- a/i18n/chs/src/vs/platform/list/browser/listService.i18n.json +++ b/i18n/chs/src/vs/platform/list/browser/listService.i18n.json @@ -9,5 +9,7 @@ "workbenchConfigurationTitle": "工作台", "multiSelectModifier.ctrlCmd": "映射为 \"Ctrl\" (Windows 和 Linux) 或 \"Command\" (macOS)", "multiSelectModifier.alt": "映射为 \"Alt\" (Windows 和 Linux) 或 \"Option\" (macOS)", - "multiSelectModifier": "在通过鼠标添加条目到多选项中时使用的修改键 (例如在支持此项操作的树或列表中)。\"ctrlCmd\" 会映射为 \"Ctrl\" (Windows 和 Linux) 或 \"Command\" (macOS)。“打开到侧边”功能所需的鼠标动作 (若可用) 将会相应调整,不与多选修改键冲突。" + "multiSelectModifier": "在通过鼠标多选树和列表条目时使用的修改键 (例如资资源管理器、打开的编辑器和源代码管理视图)。\"ctrlCmd\" 会映射为 \"Ctrl\" (Windows 和 Linux) 或 \"Command\" (macOS)。“打开到侧边”功能所需的鼠标动作 (若可用) 将会相应调整,不与多选修改键冲突。", + "openMode.singleClick": "在鼠标单击时打开项目。", + "openMode.doubleClick": "在鼠标双击时打开项目。" } \ No newline at end of file diff --git a/i18n/chs/src/vs/platform/localizations/common/localizations.i18n.json b/i18n/chs/src/vs/platform/localizations/common/localizations.i18n.json new file mode 100644 index 00000000000..23f2b3a6b88 --- /dev/null +++ b/i18n/chs/src/vs/platform/localizations/common/localizations.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "vscode.extension.contributes.localizations": "向编辑器提供本地化内容", + "vscode.extension.contributes.localizations.languageId": "显示字符串翻译的目标语言 ID。", + "vscode.extension.contributes.localizations.languageName": "语言的英文名称。", + "vscode.extension.contributes.localizations.languageNameLocalized": "提供语言的名称。", + "vscode.extension.contributes.localizations.translations": "与语言关联的翻译的列表。", + "vscode.extension.contributes.localizations.translations.id": "使用此翻译的 VS Code 或扩展的 ID。VS Code 的 ID 总为 \"vscode\",扩展的 ID 的格式应为 \"publisherId.extensionName\"。", + "vscode.extension.contributes.localizations.translations.id.pattern": "翻译 VS Code 或者扩展,ID 分别应为 \"vscode\" 或格式为 \"publisherId.extensionName\"。", + "vscode.extension.contributes.localizations.translations.path": "包含语言翻译的文件的相对路径。" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json b/i18n/chs/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json new file mode 100644 index 00000000000..6f163e86578 --- /dev/null +++ b/i18n/chs/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json @@ -0,0 +1,14 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "folderStatusMessageAddSingleFolder": "扩展“{0}”添加了 1 个文件夹到工作区", + "folderStatusMessageAddMultipleFolders": "扩展“{0}”添加了 {1} 个文件夹到工作区", + "folderStatusMessageRemoveSingleFolder": "扩展“{0}”从工作区删除了 1 个文件夹", + "folderStatusMessageRemoveMultipleFolders": "扩展“{0}”从工作区删除了 {1} 个文件夹", + "folderStatusChangeFolder": "扩展“{0}”更改了工作区中的文件夹" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/api/node/extHostWorkspace.i18n.json b/i18n/chs/src/vs/workbench/api/node/extHostWorkspace.i18n.json new file mode 100644 index 00000000000..b6fcf7d2c19 --- /dev/null +++ b/i18n/chs/src/vs/workbench/api/node/extHostWorkspace.i18n.json @@ -0,0 +1,10 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "updateerror": "扩展“{0}”未能更新工作区文件夹: {1}" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json b/i18n/chs/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json new file mode 100644 index 00000000000..abdefe892e4 --- /dev/null +++ b/i18n/chs/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json @@ -0,0 +1,18 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "sizeB": "{0} B", + "sizeKB": "{0} KB", + "sizeMB": "{0} MB", + "sizeGB": "{0} GB", + "sizeTB": "{0} TB", + "resourceOpenExternalButton": "使用外部程序打开图片?", + "nativeBinaryError": "因为此文件是二进制文件,或文件过大,或使用了不受支持的文本编码,将不会在编辑器中显示。", + "zoom.action.fit.label": "整个图像", + "imgMeta": "{0}x{1} {2}" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/chs/src/vs/workbench/electron-browser/actions.i18n.json index 10a9db9b489..7187edbd7e8 100644 --- a/i18n/chs/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/chs/src/vs/workbench/electron-browser/actions.i18n.json @@ -31,7 +31,6 @@ "openRecent": "打开最近的文件…", "quickOpenRecent": "快速打开最近的文件…", "closeMessages": "关闭通知消息", - "openIssueReporter": "打开问题报告程序", "reportIssueInEnglish": "使用英文报告问题", "reportPerformanceIssue": "报告性能问题", "keybindingsReference": "键盘快捷方式参考", diff --git a/i18n/chs/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/chs/src/vs/workbench/electron-browser/main.contribution.i18n.json index 5759230abc8..19b60d28931 100644 --- a/i18n/chs/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -35,10 +35,11 @@ "panelDefaultLocation": "控制此面板的默认位置。可显示在工作台的底部或右侧。", "statusBarVisibility": "控制工作台底部状态栏的可见性。", "activityBarVisibility": "控制工作台中活动栏的可见性。", - "fontAliasing": "控制工作台中字体的渲染方式\n- default: 次像素平滑字体。将在大多数非 retina 显示器上显示最清晰的文字\n- antialiased: 进行像素而不是次像素级别的字体平滑。可能会导致字体整体显示得更细\n- none: 禁用字体平滑。将显示边缘粗糙、有锯齿的文字", + "fontAliasing": "控制工作台中字体的渲染方式\n- default: 次像素平滑字体。将在大多数非 retina 显示器上显示最清晰的文字\n- antialiased: 进行像素而不是次像素级别的字体平滑。可能会导致字体整体显示得更细\n- none: 禁用字体平滑。将显示边缘粗糙、有锯齿的文字\n- auto: 根据显示器 DPI 自动应用 \"default\" 或 \"antialiased\" 选项。", "workbench.fontAliasing.default": "次像素平滑字体。将在大多数非 retina 显示器上显示最清晰的文字。", "workbench.fontAliasing.antialiased": "进行像素而不是次像素级别的字体平滑。可能会导致字体整体显示得更细。", "workbench.fontAliasing.none": "禁用字体平滑。将显示边缘粗糙、有锯齿的文字。", + "workbench.fontAliasing.auto": "根据显示器 DPI 自动应用 \"default\" 或 \"antialiased\" 选项。", "enableNaturalLanguageSettingsSearch": "控制是否在设置中启用自然语言搜索模式。", "windowConfigurationTitle": "窗口", "window.openFilesInNewWindow.on": "文件将在新窗口中打开", diff --git a/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json b/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json index b091d6381ea..be1deb32604 100644 --- a/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json @@ -32,8 +32,12 @@ "app.launch.json.configurations": "配置列表。使用 IntelliSense 添加新配置或编辑现有配置。", "app.launch.json.compounds": "复合列表。每个复合可引用多个配置,这些配置将一起启动。", "app.launch.json.compound.name": "复合的名称。在启动配置下拉菜单中显示。", + "useUniqueNames": "配置名称必须唯一。", + "app.launch.json.compound.folder": "复合项所在的文件夹的名称。", "app.launch.json.compounds.configurations": "将作为此复合的一部分启动的配置名称。", "debugNoType": "不可省略调试适配器“类型”,其类型必须是“字符串”。", "selectDebug": "选择环境", - "DebugConfig.failed": "无法在 \".vscode\" 文件夹({0})内创建 \"launch.json\" 文件。" + "DebugConfig.failed": "无法在 \".vscode\" 文件夹({0})内创建 \"launch.json\" 文件。", + "workspace": "工作区", + "user settings": "用户设置" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json b/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json index b91e0196cff..5ed1b9d0d6d 100644 --- a/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json @@ -13,18 +13,22 @@ "breakpointAdded": "已添加断点,行 {0}, 文件 {1}", "breakpointRemoved": "已删除断点,行 {0},文件 {1}", "compoundMustHaveConfigurations": "复合项必须拥有 \"configurations\" 属性集,才能启动多个配置。", + "noConfigurationNameInWorkspace": "在工作区中找不到启动配置“{0}”。", + "multipleConfigurationNamesInWorkspace": "工作区中存在多个启动配置“{0}”。请使用文件夹名称来限定配置。", + "noFolderWithName": "无法在复合项“{2}”中为配置“{1}”找到名为“{0}”的文件夹。", "configMissing": "\"launch.json\" 中缺少配置“{0}”。", "launchJsonDoesNotExist": "\"launch.json\" 不存在。", "debugRequestNotSupported": "所选调试配置的属性“{0}”的值“{1}”不受支持。", "debugRequesMissing": "所选的调试配置缺少属性“{0}”。", "debugTypeNotSupported": "配置的类型“{0}”不受支持。", "debugTypeMissing": "所选的启动配置缺少属性 \"type\"。", - "debugAnyway": "仍进行调试", "preLaunchTaskErrors": "preLaunchTask“{0}”期间检测到多个生成错误。", "preLaunchTaskError": "preLaunchTask“{0}”期间检测到一个生成错误。", "preLaunchTaskExitCode": "preLaunchTask“{0}”已终止,退出代码为 {1}。", + "debugAnyway": "仍进行调试", + "showErrors": "显示错误", + "cancel": "取消", "noFolderWorkspaceDebugError": "无法调试活动文件。请确保它保存在磁盘上,并确保已为该文件类型安装了调试扩展。", - "NewLaunchConfig": "请设置应用程序的启动配置文件。{0}", "DebugTaskNotFound": "找不到 preLaunchTask“{0}”。", "taskNotTracked": "无法跟踪 preLaunchTask “{0}”。" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json index 09c604920b8..8dddca71aae 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json @@ -33,6 +33,10 @@ "view id": "ID", "view name": "名称", "view location": "位置", + "localizations": "本地化 ({0})", + "localizations language id": "语言 ID", + "localizations language name": "语言名称", + "localizations localized language name": "语言的本地名称", "colorThemes": "颜色主题 ({0})", "iconThemes": "图标主题 ({0})", "colors": "颜色 ({0})", diff --git a/i18n/chs/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json index 3375250c358..5ccc77c9631 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json @@ -52,6 +52,8 @@ "configureWorkspaceRecommendedExtensions": "配置建议的扩展(工作区)", "configureWorkspaceFolderRecommendedExtensions": "配置建议的扩展(工作区文件夹)", "builtin": "内置", + "malicious tooltip": "此扩展被报告存在问题。", + "malicious": "恶意扩展", "disableAll": "禁用所有已安装的扩展", "disableAllWorkspace": "禁用此工作区的所有已安装的扩展", "enableAll": "启用所有已安装的扩展", diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionProfileService.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionProfileService.i18n.json index e3b9edfe722..ecbbc4395a9 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionProfileService.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionProfileService.i18n.json @@ -6,5 +6,6 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "noPro": "若要分析扩展,请使用 \"--inspect-extensions=\" 启动。", "selectAndStartDebug": "单击停止分析。" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.i18n.json index 6431082f0ee..4e6410268e6 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.i18n.json @@ -11,6 +11,7 @@ "workspaceRecommendation": "当前工作区的用户推荐此扩展。", "fileBasedRecommendation": "根据您最近打开的文件推荐此扩展。", "exeBasedRecommendation": "根据你安装的 {0},向你推荐此扩展。", + "dynamicWorkspaceRecommendation": "您可能会对这个扩展感兴趣,因为它被当前工作区的许多其他用户使用。", "reallyRecommended2": "建议对这种类型的文件使用“{0}”扩展。", "reallyRecommendedExtensionPack": "建议对这种类型的文件使用“{0}”扩展包。", "showRecommendations": "显示建议", diff --git a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index c75458aec4e..11f59951231 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -18,5 +18,7 @@ "sort by name": "排序依据: 名称", "suggestProxyError": "市场返回 \"ECONNREFUSED\"。请检查 \"http.proxy\" 设置。", "extensions": "扩展", - "outdatedExtensions": "{0} 个过时的扩展" + "outdatedExtensions": "{0} 个过时的扩展", + "malicious warning": "我们卸载了“{0}”,它被报告存在问题。", + "reloadNow": "立即重新加载" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json b/i18n/chs/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json index 9bedbeab3a5..5e6a682520b 100644 --- a/i18n/chs/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json @@ -7,7 +7,8 @@ "Do not edit this file. It is machine generated." ], "installingVSIXExtension": "从 VSIX 安装扩展...", - "installingMarketPlaceExtension": "正在从应用商店安装扩展...", + "malicious": "此扩展被报告存在问题。", + "installingMarketPlaceExtension": "正在从商店安装扩展...", "uninstallingExtension": "正在卸载扩展...", "enableDependeciesConfirmation": "启用“{0}”也会启用其依赖项。是否要继续?", "enable": "是", diff --git a/i18n/chs/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json b/i18n/chs/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json index c5af99b4897..c576f96ab88 100644 --- a/i18n/chs/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json @@ -8,11 +8,10 @@ ], "openLogsFolder": "打开日志文件夹", "showLogs": "显示日志...", - "mainProcess": "主进程", - "sharedProcess": "共享进程", - "rendererProcess": "窗口", + "emptyWindow": "窗口", "extensionHost": "扩展主机", - "selectProcess": "选择进程", + "sharedProcess": "共享进程", + "mainProcess": "主进程", "openLogFile": "打开日志文件...", "setLogLevel": "设置日志级别", "trace": "跟踪", @@ -22,5 +21,8 @@ "err": "错误", "critical": "严重", "off": "关闭", - "selectLogLevel": "选择日志级别" + "selectLogLevel": "选择日志级别", + "default and current": "默认 当前", + "default": "默认", + "current": "当前" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/markers/common/markers.i18n.json b/i18n/chs/src/vs/workbench/parts/markers/common/markers.i18n.json new file mode 100644 index 00000000000..158b3a24233 --- /dev/null +++ b/i18n/chs/src/vs/workbench/parts/markers/common/markers.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "totalProblems": "总计 {0} 个问题", + "filteredProblems": "显示 {0} 个 (共 {1} 个) 问题" +} \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json b/i18n/chs/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json index bf000b6d151..5a7de66c032 100644 --- a/i18n/chs/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json @@ -17,7 +17,6 @@ "addLabel": "添加键绑定", "removeLabel": "删除键绑定", "resetLabel": "重置键绑定", - "showConflictsLabel": "显示冲突", "copyLabel": "复制", "copyCommandLabel": "拷贝命令", "error": "编辑键绑定时发生错误“{0}”。请打开 \"keybindings.json\" 文件并检查。", diff --git a/i18n/chs/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json b/i18n/chs/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json index baee3643fe6..b8c1759906a 100644 --- a/i18n/chs/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json @@ -10,8 +10,8 @@ "SearchSettingsWidget.AriaLabel": "搜索设置", "SearchSettingsWidget.Placeholder": "搜索设置", "noSettingsFound": "无结果", - "oneSettingFound": "1 个设置匹配", - "settingsFound": "{0} 个设置匹配", + "oneSettingFound": "找到 1 个设置", + "settingsFound": "找到 {0} 个设置", "totalSettingsMessage": "总计 {0} 个设置", "nlpResult": "自然语言结果", "filterResult": "筛选结果", diff --git a/i18n/chs/src/vs/workbench/parts/preferences/browser/preferencesRenderers.i18n.json b/i18n/chs/src/vs/workbench/parts/preferences/browser/preferencesRenderers.i18n.json index ff53fcc8deb..e9444e4b1b1 100644 --- a/i18n/chs/src/vs/workbench/parts/preferences/browser/preferencesRenderers.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/preferences/browser/preferencesRenderers.i18n.json @@ -9,6 +9,7 @@ "emptyUserSettingsHeader": "将设置放入此处以覆盖\"默认设置\"。", "emptyWorkspaceSettingsHeader": "将设置放入此处以覆盖\"用户设置\"。", "emptyFolderSettingsHeader": "将文件夹设置放入此处以覆盖\"工作区设置\"。", + "newExtensionLabel": "显示扩展“{0}”", "editTtile": "编辑", "replaceDefaultValue": "在设置中替换", "copyDefaultValue": "复制到设置", diff --git a/i18n/chs/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json index bf4778f1cee..ca39a159319 100644 --- a/i18n/chs/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json @@ -12,6 +12,5 @@ "view": "查看", "scmConfigurationTitle": "源代码管理", "alwaysShowProviders": "是否总是显示源代码管理提供程序部分。", - "diffDecorations": "控制编辑器中差异的显示效果。", - "inputCounter": "控制何时显示输入计数。" + "diffDecorations": "控制编辑器中差异的显示效果。" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json b/i18n/chs/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json index af417f9cbb2..8c1111d5098 100644 --- a/i18n/chs/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json @@ -8,9 +8,6 @@ ], "scm providers": "源代码管理提供程序", "hideRepository": "隐藏", - "commitMessageInfo": "当前行有 {0} 个字符", - "commitMessageCountdown": "当前行剩余 {0} 个字符", - "commitMessageWarning": "当前行比 {1} 超出 {0} 个字符", "installAdditionalSCMProviders": "安装其他源代码管理提供程序...", "no open repo": "没有活动的源代码管理提供程序。", "source control": "源代码管理", diff --git a/i18n/chs/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/chs/src/vs/workbench/parts/search/browser/searchActions.i18n.json index e58eb12b8f8..8f8fcaf653e 100644 --- a/i18n/chs/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -18,6 +18,7 @@ "RefreshAction.label": "刷新", "CollapseDeepestExpandedLevelAction.label": "全部折叠", "ClearSearchResultsAction.label": "清除", + "CancelSearchAction.label": "取消搜索", "FocusNextSearchResult.label": "聚焦下一搜索结果", "FocusPreviousSearchResult.label": "聚焦上一搜索结果", "RemoveAction.label": "消除", diff --git a/i18n/chs/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json b/i18n/chs/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json index 4da2913b812..f4a7949ce43 100644 --- a/i18n/chs/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json @@ -21,10 +21,10 @@ "JsonSchema.tasks.terminal": "terminal 属性已被弃用。请改为使用 presentation", "JsonSchema.tasks.group.kind": "任务的执行组。", "JsonSchema.tasks.group.isDefault": "定义此任务是否为组中的默认任务。", - "JsonSchema.tasks.group.defaultBuild": "将任务标记为默认生成任务。", - "JsonSchema.tasks.group.defaultTest": "将任务标记为默认测试任务。", - "JsonSchema.tasks.group.build": "将任务标记为可通过“运行生成任务”命令访问的生成任务。", - "JsonSchema.tasks.group.test": "将任务标记为可通过“运行测试任务”命令访问的测试任务。", + "JsonSchema.tasks.group.defaultBuild": "将此任务标记为默认生成任务。", + "JsonSchema.tasks.group.defaultTest": "将此任务标记为默认测试任务。", + "JsonSchema.tasks.group.build": "将此任务标记为可通过“运行生成任务”命令获取的生成任务。", + "JsonSchema.tasks.group.test": "将此任务标记为可通过“运行测试任务”命令获取的测试任务。", "JsonSchema.tasks.group.none": "将任务分配为没有组", "JsonSchema.tasks.group": "定义此任务属于的执行组。它支持 \"build\" 以将其添加到生成组,也支持 \"test\" 以将其添加到测试组。", "JsonSchema.tasks.type": "定义任务是被作为进程运行还是在 shell 中作为命令运行。", diff --git a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 44502810c1a..28dc894a7e1 100644 --- a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -21,7 +21,8 @@ "terminal.integrated.fontFamily": "控制终端的字体系列,这在编辑器中是默认的。fontFamily 的值。", "terminal.integrated.fontSize": "控制终端的字号(以像素为单位)。", "terminal.integrated.lineHeight": "控制终端的行高,此数字乘上终端字号得到实际行高(以像素为单位)。", - "terminal.integrated.enableBold": "是否在终端内启用粗体文本,注意这需要终端命令行的支持。", + "terminal.integrated.fontWeight": "终端中非粗体字使用的字重。", + "terminal.integrated.fontWeightBold": "终端中粗体字使用的字重。", "terminal.integrated.cursorBlinking": "控制终端光标是否闪烁。", "terminal.integrated.cursorStyle": "控制终端游标的样式。", "terminal.integrated.scrollback": "控制终端保持在缓冲区的最大行数。", diff --git a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index fc5142240e2..eadc713298e 100644 --- a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -14,7 +14,6 @@ "workbench.action.terminal.selectAll": "全选", "workbench.action.terminal.deleteWordLeft": "删除左侧的字符", "workbench.action.terminal.deleteWordRight": "删除右侧的字符", - "workbench.action.terminal.enterLineNavigationMode": "进入屏幕阅读器导航模式", "workbench.action.terminal.new": "新建集成终端", "workbench.action.terminal.new.short": "新的终端", "workbench.action.terminal.newWorkspacePlaceholder": "选择当前工作目录新建终端", diff --git a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json index b9d2fc343dd..f4936f47f04 100644 --- a/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json @@ -6,6 +6,9 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "terminal.integrated.a11yBlankLine": "空行", + "terminal.integrated.a11yPromptLabel": "终端输入", + "terminal.integrated.a11yTooMuchOutput": "输出太多,无法朗读。请手动转到行内进行阅读", "terminal.integrated.copySelection.noSelection": "没有在终端中选择要复制的内容", "terminal.integrated.exitedWithCode": "通过退出代码 {0} 终止的终端进程", "terminal.integrated.waitOnExit": "按任意键以关闭终端", diff --git a/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 7b2a644164d..c954144aadc 100644 --- a/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -8,5 +8,6 @@ ], "release notes": "发行说明", "updateConfigurationTitle": "更新", - "updateChannel": "配置是否从更新通道接收自动更新。更改后需要重启。" + "updateChannel": "配置是否从更新通道接收自动更新。更改后需要重启。", + "enableWindowsBackgroundUpdates": "启用 Windows 后台更新。" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.i18n.json b/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.i18n.json index d0c3a133691..00aa7503068 100644 --- a/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.i18n.json +++ b/i18n/chs/src/vs/workbench/parts/update/electron-browser/update.i18n.json @@ -6,12 +6,10 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "updateNow": "立即更新", "later": "稍后", "unassigned": "未分配", "releaseNotes": "发行说明", "showReleaseNotes": "显示发行说明", - "downloadNow": "立即下载", "read the release notes": "欢迎使用 {0} v{1}! 是否要阅读发布说明?", "licenseChanged": "我们的许可条款已更改,请仔细浏览。", "license": "读取许可证", @@ -19,20 +17,24 @@ "64bitisavailable": "{0} 的 Windows 64 位版现已可用!", "learn more": "了解详细信息", "updateIsReady": "有新的 {0} 的更新可用。", - "thereIsUpdateAvailable": "存在可用更新。", - "updateAvailable": "{0} 将在重启后更新。", "noUpdatesAvailable": "当前没有可用的更新。", + "download now": "立即下载", + "thereIsUpdateAvailable": "存在可用更新。", + "installUpdate": "安装更新", + "updateAvailable": "存在可用更新: {0} {1}", + "updateInstalling": "{0} {1} 正在后台安装,我们会在完成后通知您。", + "updateNow": "立即更新", + "updateAvailableAfterRestart": "{0} 将在重启后更新。", "commandPalette": "命令面板...", "settings": "设置", "keyboardShortcuts": "键盘快捷方式", "userSnippets": "用户代码片段", "selectTheme.label": "颜色主题", "themes.selectIconTheme.label": "文件图标主题", - "not available": "更新不可用", + "checkForUpdates": "检查更新...", "checkingForUpdates": "正在检查更新...", - "DownloadUpdate": "下载可用更新", "DownloadingUpdate": "正在下载更新...", - "InstallingUpdate": "正在安装更新...", - "restartToUpdate": "重启以更新...", - "checkForUpdates": "检查更新..." + "installUpdate...": "安装更新...", + "installingUpdate": "正在安装更新...", + "restartToUpdate": "重启以更新..." } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json b/i18n/chs/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json index 31c951bcffe..8ae0d8347fb 100644 --- a/i18n/chs/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json +++ b/i18n/chs/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json @@ -21,6 +21,7 @@ "workspaceConfig.name.description": "文件夹的可选名称。", "workspaceConfig.uri.description": "文件夹的 URI", "workspaceConfig.settings.description": "工作区设置", + "workspaceConfig.launch.description": "工作区启动配置", "workspaceConfig.extensions.description": "工作区扩展", "unknownWorkspaceProperty": "未知的工作区配置属性" } \ No newline at end of file diff --git a/i18n/chs/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json b/i18n/chs/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json index 3a66dd04fa2..66729225347 100644 --- a/i18n/chs/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json +++ b/i18n/chs/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json @@ -8,6 +8,6 @@ ], "jsonParseFail": "未能分析 {0}: {1}。", "fileReadFail": "无法读取文件 {0}: {1}。", - "jsonsParseFail": "未能分析 {0} 或 {1}: {2}。", + "jsonsParseReportErrors": "未能分析 {0}: {1}。", "missingNLSKey": "无法找到键 {0} 的消息。" } \ No newline at end of file diff --git a/i18n/cht/extensions/css/client/out/cssMain.i18n.json b/i18n/cht/extensions/css/client/out/cssMain.i18n.json index a7dadfd1a6a..8d5e76dfac0 100644 --- a/i18n/cht/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/cht/extensions/css/client/out/cssMain.i18n.json @@ -1,10 +1,12 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cssserver.name": "CSS 語言伺服器", "folding.start": "摺疊區域開始", - "folding.end": "摺疊區域結尾" + "folding.end": "摺疊區域結束" } \ No newline at end of file diff --git a/i18n/cht/extensions/git/out/askpass-main.i18n.json b/i18n/cht/extensions/git/out/askpass-main.i18n.json index 779b8a5ed3f..e205315d101 100644 --- a/i18n/cht/extensions/git/out/askpass-main.i18n.json +++ b/i18n/cht/extensions/git/out/askpass-main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "missOrInvalid": "缺少認證或其無效。" } \ No newline at end of file diff --git a/i18n/cht/extensions/git/out/autofetch.i18n.json b/i18n/cht/extensions/git/out/autofetch.i18n.json index a9b802babec..5ed7c6868e5 100644 --- a/i18n/cht/extensions/git/out/autofetch.i18n.json +++ b/i18n/cht/extensions/git/out/autofetch.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "yes": "是", "read more": "閱讀其他資訊", "no": "否", diff --git a/i18n/cht/extensions/git/out/commands.i18n.json b/i18n/cht/extensions/git/out/commands.i18n.json index 3362f487b3c..e25ea2cf781 100644 --- a/i18n/cht/extensions/git/out/commands.i18n.json +++ b/i18n/cht/extensions/git/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "tag at": "位於 {0} 的標記", "remote branch at": "位於 {0} 的遠端分支", "create branch": "$(plus) 建立新的分支", diff --git a/i18n/cht/extensions/git/out/main.i18n.json b/i18n/cht/extensions/git/out/main.i18n.json index b9e759fe018..ca5e23909a4 100644 --- a/i18n/cht/extensions/git/out/main.i18n.json +++ b/i18n/cht/extensions/git/out/main.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "looking": "尋找 git : {0}", "using git": "正在使用來自 {1} 的 git {0}", "downloadgit": "下載 Git", diff --git a/i18n/cht/extensions/git/out/model.i18n.json b/i18n/cht/extensions/git/out/model.i18n.json index 300ab110fc6..8833aef5c0e 100644 --- a/i18n/cht/extensions/git/out/model.i18n.json +++ b/i18n/cht/extensions/git/out/model.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "no repositories": "沒有存放庫可供使用", "pick repo": "請選擇存放庫" } \ No newline at end of file diff --git a/i18n/cht/extensions/git/out/repository.i18n.json b/i18n/cht/extensions/git/out/repository.i18n.json index 11f473d6e80..04a77829d55 100644 --- a/i18n/cht/extensions/git/out/repository.i18n.json +++ b/i18n/cht/extensions/git/out/repository.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "open": "開啟", "index modified": "已修改索引", "modified": "已修改", @@ -26,6 +28,8 @@ "merge changes": "合併變更", "staged changes": "已分段的變更", "changes": "變更", + "commitMessageCountdown": "在目前行數剩餘 {0} 個字元", + "commitMessageWarning": "在目前行數有 {0} 個字元已超過 {1} 個", "ok": "確定", "neveragain": "不要再顯示", "huge": "位於 '{0}' 的 Git 儲存庫有過多使用中的變更,只有部份 Git 功能會被啟用。" diff --git a/i18n/cht/extensions/git/out/statusbar.i18n.json b/i18n/cht/extensions/git/out/statusbar.i18n.json index fbdc857478d..b271390645e 100644 --- a/i18n/cht/extensions/git/out/statusbar.i18n.json +++ b/i18n/cht/extensions/git/out/statusbar.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "checkout": "簽出...", "sync changes": "同步處理變更", "publish changes": "發行變更", diff --git a/i18n/cht/extensions/git/package.i18n.json b/i18n/cht/extensions/git/package.i18n.json index 657b8810e86..07eacdf3e93 100644 --- a/i18n/cht/extensions/git/package.i18n.json +++ b/i18n/cht/extensions/git/package.i18n.json @@ -71,6 +71,8 @@ "config.enableCommitSigning": "啟用 GPG 認可簽署。", "config.discardAllScope": "控制 `Discard all changes` 命令會捨棄的變更。`all` 會捨棄所有變更。`tracked` 只會捨棄追蹤的檔案。`prompt` 會在每次動作執行時顯示提示對話方塊。", "config.decorations.enabled": "控制 Git 是否提供色彩及徽章給總管及開啟編輯器視窗。", + "config.promptToSaveFilesBeforeCommit": "控制Git是否應該在提交之前檢查未儲存的檔案。", + "config.showInlineOpenFileAction": "控制是否在Git變更列表中的檔名旁顯示“開啟檔案”的動作按鈕。", "colors.modified": "修改資源的顏色。", "colors.deleted": "刪除資源的顏色", "colors.untracked": "未追蹤資源的顏色。", diff --git a/i18n/cht/extensions/grunt/out/main.i18n.json b/i18n/cht/extensions/grunt/out/main.i18n.json index d21ced5e00c..6c79bed1711 100644 --- a/i18n/cht/extensions/grunt/out/main.i18n.json +++ b/i18n/cht/extensions/grunt/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Grunt 在資料夾 {0} 的自動偵測失敗。錯誤: {1}" } \ No newline at end of file diff --git a/i18n/cht/extensions/gulp/out/main.i18n.json b/i18n/cht/extensions/gulp/out/main.i18n.json index c5300fc3cd5..23577c6bf9c 100644 --- a/i18n/cht/extensions/gulp/out/main.i18n.json +++ b/i18n/cht/extensions/gulp/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Gulp 在資料夾 {0} 的自動偵測失敗。錯誤: {1}" } \ No newline at end of file diff --git a/i18n/cht/extensions/html/client/out/htmlMain.i18n.json b/i18n/cht/extensions/html/client/out/htmlMain.i18n.json index d6e7c1e3a63..0c001145a7a 100644 --- a/i18n/cht/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/cht/extensions/html/client/out/htmlMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "htmlserver.name": "HTML 語言伺服器", "folding.start": "摺疊區域開始", "folding.end": "摺疊區域結束" diff --git a/i18n/cht/extensions/jake/out/main.i18n.json b/i18n/cht/extensions/jake/out/main.i18n.json index 4b806a251b4..b9fdfb71204 100644 --- a/i18n/cht/extensions/jake/out/main.i18n.json +++ b/i18n/cht/extensions/jake/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Jake 在資料夾 {0} 的自動偵測失敗。錯誤: {1}" } \ No newline at end of file diff --git a/i18n/cht/extensions/json/client/out/jsonMain.i18n.json b/i18n/cht/extensions/json/client/out/jsonMain.i18n.json index 79a6b6140c4..275d7ba3cb0 100644 --- a/i18n/cht/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/cht/extensions/json/client/out/jsonMain.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "jsonserver.name": "JSON 語言伺服器" } \ No newline at end of file diff --git a/i18n/cht/extensions/markdown/out/commands.i18n.json b/i18n/cht/extensions/markdown/out/commands.i18n.json index d6573953062..c176ff214f9 100644 --- a/i18n/cht/extensions/markdown/out/commands.i18n.json +++ b/i18n/cht/extensions/markdown/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "previewTitle": "預覽 [0]", "onPreviewStyleLoadError": "無法載入 ‘markdown.style' 樣式:{0}" } \ No newline at end of file diff --git a/i18n/cht/extensions/markdown/out/features/previewContentProvider.i18n.json b/i18n/cht/extensions/markdown/out/features/previewContentProvider.i18n.json index 66d00227018..fe1f5c5a4e5 100644 --- a/i18n/cht/extensions/markdown/out/features/previewContentProvider.i18n.json +++ b/i18n/cht/extensions/markdown/out/features/previewContentProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "preview.securityMessage.text": "此文件中的部分內容已停用", "preview.securityMessage.title": "Markdown 預覽中已停用可能不安全或不安全的內容。請將 Markdown 預覽的安全性設定變更為允許不安全內容,或啟用指令碼", "preview.securityMessage.label": "內容已停用安全性警告" diff --git a/i18n/cht/extensions/markdown/out/security.i18n.json b/i18n/cht/extensions/markdown/out/security.i18n.json index 4aaab7a1cbd..1c3ed6ecc20 100644 --- a/i18n/cht/extensions/markdown/out/security.i18n.json +++ b/i18n/cht/extensions/markdown/out/security.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "strict.title": "嚴謹", "strict.description": "僅載入安全內容", "insecureContent.title": "允許不安全的內容", @@ -11,8 +13,7 @@ "disable.title": "停用", "disable.description": "允許所有內容與指令碼執行。不建議", "moreInfo.title": "詳細資訊", - "enableSecurityWarning.title": "在此工作區中啟用預覽安全警告", - "disableSecurityWarning.title": "禁用此工作區中的預覽安全警告", - "toggleSecurityWarning.description": "不影響內容安全級別", + "enableSecurityWarning.title": "允許此工作區預覽安全性警告", + "disableSecurityWarning.title": "不允許此工作區預覽安全性警告", "preview.showPreviewSecuritySelector.title": "選擇此工作區 Markdown 預覽的安全性設定" } \ No newline at end of file diff --git a/i18n/cht/extensions/merge-conflict/out/codelensProvider.i18n.json b/i18n/cht/extensions/merge-conflict/out/codelensProvider.i18n.json index fd3fc4ee512..ffa2bc67593 100644 --- a/i18n/cht/extensions/merge-conflict/out/codelensProvider.i18n.json +++ b/i18n/cht/extensions/merge-conflict/out/codelensProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "acceptCurrentChange": "接受當前變更", "acceptIncomingChange": "接受來源變更", "acceptBothChanges": "接受兩者變更", diff --git a/i18n/cht/extensions/merge-conflict/out/commandHandler.i18n.json b/i18n/cht/extensions/merge-conflict/out/commandHandler.i18n.json index 7e13d2e40eb..4e3057fe672 100644 --- a/i18n/cht/extensions/merge-conflict/out/commandHandler.i18n.json +++ b/i18n/cht/extensions/merge-conflict/out/commandHandler.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cursorNotInConflict": "編輯器游標不在衝突合併範圍之內", "compareChangesTitle": "{0}: 當前變更⟷來源變更", "cursorOnCommonAncestorsRange": "編輯器游標在共同上階區塊內,請移動至「當前項目」或「來源項目」區塊", diff --git a/i18n/cht/extensions/merge-conflict/out/mergeDecorator.i18n.json b/i18n/cht/extensions/merge-conflict/out/mergeDecorator.i18n.json index 1282a1b3de3..5b274b20f9b 100644 --- a/i18n/cht/extensions/merge-conflict/out/mergeDecorator.i18n.json +++ b/i18n/cht/extensions/merge-conflict/out/mergeDecorator.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "currentChange": "(目前變更)", "incomingChange": "(來源變更)" } \ No newline at end of file diff --git a/i18n/cht/extensions/npm/out/main.i18n.json b/i18n/cht/extensions/npm/out/main.i18n.json index 99b0c6bcfcd..f0e654540ce 100644 --- a/i18n/cht/extensions/npm/out/main.i18n.json +++ b/i18n/cht/extensions/npm/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "npm.parseError": "Npm 工作刪除: 解析檔案 {0} 失敗" } \ No newline at end of file diff --git a/i18n/cht/extensions/php/out/features/validationProvider.i18n.json b/i18n/cht/extensions/php/out/features/validationProvider.i18n.json index 765ceb0e8d3..62153a9c2da 100644 --- a/i18n/cht/extensions/php/out/features/validationProvider.i18n.json +++ b/i18n/cht/extensions/php/out/features/validationProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "php.useExecutablePath": "要允許 {0} (定義為工作區設定) 執行,以使用 lint 標記 PHP 檔案嗎?", "php.yes": "允許", "php.no": "不允許", diff --git a/i18n/cht/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json b/i18n/cht/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json new file mode 100644 index 00000000000..6024fb1b9b1 --- /dev/null +++ b/i18n/cht/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json @@ -0,0 +1,14 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "previewOnGitHub": "在 GitHub 預覽", + "similarIssues": "相似的問題", + "noResults": "找不到結果", + "stepsToReproduce": "重現的步驟", + "description": "描述" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json b/i18n/cht/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json new file mode 100644 index 00000000000..83e08f9540b --- /dev/null +++ b/i18n/cht/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json @@ -0,0 +1,23 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "completeInEnglish": "請用英語填寫這張表格。", + "bugReporter": "Bug 報告", + "performanceIssue": "效能問題", + "issueTitleLabel": "標題", + "issueTitleRequired": "請輸入標題。", + "vscodeVersion": "VS Code 版本", + "osVersion": "作業系統版本", + "systemInfo": "我的系統資訊", + "sendData": "傳送我的資料", + "workspaceStats": "我的工作區統計資料", + "extensions": "我的擴充功能", + "showRunningExtensions": "查看所有正在執行的擴充功能", + "githubMarkdown": "我們支援 GitHub 樣式的 Markdown。您將能夠編輯您的問題,並在 GitHub預覽時增加銀幕截圖。", + "issueDescriptionRequired": "請輸入描述。" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/code/electron-main/logUploader.i18n.json b/i18n/cht/src/vs/code/electron-main/logUploader.i18n.json new file mode 100644 index 00000000000..fcb3d1a5e80 --- /dev/null +++ b/i18n/cht/src/vs/code/electron-main/logUploader.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "beginUploading": "上傳中...", + "userDeniedUpload": "已取消上載" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/code/electron-main/menus.i18n.json b/i18n/cht/src/vs/code/electron-main/menus.i18n.json index 116c249fccb..7a953927b1b 100644 --- a/i18n/cht/src/vs/code/electron-main/menus.i18n.json +++ b/i18n/cht/src/vs/code/electron-main/menus.i18n.json @@ -180,12 +180,13 @@ "miConfigureTask": "設定工作(&&C)", "miConfigureBuildTask": "設定預設建置工作(&&F)...", "accessibilityOptionsWindowTitle": "協助工具選項", - "miRestartToUpdate": "重新啟動以更新...", + "miCheckForUpdates": "查看是否有更新", "miCheckingForUpdates": "正在查看是否有更新...", "miDownloadUpdate": "下載可用更新", "miDownloadingUpdate": "正在下載更新...", + "miInstallUpdate": "安裝更新...", "miInstallingUpdate": "正在安裝更新...", - "miCheckForUpdates": "查看是否有更新", + "miRestartToUpdate": "重新啟動以更新...", "aboutDetail": "版本 {0} \n認可 {1} \n日期 {2} \nShell {3} \n轉譯器 {4} \n節點 {5} \n架構 {6}", "okButton": "確定", "copy": "複製(&&C)" diff --git a/i18n/cht/src/vs/editor/browser/services/bulkEdit.i18n.json b/i18n/cht/src/vs/editor/browser/services/bulkEdit.i18n.json index 58cd9f8b55b..6b06734150d 100644 --- a/i18n/cht/src/vs/editor/browser/services/bulkEdit.i18n.json +++ b/i18n/cht/src/vs/editor/browser/services/bulkEdit.i18n.json @@ -6,8 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "conflict": "這些檔案已同時變更: {0}", "summary.0": "未進行任何編輯", "summary.nm": "在 {1} 個檔案中進行了 {0} 項文字編輯", - "summary.n0": "在一個檔案中進行了 {0} 項文字編輯" + "summary.n0": "在一個檔案中進行了 {0} 項文字編輯", + "conflict": "這些檔案已同時變更: {0}" } \ No newline at end of file diff --git a/i18n/cht/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/cht/src/vs/editor/common/config/commonEditorConfig.i18n.json index 1c2632fb872..908cad5ade8 100644 --- a/i18n/cht/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/cht/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -74,7 +74,7 @@ "cursorBlinking": "控制游標動畫樣式,可能的值為 'blink'、'smooth'、'phase'、'expand' 和 'solid'", "mouseWheelZoom": "使用滑鼠滾輪並按住 Ctrl 時,縮放編輯器的字型", "cursorStyle": "控制游標樣式。接受的值為 'block'、'block-outline'、'line'、'line-thin'、'underline' 及 'underline-thin'", - "lineCursorWidth": "控制游標寬度,當 editor.cursorStyle 設定為 'line' 時。", + "cursorWidth": "控制游標寬度,當 editor.cursorStyle 設定為 'line' 時。", "fontLigatures": "啟用連字字型", "hideCursorInOverviewRuler": "控制游標是否應隱藏在概觀尺規中。", "renderWhitespace": "控制編輯器轉譯空白字元的方式,可能為 'none'、'boundary' 及 'all'。'boundary' 選項不會轉譯字組間的單一空格。", diff --git a/i18n/cht/src/vs/platform/environment/node/argv.i18n.json b/i18n/cht/src/vs/platform/environment/node/argv.i18n.json index a56295da6ea..2171f07a7d2 100644 --- a/i18n/cht/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/cht/src/vs/platform/environment/node/argv.i18n.json @@ -10,11 +10,8 @@ "diff": "互相比較兩個檔案。", "add": "將資料夾新增至上一個使用中的視窗。", "goto": "在路徑上的指定行與字元位置開啟檔案。", - "newWindow": "強制執行 Code 的新執行個體。", - "reuseWindow": "強制在最近使用的視窗中開啟檔案或資料夾。", "wait": "等候檔案在傳回前關閉。", "locale": "要使用的地區設定 (例如 en-US 或 zh-TW)。", - "userDataDir": "指定保留使用者資料的目錄,這在以根目錄身分執行時有用。", "version": "列印版本。", "help": "列印使用方式。", "extensionHomePath": "設定擴充功能的根路徑。", @@ -33,7 +30,6 @@ "inspect-brk-extensions": "允許對擴展主機在啟動後暫停擴充功能進行除錯和分析。檢查開發工具中的連接 uri。", "disableGPU": "停用 GPU 硬體加速。", "uploadLogs": "上傳目前的工作階段紀錄至安全的端點。", - "issue": "回報1個問題", "usage": "使用方式", "options": "選項", "paths": "路徑", diff --git a/i18n/cht/src/vs/platform/issue/electron-main/issueService.i18n.json b/i18n/cht/src/vs/platform/issue/electron-main/issueService.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/cht/src/vs/platform/issue/electron-main/issueService.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/cht/src/vs/platform/list/browser/listService.i18n.json b/i18n/cht/src/vs/platform/list/browser/listService.i18n.json index c638156b78f..37f59f43852 100644 --- a/i18n/cht/src/vs/platform/list/browser/listService.i18n.json +++ b/i18n/cht/src/vs/platform/list/browser/listService.i18n.json @@ -8,6 +8,5 @@ ], "workbenchConfigurationTitle": "工作台", "multiSelectModifier.ctrlCmd": "對應Windows和Linux的'Control'與對應 macOS 的'Command'。", - "multiSelectModifier.alt": "對應Windows和Linux的'Alt'與對應macOS的'Option'。", - "multiSelectModifier": "用於新增項目至滑鼠多選的修改 (例如在樹狀及列表支援下)。 `ctrlCmd` 會對應到 Windows 和 Linux 上的 `Control` 以及 macOS 上的 `Command`。 [在側邊開啟] 滑鼠手勢若支援,將會適應以避免和 multiselect 修改衝突。" + "multiSelectModifier.alt": "對應Windows和Linux的'Alt'與對應macOS的'Option'。" } \ No newline at end of file diff --git a/i18n/cht/src/vs/platform/localizations/common/localizations.i18n.json b/i18n/cht/src/vs/platform/localizations/common/localizations.i18n.json new file mode 100644 index 00000000000..d1cf24adb7c --- /dev/null +++ b/i18n/cht/src/vs/platform/localizations/common/localizations.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "vscode.extension.contributes.localizations": "提供在地化服務給編輯者", + "vscode.extension.contributes.localizations.languageId": "顯示已翻譯字串的語言 Id" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json b/i18n/cht/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/cht/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/api/node/extHostWorkspace.i18n.json b/i18n/cht/src/vs/workbench/api/node/extHostWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/cht/src/vs/workbench/api/node/extHostWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json b/i18n/cht/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json new file mode 100644 index 00000000000..73ff4acf72b --- /dev/null +++ b/i18n/cht/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "sizeB": "{0}B", + "sizeKB": "{0}KB", + "sizeMB": "{0}MB", + "sizeGB": "{0}GB", + "sizeTB": "{0}TB", + "resourceOpenExternalButton": "要使用外部程式打開影像嗎?", + "nativeBinaryError": "檔案為二進位檔、非常大或使用不支援的文字編碼,因此將不會顯示於編輯器中。", + "imgMeta": "{0}x{1} {2}" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/cht/src/vs/workbench/electron-browser/actions.i18n.json index ca68729eb9b..ce62be72ce4 100644 --- a/i18n/cht/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/cht/src/vs/workbench/electron-browser/actions.i18n.json @@ -31,7 +31,6 @@ "openRecent": "開啟最近使用的檔案...", "quickOpenRecent": "快速開啟最近使用的檔案...", "closeMessages": "關閉通知訊息", - "openIssueReporter": "公開問題回報者", "reportIssueInEnglish": "回報問題", "reportPerformanceIssue": "回報效能問題", "keybindingsReference": "鍵盤快速鍵參考", diff --git a/i18n/cht/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/cht/src/vs/workbench/electron-browser/main.contribution.i18n.json index 0c5b4745d27..326c0846e47 100644 --- a/i18n/cht/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -35,7 +35,6 @@ "panelDefaultLocation": "控制面板的預設位置。可顯示在 Workbench 的底部或是右方。", "statusBarVisibility": "控制 Workbench 底端狀態列的可視性。", "activityBarVisibility": "控制活動列在 workbench 中的可見度。", - "fontAliasing": "在 Workbench 中控制字型鋸齒化的方法。- 預設: 子像素字型平滑處理。在大部分非 Retina 顯示器上會顯示出最銳利的文字- 已消除鋸齒: 相對於子像素,根據像素層級平滑字型。可讓字型整體顯得較細- 無: 停用字型平滑處理。文字會以鋸齒狀的銳邊顯示 ", "workbench.fontAliasing.default": "子像素字型平滑處理。在大部分非 Retina 顯示器上會顯示出最銳利的文字。", "workbench.fontAliasing.antialiased": "相對於子像素,根據像素層級平滑字型。可以讓字型整體顯得較細。", "workbench.fontAliasing.none": "禁用字體平滑.文字將會顯示鋸齒狀與鋒利的邊緣.", diff --git a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json index 6d92900b159..b9ca8450b58 100644 --- a/i18n/cht/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json @@ -19,12 +19,12 @@ "debugRequesMissing": "所選的偵錯組態遺漏屬性 '{0}'。", "debugTypeNotSupported": "不支援設定的偵錯類型 '{0}'。", "debugTypeMissing": "遺漏所選啟動設定的屬性 `type`。", - "debugAnyway": "仍要偵錯", "preLaunchTaskErrors": "執行 preLaunchTask '{0}' 期間偵測到建置錯誤。", "preLaunchTaskError": "執行 preLaunchTask '{0}' 期間偵測到建置錯誤。", "preLaunchTaskExitCode": "preLaunchTask '{0}' 已終止,結束代碼為 {1}。", + "debugAnyway": "仍要偵錯", + "cancel": "取消", "noFolderWorkspaceDebugError": "無法對使用中的檔案偵錯。請確認檔案已儲存在磁碟上,而且您已經為該檔案類型安裝偵錯延伸模組。", - "NewLaunchConfig": "請為您的應用程式設定啟動組態檔。{0}", "DebugTaskNotFound": "找不到 preLaunchTask '{0}'。", "taskNotTracked": "無法追蹤 preLaunchTask '{0}'。" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json index 9a118a6fdfd..e4f55aba181 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json @@ -33,6 +33,8 @@ "view id": "識別碼", "view name": "名稱", "view location": "位置", + "localizations language name": "語言名稱", + "localizations localized language name": "語言名稱 (在地化)", "colorThemes": "色彩佈景主題 ({0})", "iconThemes": "圖示佈景主題 ({0}) ", "colors": "色彩 ({0})", diff --git a/i18n/cht/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json index 0897279b3ec..a1690057d3c 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json @@ -52,6 +52,7 @@ "configureWorkspaceRecommendedExtensions": "設定建議的延伸模組 (工作區)", "configureWorkspaceFolderRecommendedExtensions": "設定建議的延伸模組 (工作區資料夾) ", "builtin": "內建", + "malicious tooltip": "這個延伸模組曾經被回報是有問題的。", "disableAll": "停用所有已安裝的延伸模組", "disableAllWorkspace": "停用此工作區的所有已安裝延伸模組", "enableAll": "啟用所有已安裝的延伸模組", diff --git a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index c6e7c4803ee..4bed8103f5e 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -18,5 +18,7 @@ "sort by name": "排序依據: 名稱", "suggestProxyError": "Marketplace 傳回 'ECONNREFUSED'。請檢查 'http.proxy' 設定。", "extensions": "擴充功能", - "outdatedExtensions": "{0} 過期的擴充功能" + "outdatedExtensions": "{0} 過期的擴充功能", + "malicious warning": "我們已經解除安裝被回報有問題的 '{0}' 。", + "reloadNow": "立即重新載入" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json b/i18n/cht/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json index 6d627776622..27769c6f9e9 100644 --- a/i18n/cht/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json @@ -7,6 +7,7 @@ "Do not edit this file. It is machine generated." ], "installingVSIXExtension": "從 VSIX 安裝擴充功能...", + "malicious": "這個延伸模組被回報是有問題的。", "installingMarketPlaceExtension": "從市集安裝擴充功能...", "uninstallingExtension": "解除安裝擴充功能...", "enableDependeciesConfirmation": "啟用 '{0}' 也會啟用其相依性。仍要繼續嗎?", diff --git a/i18n/cht/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json b/i18n/cht/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json index 8ecdb6a7e18..f186269c095 100644 --- a/i18n/cht/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json @@ -8,11 +8,10 @@ ], "openLogsFolder": "開啟紀錄資料夾", "showLogs": "顯示紀錄...。", - "mainProcess": "主要", - "sharedProcess": "共享", - "rendererProcess": "視窗", + "emptyWindow": "視窗", "extensionHost": "延伸主機", - "selectProcess": "選取程序", + "sharedProcess": "共享", + "mainProcess": "主要", "openLogFile": "開啟紀錄檔案...", "setLogLevel": "設定記錄層級", "trace": "追蹤", @@ -22,5 +21,8 @@ "err": "錯誤", "critical": "嚴重", "off": "關閉", - "selectLogLevel": "選擇紀錄層級" + "selectLogLevel": "選擇紀錄層級", + "default and current": "預設與目前", + "default": "預設", + "current": "目前" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/markers/common/markers.i18n.json b/i18n/cht/src/vs/workbench/parts/markers/common/markers.i18n.json new file mode 100644 index 00000000000..8e9b2618050 --- /dev/null +++ b/i18n/cht/src/vs/workbench/parts/markers/common/markers.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "totalProblems": "共 {0} 項問題", + "filteredProblems": "顯示 {1} 的 {0} 問題" +} \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json b/i18n/cht/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json index 099b496149b..41eaf632ea0 100644 --- a/i18n/cht/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json @@ -17,7 +17,6 @@ "addLabel": "新增按鍵繫結關係", "removeLabel": "移除按鍵繫結關係", "resetLabel": "重設按鍵繫結關係", - "showConflictsLabel": "顯示衝突", "copyLabel": "複製", "copyCommandLabel": "複製命令", "error": "編輯按鍵繫結關係時發生錯誤 '{0}'。請開啟 'keybindings.json' 檔案加以檢查。", diff --git a/i18n/cht/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json b/i18n/cht/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json index f68da30eb78..7f9e4282439 100644 --- a/i18n/cht/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json @@ -10,8 +10,8 @@ "SearchSettingsWidget.AriaLabel": "搜尋設定", "SearchSettingsWidget.Placeholder": "搜尋設定", "noSettingsFound": "沒有結果", - "oneSettingFound": "1 項相符設定", - "settingsFound": "{0} 項相符設定", + "oneSettingFound": "找到 1 項設定", + "settingsFound": "找到 {0} 項設置", "totalSettingsMessage": "共 {0} 項設定", "nlpResult": "自然語言結果", "filterResult": "篩選結果", diff --git a/i18n/cht/src/vs/workbench/parts/preferences/browser/preferencesRenderers.i18n.json b/i18n/cht/src/vs/workbench/parts/preferences/browser/preferencesRenderers.i18n.json index c5f50b63de4..cf610736045 100644 --- a/i18n/cht/src/vs/workbench/parts/preferences/browser/preferencesRenderers.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/preferences/browser/preferencesRenderers.i18n.json @@ -9,6 +9,7 @@ "emptyUserSettingsHeader": "將您的設定放置在此以覆寫預設設定。", "emptyWorkspaceSettingsHeader": "將您的設定放置在此以覆寫使用者設定。", "emptyFolderSettingsHeader": "將您的資料夾設定放置在此以覆寫工作區設定的資料夾設定。", + "newExtensionLabel": "顯示擴充功能 \"{0}\"", "editTtile": "編輯", "replaceDefaultValue": "在設定中取代", "copyDefaultValue": "複製到設定", diff --git a/i18n/cht/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json index 3599cf980e6..ddbdca8b018 100644 --- a/i18n/cht/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json @@ -12,6 +12,5 @@ "view": "檢視", "scmConfigurationTitle": "原始碼管理 (SCM)", "alwaysShowProviders": "是否總是顯示原始檔控制提供者區段", - "diffDecorations": "控制差異裝飾於編輯器中", - "inputCounter": "控制何時顯示輸入計數器" + "diffDecorations": "控制差異裝飾於編輯器中" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json b/i18n/cht/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json index b7759b7e0c6..d4515832082 100644 --- a/i18n/cht/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json @@ -8,9 +8,6 @@ ], "scm providers": "原始檔控制提供者", "hideRepository": "隱藏", - "commitMessageInfo": "在目前行數有 {0} 個字元", - "commitMessageCountdown": "在目前行數剩餘 {0} 個字元", - "commitMessageWarning": "在目前行數有 {0} 個字元已超過 {1} 個", "installAdditionalSCMProviders": "安裝額外SCM提供者...", "no open repo": "沒有使用中的原始檔控制提供者。", "source control": "原始檔控制", diff --git a/i18n/cht/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/cht/src/vs/workbench/parts/search/browser/searchActions.i18n.json index a0708718322..5b97663e3cf 100644 --- a/i18n/cht/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -18,6 +18,7 @@ "RefreshAction.label": "重新整理", "CollapseDeepestExpandedLevelAction.label": "全部摺疊", "ClearSearchResultsAction.label": "清除", + "CancelSearchAction.label": "取消搜索", "FocusNextSearchResult.label": "聚焦於下一個搜尋結果", "FocusPreviousSearchResult.label": "聚焦於上一個搜尋結果", "RemoveAction.label": "關閉", diff --git a/i18n/cht/src/vs/workbench/parts/search/electron-browser/search.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/search/electron-browser/search.contribution.i18n.json index 311ee7705b7..bc257ad2d3d 100644 --- a/i18n/cht/src/vs/workbench/parts/search/electron-browser/search.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/search/electron-browser/search.contribution.i18n.json @@ -23,5 +23,6 @@ "useRipgrep": "控制是否要在文字和檔案搜尋中使用 ripgrep", "useIgnoreFiles": "控制在搜尋檔案時,是否要使用 .gitignore 及 .ignore 檔案。 ", "search.quickOpen.includeSymbols": "設定以將全域符號搜尋的結果納入 Quick Open 的檔案結果中。", - "search.followSymlinks": "控制是否要在搜尋時遵循 symlink。" + "search.followSymlinks": "控制是否要在搜尋時遵循 symlink。", + "search.smartCase": "如果搜尋式為全部小寫,則用不分大小寫的搜尋,否則用分大小寫的搜尋" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/snippets/electron-browser/snippets.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/snippets/electron-browser/snippets.contribution.i18n.json index 37e0de3c247..179e7258b66 100644 --- a/i18n/cht/src/vs/workbench/parts/snippets/electron-browser/snippets.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/snippets/electron-browser/snippets.contribution.i18n.json @@ -10,5 +10,6 @@ "snippetSchema.json": "使用者程式碼片段組態", "snippetSchema.json.prefix": "在 Intellisense 中選取程式碼片段時要使用的前置詞", "snippetSchema.json.body": "程式碼片段內容。請使用 '$1', '${1:defaultText}' 以定義游標位置,並使用 '$0' 定義最終游標位置。將 '${varName}' and '${varName:defaultText}' 插入變數值,例如 'This is file: $TM_FILENAME'。", - "snippetSchema.json.description": "程式碼片段描述。" + "snippetSchema.json.description": "程式碼片段描述。", + "snippetSchema.json.scope": "適用此程式碼片段的程式語言列表,如:'typescript,javascript'。" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/snippets/electron-browser/snippetsService.i18n.json b/i18n/cht/src/vs/workbench/parts/snippets/electron-browser/snippetsService.i18n.json index 54f6fafb420..763c92b7367 100644 --- a/i18n/cht/src/vs/workbench/parts/snippets/electron-browser/snippetsService.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/snippets/electron-browser/snippetsService.i18n.json @@ -7,6 +7,7 @@ "Do not edit this file. It is machine generated." ], "invalid.path.0": "'contributes.{0}.path' 中應有字串。提供的值: {1}", + "invalid.language.0": "省略語言時,`contributes.{0}.path` 的值必須是 `.code-snippets`-file。您目前提供的值:{1}", "invalid.language": "`contributes.{0}.language` 中的不明語言。提供的值: {1}", "invalid.path.1": "擴充功能資料夾 ({2}) 應包含 'contributes.{0}.path' ({1})。這可能會導致擴充功能無法移植。", "vscode.extension.contributes.snippets": "提供程式碼片段。", diff --git a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 669c6c59223..7d320b08a8e 100644 --- a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -21,7 +21,8 @@ "terminal.integrated.fontFamily": "控制終端機的字型家族,預設為 editor.fontFamily 的值。", "terminal.integrated.fontSize": "控制終端機的字型大小 (以像素為單位)。", "terminal.integrated.lineHeight": "控制終端機的行高,此數字會乘上終端機字型大小,以取得以像素為單位的實際行高。", - "terminal.integrated.enableBold": "是否要在終端機中啟用粗體文字,請注意,此動作須有終端機殼層的支援。", + "terminal.integrated.fontWeight": "在終端機內使用非粗體文字的字體寬度。", + "terminal.integrated.fontWeightBold": "在終端機內使用粗體文字的字體寬度。", "terminal.integrated.cursorBlinking": "控制終端機資料指標是否閃爍。", "terminal.integrated.cursorStyle": "控制終端機資料指標的樣式。", "terminal.integrated.scrollback": "控制終端機保留在其緩衝區中的行數上限。", diff --git a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index 052199b2224..33e0e3d9ebd 100644 --- a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -14,7 +14,6 @@ "workbench.action.terminal.selectAll": "全選", "workbench.action.terminal.deleteWordLeft": "刪除左方文字", "workbench.action.terminal.deleteWordRight": "刪除右方文字", - "workbench.action.terminal.enterLineNavigationMode": "進入螢幕閱讀器導航模式", "workbench.action.terminal.new": "建立新的整合式終端機", "workbench.action.terminal.new.short": "新增終端機", "workbench.action.terminal.newWorkspacePlaceholder": "為新的終端機選擇目前的工作目錄", diff --git a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json index 46e366d496a..652d103cc9d 100644 --- a/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json @@ -6,6 +6,7 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "terminal.integrated.a11yBlankLine": "空白行", "terminal.integrated.copySelection.noSelection": "終端機沒有任何選取項目可以複製", "terminal.integrated.exitedWithCode": "終端機處理序已終止,結束代碼為: {0}", "terminal.integrated.waitOnExit": "按任意鍵關閉終端機", diff --git a/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 23595ff50ab..59c4bc1707b 100644 --- a/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -8,5 +8,6 @@ ], "release notes": "版本資訊", "updateConfigurationTitle": "更新", - "updateChannel": "設定是否要從更新頻道接收自動更新。變更後需要重新啟動。" + "updateChannel": "設定是否要從更新頻道接收自動更新。變更後需要重新啟動。", + "enableWindowsBackgroundUpdates": "啟用 Windows 背景更新" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.i18n.json b/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.i18n.json index 1bcf6c7292e..83a2f1d0b60 100644 --- a/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.i18n.json +++ b/i18n/cht/src/vs/workbench/parts/update/electron-browser/update.i18n.json @@ -6,12 +6,10 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "updateNow": "立即更新", "later": "稍後", "unassigned": "未指派", "releaseNotes": "版本資訊", "showReleaseNotes": "顯示版本資訊", - "downloadNow": "立即下載", "read the release notes": "歡迎使用 {0} v{1}! 您要閱讀版本資訊嗎?", "licenseChanged": "授權條款已有所變更,請仔細閱讀。", "license": "閱讀授權", @@ -19,20 +17,24 @@ "64bitisavailable": "適用於 64 位元 Windows 的 {0} 現已推出! ", "learn more": "深入了解", "updateIsReady": "新的 {0} 更新已可用。", - "thereIsUpdateAvailable": "已有更新可用。", - "updateAvailable": "{0} 重新啟動後將會更新。", "noUpdatesAvailable": "目前沒有可用的更新。", + "download now": "立即下載", + "thereIsUpdateAvailable": "已有更新可用。", + "installUpdate": "安裝更新", + "updateAvailable": "已有更新可用: {0} {1}", + "updateInstalling": "{0} {1} 正在背景執行安裝,完成後我們會通知您。", + "updateNow": "立即更新", + "updateAvailableAfterRestart": "{0} 重新啟動後將會更新。", "commandPalette": "命令選擇區...", "settings": "設定", "keyboardShortcuts": "鍵盤快速鍵(&&K)", "userSnippets": "使用者程式碼片段", "selectTheme.label": "色彩佈景主題", "themes.selectIconTheme.label": "檔案圖示佈景主題", - "not available": "無可用更新", + "checkForUpdates": "查看是否有更新...", "checkingForUpdates": "正在查看是否有更新...", - "DownloadUpdate": "下載可用更新", "DownloadingUpdate": "正在下載更新...", - "InstallingUpdate": "正在安裝更新...", - "restartToUpdate": "請重新啟動以更新...", - "checkForUpdates": "查看是否有更新..." + "installUpdate...": "安裝更新...", + "installingUpdate": "正在安裝更新...", + "restartToUpdate": "請重新啟動以更新..." } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json b/i18n/cht/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json index cc9028bb6c2..b267af20f42 100644 --- a/i18n/cht/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json +++ b/i18n/cht/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json @@ -21,6 +21,7 @@ "workspaceConfig.name.description": "資料夾的選用名稱。", "workspaceConfig.uri.description": "資料夾的 URI", "workspaceConfig.settings.description": "工作區設定", + "workspaceConfig.launch.description": "工作區啟動配置", "workspaceConfig.extensions.description": "工作區延伸模組", "unknownWorkspaceProperty": "未知的工作區組態屬性" } \ No newline at end of file diff --git a/i18n/cht/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json b/i18n/cht/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json index 6ddc8f109e9..d78d215f84d 100644 --- a/i18n/cht/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json +++ b/i18n/cht/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json @@ -8,6 +8,6 @@ ], "jsonParseFail": "無法剖析 {0}: {1}。", "fileReadFail": "無法讀取檔案 {0}: {1}。", - "jsonsParseFail": "無法剖析 {0} 或 {1}: {2}。", + "jsonsParseReportErrors": "無法剖析 {0}: {1}。", "missingNLSKey": "找不到金鑰 {0} 的訊息。" } \ No newline at end of file diff --git a/i18n/deu/extensions/css/client/out/cssMain.i18n.json b/i18n/deu/extensions/css/client/out/cssMain.i18n.json index 254ee717d96..05ec8e77798 100644 --- a/i18n/deu/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/deu/extensions/css/client/out/cssMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cssserver.name": "CSS-Sprachserver", "folding.start": "Regionsanfang wird gefaltet", "folding.end": "Regionsende wird gefaltet" diff --git a/i18n/deu/extensions/git/out/askpass-main.i18n.json b/i18n/deu/extensions/git/out/askpass-main.i18n.json index a682f91ed91..c8a3e8f056c 100644 --- a/i18n/deu/extensions/git/out/askpass-main.i18n.json +++ b/i18n/deu/extensions/git/out/askpass-main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "missOrInvalid": "Fehlende oder ungültige Anmeldeinformationen." } \ No newline at end of file diff --git a/i18n/deu/extensions/git/out/autofetch.i18n.json b/i18n/deu/extensions/git/out/autofetch.i18n.json index 5a1bb589fb2..72600185f43 100644 --- a/i18n/deu/extensions/git/out/autofetch.i18n.json +++ b/i18n/deu/extensions/git/out/autofetch.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "yes": "Ja", "read more": "Weitere Informationen", "no": "Nein", diff --git a/i18n/deu/extensions/git/out/commands.i18n.json b/i18n/deu/extensions/git/out/commands.i18n.json index 106aebcff97..5d1eaaf925e 100644 --- a/i18n/deu/extensions/git/out/commands.i18n.json +++ b/i18n/deu/extensions/git/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "tag at": "Tag bei {0}", "remote branch at": "Remotebranch unter {0}", "create branch": "$(plus) Neuen Branch erstellen", @@ -26,7 +28,6 @@ "revert": "Änderungen zurücksetzen", "discard": "Änderungen verwerfen", "confirm delete": "Möchten Sie \"{0}\" wirklich LÖSCHEN?", - "delete file": "Datei löschen", "confirm discard": "Möchten Sie die Änderungen in {0} wirklich verwerfen?", "confirm discard multiple": "Möchten Sie wirklich Änderungen in {0} Dateien verwerfen?", "warn untracked": "Dies wird {0} nicht verfolgte Dateien LÖSCHEN!", @@ -62,7 +63,6 @@ "merge conflicts": "Es liegen Zusammenführungskonflikte vor. Beheben Sie die Konflikte vor dem Committen.", "tag name": "Tag-Name", "provide tag name": "Geben Sie einen Tagnamen an.", - "tag message": "Nachricht", "provide tag message": "Geben Sie eine Meldung ein, um das Tag mit einer Anmerkung zu versehen.", "no remotes to fetch": "In diesem Repository wurden keine Remoteelemente konfiguriert, aus denen ein Abrufen erfolgt.", "no remotes to pull": "In Ihrem Repository wurden keine Remoteelemente für den Pull konfiguriert.", @@ -73,6 +73,7 @@ "push with tags success": "Push mit Tags erfolgreich ausgeführt.", "pick remote": "Remotespeicherort auswählen, an dem der Branch \"{0}\" veröffentlicht wird:", "sync is unpredictable": "Mit dieser Aktion werden Commits per Push und Pull an und von \"{0}\" übertragen.", + "never again": "OK, nicht mehr anzeigen", "no remotes to publish": "In Ihrem Repository wurden keine Remoteelemente für die Veröffentlichung konfiguriert.", "no changes stash": "Es sind keine Änderungen vorhanden, für die ein Stash ausgeführt werden kann.", "provide stash message": "Geben Sie optional eine Stash-Nachricht ein.", diff --git a/i18n/deu/extensions/git/out/main.i18n.json b/i18n/deu/extensions/git/out/main.i18n.json index 49edb1c1faa..81aa688fe22 100644 --- a/i18n/deu/extensions/git/out/main.i18n.json +++ b/i18n/deu/extensions/git/out/main.i18n.json @@ -1,12 +1,13 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "looking": "Suchen nach Git in: {0}", "using git": "Verwenden von Git {0} von {1}", - "downloadgit": "Git herunterladen", "neverShowAgain": "Nicht mehr anzeigen", "notfound": "Git nicht gefunden. Installieren Sie es, oder konfigurieren Sie es mithilfe der Einstellung \"git.path\".", "updateGit": "Git aktualisieren", diff --git a/i18n/deu/extensions/git/out/model.i18n.json b/i18n/deu/extensions/git/out/model.i18n.json index 5e1088116a0..ed79b8d272d 100644 --- a/i18n/deu/extensions/git/out/model.i18n.json +++ b/i18n/deu/extensions/git/out/model.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "no repositories": "Es sind keine verfügbaren Repositorys vorhanden.", "pick repo": "Repository auswählen" } \ No newline at end of file diff --git a/i18n/deu/extensions/git/out/repository.i18n.json b/i18n/deu/extensions/git/out/repository.i18n.json index cb3c5c9809f..fb87a24140e 100644 --- a/i18n/deu/extensions/git/out/repository.i18n.json +++ b/i18n/deu/extensions/git/out/repository.i18n.json @@ -1,31 +1,25 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "open": "Öffnen", - "index modified": "Index geändert", "modified": "Geändert am", - "index added": "Index hinzugefügt", - "index deleted": "Index gelöscht", "deleted": "Gelöscht", - "index renamed": "Index umbenannt", - "index copied": "Index kopiert", "untracked": "Nicht verfolgt", "ignored": "Ignoriert", - "both deleted": "Beide gelöscht", - "added by us": "Hinzugefügt von uns", "deleted by them": "Gelöscht von anderen", "added by them": "Hinzugefügt von anderen", "deleted by us": "Gelöscht von uns", - "both added": "Beide hinzugefügt", - "both modified": "Beide geändert", "commitMessage": "Message (press {0} to commit)", "commit": "Commit", "merge changes": "Änderungen zusammenführen", "staged changes": "Bereitgestellte Änderungen", "changes": "Änderungen", + "commitMessageCountdown": "{0} Zeichen in der aktuellen Zeile verbleibend", "ok": "OK", "neveragain": "Nicht mehr anzeigen", "huge": "Das Git-Repository unter {0} umfasst zu viele aktive Änderungen. Nur ein Teil der Git-Features wird aktiviert." diff --git a/i18n/deu/extensions/git/out/statusbar.i18n.json b/i18n/deu/extensions/git/out/statusbar.i18n.json index f9f00a8e610..e38a70fdd7f 100644 --- a/i18n/deu/extensions/git/out/statusbar.i18n.json +++ b/i18n/deu/extensions/git/out/statusbar.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "checkout": "Auschecken...", "sync changes": "Änderungen synchronisieren", "publish changes": "Änderungen veröffentlichen", diff --git a/i18n/deu/extensions/git/package.i18n.json b/i18n/deu/extensions/git/package.i18n.json index fe1564b75a1..18e902bcdb6 100644 --- a/i18n/deu/extensions/git/package.i18n.json +++ b/i18n/deu/extensions/git/package.i18n.json @@ -70,6 +70,7 @@ "config.enableCommitSigning": "Aktiviert das Signieren von Commits per GPG.", "config.discardAllScope": "Legt fest, welche Änderungen vom Befehl \"Alle Änderungen verwerfen\" verworfen werden. \"all\" verwirft alle Änderungen. \"tracked\" verwirft nur verfolgte Dateien. \"prompt\" zeigt immer eine Eingabeaufforderung an, wenn die Aktion ausgeführt wird.", "config.decorations.enabled": "Steuert, ob Git Farben und Badges für die Explorer-Ansicht und die Ansicht \"Geöffnete Editoren\" beiträgt.", + "config.promptToSaveFilesBeforeCommit": "Legt fest, ob Git vor dem einchecken nach nicht gespeicherten Dateien suchen soll.", "colors.modified": "Farbe für geänderte Ressourcen.", "colors.deleted": "Farbe für gelöschten Ressourcen.", "colors.untracked": "Farbe für nicht verfolgte Ressourcen.", diff --git a/i18n/deu/extensions/grunt/out/main.i18n.json b/i18n/deu/extensions/grunt/out/main.i18n.json index 47bed6eef41..aeff8901e65 100644 --- a/i18n/deu/extensions/grunt/out/main.i18n.json +++ b/i18n/deu/extensions/grunt/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Fehler bei der automatischen Grunt-Erkennung für den Ordner {0}. Fehlermeldung: {1}" } \ No newline at end of file diff --git a/i18n/deu/extensions/gulp/out/main.i18n.json b/i18n/deu/extensions/gulp/out/main.i18n.json index 7d146a15f94..df81773e889 100644 --- a/i18n/deu/extensions/gulp/out/main.i18n.json +++ b/i18n/deu/extensions/gulp/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Fehler bei der automatischen Gulp-Erkennung für den Ordner {0}. Fehlermeldung: {1}" } \ No newline at end of file diff --git a/i18n/deu/extensions/html/client/out/htmlMain.i18n.json b/i18n/deu/extensions/html/client/out/htmlMain.i18n.json index c3c7dcb8f4e..6a6d9025074 100644 --- a/i18n/deu/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/deu/extensions/html/client/out/htmlMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "htmlserver.name": "HTML-Sprachserver", "folding.start": "Regionsanfang wird gefaltet", "folding.end": "Regionsende wird gefaltet" diff --git a/i18n/deu/extensions/jake/out/main.i18n.json b/i18n/deu/extensions/jake/out/main.i18n.json index 48ad4462aeb..9a2edd93c48 100644 --- a/i18n/deu/extensions/jake/out/main.i18n.json +++ b/i18n/deu/extensions/jake/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Fehler bei der automatischen Jake-Erkennung für den Ordner {0}. Fehlermeldung: {1}" } \ No newline at end of file diff --git a/i18n/deu/extensions/json/client/out/jsonMain.i18n.json b/i18n/deu/extensions/json/client/out/jsonMain.i18n.json index d85115bf771..fa24cd1104c 100644 --- a/i18n/deu/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/deu/extensions/json/client/out/jsonMain.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "jsonserver.name": "JSON-Sprachserver" } \ No newline at end of file diff --git a/i18n/deu/extensions/markdown/out/commands.i18n.json b/i18n/deu/extensions/markdown/out/commands.i18n.json index a4208705fd4..f42b71b7720 100644 --- a/i18n/deu/extensions/markdown/out/commands.i18n.json +++ b/i18n/deu/extensions/markdown/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "previewTitle": "Vorschau von {0}", "onPreviewStyleLoadError": "'markdown.styles' konnte nicht geladen werden: {0}" } \ No newline at end of file diff --git a/i18n/deu/extensions/markdown/out/features/previewContentProvider.i18n.json b/i18n/deu/extensions/markdown/out/features/previewContentProvider.i18n.json index 5a04ed5447d..1793456fe9d 100644 --- a/i18n/deu/extensions/markdown/out/features/previewContentProvider.i18n.json +++ b/i18n/deu/extensions/markdown/out/features/previewContentProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "preview.securityMessage.text": "In diesem Dokument wurden einige Inhalte deaktiviert.", "preview.securityMessage.title": "Potenziell unsichere Inhalte wurden in der Markdown-Vorschau deaktiviert. Ändern Sie die Sicherheitseinstellung der Markdown-Vorschau, um unsichere Inhalte zuzulassen oder Skripts zu aktivieren.", "preview.securityMessage.label": "Sicherheitswarnung – Inhalt deaktiviert" diff --git a/i18n/deu/extensions/markdown/out/security.i18n.json b/i18n/deu/extensions/markdown/out/security.i18n.json index cd3ce408e9b..99532644e1d 100644 --- a/i18n/deu/extensions/markdown/out/security.i18n.json +++ b/i18n/deu/extensions/markdown/out/security.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "strict.title": "Strict", "strict.description": "Nur sicheren Inhalt laden", "insecureContent.title": "Unsicheren Inhalt zulassen", @@ -13,6 +15,5 @@ "moreInfo.title": "Weitere Informationen", "enableSecurityWarning.title": "Vorschau von Sicherheitswarnungen in diesem Arbeitsbereich aktivieren", "disableSecurityWarning.title": "Vorschau von Sicherheitswarnungen in diesem Arbeitsbereich deaktivieren ", - "toggleSecurityWarning.description": "Kein Einfluss auf Inhalt Sicherheitsebene", "preview.showPreviewSecuritySelector.title": "Sicherheitseinstellungen für die Markdown-Vorschau in diesem Arbeitsbereich auswählen" } \ No newline at end of file diff --git a/i18n/deu/extensions/merge-conflict/out/codelensProvider.i18n.json b/i18n/deu/extensions/merge-conflict/out/codelensProvider.i18n.json index 278e924d5a5..0c592ac19f0 100644 --- a/i18n/deu/extensions/merge-conflict/out/codelensProvider.i18n.json +++ b/i18n/deu/extensions/merge-conflict/out/codelensProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "acceptCurrentChange": "Aktuelle Änderung akzeptieren", "acceptIncomingChange": "Eingehende Änderung akzeptieren", "acceptBothChanges": "Beide Änderungen akzeptieren", diff --git a/i18n/deu/extensions/merge-conflict/out/commandHandler.i18n.json b/i18n/deu/extensions/merge-conflict/out/commandHandler.i18n.json index 551e796d909..e4084b5ff14 100644 --- a/i18n/deu/extensions/merge-conflict/out/commandHandler.i18n.json +++ b/i18n/deu/extensions/merge-conflict/out/commandHandler.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cursorNotInConflict": "Der Editor-Cursor ist nicht innerhalb eines Mergingkonflikts", "compareChangesTitle": "{0}: Aktuelle Änderungen ⟷ Eingehende Änderungen", "cursorOnCommonAncestorsRange": "Der Editor-Cursor ist innerhalb des Blocks gemeinsamer Vorgänger, verschieben Sie ihn entweder in den Block \"aktuell\" oder \"eingehend\". ", diff --git a/i18n/deu/extensions/merge-conflict/out/mergeDecorator.i18n.json b/i18n/deu/extensions/merge-conflict/out/mergeDecorator.i18n.json index 5ef895aeb90..fb40df97438 100644 --- a/i18n/deu/extensions/merge-conflict/out/mergeDecorator.i18n.json +++ b/i18n/deu/extensions/merge-conflict/out/mergeDecorator.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "currentChange": "(Aktuelle Änderung)", "incomingChange": "(Eingehende Änderung)" } \ No newline at end of file diff --git a/i18n/deu/extensions/npm/out/main.i18n.json b/i18n/deu/extensions/npm/out/main.i18n.json index b04014ab749..a918970a630 100644 --- a/i18n/deu/extensions/npm/out/main.i18n.json +++ b/i18n/deu/extensions/npm/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "npm.parseError": "NPM-Aufgabenerkennung: Fehler beim Analysieren der Datei {0}" } \ No newline at end of file diff --git a/i18n/deu/extensions/php/out/features/validationProvider.i18n.json b/i18n/deu/extensions/php/out/features/validationProvider.i18n.json index 53164e2c634..5805f86da6e 100644 --- a/i18n/deu/extensions/php/out/features/validationProvider.i18n.json +++ b/i18n/deu/extensions/php/out/features/validationProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "php.useExecutablePath": "Möchten Sie zulassen, dass {0} (als Arbeitsbereichseinstellung definiert) zum Bereinigen von PHP-Dateien ausgeführt wird?", "php.yes": "Zulassen", "php.no": "Nicht zulassen", diff --git a/i18n/deu/extensions/typescript/out/features/quickFixProvider.i18n.json b/i18n/deu/extensions/typescript/out/features/quickFixProvider.i18n.json index 35229bd6699..e0e88f5e50e 100644 --- a/i18n/deu/extensions/typescript/out/features/quickFixProvider.i18n.json +++ b/i18n/deu/extensions/typescript/out/features/quickFixProvider.i18n.json @@ -5,5 +5,6 @@ "Licensed under the MIT License. See License.txt in the project root for license information.", "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." - ] + ], + "fixAllInFileLabel": "{0} (Behebe alle in Datei)" } \ No newline at end of file diff --git a/i18n/deu/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json b/i18n/deu/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json new file mode 100644 index 00000000000..60507eec0fa --- /dev/null +++ b/i18n/deu/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "noResults": "Es wurden keine Ergebnisse gefunden.", + "description": "Beschreibung" +} \ No newline at end of file diff --git a/i18n/deu/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json b/i18n/deu/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/deu/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/deu/src/vs/code/electron-main/logUploader.i18n.json b/i18n/deu/src/vs/code/electron-main/logUploader.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/deu/src/vs/code/electron-main/logUploader.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/deu/src/vs/code/electron-main/menus.i18n.json b/i18n/deu/src/vs/code/electron-main/menus.i18n.json index 94143e9483e..3d107a3974d 100644 --- a/i18n/deu/src/vs/code/electron-main/menus.i18n.json +++ b/i18n/deu/src/vs/code/electron-main/menus.i18n.json @@ -180,12 +180,12 @@ "miConfigureTask": "Aufgaben &&konfigurieren...", "miConfigureBuildTask": "Standardbuildaufgabe kon&&figurieren...", "accessibilityOptionsWindowTitle": "Optionen für erleichterte Bedienung", - "miRestartToUpdate": "Zum Aktualisieren neu starten...", + "miCheckForUpdates": "Nach Aktualisierungen suchen...", "miCheckingForUpdates": "Überprüfen auf Updates...", "miDownloadUpdate": "Verfügbares Update herunterladen", "miDownloadingUpdate": "Das Update wird heruntergeladen...", "miInstallingUpdate": "Update wird installiert...", - "miCheckForUpdates": "Nach Aktualisierungen suchen...", + "miRestartToUpdate": "Zum Aktualisieren neu starten...", "aboutDetail": "\nVersion {0}\nCommit {1}\nDatum {2}\nShell {3}\nRenderer {4}\nNode {5}\nArchitektur {6}", "okButton": "OK", "copy": "&&Kopieren" diff --git a/i18n/deu/src/vs/editor/browser/services/bulkEdit.i18n.json b/i18n/deu/src/vs/editor/browser/services/bulkEdit.i18n.json index 909ede1c546..e2cea319b36 100644 --- a/i18n/deu/src/vs/editor/browser/services/bulkEdit.i18n.json +++ b/i18n/deu/src/vs/editor/browser/services/bulkEdit.i18n.json @@ -6,8 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "conflict": "Die folgenden Dateien wurden in der Zwischenzeit geändert: {0}", "summary.0": "Keine Änderungen vorgenommen", "summary.nm": "{0} Änderungen am Text in {1} Dateien vorgenommen", - "summary.n0": "{0} Änderungen am Text in einer Datei vorgenommen" + "summary.n0": "{0} Änderungen am Text in einer Datei vorgenommen", + "conflict": "Die folgenden Dateien wurden in der Zwischenzeit geändert: {0}" } \ No newline at end of file diff --git a/i18n/deu/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/deu/src/vs/editor/common/config/commonEditorConfig.i18n.json index d59f047152d..1e55149d610 100644 --- a/i18n/deu/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/deu/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -74,7 +74,7 @@ "cursorBlinking": "Steuert den Cursoranimationsstil. Gültige Werte sind \"blink\", \"smooth\", \"phase\", \"expand\" und \"solid\".", "mouseWheelZoom": "Schriftart des Editors vergrößern, wenn das Mausrad verwendet und die STRG-TASTE gedrückt wird", "cursorStyle": "Steuert den Cursorstil. Gültige Werte sind \"block\", \"block-outline\", \"line\", \"line-thin\", \"underline\" und \"underline-thin\".", - "lineCursorWidth": "Steuert die Breite des Cursors, falls editor.cursorStyle auf \"line\" gestellt ist.", + "cursorWidth": "Steuert die Breite des Cursors, falls editor.cursorStyle auf \"line\" gestellt ist.", "fontLigatures": "Aktiviert Schriftartligaturen.", "hideCursorInOverviewRuler": "Steuert die Sichtbarkeit des Cursors im Übersichtslineal.", "renderWhitespace": "Steuert, wie der Editor Leerzeichen rendert. Mögliche Optionen: \"none\", \"boundary\" und \"all\". Die Option \"boundary\" rendert keine einzelnen Leerzeichen zwischen Wörtern.", diff --git a/i18n/deu/src/vs/platform/environment/node/argv.i18n.json b/i18n/deu/src/vs/platform/environment/node/argv.i18n.json index b4236393f59..ea9187e53e7 100644 --- a/i18n/deu/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/deu/src/vs/platform/environment/node/argv.i18n.json @@ -10,11 +10,8 @@ "diff": "Vergleicht zwei Dateien.", "add": "Fügt einen oder mehrere Ordner zum letzten aktiven Fenster hinzu.", "goto": "Öffnet eine Datei im Pfad in der angegebenen Zeile und an der Zeichenposition.", - "newWindow": "Erzwingt eine neue Instanz des Codes.", - "reuseWindow": "Erzwingt das Öffnen einer Datei oder eines Ordners im letzten aktiven Fenster.", "wait": "Warten Sie, bis die Dateien geschlossen sind, bevor Sie zurück gehen können.", "locale": "Das zu verwendende Gebietsschema (z. B. en-US oder zh-TW).", - "userDataDir": "Gibt das Verzeichnis an, in dem Benutzerdaten gespeichert werden. Nützlich, wenn die Ausführung als \"root\" erfolgt.", "version": "Gibt die Version aus.", "help": "Gibt die Syntax aus.", "extensionHomePath": "Legen Sie den Stammpfad für Extensions fest.", @@ -33,7 +30,6 @@ "inspect-brk-extensions": "Erlaubt Debugging und Profiling für Erweiterungen, wobei der Erweiterungs-Host nach dem Starten pausiert wird. Überprüfen Sie die Entwicklertools für die Verbindungs-URI.", "disableGPU": "Deaktiviert die GPU-Hardwarebeschleunigung.", "uploadLogs": "Lädt die Logs der aktuellen Sitzung an einem sicheren Endpunkt hoch.", - "issue": "Ein Problem melden.", "usage": "Verwendung", "options": "Optionen", "paths": "Pfade", diff --git a/i18n/deu/src/vs/platform/issue/electron-main/issueService.i18n.json b/i18n/deu/src/vs/platform/issue/electron-main/issueService.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/deu/src/vs/platform/issue/electron-main/issueService.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/deu/src/vs/platform/list/browser/listService.i18n.json b/i18n/deu/src/vs/platform/list/browser/listService.i18n.json index b3e109027b1..99b767c2190 100644 --- a/i18n/deu/src/vs/platform/list/browser/listService.i18n.json +++ b/i18n/deu/src/vs/platform/list/browser/listService.i18n.json @@ -8,6 +8,5 @@ ], "workbenchConfigurationTitle": "Workbench", "multiSelectModifier.ctrlCmd": "Ist unter Windows und Linux der Taste \"STRG\" und unter macOSX der Befehlstaste zugeordnet.", - "multiSelectModifier.alt": "Ist unter Windows und Linux der Taste \"Alt\" und unter macOSX der Wahltaste zugeordnet. ", - "multiSelectModifier": "Der Modifizierer zum Hinzufügen eines Elements zu einer Mehrfachselektion mit der Maus (zum Beispiel bei Bäumen und Listen sofern unterstützt). \"ctrlCmd\" wird unter Windows und Linux der Taste \"STRG\" und unter macOSX der Befehlstaste zugeordnet. Die Mausbewegung \"Seitlich öffnen\" wird - sofern unterstützt - so angepasst, dass kein Konflikt mit dem Modifizierer zur Mehrfachselektion entsteht." + "multiSelectModifier.alt": "Ist unter Windows und Linux der Taste \"Alt\" und unter macOSX der Wahltaste zugeordnet. " } \ No newline at end of file diff --git a/i18n/deu/src/vs/platform/localizations/common/localizations.i18n.json b/i18n/deu/src/vs/platform/localizations/common/localizations.i18n.json new file mode 100644 index 00000000000..bbfd4984d81 --- /dev/null +++ b/i18n/deu/src/vs/platform/localizations/common/localizations.i18n.json @@ -0,0 +1,10 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "vscode.extension.contributes.localizations.languageName": "Name der Sprache in Englisch." +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json b/i18n/deu/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/deu/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/api/node/extHostWorkspace.i18n.json b/i18n/deu/src/vs/workbench/api/node/extHostWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/deu/src/vs/workbench/api/node/extHostWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json b/i18n/deu/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json new file mode 100644 index 00000000000..900a51155e6 --- /dev/null +++ b/i18n/deu/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "sizeB": "{0} B", + "sizeKB": "{0} KB", + "sizeMB": "{0} MB", + "sizeGB": "{0} GB", + "sizeTB": "{0} TB", + "resourceOpenExternalButton": "Bild mit externem Programm öffnen?", + "nativeBinaryError": "Die Datei wird nicht im Editor angezeigt, weil sie binär oder sehr groß ist oder eine nicht unterstützte Textcodierung verwendet.", + "imgMeta": "{0}x{1} {2}" +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/deu/src/vs/workbench/electron-browser/main.contribution.i18n.json index 2bccb0e3052..bb58ec89340 100644 --- a/i18n/deu/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -35,7 +35,6 @@ "panelDefaultLocation": "Steuert die Standardposition des Panels. Dieses kann entweder unterhalb oder rechts von der Workbench angezeigt werden.", "statusBarVisibility": "Steuert die Sichtbarkeit der Statusleiste im unteren Bereich der Workbench.", "activityBarVisibility": "Steuert die Sichtbarkeit der Aktivitätsleiste in der Workbench.", - "fontAliasing": "Steuert die Schriftartaliasingmethode in der Workbench.\n- default: Subpixel-Schriftartglättung. Auf den meisten Nicht-Retina-Displays wird Text bei dieser Einstellung am schärfsten dargestellt.\n- antialiased: Glättet die Schriftart auf der Pixelebene (im Gegensatz zur Subpixelebene). Bei dieser Einstellung kann die Schriftart insgesamt heller wirken.\n- none: Deaktiviert die Schriftartglättung. Text wird mit gezackten scharfen Kanten dargestellt.\n", "workbench.fontAliasing.default": "Subpixel-Schriftartglättung. Auf den meisten Nicht-Retina-Displays wird Text bei dieser Einstellung am schärfsten dargestellt.", "workbench.fontAliasing.antialiased": "Glättet die Schriftart auf der Pixelebene (im Gegensatz zur Subpixelebene). Bei dieser Einstellung kann die Schriftart insgesamt heller wirken.", "workbench.fontAliasing.none": "Deaktiviert die Schriftartglättung. Text wird mit gezackten scharfen Kanten dargestellt.", diff --git a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json index a8f32540914..25396cea2b5 100644 --- a/i18n/deu/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json @@ -19,12 +19,12 @@ "debugRequesMissing": "Das Attribut \"{0}\" fehlt in der ausgewählten Debugkonfiguration.", "debugTypeNotSupported": "Der konfigurierte Debugtyp \"{0}\" wird nicht unterstützt.", "debugTypeMissing": "Fehlende Eigenschaft `type` für die ausgewählte Startkonfiguration.", - "debugAnyway": "Trotzdem debuggen", "preLaunchTaskErrors": "Buildfehler während preLaunchTask \"{0}\".", "preLaunchTaskError": "Buildfehler während preLaunchTask \"{0}\".", "preLaunchTaskExitCode": "Der preLaunchTask \"{0}\" wurde mit dem Exitcode {1} beendet.", + "debugAnyway": "Trotzdem debuggen", + "cancel": "Abbrechen", "noFolderWorkspaceDebugError": "Debuggen der aktiven Datei ist nicht möglich. Stellen Sie sicher, dass sie auf einem Datenträger gespeichert ist und dass Sie die Debugerweiterung für diesen Dateityp installiert haben.", - "NewLaunchConfig": "Richten Sie die Startkonfigurationsdatei für Ihre Anwendung ein. {0}", "DebugTaskNotFound": "Der preLaunchTask \"{0}\" wurde nicht gefunden.", "taskNotTracked": "Der preLaunchTask \"{0}\" kann nicht getrackt werden." } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 30fe1480e35..c38717835d6 100644 --- a/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -18,5 +18,6 @@ "sort by name": "Sortieren nach: Name", "suggestProxyError": "Marketplace hat \"ECONNREFUSED\" zurückgegeben. Überprüfen Sie die Einstellung \"http.proxy\".", "extensions": "Erweiterungen", - "outdatedExtensions": "{0} veraltete Erweiterungen" + "outdatedExtensions": "{0} veraltete Erweiterungen", + "reloadNow": "Jetzt erneut laden" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json b/i18n/deu/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json index 823a36e8abd..81aadc9a45f 100644 --- a/i18n/deu/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json @@ -8,7 +8,7 @@ ], "openLogsFolder": "Protokollordner öffnen", "showLogs": "Protokolle anzeigen...", - "rendererProcess": "Fenster", + "emptyWindow": "Fenster", "extensionHost": "Erweiterungshost", "setLogLevel": "Protokollstufe festlegen", "debug": "Debuggen", @@ -17,5 +17,6 @@ "err": "Fehler", "critical": "Kritisch", "off": "Aus", - "selectLogLevel": "Protokollstufe auswählen" + "selectLogLevel": "Protokollstufe auswählen", + "default": "Standard" } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/markers/common/markers.i18n.json b/i18n/deu/src/vs/workbench/parts/markers/common/markers.i18n.json new file mode 100644 index 00000000000..3926e145e99 --- /dev/null +++ b/i18n/deu/src/vs/workbench/parts/markers/common/markers.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "totalProblems": "Insgesamt {0} Probleme", + "filteredProblems": "Zeigt {0} von {1} Problemen an" +} \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json b/i18n/deu/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json index c2bd58930f3..7adf632c309 100644 --- a/i18n/deu/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json @@ -17,7 +17,6 @@ "addLabel": "Tastenzuordnung hinzufügen", "removeLabel": "Tastenzuordnung entfernen", "resetLabel": "Tastenbindung zurücksetzen", - "showConflictsLabel": "Konflikte anzeigen", "copyLabel": "Kopieren", "error": "Fehler '{0}' beim Bearbeiten der Tastenzuordnung. Überprüfen Sie die Datei 'keybindings.json'.", "command": "Befehlstaste", diff --git a/i18n/deu/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json b/i18n/deu/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json index 8a85a8a5b1d..11ed109afd5 100644 --- a/i18n/deu/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json @@ -10,8 +10,6 @@ "SearchSettingsWidget.AriaLabel": "Einstellungen suchen", "SearchSettingsWidget.Placeholder": "Einstellungen suchen", "noSettingsFound": "Keine Ergebnisse", - "oneSettingFound": "1 Einstellung zugeordnet", - "settingsFound": "{0} Einstellungen zugeordnet", "totalSettingsMessage": "Insgesamt {0} Einstellungen", "defaultSettings": "Standardeinstellungen", "defaultFolderSettings": "Standardordnereinstellungen", diff --git a/i18n/deu/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json index aa8085e07e1..c8eac2ecc99 100644 --- a/i18n/deu/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json @@ -11,6 +11,5 @@ "toggleSCMViewlet": "SCM anzeigen", "view": "Anzeigen", "scmConfigurationTitle": "SCM", - "alwaysShowProviders": "Ob der Quellcodeverwaltungsanbieter-Abschnitt immer angezeigt wird.", - "inputCounter": "Steuert die Anzeige des Eingabezählers." + "alwaysShowProviders": "Ob der Quellcodeverwaltungsanbieter-Abschnitt immer angezeigt wird." } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json b/i18n/deu/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json index 0e46a3535a6..3754e386c33 100644 --- a/i18n/deu/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json @@ -8,8 +8,6 @@ ], "scm providers": "Quellcodeanbieter", "hideRepository": "Ausblenden", - "commitMessageInfo": "{0} Zeichen in aktueller Zeile", - "commitMessageCountdown": "{0} Zeichen in der aktuellen Zeile verbleibend", "installAdditionalSCMProviders": "Installiere weiter SCM Provider...", "no open repo": "Es gibt keine aktiven Quellcodeanbieter.", "source control": "Quellcodeverwaltung", diff --git a/i18n/deu/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json b/i18n/deu/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json index f07d83cc6d2..4bd363ba285 100644 --- a/i18n/deu/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json @@ -21,10 +21,6 @@ "JsonSchema.tasks.terminal": "Die terminal-Eigenschaft ist veraltet. Verwenden Sie stattdessen \"presentation\". ", "JsonSchema.tasks.group.kind": "Die Ausführungsgruppe der Aufgabe.", "JsonSchema.tasks.group.isDefault": "Definiert, ob diese Aufgabe die Standardaufgabe in der Gruppe ist.", - "JsonSchema.tasks.group.defaultBuild": "Markiert die Aufgaben als Standardbuildaufgabe.", - "JsonSchema.tasks.group.defaultTest": "Markiert die Aufgaben als Standardtestaufgabe.", - "JsonSchema.tasks.group.build": "Markiert die Aufgaben als eine Buildaufgabe, die über den Befehl \"Buildtask ausführen\" zugänglich ist.", - "JsonSchema.tasks.group.test": "Markiert die Aufgaben als eine Testaufgabe, die über den Befehl \"Testtask ausführen\" zugänglich ist.", "JsonSchema.tasks.group.none": "Weist die Aufgabe keiner Gruppe zu.", "JsonSchema.tasks.group": "Definiert die Ausführungsgruppe, zu der diese Aufgabe gehört. Zum Hinzufügen der Aufgabe zur Buildgruppe wird \"build\" unterstützt und zum Hinzufügen zur Testgruppe \"test\".", "JsonSchema.tasks.type": "Definiert, ob die Aufgabe als Prozess oder als Befehl innerhalb einer Shell ausgeführt wird.", diff --git a/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 588ee0abb2b..836f833e80f 100644 --- a/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -20,7 +20,6 @@ "terminal.integrated.fontFamily": "Steuert die Schriftartfamilie des Terminals. Der Standardwert ist \"editor.fontFamily\".", "terminal.integrated.fontSize": "Steuert den Schriftgrad des Terminals in Pixeln.", "terminal.integrated.lineHeight": "Steuert die Zeilenhöhe für das Terminal. Dieser Wert wird mit dem Schriftgrad des Terminals multipliziert, um die tatsächliche Zeilenhöhe in Pixeln zu erhalten.", - "terminal.integrated.enableBold": "Gibt an, ob Fettdruck im Terminal aktiviert wird. Dies muss durch die Terminalshell unterstützt werden.", "terminal.integrated.cursorBlinking": "Steuert, ob der Terminalcursor blinkt.", "terminal.integrated.cursorStyle": "Steuert den Stil des Terminalcursors.", "terminal.integrated.scrollback": "Steuert die maximale Anzahl von Zeilen, die das Terminal im Puffer beibehält.", diff --git a/i18n/deu/src/vs/workbench/parts/update/electron-browser/update.i18n.json b/i18n/deu/src/vs/workbench/parts/update/electron-browser/update.i18n.json index 96d98c35ea7..84809623043 100644 --- a/i18n/deu/src/vs/workbench/parts/update/electron-browser/update.i18n.json +++ b/i18n/deu/src/vs/workbench/parts/update/electron-browser/update.i18n.json @@ -6,12 +6,10 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "updateNow": "Jetzt aktualisieren", "later": "Später", "unassigned": "Nicht zugewiesen", "releaseNotes": "Anmerkungen zu dieser Version", "showReleaseNotes": "Anmerkungen zu dieser Version anzeigen", - "downloadNow": "Jetzt herunterladen", "read the release notes": "Willkommen bei {0} v{1}! Möchten Sie die Hinweise zu dieser Version lesen?", "licenseChanged": "Unsere Lizenzbedingungen haben sich geändert. Bitte lesen Sie die neuen Bedingungen.", "license": "Lizenz lesen", @@ -19,20 +17,20 @@ "64bitisavailable": "{0} für 64-Bit-Windows ist jetzt verfügbar!", "learn more": "Weitere Informationen", "updateIsReady": "Neues {0}-Update verfügbar.", - "thereIsUpdateAvailable": "Ein Update ist verfügbar.", - "updateAvailable": "{0} wird nach dem Neustart aktualisiert.", "noUpdatesAvailable": "Zurzeit sind keine Updates verfügbar.", + "download now": "Jetzt herunterladen", + "thereIsUpdateAvailable": "Ein Update ist verfügbar.", + "updateNow": "Jetzt aktualisieren", + "updateAvailableAfterRestart": "{0} wird nach dem Neustart aktualisiert.", "commandPalette": "Befehlspalette...", "settings": "Einstellungen", "keyboardShortcuts": "Tastenkombinationen", "userSnippets": "Benutzercodeausschnitte", "selectTheme.label": "Farbdesign", "themes.selectIconTheme.label": "Dateisymboldesign", - "not available": "Aktualisierungen nicht verfügbar", + "checkForUpdates": "Nach Aktualisierungen suchen...", "checkingForUpdates": "Überprüfen auf Updates...", - "DownloadUpdate": "Verfügbares Update herunterladen", "DownloadingUpdate": "Das Update wird heruntergeladen...", - "InstallingUpdate": "Update wird installiert...", - "restartToUpdate": "Für Update neu starten...", - "checkForUpdates": "Nach Aktualisierungen suchen..." + "installingUpdate": "Update wird installiert...", + "restartToUpdate": "Für Update neu starten..." } \ No newline at end of file diff --git a/i18n/deu/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json b/i18n/deu/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json index 1d6adbf8169..061b5acc586 100644 --- a/i18n/deu/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json +++ b/i18n/deu/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json @@ -8,6 +8,6 @@ ], "jsonParseFail": "Fehler beim Analysieren von {0}: {1}.", "fileReadFail": "Die Datei \"{0}\" kann nicht gelesen werden: {1}", - "jsonsParseFail": "Fehler beim Analysieren von {0} oder {1}: {2}.", + "jsonsParseReportErrors": "Fehler beim Analysieren von {0}: {1}.", "missingNLSKey": "Die Nachricht für den Schlüssel {0} wurde nicht gefunden." } \ No newline at end of file diff --git a/i18n/esn/extensions/css/client/out/cssMain.i18n.json b/i18n/esn/extensions/css/client/out/cssMain.i18n.json index 649760d7cc9..0100d5fd5a7 100644 --- a/i18n/esn/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/esn/extensions/css/client/out/cssMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cssserver.name": "Servidor de lenguaje CSS", "folding.start": "Inicio de la región plegable", "folding.end": "Fin de la región plegable" diff --git a/i18n/esn/extensions/git/out/askpass-main.i18n.json b/i18n/esn/extensions/git/out/askpass-main.i18n.json index 1c3a1d90636..8a54a52011a 100644 --- a/i18n/esn/extensions/git/out/askpass-main.i18n.json +++ b/i18n/esn/extensions/git/out/askpass-main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "missOrInvalid": "Faltan las credenciales o no son válidas." } \ No newline at end of file diff --git a/i18n/esn/extensions/git/out/autofetch.i18n.json b/i18n/esn/extensions/git/out/autofetch.i18n.json index 2e2bb63e461..d3aff558271 100644 --- a/i18n/esn/extensions/git/out/autofetch.i18n.json +++ b/i18n/esn/extensions/git/out/autofetch.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "yes": "Sí", "read more": "Leer más", "no": "No", diff --git a/i18n/esn/extensions/git/out/commands.i18n.json b/i18n/esn/extensions/git/out/commands.i18n.json index 9a3ea98e470..dad69ea9b3f 100644 --- a/i18n/esn/extensions/git/out/commands.i18n.json +++ b/i18n/esn/extensions/git/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "tag at": "Etiqueta en {0}", "remote branch at": "Rama remota en {0}", "create branch": "$(plus) crear nueva rama", @@ -25,7 +27,7 @@ "confirm revert": "¿Está seguro de que desea revertir los cambios seleccionados en {0}?", "revert": "Revertir cambios", "discard": "Descartar cambios", - "confirm delete": "¿Está seguro que desea eliminar {0}?", + "confirm delete": "¿Está seguro de que desea eliminar '{0}'? ", "delete file": "Eliminar archivo", "confirm discard": "¿Está seguro de que quiere descartar los cambios de {0}?", "confirm discard multiple": "¿Está seguro de que quiere descartar los cambios de {0} archivos?", @@ -60,20 +62,21 @@ "branch already exists": "Ya existe una rama como '{0}'", "select a branch to merge from": "Seleccione una rama desde la que fusionar", "merge conflicts": "Hay conflictos de fusión. Resuelvalos antes de confirmar.", - "tag name": "Nombre de la etiqueta", - "provide tag name": "Por favor proporcione un nombre de etiqueta", - "tag message": "Mensaje", + "tag name": "Nombre de etiqueta", + "provide tag name": "Por favor proporcione un nombre para la etiqueta ", + "tag message": "Mensaje ", "provide tag message": "Por favor, especifique un mensaje para anotar la etiqueta", "no remotes to fetch": "El repositorio no tiene remotos configurados de los que extraer.", "no remotes to pull": "El repositorio no tiene remotos configurados de los que extraer.", "pick remote pull repo": "Seleccione un origen remoto desde el que extraer la rama", "no remotes to push": "El repositorio no tiene remotos configurados en los que insertar.", "nobranch": "Extraiga del repositorio una rama para insertar un remoto.", + "confirm publish branch": "La rama ' {0} ' no tiene ninguna rama ascendente. ¿desea publicar esta rama?", "ok": "Aceptar", "push with tags success": "Insertado con etiquetas correctamente.", "pick remote": "Seleccionar un elemento remoto para publicar la rama '{0}':", "sync is unpredictable": "Esta acción insertará y extraerá confirmaciones en '{0}'.", - "never again": "No volver a mostrar", + "never again": "No volver a mostrar ", "no remotes to publish": "El repositorio no tiene remotos configurados en los que publicar.", "no changes stash": "No existen cambios para el guardado provisional.", "provide stash message": "Opcionalmente, proporcionar un mensaje para el guardado provisional", diff --git a/i18n/esn/extensions/git/out/main.i18n.json b/i18n/esn/extensions/git/out/main.i18n.json index cc3a1763339..43b001246df 100644 --- a/i18n/esn/extensions/git/out/main.i18n.json +++ b/i18n/esn/extensions/git/out/main.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "looking": "Buscando git en: {0}", "using git": "Usando GIT {0} desde {1}", "downloadgit": "Descargar Git", diff --git a/i18n/esn/extensions/git/out/model.i18n.json b/i18n/esn/extensions/git/out/model.i18n.json index 4fc1dc343c5..c192af5e7ab 100644 --- a/i18n/esn/extensions/git/out/model.i18n.json +++ b/i18n/esn/extensions/git/out/model.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "no repositories": "No hay repositorios disponibles", "pick repo": "Elija un repositorio" } \ No newline at end of file diff --git a/i18n/esn/extensions/git/out/repository.i18n.json b/i18n/esn/extensions/git/out/repository.i18n.json index 46723c0d880..d3f9307e8cb 100644 --- a/i18n/esn/extensions/git/out/repository.i18n.json +++ b/i18n/esn/extensions/git/out/repository.i18n.json @@ -1,13 +1,15 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "open": "Abrir", "index modified": "Índice modificado", "modified": "Modificado", - "index added": "Índice agregado", + "index added": "Índice añadido", "index deleted": "Índice Eliminado", "deleted": "Eliminado", "index renamed": "Nombre de Índice Cambiado", @@ -26,6 +28,8 @@ "merge changes": "Fusionar cambios mediante combinación", "staged changes": "Cambios almacenados provisionalmente", "changes": "Cambios", + "commitMessageCountdown": "quedan {0} caracteres en la línea actual", + "commitMessageWarning": "{0} caracteres sobre {1} en la línea actual", "ok": "Aceptar", "neveragain": "No volver a mostrar", "huge": "El repositorio Git '{0}' contiene muchos cambios activos, solamente un subconjunto de las características de Git serán habilitadas." diff --git a/i18n/esn/extensions/git/out/statusbar.i18n.json b/i18n/esn/extensions/git/out/statusbar.i18n.json index 290ec3deaf8..70365ed5c3a 100644 --- a/i18n/esn/extensions/git/out/statusbar.i18n.json +++ b/i18n/esn/extensions/git/out/statusbar.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "checkout": "Extraer del repositorio...", "sync changes": "Sincronizar cambios", "publish changes": "Publicar cambios", diff --git a/i18n/esn/extensions/git/package.i18n.json b/i18n/esn/extensions/git/package.i18n.json index 9e063dabc5c..63b41aa2e8f 100644 --- a/i18n/esn/extensions/git/package.i18n.json +++ b/i18n/esn/extensions/git/package.i18n.json @@ -71,6 +71,8 @@ "config.enableCommitSigning": "Habilitar confirmar firma con GPG.", "config.discardAllScope": "Controla qué cambios son descartados por el comando 'Descartar todos los cambios'. 'all' descarta todos los cambios. 'tracked' descarta sólo los ficheros en seguimiento. 'prompt' muestra un cuadro de diálogo para confirmar cada vez la acción ejecutada.", "config.decorations.enabled": "Controla si Git contribuye los colores y distintivos al explorador y a los editores abiertos.", + "config.promptToSaveFilesBeforeCommit": "Controla si Git debe comprobar los archivos no guardados antes de confirmar las actualizaciones. ", + "config.showInlineOpenFileAction": "Controla si se debe mostrar una acción de archivo abierto en la vista de cambios en Git", "colors.modified": "Color para recursos modificados.", "colors.deleted": "Color para los recursos eliminados.", "colors.untracked": "Color para los recursos a los que no se les hace seguimiento.", diff --git a/i18n/esn/extensions/grunt/out/main.i18n.json b/i18n/esn/extensions/grunt/out/main.i18n.json index a7fba536c38..3fa18fd6f4c 100644 --- a/i18n/esn/extensions/grunt/out/main.i18n.json +++ b/i18n/esn/extensions/grunt/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "La detección automática de Grunt para la carpeta {0} falló con el error: {1}" } \ No newline at end of file diff --git a/i18n/esn/extensions/gulp/out/main.i18n.json b/i18n/esn/extensions/gulp/out/main.i18n.json index 88f0fd24af4..f3c2b826274 100644 --- a/i18n/esn/extensions/gulp/out/main.i18n.json +++ b/i18n/esn/extensions/gulp/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "La detección automática de gulp para la carpeta {0} falló con el error: {1}" } \ No newline at end of file diff --git a/i18n/esn/extensions/html/client/out/htmlMain.i18n.json b/i18n/esn/extensions/html/client/out/htmlMain.i18n.json index d2fd055fb74..9900526f77a 100644 --- a/i18n/esn/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/esn/extensions/html/client/out/htmlMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "htmlserver.name": "Servidor de lenguaje HTML", "folding.start": "Inicio de la región plegable", "folding.end": "Fin de la región plegable" diff --git a/i18n/esn/extensions/jake/out/main.i18n.json b/i18n/esn/extensions/jake/out/main.i18n.json index 923e70b5173..48b0bb9fd58 100644 --- a/i18n/esn/extensions/jake/out/main.i18n.json +++ b/i18n/esn/extensions/jake/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "La detección automática de Jake para la carpeta {0} falló con el error: {1}" } \ No newline at end of file diff --git a/i18n/esn/extensions/json/client/out/jsonMain.i18n.json b/i18n/esn/extensions/json/client/out/jsonMain.i18n.json index 21b4c956570..253bfb394d3 100644 --- a/i18n/esn/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/esn/extensions/json/client/out/jsonMain.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "jsonserver.name": "Servidor de lenguaje JSON" } \ No newline at end of file diff --git a/i18n/esn/extensions/markdown/out/commands.i18n.json b/i18n/esn/extensions/markdown/out/commands.i18n.json index 98e4bfb36f8..de2da81ae06 100644 --- a/i18n/esn/extensions/markdown/out/commands.i18n.json +++ b/i18n/esn/extensions/markdown/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "previewTitle": "Vista Previa {0}", "onPreviewStyleLoadError": "No se pudo cargar 'markdown.styles': {0}" } \ No newline at end of file diff --git a/i18n/esn/extensions/markdown/out/features/previewContentProvider.i18n.json b/i18n/esn/extensions/markdown/out/features/previewContentProvider.i18n.json index dc058764af6..ef0bed92441 100644 --- a/i18n/esn/extensions/markdown/out/features/previewContentProvider.i18n.json +++ b/i18n/esn/extensions/markdown/out/features/previewContentProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "preview.securityMessage.text": "Se ha deshabilitado parte del contenido de este documento", "preview.securityMessage.title": "Se ha deshabilitado el contenido potencialmente inseguro en la previsualización de Markdown. Para permitir el contenido inseguro o habilitar scripts cambie la configuración de la previsualización de Markdown", "preview.securityMessage.label": "Alerta de seguridad de contenido deshabilitado" diff --git a/i18n/esn/extensions/markdown/out/security.i18n.json b/i18n/esn/extensions/markdown/out/security.i18n.json index c4fee815196..09a54bc2ce3 100644 --- a/i18n/esn/extensions/markdown/out/security.i18n.json +++ b/i18n/esn/extensions/markdown/out/security.i18n.json @@ -1,18 +1,19 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "strict.title": "Estricto", + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "strict.title": "Strict", "strict.description": "Cargar solo el contenido seguro", - "insecureContent.title": "Permitir contenido inseguro", - "insecureContent.description": "Habilitar la carga del contenido sobre http", + "insecureContent.title": "Permitir contenido no seguro", + "insecureContent.description": "Habilitar el contenido de carga sobre http", "disable.title": "Deshabilitar", "disable.description": "Permitir todo el contenido y la ejecución de scripts. No se recomienda.", "moreInfo.title": "Más información", "enableSecurityWarning.title": "Habilitar advertencias de seguridad de vista previa en este espacio de trabajo", "disableSecurityWarning.title": "Deshabilitar advertencias de seguridad de vista previa en este espacio de trabajo", - "toggleSecurityWarning.description": "No afecta el nivel de seguridad del contenido", "preview.showPreviewSecuritySelector.title": "Seleccione configuración de seguridad para las previsualizaciones de Markdown en esta área de trabajo" } \ No newline at end of file diff --git a/i18n/esn/extensions/merge-conflict/out/codelensProvider.i18n.json b/i18n/esn/extensions/merge-conflict/out/codelensProvider.i18n.json index 22ca13053b5..b29756ff139 100644 --- a/i18n/esn/extensions/merge-conflict/out/codelensProvider.i18n.json +++ b/i18n/esn/extensions/merge-conflict/out/codelensProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "acceptCurrentChange": "Aceptar cambio actual", "acceptIncomingChange": "Aceptar cambio entrante", "acceptBothChanges": "Aceptar ambos cambios", diff --git a/i18n/esn/extensions/merge-conflict/out/commandHandler.i18n.json b/i18n/esn/extensions/merge-conflict/out/commandHandler.i18n.json index e94eadacd8d..81c3d05e168 100644 --- a/i18n/esn/extensions/merge-conflict/out/commandHandler.i18n.json +++ b/i18n/esn/extensions/merge-conflict/out/commandHandler.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cursorNotInConflict": "El cursor de edición no se encuentra en un conflicto de fusión", "compareChangesTitle": "{0}: Cambios actuales ⟷ Cambios entrantes", "cursorOnCommonAncestorsRange": "El cursor del editor está dentro del bloque de ancestros comunes, por favor muévalo al bloque \"actual\" o al \"entrante\"", diff --git a/i18n/esn/extensions/merge-conflict/out/mergeDecorator.i18n.json b/i18n/esn/extensions/merge-conflict/out/mergeDecorator.i18n.json index 9cf24c3ecc5..88dc7a9a23a 100644 --- a/i18n/esn/extensions/merge-conflict/out/mergeDecorator.i18n.json +++ b/i18n/esn/extensions/merge-conflict/out/mergeDecorator.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "currentChange": "(Cambio actual)", "incomingChange": "(Cambio entrante)" } \ No newline at end of file diff --git a/i18n/esn/extensions/npm/out/main.i18n.json b/i18n/esn/extensions/npm/out/main.i18n.json index 941f83360df..888ecbd58c8 100644 --- a/i18n/esn/extensions/npm/out/main.i18n.json +++ b/i18n/esn/extensions/npm/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "npm.parseError": "Detección de tareas de nueva gestión pública: no se pudo analizar el archivo {0}" + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "npm.parseError": "Detección de tareas de la NMP: error al analizar el archivo {0}" } \ No newline at end of file diff --git a/i18n/esn/extensions/php/out/features/validationProvider.i18n.json b/i18n/esn/extensions/php/out/features/validationProvider.i18n.json index 20747e0dc35..a2041159412 100644 --- a/i18n/esn/extensions/php/out/features/validationProvider.i18n.json +++ b/i18n/esn/extensions/php/out/features/validationProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "php.useExecutablePath": "¿Permite la ejecución de {0} (definido como valor del área de trabajo) para detectar errores en archivos PHP?", "php.yes": "Permitir", "php.no": "No permitir", diff --git a/i18n/esn/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json b/i18n/esn/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json new file mode 100644 index 00000000000..aa0a765d692 --- /dev/null +++ b/i18n/esn/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "previewOnGitHub": "Visualizar en GitHub", + "similarIssues": "Problemas similares", + "noResults": "No se encontraron resultados", + "stepsToReproduce": "Pasos para reproducir", + "bugDescription": "¿Cómo se enfrentó a este problema? ¿Qué pasos hay que realizar para reproducir de forma fiable el problema? ¿Qué esperabas que ocurriera y qué pasó realmente?", + "performanceIssueDesciption": "¿Cuándo ocurrió este problema de rendimiento? Por ejemplo, ¿se produce al iniciar o después de una serie específica de acciones? Cualquier detalle que usted puede proporcionar ayuda a nuestra investigación", + "description": "Descripción", + "disabledExtensions": "Las extensiones están deshabilitadas" +} \ No newline at end of file diff --git a/i18n/esn/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json b/i18n/esn/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json new file mode 100644 index 00000000000..4f166939ad6 --- /dev/null +++ b/i18n/esn/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json @@ -0,0 +1,28 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "completeInEnglish": "Por favor complete el formulario en inglés.", + "issueTypeLabel": "Quiero enviar un", + "bugReporter": "Informe de errores", + "performanceIssue": "Problema de rendimiento", + "featureRequest": "Petición de característica", + "issueTitleLabel": "Título", + "issueTitleRequired": "Por favor, introduzca un título.", + "vscodeVersion": "Versión de VS Code", + "osVersion": "Versión del sistema operativo", + "systemInfo": "Mi información del sistema", + "sendData": "Enviar mis datos", + "processes": "Procesos actualmente en ejecución", + "workspaceStats": "Estadísticas de mi área de trabajo", + "extensions": "Mis extensiones", + "disableExtensions": "Deshabilitar todas las extensiones y volver a cargar la ventana", + "showRunningExtensions": "Ver todas las extensiones en ejecución", + "githubMarkdown": "Apoyamos Markdown tipo GitHub. Podrá editar su problema y añadir capturas de pantallas para cuando lo previsualicemos en GitHub.", + "issueDescriptionRequired": "Por favor, introduzca una descripción.", + "loadingData": "Cargando datos..." +} \ No newline at end of file diff --git a/i18n/esn/src/vs/code/electron-main/logUploader.i18n.json b/i18n/esn/src/vs/code/electron-main/logUploader.i18n.json new file mode 100644 index 00000000000..2b996b4f1b9 --- /dev/null +++ b/i18n/esn/src/vs/code/electron-main/logUploader.i18n.json @@ -0,0 +1,21 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "invalidEndpoint": "Punto final del registro Uploader no válido", + "beginUploading": "Cargando ", + "didUploadLogs": "Carga exitosa. ID. del archivo de registro: {0}", + "userDeniedUpload": "Carga cancelada", + "logUploadPromptHeader": "¿Cargar registros de sesión para fijar el punto final?", + "logUploadPromptBody": "Por favor, revise sus archivos de registro aquí: '{0}'", + "logUploadPromptBodyDetails": "Los registros pueden contener información personal como las rutas completas y contenido de los archivos.", + "logUploadPromptKey": "He revisado mis registros (entrar 'y' para confirmar la carga)", + "postError": "Error al publicar los registros: {0}", + "responseError": "Error al publicar los registros. Consiguió {0} - {1} ", + "parseError": "Error al analizar la respuesta", + "zipError": "Error al comprimir los registros: {0}\n\n" +} \ No newline at end of file diff --git a/i18n/esn/src/vs/code/electron-main/menus.i18n.json b/i18n/esn/src/vs/code/electron-main/menus.i18n.json index b091140c2e7..0d135aa9b4b 100644 --- a/i18n/esn/src/vs/code/electron-main/menus.i18n.json +++ b/i18n/esn/src/vs/code/electron-main/menus.i18n.json @@ -90,6 +90,7 @@ "miMarker": "&&Problemas", "miAdditionalViews": "Vistas &&adicionales", "miCommandPalette": "&&Paleta de comandos...", + "miOpenView": "&& Vista abierta...", "miToggleFullScreen": "Alternar &&pantalla completa", "miToggleZenMode": "Alternar modo zen", "miToggleMenuBar": "Alternar &&barra de menús", @@ -180,12 +181,13 @@ "miConfigureTask": "&&Configurar Tareas...", "miConfigureBuildTask": "Configurar Tarea de Compilación &&Predeterminada...", "accessibilityOptionsWindowTitle": "Opciones de accesibilidad", - "miRestartToUpdate": "Reiniciar para actualizar...", + "miCheckForUpdates": "Buscar actualizaciones...", "miCheckingForUpdates": "Buscando actualizaciones...", "miDownloadUpdate": "Descargar actualización disponible", "miDownloadingUpdate": "Descargando actualización...", + "miInstallUpdate": "Instalar actualización...", "miInstallingUpdate": "Instalando actualización...", - "miCheckForUpdates": "Buscar actualizaciones...", + "miRestartToUpdate": "Reiniciar para actualizar...", "aboutDetail": "Versión: {0}\nConfirmación: {1}\nFecha: {2}\nShell: {3}\nRepresentador: {4}\nNodo {5}\nArquitectura {6}", "okButton": "Aceptar", "copy": "&&Copiar" diff --git a/i18n/esn/src/vs/editor/browser/services/bulkEdit.i18n.json b/i18n/esn/src/vs/editor/browser/services/bulkEdit.i18n.json index 847c93f6a4c..2aba6b00756 100644 --- a/i18n/esn/src/vs/editor/browser/services/bulkEdit.i18n.json +++ b/i18n/esn/src/vs/editor/browser/services/bulkEdit.i18n.json @@ -6,8 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "conflict": "Estos archivos han cambiado durante el proceso: {0}", "summary.0": "No se realizaron ediciones", "summary.nm": "{0} ediciones de texto en {1} archivos", - "summary.n0": "{0} ediciones de texto en un archivo" + "summary.n0": "{0} ediciones de texto en un archivo", + "conflict": "Estos archivos han cambiado durante el proceso: {0}" } \ No newline at end of file diff --git a/i18n/esn/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/esn/src/vs/editor/common/config/commonEditorConfig.i18n.json index ce2c684b754..2ba6f8738b8 100644 --- a/i18n/esn/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/esn/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -28,6 +28,7 @@ "scrollBeyondLastLine": "Controla si el editor se seguirá desplazando después de la última línea", "smoothScrolling": "Controla si el editor se desplaza con una animación", "minimap.enabled": "Controla si se muestra el minimapa", + "minimap.side": "Controla el lado dónde rendir el minimapa. Los valores posibles son 'derecha' e 'izquierda'", "minimap.showSlider": "Controla si se oculta automáticamente el control deslizante del minimapa. Los valores posibles son \"always\" y \"mouseover\".", "minimap.renderCharacters": "Presentar los caracteres reales en una línea (por oposición a bloques de color)", "minimap.maxColumn": "Limitar el ancho del minimapa para presentar como mucho un número de columnas determinado", @@ -74,7 +75,7 @@ "cursorBlinking": "Controlar el estilo de animación del cursor. Los valores posibles son \"blink\", \"smooth\", \"phase\", \"expand\" y \"solid\".", "mouseWheelZoom": "Ampliar la fuente del editor cuando se use la rueda del mouse mientras se presiona Ctrl", "cursorStyle": "Controla el estilo del cursor. Los valores aceptados son \"block\", \"block-outline\", \"line\", \"line-thin\", \"underline\" y \"underline-thin\"", - "lineCursorWidth": "Controla el ancho del cursor cuando editor.cursorStyle se establece a 'line'", + "cursorWidth": "Controla el ancho del cursor cuando editor.cursorStyle se establece a 'line'", "fontLigatures": "Habilita las ligaduras tipográficas.", "hideCursorInOverviewRuler": "Controla si el cursor debe ocultarse en la regla de visión general.", "renderWhitespace": "Controla cómo debe representar el editor los espacios en blanco. Las posibilidades son \"none\", \"boundary\" y \"all\". La opción \"boundary\" no representa los espacios individuales entre palabras.", diff --git a/i18n/esn/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json b/i18n/esn/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json index 4c44f743a8e..bb06f8067e0 100644 --- a/i18n/esn/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json +++ b/i18n/esn/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json @@ -6,5 +6,7 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "smartSelect.jumpBracket": "Ir al corchete" + "overviewRulerBracketMatchForeground": "Resumen color de marcador de regla para corchetes.", + "smartSelect.jumpBracket": "Ir al corchete", + "smartSelect.selectToBracket": "Seleccione esta opción para soporte" } \ No newline at end of file diff --git a/i18n/esn/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json b/i18n/esn/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json index 30a2803c33c..46db7e51be9 100644 --- a/i18n/esn/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json +++ b/i18n/esn/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json @@ -8,5 +8,6 @@ ], "quickFixWithKb": "Mostrar correcciones ({0})", "quickFix": "Mostrar correcciones", - "quickfix.trigger.label": "Corrección rápida" + "quickfix.trigger.label": "Corrección rápida", + "refactor.label": "Refactorizar" } \ No newline at end of file diff --git a/i18n/esn/src/vs/platform/environment/node/argv.i18n.json b/i18n/esn/src/vs/platform/environment/node/argv.i18n.json index 3d99fabfd4f..b63b822852d 100644 --- a/i18n/esn/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/esn/src/vs/platform/environment/node/argv.i18n.json @@ -10,11 +10,10 @@ "diff": "Comparar dos archivos entre sí.", "add": "Agregar carpetas a la última ventana activa.", "goto": "Abrir un archivo en la ruta de acceso de la línea y posición de carácter especificadas.", - "newWindow": "Fuerce una nueva instancia de Code.", - "reuseWindow": "Fuerce la apertura de un archivo o carpeta en la última ventana activa.", + "newWindow": "Fuerza para abrir una nueva ventana.", + "reuseWindow": "Forzar para abrir un archivo o carpeta en la última ventana activa.", "wait": "Espere a que los archivos sean cerrados antes de volver.", "locale": "La configuración regional que se usará (por ejemplo, en-US o zh-TW).", - "userDataDir": "Especifica el directorio en que se conservan los datos de usuario; es útil cuando se ejecuta como raíz.", "version": "Versión de impresión.", "help": "Imprima el uso.", "extensionHomePath": "Establezca la ruta de acceso raíz para las extensiones.", @@ -33,7 +32,6 @@ "inspect-brk-extensions": "Permitir la depuración y el perfil de las extensiones con el host de la extensión pausado después del inicio. Revisar las herramientas de desarrollador para la conexión uri.", "disableGPU": "Deshabilita la aceleración de hardware de GPU.", "uploadLogs": "Carga los registros de la sesión actual a un extremo.", - "issue": "Notificar un problema. ", "usage": "Uso", "options": "opciones", "paths": "rutas de acceso", diff --git a/i18n/esn/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json b/i18n/esn/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json index 60038f39bf9..4f128e2031a 100644 --- a/i18n/esn/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json +++ b/i18n/esn/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json @@ -13,6 +13,7 @@ "cancel": "Cancelar", "errorInstallingDependencies": "Error instalando dependencias. {0}", "notFoundCompatible": "No se pueden instalar '{0}'; no hay ninguna versión disponible compatible con VS Code '{1}'. ", + "malicious extension": "No se puede instalar la extensión ya que se informó que era problemático.", "notFoundCompatibleDependency": "No se puede instalar porque no se encuentra la extensión dependiente '{0}' compatible con la versión actual '{1}' del VS Code.", "quitCode": "No se puede instalar la extensión. Por favor, salga e inicie VS Code antes de reinstalarlo. ", "exitCode": "No se puede instalar la extensión. Por favor, salga e inicie VS Code antes de reinstalarlo. ", diff --git a/i18n/esn/src/vs/platform/issue/electron-main/issueService.i18n.json b/i18n/esn/src/vs/platform/issue/electron-main/issueService.i18n.json new file mode 100644 index 00000000000..7ed60aab299 --- /dev/null +++ b/i18n/esn/src/vs/platform/issue/electron-main/issueService.i18n.json @@ -0,0 +1,10 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "issueReporter": "Reportero de tema" +} \ No newline at end of file diff --git a/i18n/esn/src/vs/platform/list/browser/listService.i18n.json b/i18n/esn/src/vs/platform/list/browser/listService.i18n.json index 3c888995b35..83f5d1c197f 100644 --- a/i18n/esn/src/vs/platform/list/browser/listService.i18n.json +++ b/i18n/esn/src/vs/platform/list/browser/listService.i18n.json @@ -9,5 +9,7 @@ "workbenchConfigurationTitle": "Área de trabajo", "multiSelectModifier.ctrlCmd": "Se asigna a \"Control\" en Windows y Linux y a \"Comando\" en macOS.", "multiSelectModifier.alt": "Se asigna a \"Alt\" en Windows y Linux y a \"Opción\" en macOS.", - "multiSelectModifier": "El modificador que se usará para agregar un elemento a una selección múltiple con el mouse (por ejemplo en listas, si se admite). \"ctrlCmd\" se asigna a \"Control\" en Windows y Linux y a \"Comando\" en macOS. S. Los gestos del mouse \"Abrir al margen\", si se admite, se adaptarán de modo que no entren en conflicto con el modificador multicurso. " + "multiSelectModifier": "El modificador que se usará para agregar un elemento en árboles y listas a una selección múltiple con el mouse (por ejemplo en el explorador, los editores abiertos y la vista SCM). ' ctrlCmd ' se asigna a ' control ' en Windows y Linux y a ' Command ' en macOS. Los gestos de ratón \"abrir a lado\", si se admiten, se adaptarán de tal manera que no estén en conflicto con el modificador multiselección.", + "openMode.singleClick": "Abre elementos en solo clic de ratón.", + "openMode.doubleClick": "Abre elementos en doble clic del ratón. " } \ No newline at end of file diff --git a/i18n/esn/src/vs/platform/localizations/common/localizations.i18n.json b/i18n/esn/src/vs/platform/localizations/common/localizations.i18n.json new file mode 100644 index 00000000000..d3e09c156a2 --- /dev/null +++ b/i18n/esn/src/vs/platform/localizations/common/localizations.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "vscode.extension.contributes.localizations": "Contribuye a la localización del editor", + "vscode.extension.contributes.localizations.languageId": "Identificador del idioma en el que se traducen las cadenas de visualización.", + "vscode.extension.contributes.localizations.languageName": "Nombre del idioma en inglés.", + "vscode.extension.contributes.localizations.languageNameLocalized": "Nombre de la lengua en el idioma contribuido.", + "vscode.extension.contributes.localizations.translations": "Lista de asociados a la lengua de las traducciones.", + "vscode.extension.contributes.localizations.translations.id": "ID de VS Code o extensión a la que se ha contribuido esta traducción. ID de código vs es siempre ' vscode ' y de extensión debe ser en formato ' publisherID. extensionName '.", + "vscode.extension.contributes.localizations.translations.id.pattern": "ID debe ser ' vscode ' o en formato ' publisherId.extensionName ' para traducer VS Code o una extensión respectivamente.", + "vscode.extension.contributes.localizations.translations.path": "Una ruta de acceso relativa a un archivo que contiene traducciones para el idioma." +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json b/i18n/esn/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json new file mode 100644 index 00000000000..e45fa0afa61 --- /dev/null +++ b/i18n/esn/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json @@ -0,0 +1,14 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "folderStatusMessageAddSingleFolder": "La extensión ' {0} ' agregó 1 carpeta al espacio de trabajo ", + "folderStatusMessageAddMultipleFolders": "La extensión ' {0} ' agregó {1} carpetas al espacio de trabajo", + "folderStatusMessageRemoveSingleFolder": "Extensión ' {0} ' eliminó 1 carpeta del espacio de trabajo ", + "folderStatusMessageRemoveMultipleFolders": "La extensión ' {0} ' eliminó las carpetas {1} del espacio de trabajo ", + "folderStatusChangeFolder": "La extensión ' {0} ' cambió las carpetas del espacio de trabajo" +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/api/node/extHostWorkspace.i18n.json b/i18n/esn/src/vs/workbench/api/node/extHostWorkspace.i18n.json new file mode 100644 index 00000000000..e0b45695e7b --- /dev/null +++ b/i18n/esn/src/vs/workbench/api/node/extHostWorkspace.i18n.json @@ -0,0 +1,10 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "updateerror": "La extensión ' {0} ' no pudo actualizar las carpetas del área de trabajo: {1}" +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json b/i18n/esn/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json new file mode 100644 index 00000000000..1f1a35ca71c --- /dev/null +++ b/i18n/esn/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json @@ -0,0 +1,18 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "sizeB": "{0} B", + "sizeKB": "{0} KB", + "sizeMB": "{0} MB", + "sizeGB": "{0} GB", + "sizeTB": "{0} TB", + "resourceOpenExternalButton": "¿Abrir la imagen mediante un programa externo?", + "nativeBinaryError": "El archivo no se mostrará en el editor porque es binario, muy grande o usa una codificación de texto no compatible.", + "zoom.action.fit.label": "Imagen completa", + "imgMeta": "{0} x {1} {2}" +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/esn/src/vs/workbench/electron-browser/actions.i18n.json index 2bc7b739a8f..f29db7d5848 100644 --- a/i18n/esn/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/esn/src/vs/workbench/electron-browser/actions.i18n.json @@ -31,7 +31,6 @@ "openRecent": "Abrir Reciente...", "quickOpenRecent": "Abrir Reciente Rapidamente...", "closeMessages": "Cerrar mensajes de notificación", - "openIssueReporter": "Abrir Reportador de Problemas", "reportIssueInEnglish": "Notificar problema", "reportPerformanceIssue": "Notificar problema de rendimiento", "keybindingsReference": "Referencia de métodos abreviados de teclado", diff --git a/i18n/esn/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/esn/src/vs/workbench/electron-browser/main.contribution.i18n.json index cd8bbf8734e..58e16bef6b1 100644 --- a/i18n/esn/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -35,10 +35,11 @@ "panelDefaultLocation": "Controla la ubicación predeterminada del panel. Puede mostrarse en la parte inferior o a la derecha de la mesa de banco.", "statusBarVisibility": "Controla la visibilidad de la barra de estado en la parte inferior del área de trabajo.", "activityBarVisibility": "Controla la visibilidad de la barra de actividades en el área de trabajo.", - "fontAliasing": "Controla el método de suavizado de fuentes en el área de trabajo.\n- default: suavizado de fuentes en subpíxeles. En la mayoría de las pantallas que no son Retina, esta opción muestra el texto más nítido.\n- antialiased: suaviza las fuentes en píxeles, en lugar de subpíxeles. Puede hacer que las fuentes se vean más claras en general\n- none: deshabilita el suavizado de fuentes. El texto se muestra con bordes nítidos irregulares.", + "fontAliasing": "Controla el método de suavizado de fuentes en la mesa de trabajo.\n-por defecto: subpíxel suavizado de fuentes. En la mayoría las pantallas retina no dará el texto más agudo - alisado: suavizar la fuente a nivel del píxel, a diferencia de los subpíxeles. Puede hacer que la fuente aparezca más general - ninguno: desactiva el suavizado de fuentes. Texto se mostrará con dentados filos - auto: se aplica el 'default' o 'antialiasing' automáticamente en función de la DPI de la muestra.", "workbench.fontAliasing.default": "Suavizado de fuentes en subpíxeles. En la mayoría de las pantallas que no son Retina, esta opción muestra el texto más nítido.", "workbench.fontAliasing.antialiased": "Suaviza las fuentes en píxeles, en lugar de subpíxeles. Puede hacer que las fuentes se vean más claras en general.", "workbench.fontAliasing.none": "Deshabilita el suavizado de fuentes. El texto se muestra con bordes nítidos irregulares.", + "workbench.fontAliasing.auto": "Aplica ' default ' o ' antialiased ' automáticamente basándose en la DPI de las pantallas.", "enableNaturalLanguageSettingsSearch": "Controla si habilita el modo de búsqueda de lenguaje natural para la configuración.", "windowConfigurationTitle": "Ventana", "window.openFilesInNewWindow.on": "Los archivos se abrirán en una nueva ventana", diff --git a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json index b65c5dc123b..64d4f38579f 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json @@ -32,8 +32,12 @@ "app.launch.json.configurations": "Lista de configuraciones. Agregue configuraciones nuevas o edite las ya existentes con IntelliSense.", "app.launch.json.compounds": "Lista de elementos compuestos. Cada elemento compuesto hace referencia a varias configuraciones, que se iniciarán conjuntamente.", "app.launch.json.compound.name": "Nombre del elemento compuesto. Aparece en el menú desplegable de la configuración de inicio.", + "useUniqueNames": "Por favor utilice nombres de configuración exclusivos.", + "app.launch.json.compound.folder": "Nombre de la carpeta en la que se encuentra el compuesto.", "app.launch.json.compounds.configurations": "Nombres de las configuraciones que se iniciarán como parte de este elemento compuesto.", "debugNoType": "El valor \"type\" del adaptador de depuración no se puede omitir y debe ser de tipo \"string\".", "selectDebug": "Seleccionar entorno", - "DebugConfig.failed": "No se puede crear el archivo \"launch.json\" dentro de la carpeta \".vscode\" ({0})." + "DebugConfig.failed": "No se puede crear el archivo \"launch.json\" dentro de la carpeta \".vscode\" ({0}).", + "workspace": "espacio de trabajo", + "user settings": "configuración de usuario" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json index 761a53faff0..c412613784b 100644 --- a/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json @@ -13,18 +13,22 @@ "breakpointAdded": "Punto de interrupción agregado, línea {0}, archivo {1}", "breakpointRemoved": "Punto de interrupción quitado, línea {0}, archivo {1}", "compoundMustHaveConfigurations": "El compuesto debe tener configurado el atributo \"configurations\" a fin de iniciar varias configuraciones.", + "noConfigurationNameInWorkspace": "No se pudo encontrar la configuración de inicio ' {0} ' en el espacio de trabajo.", + "multipleConfigurationNamesInWorkspace": "Hay varios configuraciones de inicio ' {0} ' en el espacio de trabajo. Utilice el nombre de la carpeta para calificar la configuración.", + "noFolderWithName": "No se puede encontrar la carpeta con el nombre ' {0} ' para la configuración ' {1} ' en el compuesto ' {2} '.", "configMissing": "La configuración \"{0}\" falta en \"launch.json\".", "launchJsonDoesNotExist": "'launch.json' no existe.", "debugRequestNotSupported": "El atributo '{0}' tiene un valor no admitido '{1}' en la configuración de depuración seleccionada.", "debugRequesMissing": "El atributo '{0}' está ausente en la configuración de depuración elegida. ", "debugTypeNotSupported": "El tipo de depuración '{0}' configurado no es compatible.", "debugTypeMissing": "Falta la propiedad \"type\" en la configuración de inicio seleccionada. ", - "debugAnyway": "Depurar de todos modos", "preLaunchTaskErrors": "Errores de compilación durante la tarea preLaunchTask '{0}'.", "preLaunchTaskError": "Error de compilación durante la tarea preLaunchTask '{0}'.", "preLaunchTaskExitCode": "La tarea preLaunchTask '{0}' finalizó con el código de salida {1}.", + "debugAnyway": "Depurar de todos modos", + "showErrors": "Mostrar errores", + "cancel": "Cancelar", "noFolderWorkspaceDebugError": "El archivo activo no se puede depurar. Compruebe que se ha guardado en el disco y que tiene una extensión de depuración instalada para ese tipo de archivo.", - "NewLaunchConfig": "Defina los valores del archivo de configuración de inicio para la aplicación. {0}", "DebugTaskNotFound": "No se encontró el elemento preLaunchTask '{0}'.", "taskNotTracked": "No se puede realizar un seguimiento de la tarea preLaunchTask '{0}'." } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json index 4c6bcfe5525..8e8788e3b6f 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json @@ -33,6 +33,10 @@ "view id": "Id.", "view name": "Nombre", "view location": "Donde", + "localizations": "Localizaciones ({0}) ", + "localizations language id": "ID. de idioma", + "localizations language name": "Nombre de idioma", + "localizations localized language name": "Nombre de idioma (localizado)", "colorThemes": "Temas de color ({0})", "iconThemes": "Temas del icono ({0})", "colors": "Colores ({0})", diff --git a/i18n/esn/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json index 04041e7e74c..8eeef34077f 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json @@ -52,6 +52,8 @@ "configureWorkspaceRecommendedExtensions": "Configurar extensiones recomendadas (área de trabajo)", "configureWorkspaceFolderRecommendedExtensions": "Configurar extensiones recomendadas (Carpeta del área de trabajo)", "builtin": "Integrada", + "malicious tooltip": "Se informó de que esta extensión era problemática.", + "malicious": "Malintencionado", "disableAll": "Deshabilitar todas las extensiones instaladas", "disableAllWorkspace": "Deshabilitar todas las extensiones instaladas para esta área de trabajo", "enableAll": "Habilitar todas las extensiones instaladas", diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionProfileService.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionProfileService.i18n.json index 6f2c3aede5e..b0eee293aed 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionProfileService.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionProfileService.i18n.json @@ -6,5 +6,6 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "noPro": "Para perfilar extensiones, inicie con `--inspect-extensions=1`.", "selectAndStartDebug": "Haga clic aquí para detener la generación de perfiles." } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.i18n.json index eaedc7cb408..1f9bed71616 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.i18n.json @@ -11,6 +11,7 @@ "workspaceRecommendation": "Esta extensión es recomendada por los usuarios del espacio de trabajo actual.", "fileBasedRecommendation": "Esta extensión se recomienda basado en los archivos que abrió recientemente.", "exeBasedRecommendation": "Se recomienda esta extensión porque tiene instalado {0} . ", + "dynamicWorkspaceRecommendation": "Esta extensión podría interesarle porque muchos otros usuarios del espacio de trabajo actual lo utilizan.", "reallyRecommended2": "La extension recomendada para este tipo de archivo es {0}", "reallyRecommendedExtensionPack": "Para este tipo de fichero, se recomienda el paquete de extensión '{0}'.", "showRecommendations": "Mostrar recomendaciones", diff --git a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index c4501440bff..896424f6a2c 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -18,5 +18,7 @@ "sort by name": "Ordenar por: Nombre", "suggestProxyError": "Marketplace devolvió 'ECONNREFUSED'. Compruebe la configuración de 'http.proxy'.", "extensions": "Extensiones", - "outdatedExtensions": "{0} extensiones obsoletas" + "outdatedExtensions": "{0} extensiones obsoletas", + "malicious warning": "Hemos desinstalado ' {0} ' porque se informó que era problemático.", + "reloadNow": "Recargar ahora" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json b/i18n/esn/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json index babf721efe5..e0f844b9782 100644 --- a/i18n/esn/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json @@ -7,7 +7,8 @@ "Do not edit this file. It is machine generated." ], "installingVSIXExtension": "Instalando la extensión desde VSIX...", - "installingMarketPlaceExtension": "Instalando la extensión desde Marketplace", + "malicious": "Se reporta que esta extensión es problemática.", + "installingMarketPlaceExtension": "Instalando Extension desde Marketplace...", "uninstallingExtension": "Desinstalando la extensión....", "enableDependeciesConfirmation": "Si habilita \"{0}\", también se habilitarán sus dependencias. ¿Desea continuar?", "enable": "Sí", diff --git a/i18n/esn/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json b/i18n/esn/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json index f51195ec16f..4bd190cdebb 100644 --- a/i18n/esn/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json @@ -8,11 +8,10 @@ ], "openLogsFolder": "Abrir carpeta de registros", "showLogs": "Mostrar registros...", - "mainProcess": "Principal", - "sharedProcess": "Compartido", - "rendererProcess": "Ventana", + "emptyWindow": "Ventana", "extensionHost": "Host de extensión", - "selectProcess": "Seleccionar proceso", + "sharedProcess": "Compartido", + "mainProcess": "Principal", "openLogFile": "Abrir archivo de log...", "setLogLevel": "Establecer nivel de registro", "trace": "Seguimiento", @@ -22,5 +21,8 @@ "err": "Error", "critical": "Crítico", "off": "Apagado", - "selectLogLevel": "Seleccionar nivel de log" + "selectLogLevel": "Seleccionar nivel de log", + "default and current": "Predeterminado y actual ", + "default": "Predeterminado", + "current": "Actual\n" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/markers/common/markers.i18n.json b/i18n/esn/src/vs/workbench/parts/markers/common/markers.i18n.json new file mode 100644 index 00000000000..4e534a88b7c --- /dev/null +++ b/i18n/esn/src/vs/workbench/parts/markers/common/markers.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "totalProblems": "Total {0} Problemas", + "filteredProblems": "Mostrando {0} de {1} problemas" +} \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json b/i18n/esn/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json index 3004b880cfc..c05869af64d 100644 --- a/i18n/esn/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json @@ -17,7 +17,6 @@ "addLabel": "Agregar enlace de teclado", "removeLabel": "Quitar enlace de teclado", "resetLabel": "Restablecer enlaces de teclado", - "showConflictsLabel": "Mostrar conflictos", "copyLabel": "Copiar", "copyCommandLabel": "Comando Copiar", "error": "Error \"{0}\" al editar el enlace de teclado. Abra el archivo \"keybindings.json\" y compruébelo.", diff --git a/i18n/esn/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json b/i18n/esn/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json index b4f939e218b..af8a30c82d9 100644 --- a/i18n/esn/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json @@ -10,8 +10,8 @@ "SearchSettingsWidget.AriaLabel": "Buscar configuración", "SearchSettingsWidget.Placeholder": "Buscar configuración", "noSettingsFound": "Sin resultados", - "oneSettingFound": "Coincide 1 configuración", - "settingsFound": "{0} configuraciones coincidentes", + "oneSettingFound": "1 configuración encontrada", + "settingsFound": "{0} Configuraciones encontradas", "totalSettingsMessage": "{0} configuraciones en total", "nlpResult": "Resultados en lenguaje natural", "filterResult": "Resultados filtrados", diff --git a/i18n/esn/src/vs/workbench/parts/preferences/browser/preferencesRenderers.i18n.json b/i18n/esn/src/vs/workbench/parts/preferences/browser/preferencesRenderers.i18n.json index 968824e44e0..01a8ec799ae 100644 --- a/i18n/esn/src/vs/workbench/parts/preferences/browser/preferencesRenderers.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/preferences/browser/preferencesRenderers.i18n.json @@ -9,6 +9,7 @@ "emptyUserSettingsHeader": "Coloque aquí su configuración para sobrescribir la configuración predeterminada.", "emptyWorkspaceSettingsHeader": "Coloque aquí su configuración para sobrescribir la configuración de usuario.", "emptyFolderSettingsHeader": "Coloque aquí su configuración de carpeta para sobrescribir la que se especifica en la configuración de área de trabajo.", + "newExtensionLabel": "Mostrar extensión \"{0}\"", "editTtile": "Editar", "replaceDefaultValue": "Reemplazar en Configuración", "copyDefaultValue": "Copiar en Configuración", diff --git a/i18n/esn/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json index d9bd0ff35a4..b5581db88a5 100644 --- a/i18n/esn/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json @@ -12,6 +12,5 @@ "view": "Ver", "scmConfigurationTitle": "SCM", "alwaysShowProviders": "Si desea mostrar siempre la sección proveedor de control de código fuente.", - "diffDecorations": "Controla las decoraciones de diff en el editor.", - "inputCounter": "Controla cuándo mostrar el contador de entradas." + "diffDecorations": "Controla las decoraciones de diff en el editor." } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json b/i18n/esn/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json index 4e38fa20490..4f4ee6b527a 100644 --- a/i18n/esn/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json @@ -8,9 +8,6 @@ ], "scm providers": "Proveedores de Control de Código fuente", "hideRepository": "Ocultar", - "commitMessageInfo": "{0} caracteres en la línea actual", - "commitMessageCountdown": "quedan {0} caracteres en la línea actual", - "commitMessageWarning": "{0} caracteres sobre {1} en la línea actual", "installAdditionalSCMProviders": "Instalar proveedores adicionales de SCM...", "no open repo": "No hay proveedores de control de código fuente activos.", "source control": "Control de código fuente", diff --git a/i18n/esn/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/esn/src/vs/workbench/parts/search/browser/searchActions.i18n.json index e93869cf34c..7c31eb187d7 100644 --- a/i18n/esn/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -18,6 +18,7 @@ "RefreshAction.label": "Actualizar", "CollapseDeepestExpandedLevelAction.label": "Contraer todo", "ClearSearchResultsAction.label": "Borrar", + "CancelSearchAction.label": "Cancelar búsqueda", "FocusNextSearchResult.label": "Centrarse en el siguiente resultado de la búsqueda", "FocusPreviousSearchResult.label": "Centrarse en el anterior resultado de la búsqueda", "RemoveAction.label": "Despedir", diff --git a/i18n/esn/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json b/i18n/esn/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json index 7daac750da1..01aace24713 100644 --- a/i18n/esn/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json @@ -21,10 +21,10 @@ "JsonSchema.tasks.terminal": "La propiedad terminal está en desuso. En su lugar, utilice presentation.", "JsonSchema.tasks.group.kind": "El grupo de ejecución de la tarea.", "JsonSchema.tasks.group.isDefault": "Define si la tarea es la tarea predeterminada del grupo.", - "JsonSchema.tasks.group.defaultBuild": "Marca las tareas como tarea de compilación predeterminada.", - "JsonSchema.tasks.group.defaultTest": "Marca las tareas como la tarea de prueba predeterminada.", - "JsonSchema.tasks.group.build": "Marca las tareas como tarea de compilación a través del comando 'Ejecutar tarea de compilación'.", - "JsonSchema.tasks.group.test": "Marca las tareas como tarea de prueba accesible a través del comando \"Ejecutar tarea de compilación\". ", + "JsonSchema.tasks.group.defaultBuild": "Marca la tarea como la tarea de compilación predeterminada.", + "JsonSchema.tasks.group.defaultTest": "Marca la tarea como la tarea de prueba predeterminada.", + "JsonSchema.tasks.group.build": "Marca la tarea como una tarea de compilación accesible mediante el comando ' Ejecutar tarea de compilación'", + "JsonSchema.tasks.group.test": "Marca la tarea como una prueba tarea accesible mediante el comando 'Ejecutar tarea de prueba'.", "JsonSchema.tasks.group.none": "No asigna la tarea a ningún grupo", "JsonSchema.tasks.group": "Define a qué grupo de ejecución pertenece esta tarea. Admite \"compilación\" para agregarla al grupo de compilación y \"prueba\" para agregarla al grupo de prueba.", "JsonSchema.tasks.type": "Define si la tarea se ejecuta como un proceso o como un comando dentro de in shell. ", diff --git a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 886c14e841f..0c29fbd5e37 100644 --- a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -21,14 +21,15 @@ "terminal.integrated.fontFamily": "Controla la familia de fuentes del terminal, que está establecida de manera predeterminada en el valor de editor.fontFamily.", "terminal.integrated.fontSize": "Controla el tamaño de la fuente en píxeles del terminal.", "terminal.integrated.lineHeight": "Controla el alto de línea del terminal. Este número se multiplica por el tamaño de fuente del terminal para obtener el alto de línea real en píxeles.", - "terminal.integrated.enableBold": "Indica si debe habilitar el texto en negrita en el terminal. Requiere soporte del terminal Shell. ", + "terminal.integrated.fontWeight": "El peso de la fuente que se usará en el terminal para texto no en negrita.", + "terminal.integrated.fontWeightBold": "El peso de la fuente que se usará en el terminal para texto en negrita.", "terminal.integrated.cursorBlinking": "Controla si el cursor del terminal parpadea.", "terminal.integrated.cursorStyle": "Controla el estilo de cursor del terminal.", "terminal.integrated.scrollback": "Controla la cantidad máxima de líneas que mantiene el terminal en su búfer.", "terminal.integrated.setLocaleVariables": "Controla si las variables de configuración regional se definen al inicio del terminal. El valor predeterminado es true en OS X y false en las demás plataformas.", "terminal.integrated.cwd": "Una ruta de acceso de inicio explícita en la que se iniciará el terminal; se utiliza como el directorio de trabajo actual (cwd) para el proceso de shell. Puede resultar especialmente útil en una configuración de área de trabajo si la raíz de directorio no es un cwd práctico.", "terminal.integrated.confirmOnExit": "Indica si debe confirmarse a la salida si hay sesiones de terminal activas.", - "terminal.integrated.enableBell": "Si la campana del terminal está activada o no.", + "terminal.integrated.enableBell": "Si la campana terminal está activada o no.", "terminal.integrated.commandsToSkipShell": "Conjunto de identificadores de comando cuyos enlaces de teclado no se enviarán al shell, sino que siempre se controlarán con Code. Esto permite el uso de enlaces de teclado que normalmente consumiría el shell para funcionar igual que cuando el terminal no tiene el foco; por ejemplo, Ctrl+P para iniciar Quick Open.", "terminal.integrated.env.osx": "Objeto con variables de entorno que se agregarán al proceso de VS Code para que las use el terminal en OS X", "terminal.integrated.env.linux": "Objeto con variables de entorno que se agregarán al proceso de VS Code para que las use el terminal en Linux", diff --git a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index 73b81df6f14..53da8180d91 100644 --- a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -14,7 +14,6 @@ "workbench.action.terminal.selectAll": "Seleccionar todo", "workbench.action.terminal.deleteWordLeft": "Eliminar una palabra a la izquierda", "workbench.action.terminal.deleteWordRight": "Eliminar una palabra a la derecha", - "workbench.action.terminal.enterLineNavigationMode": "Entrar en el modo de navegación lector de pantalla", "workbench.action.terminal.new": "Crear nuevo terminal integrado", "workbench.action.terminal.new.short": "Nuevo terminal", "workbench.action.terminal.newWorkspacePlaceholder": "Seleccione el directorio de trabajo actual para el nuevo terminal", diff --git a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json index 4b33400ce86..fd9343f905d 100644 --- a/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json @@ -6,6 +6,9 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "terminal.integrated.a11yBlankLine": "Línea en blanco", + "terminal.integrated.a11yPromptLabel": "Entrada de terminal", + "terminal.integrated.a11yTooMuchOutput": "Demasiado salida para anunciar, navegar a las filas manualmente para leer", "terminal.integrated.copySelection.noSelection": "El terminal no tiene ninguna selección para copiar", "terminal.integrated.exitedWithCode": "El proceso del terminal finalizó con el código de salida: {0}", "terminal.integrated.waitOnExit": "Presione cualquier tecla para cerrar el terminar", diff --git a/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index c2c234dcd17..c208c9ba269 100644 --- a/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -8,5 +8,6 @@ ], "release notes": "Notas de la versión", "updateConfigurationTitle": "Actualización", - "updateChannel": "Configure si recibirá actualizaciones automáticas de un canal de actualización. Es necesario reiniciar tras el cambio." + "updateChannel": "Configure si recibirá actualizaciones automáticas de un canal de actualización. Es necesario reiniciar tras el cambio.", + "enableWindowsBackgroundUpdates": "Permite actualizaciones de fondo de Windows." } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.i18n.json b/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.i18n.json index c402b77ea34..03b67efcdae 100644 --- a/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.i18n.json +++ b/i18n/esn/src/vs/workbench/parts/update/electron-browser/update.i18n.json @@ -6,12 +6,10 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "updateNow": "Actualizar ahora", "later": "Más tarde", "unassigned": "sin asignar", "releaseNotes": "Notas de la versión", "showReleaseNotes": "Mostrar las notas de la versión", - "downloadNow": "Descargar ahora", "read the release notes": "{0} v{1}. ¿Quiere leer las notas de la versión?", "licenseChanged": "Los términos de licencia han cambiado, revíselos.", "license": "Leer licencia", @@ -19,20 +17,24 @@ "64bitisavailable": "Ya está disponible {0} para Windows de 64 bits.", "learn more": "Más información", "updateIsReady": "Nueva actualización de {0} disponible.", - "thereIsUpdateAvailable": "Hay una actualización disponible.", - "updateAvailable": "{0} se actualizará después de reiniciarse.", "noUpdatesAvailable": "Actualmente no hay actualizaciones disponibles.", + "download now": "Descargar ahora", + "thereIsUpdateAvailable": "Hay una actualización disponible.", + "installUpdate": "Instalar la actualización ", + "updateAvailable": "Hay una actualización disponible: {0} {1}", + "updateInstalling": "{0} {1} se está instalando en segundo plano, le avisaremos cuando sea completada", + "updateNow": "Actualizar ahora", + "updateAvailableAfterRestart": "{0} se actualizará después de reiniciarse.", "commandPalette": "Paleta de comandos...", "settings": "Configuración", "keyboardShortcuts": "Métodos abreviados de teclado", "userSnippets": "Fragmentos de código de usuario", "selectTheme.label": "Tema de color", "themes.selectIconTheme.label": "Tema de icono de archivo", - "not available": "Actualizaciones no disponibles", + "checkForUpdates": "Buscar actualizaciones...", "checkingForUpdates": "Buscando actualizaciones...", - "DownloadUpdate": "Descargar actualización disponible", "DownloadingUpdate": "Descargando actualización...", - "InstallingUpdate": "Instalando actualización...", - "restartToUpdate": "Reiniciar para actualizar...", - "checkForUpdates": "Buscar actualizaciones..." + "installUpdate...": "Instalar la actualización de...", + "installingUpdate": "Instalando actualización...", + "restartToUpdate": "Reiniciar para actualizar..." } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json b/i18n/esn/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json index 450e9c1a201..dbb7b5b3009 100644 --- a/i18n/esn/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json +++ b/i18n/esn/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json @@ -21,6 +21,7 @@ "workspaceConfig.name.description": "Un nombre opcional para la carpeta. ", "workspaceConfig.uri.description": "URI de la carpeta", "workspaceConfig.settings.description": "Configuración de área de trabajo", + "workspaceConfig.launch.description": "Configuraciones de lanzamiento del espacio de trabajo", "workspaceConfig.extensions.description": "Extensiones del área de trabajo", "unknownWorkspaceProperty": "Propiedad de configuración de espacio de trabajo desconocida" } \ No newline at end of file diff --git a/i18n/esn/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json b/i18n/esn/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json index 2676ebe0938..007b1debf5b 100644 --- a/i18n/esn/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json +++ b/i18n/esn/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json @@ -8,6 +8,6 @@ ], "jsonParseFail": "No se pudo analizar {0}: {1}.", "fileReadFail": "No se puede leer el archivo {0}: {1}.", - "jsonsParseFail": "No se pudo analizar {0} o {1}: {2}.", + "jsonsParseReportErrors": "No se pudo analizar {0}: {1}.", "missingNLSKey": "No se encontró un mensaje para la clave {0}." } \ No newline at end of file diff --git a/i18n/fra/extensions/css/client/out/cssMain.i18n.json b/i18n/fra/extensions/css/client/out/cssMain.i18n.json index d82cbdd1b34..56a7e4e867e 100644 --- a/i18n/fra/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/fra/extensions/css/client/out/cssMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cssserver.name": "Serveur de langage CSS", "folding.start": "Début de la région repliable", "folding.end": "Fin de la région repliable" diff --git a/i18n/fra/extensions/git/out/askpass-main.i18n.json b/i18n/fra/extensions/git/out/askpass-main.i18n.json index c06e0fff306..4aa1850e846 100644 --- a/i18n/fra/extensions/git/out/askpass-main.i18n.json +++ b/i18n/fra/extensions/git/out/askpass-main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "missOrInvalid": "Informations d'identification manquantes ou non valides." } \ No newline at end of file diff --git a/i18n/fra/extensions/git/out/autofetch.i18n.json b/i18n/fra/extensions/git/out/autofetch.i18n.json index e5a3f00f716..4b120c1accd 100644 --- a/i18n/fra/extensions/git/out/autofetch.i18n.json +++ b/i18n/fra/extensions/git/out/autofetch.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "yes": "Oui", "read more": "Lire la suite", "no": "Non", diff --git a/i18n/fra/extensions/git/out/commands.i18n.json b/i18n/fra/extensions/git/out/commands.i18n.json index 0ab84d9bc6f..d64a35734d2 100644 --- a/i18n/fra/extensions/git/out/commands.i18n.json +++ b/i18n/fra/extensions/git/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "tag at": "Étiquette à {0}", "remote branch at": "Branche distante à {0}", "create branch": "$(plus) Créer nouvelle branche", @@ -35,7 +37,7 @@ "discardAll multiple": "Ignorer 1 fichier", "discardAll": "Ignorer les {0} fichiers", "confirm delete multiple": "Voulez-vous vraiment SUPPRIMER {0} fichiers ?", - "delete files": "Supprimer des fichiers", + "delete files": "Supprimer les fichiers", "there are untracked files single": "Le fichier non suivi suivant sera SUPPRIMÉ DU DISQUE s'il est ignoré : {0}.", "there are untracked files": "{0} fichiers non suivis seront SUPPRIMÉS DU DISQUE s'ils sont ignorés.", "confirm discard all 2": "{0}\n\nCette opération est IRRÉVERSIBLE, votre plage de travail actuelle sera DÉFINITIVEMENT PERDUE.", @@ -56,11 +58,11 @@ "select branch to delete": "Sélectionner une branche à supprimer", "confirm force delete branch": "La branche '{0}' n'est pas complètement fusionnée. Supprimer quand même ?", "delete branch": "Supprimer la branche", - "invalid branch name": "Nom de la branche non valide", + "invalid branch name": "Nom de branche non valide", "branch already exists": "Une branche nommée '0}' existe déjà", "select a branch to merge from": "Sélectionner une branche à fusionner", "merge conflicts": "Il existe des conflits de fusion. Corrigez-les avant la validation.", - "tag name": "Nom de la balise", + "tag name": "Nom du Tag", "provide tag name": "Spécifiez un nom de balise", "tag message": "Message", "provide tag message": "Spécifiez un message pour annoter la balise", diff --git a/i18n/fra/extensions/git/out/main.i18n.json b/i18n/fra/extensions/git/out/main.i18n.json index 87c8761c8f5..36a1131640b 100644 --- a/i18n/fra/extensions/git/out/main.i18n.json +++ b/i18n/fra/extensions/git/out/main.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "looking": "Recherche de git dans : {0}", "using git": "Utilisation de git {0} à partir de {1}", "downloadgit": "Télécharger Git", diff --git a/i18n/fra/extensions/git/out/model.i18n.json b/i18n/fra/extensions/git/out/model.i18n.json index 6b72576dc57..73886394ae7 100644 --- a/i18n/fra/extensions/git/out/model.i18n.json +++ b/i18n/fra/extensions/git/out/model.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "no repositories": "Aucun dépôt disponible", "pick repo": "Choisir un dépôt" } \ No newline at end of file diff --git a/i18n/fra/extensions/git/out/repository.i18n.json b/i18n/fra/extensions/git/out/repository.i18n.json index e53c292db10..116edfd2eff 100644 --- a/i18n/fra/extensions/git/out/repository.i18n.json +++ b/i18n/fra/extensions/git/out/repository.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "open": "Ouvrir", "index modified": "Index modifié", "modified": "Modifié", @@ -15,10 +17,10 @@ "untracked": "Non suivi", "ignored": "Ignoré", "both deleted": "Tous deux supprimés", - "added by us": "Ajouté par nos soins", + "added by us": "Ajouté par nous", "deleted by them": "Supprimé par eux", "added by them": "Ajouté par eux", - "deleted by us": "Supprimé par nos soins", + "deleted by us": "Supprimé par nous", "both added": "Tous deux ajoutés", "both modified": "Tous deux modifiés", "commitMessage": "Message (press {0} to commit)", @@ -26,6 +28,8 @@ "merge changes": "Fusionner les modifications", "staged changes": "Modifications en zone de transit", "changes": "Modifications", + "commitMessageCountdown": "{0} caractères restants sur la ligne actuelle", + "commitMessageWarning": "{0} caractères sur {1} sur la ligne actuelle", "ok": "OK", "neveragain": "Ne plus afficher", "huge": "Le dépôt Git dans '{0}' a trop de modifications actives, seul un sous-ensemble de fonctionnalités Git sera activé." diff --git a/i18n/fra/extensions/git/out/statusbar.i18n.json b/i18n/fra/extensions/git/out/statusbar.i18n.json index b3ffbd34af7..8b318664678 100644 --- a/i18n/fra/extensions/git/out/statusbar.i18n.json +++ b/i18n/fra/extensions/git/out/statusbar.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "checkout": "Extraire...", "sync changes": "Synchroniser les modifications", "publish changes": "Publier les modifications", diff --git a/i18n/fra/extensions/git/package.i18n.json b/i18n/fra/extensions/git/package.i18n.json index 934878ea4a6..6faff6f0ebc 100644 --- a/i18n/fra/extensions/git/package.i18n.json +++ b/i18n/fra/extensions/git/package.i18n.json @@ -71,6 +71,8 @@ "config.enableCommitSigning": "Permet de valider en signant avec GPG.", "config.discardAllScope": "Contrôle les modifications ignorées par la commande 'Ignorer toutes les modifications'. 'all' ignore toutes les modifications. 'tracked' ignore uniquement les fichiers suivis. 'prompt' affiche un message d'invite chaque fois que l’action est exécutée.", "config.decorations.enabled": "Contrôle si Git contribue aux couleurs et aux badges de l’Explorateur et à l'affichage des éditeurs ouverts.", + "config.promptToSaveFilesBeforeCommit": "Contrôle si Git doit vérifier les fichiers non sauvegardés avant d'effectuer le commit.", + "config.showInlineOpenFileAction": "Contrôle s’il faut afficher une action Ouvrir le fichier dans l’affichage des modifications de Git.", "colors.modified": "Couleur pour les ressources modifiées.", "colors.deleted": "Couleur pour les ressources supprimées.", "colors.untracked": "Couleur pour les ressources non tracées.", diff --git a/i18n/fra/extensions/grunt/out/main.i18n.json b/i18n/fra/extensions/grunt/out/main.i18n.json index 90ccce143b1..b3ec4af7edf 100644 --- a/i18n/fra/extensions/grunt/out/main.i18n.json +++ b/i18n/fra/extensions/grunt/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "L'auto détection de Grunt pour le dossier {0} a échoué avec l’erreur : {1}" } \ No newline at end of file diff --git a/i18n/fra/extensions/gulp/out/main.i18n.json b/i18n/fra/extensions/gulp/out/main.i18n.json index ebb7531e60e..b8c3af0f1de 100644 --- a/i18n/fra/extensions/gulp/out/main.i18n.json +++ b/i18n/fra/extensions/gulp/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "L'auto détection de gulp pour le dossier {0} a échoué avec l’erreur : {1}" } \ No newline at end of file diff --git a/i18n/fra/extensions/html/client/out/htmlMain.i18n.json b/i18n/fra/extensions/html/client/out/htmlMain.i18n.json index 5db379fe3be..9d334931d10 100644 --- a/i18n/fra/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/fra/extensions/html/client/out/htmlMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "htmlserver.name": "Serveur de langage HTML", "folding.start": "Début de la région repliable", "folding.end": "Fin de la région repliable" diff --git a/i18n/fra/extensions/jake/out/main.i18n.json b/i18n/fra/extensions/jake/out/main.i18n.json index 00ae9b76cb8..5a31ae14e22 100644 --- a/i18n/fra/extensions/jake/out/main.i18n.json +++ b/i18n/fra/extensions/jake/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "L'auto détection de Jake pour le dossier {0} a échoué avec l’erreur : {1}" } \ No newline at end of file diff --git a/i18n/fra/extensions/json/client/out/jsonMain.i18n.json b/i18n/fra/extensions/json/client/out/jsonMain.i18n.json index eb125f682c2..bd80392eb07 100644 --- a/i18n/fra/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/fra/extensions/json/client/out/jsonMain.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "jsonserver.name": "Serveur de langage JSON" } \ No newline at end of file diff --git a/i18n/fra/extensions/markdown/out/commands.i18n.json b/i18n/fra/extensions/markdown/out/commands.i18n.json index 10a62fe5396..cb8bd2f9769 100644 --- a/i18n/fra/extensions/markdown/out/commands.i18n.json +++ b/i18n/fra/extensions/markdown/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "previewTitle": "Prévisualiser {0}", "onPreviewStyleLoadError": "Impossible de charger 'markdown.styles' : {0}" } \ No newline at end of file diff --git a/i18n/fra/extensions/markdown/out/features/previewContentProvider.i18n.json b/i18n/fra/extensions/markdown/out/features/previewContentProvider.i18n.json index 2eb7c81389d..38a6bf3c24e 100644 --- a/i18n/fra/extensions/markdown/out/features/previewContentProvider.i18n.json +++ b/i18n/fra/extensions/markdown/out/features/previewContentProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "preview.securityMessage.text": "Du contenu a été désactivé dans ce document", "preview.securityMessage.title": "Le contenu potentiellement dangereux ou précaire a été désactivé dans l’aperçu du format markdown. Modifier le paramètre de sécurité Aperçu Markdown afin d’autoriser les contenus non sécurisés ou activer les scripts", "preview.securityMessage.label": "Avertissement de sécurité de contenu désactivé" diff --git a/i18n/fra/extensions/markdown/out/security.i18n.json b/i18n/fra/extensions/markdown/out/security.i18n.json index 6c5b965cc1a..493c76e28d6 100644 --- a/i18n/fra/extensions/markdown/out/security.i18n.json +++ b/i18n/fra/extensions/markdown/out/security.i18n.json @@ -1,11 +1,13 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "strict.title": "Strict", - "strict.description": "Charger uniquement le contenu sécurisé", + "strict.description": "Charger uniquement le contenu sécurisé.", "insecureContent.title": "Autoriser le contenu non sécurisé", "insecureContent.description": "Activer le chargement de contenu sur http", "disable.title": "Désactiver", @@ -13,6 +15,5 @@ "moreInfo.title": "Informations", "enableSecurityWarning.title": "Activer l'aperçu d'avertissements de sécurité pour cet espace de travail", "disableSecurityWarning.title": "Désactiver l'aperçu d'avertissements de sécurité pour cet espace de travail", - "toggleSecurityWarning.description": "N'affecte pas le niveau de sécurité du contenu", "preview.showPreviewSecuritySelector.title": "Sélectionner les paramètres de sécurité pour les aperçus Markdown dans cet espace de travail" } \ No newline at end of file diff --git a/i18n/fra/extensions/merge-conflict/out/codelensProvider.i18n.json b/i18n/fra/extensions/merge-conflict/out/codelensProvider.i18n.json index 96643427968..7eff1014004 100644 --- a/i18n/fra/extensions/merge-conflict/out/codelensProvider.i18n.json +++ b/i18n/fra/extensions/merge-conflict/out/codelensProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "acceptCurrentChange": "Accepter la modification actuelle", "acceptIncomingChange": "Accepter la modification entrante", "acceptBothChanges": "Accepter les deux modifications", diff --git a/i18n/fra/extensions/merge-conflict/out/commandHandler.i18n.json b/i18n/fra/extensions/merge-conflict/out/commandHandler.i18n.json index 608145f28d3..e88dbfdbe8f 100644 --- a/i18n/fra/extensions/merge-conflict/out/commandHandler.i18n.json +++ b/i18n/fra/extensions/merge-conflict/out/commandHandler.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cursorNotInConflict": "Le curseur de l'éditeur ne se trouve pas dans un conflit de fusion", "compareChangesTitle": "{0} : Modifications actuelles ⟷ Modifications entrantes", "cursorOnCommonAncestorsRange": "Le curseur de l'éditeur se trouve dans le bloc d'ancêtres commun, déplacez-le dans le bloc \"current\" ou \"incoming\"", diff --git a/i18n/fra/extensions/merge-conflict/out/mergeDecorator.i18n.json b/i18n/fra/extensions/merge-conflict/out/mergeDecorator.i18n.json index 1dfd58679b3..55e5f4f2002 100644 --- a/i18n/fra/extensions/merge-conflict/out/mergeDecorator.i18n.json +++ b/i18n/fra/extensions/merge-conflict/out/mergeDecorator.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "currentChange": "(Modification actuelle)", "incomingChange": "(Modification entrante)" } \ No newline at end of file diff --git a/i18n/fra/extensions/npm/out/main.i18n.json b/i18n/fra/extensions/npm/out/main.i18n.json index 1bdcbfa7fe3..18fa5992ad7 100644 --- a/i18n/fra/extensions/npm/out/main.i18n.json +++ b/i18n/fra/extensions/npm/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "npm.parseError": "Détection de tâche Npm : impossible d’analyser le fichier {0}" } \ No newline at end of file diff --git a/i18n/fra/extensions/php/out/features/validationProvider.i18n.json b/i18n/fra/extensions/php/out/features/validationProvider.i18n.json index 65f0b4607fb..b20a0679e61 100644 --- a/i18n/fra/extensions/php/out/features/validationProvider.i18n.json +++ b/i18n/fra/extensions/php/out/features/validationProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "php.useExecutablePath": "Autorisez-vous l'exécution de {0} (défini en tant que paramètre d'espace de travail) pour effectuer une validation lint sur les fichiers PHP ?", "php.yes": "Autoriser", "php.no": "Interdire", diff --git a/i18n/fra/extensions/typescript/out/features/quickFixProvider.i18n.json b/i18n/fra/extensions/typescript/out/features/quickFixProvider.i18n.json index 35229bd6699..f10b35e9e5b 100644 --- a/i18n/fra/extensions/typescript/out/features/quickFixProvider.i18n.json +++ b/i18n/fra/extensions/typescript/out/features/quickFixProvider.i18n.json @@ -5,5 +5,6 @@ "Licensed under the MIT License. See License.txt in the project root for license information.", "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." - ] + ], + "fixAllInFileLabel": "{0} (Corriger tout dans le fichier)" } \ No newline at end of file diff --git a/i18n/fra/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json b/i18n/fra/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json new file mode 100644 index 00000000000..e0b6c0e0890 --- /dev/null +++ b/i18n/fra/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "noResults": "Résultats introuvables", + "description": "Description" +} \ No newline at end of file diff --git a/i18n/fra/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json b/i18n/fra/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/fra/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/fra/src/vs/code/electron-main/logUploader.i18n.json b/i18n/fra/src/vs/code/electron-main/logUploader.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/fra/src/vs/code/electron-main/logUploader.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/fra/src/vs/code/electron-main/menus.i18n.json b/i18n/fra/src/vs/code/electron-main/menus.i18n.json index ae4e0425427..43fe327de40 100644 --- a/i18n/fra/src/vs/code/electron-main/menus.i18n.json +++ b/i18n/fra/src/vs/code/electron-main/menus.i18n.json @@ -180,12 +180,12 @@ "miConfigureTask": "&&Configurer les tâches...", "miConfigureBuildTask": "Configurer la tâche de génération par dé&&faut", "accessibilityOptionsWindowTitle": "Options d'accessibilité", - "miRestartToUpdate": "Redémarrer pour mettre à jour...", + "miCheckForUpdates": "Rechercher les mises à jour...", "miCheckingForUpdates": "Recherche des mises à jour...", "miDownloadUpdate": "Télécharger la mise à jour disponible", "miDownloadingUpdate": "Téléchargement de la mise à jour...", "miInstallingUpdate": "Installation de la mise à jour...", - "miCheckForUpdates": "Rechercher les mises à jour...", + "miRestartToUpdate": "Redémarrer pour mettre à jour...", "aboutDetail": "Version {0}\nCommit {1}\nDate {2}\nShell {3}\nRenderer {4}\nNode {5}\nArchitecture {6}", "okButton": "OK", "copy": "&&Copier" diff --git a/i18n/fra/src/vs/editor/browser/services/bulkEdit.i18n.json b/i18n/fra/src/vs/editor/browser/services/bulkEdit.i18n.json index 589f36ac3a9..64f732e09e0 100644 --- a/i18n/fra/src/vs/editor/browser/services/bulkEdit.i18n.json +++ b/i18n/fra/src/vs/editor/browser/services/bulkEdit.i18n.json @@ -6,8 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "conflict": "Ces fichiers ont changé pendant ce temps : {0}", "summary.0": "Aucune modification effectuée", "summary.nm": "{0} modifications de texte effectuées dans {1} fichiers", - "summary.n0": "{0} modifications de texte effectuées dans un fichier" + "summary.n0": "{0} modifications de texte effectuées dans un fichier", + "conflict": "Ces fichiers ont changé pendant ce temps : {0}" } \ No newline at end of file diff --git a/i18n/fra/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/fra/src/vs/editor/common/config/commonEditorConfig.i18n.json index a7fdb46b810..017c5422686 100644 --- a/i18n/fra/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/fra/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -74,7 +74,7 @@ "cursorBlinking": "Contrôle le style d'animation du curseur. Valeurs possibles : 'blink', 'smooth', 'phase', 'expand' et 'solid'", "mouseWheelZoom": "Agrandir ou réduire la police de l'éditeur quand l'utilisateur fait tourner la roulette de la souris tout en maintenant la touche Ctrl enfoncée", "cursorStyle": "Contrôle le style du curseur. Les valeurs acceptées sont 'block', 'block-outline', 'line', 'line-thin', 'underline' et 'underline-thin'", - "lineCursorWidth": "Contrôle la largeur du curseur quand editor.cursorStyle est à 'line'", + "cursorWidth": "Contrôle la largeur du curseur quand editor.cursorStyle est à 'line'", "fontLigatures": "Active les ligatures de police", "hideCursorInOverviewRuler": "Contrôle si le curseur doit être masqué dans la règle d'aperçu.", "renderWhitespace": "Contrôle la façon dont l'éditeur affiche les espaces blancs. Il existe trois options possibles : 'none', 'boundary' et 'all'. L'option 'boundary' n'affiche pas les espaces uniques qui séparent les mots.", diff --git a/i18n/fra/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json b/i18n/fra/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json index 2cf39b7ec01..01aa43c6709 100644 --- a/i18n/fra/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json +++ b/i18n/fra/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json @@ -6,5 +6,6 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "overviewRulerBracketMatchForeground": "Couleur du marqueur de la règle d'aperçu pour rechercher des parenthèses.", "smartSelect.jumpBracket": "Atteindre le crochet" } \ No newline at end of file diff --git a/i18n/fra/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json b/i18n/fra/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json index ec4aa28893c..96b9a48c2ce 100644 --- a/i18n/fra/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json +++ b/i18n/fra/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json @@ -8,5 +8,6 @@ ], "quickFixWithKb": "Afficher les correctifs ({0})", "quickFix": "Afficher les correctifs", - "quickfix.trigger.label": "Correctif rapide" + "quickfix.trigger.label": "Correctif rapide", + "refactor.label": "Refactoriser" } \ No newline at end of file diff --git a/i18n/fra/src/vs/platform/environment/node/argv.i18n.json b/i18n/fra/src/vs/platform/environment/node/argv.i18n.json index edf34a8b8ea..cb790c12d8f 100644 --- a/i18n/fra/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/fra/src/vs/platform/environment/node/argv.i18n.json @@ -10,11 +10,8 @@ "diff": "Comparez deux fichiers entre eux.", "add": "Ajoutez un ou plusieurs dossiers à la dernière fenêtre active.", "goto": "Ouvrez un fichier dans le chemin, à la ligne et la position de caractère spécifiées.", - "newWindow": "Forcez l'utilisation d'une nouvelle instance de Code.", - "reuseWindow": "Forcez l'ouverture d'un fichier ou dossier dans la dernière fenêtre active.", "wait": "Attendre que les fichiers soient fermés avant de retourner.", "locale": "Paramètres régionaux à utiliser (exemple : fr-FR ou en-US).", - "userDataDir": "Spécifie le répertoire où sont conservées les données des utilisateurs. S'avère utile pour une exécution en tant que root.", "version": "Affichez la version.", "help": "Affichez le mode d'utilisation.", "extensionHomePath": "Définissez le chemin racine des extensions.", @@ -33,7 +30,6 @@ "inspect-brk-extensions": "Autorise le débogage et le profilage des extensions avec l'hôte d'extensions en pause après le démarrage. Vérifier les outils de développement pour l'uri de connexion.", "disableGPU": "Désactivez l'accélération matérielle du GPU.", "uploadLogs": "Upload les logs depuis la session actuelle vers le endpoint sécurisé.", - "issue": "Signaler un problème", "usage": "Utilisation", "options": "options", "paths": "chemins", diff --git a/i18n/fra/src/vs/platform/issue/electron-main/issueService.i18n.json b/i18n/fra/src/vs/platform/issue/electron-main/issueService.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/fra/src/vs/platform/issue/electron-main/issueService.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/fra/src/vs/platform/list/browser/listService.i18n.json b/i18n/fra/src/vs/platform/list/browser/listService.i18n.json index 3642a325abf..b6216ff7d5a 100644 --- a/i18n/fra/src/vs/platform/list/browser/listService.i18n.json +++ b/i18n/fra/src/vs/platform/list/browser/listService.i18n.json @@ -8,6 +8,5 @@ ], "workbenchConfigurationTitle": "Banc d'essai", "multiSelectModifier.ctrlCmd": "Mappe vers 'Contrôle' dans Windows et Linux, et vers 'Commande' dans macOS.", - "multiSelectModifier.alt": "Mappe vers 'Alt' dans Windows et Linux, et vers 'Option' dans macOS.", - "multiSelectModifier": "Le modificateur à utiliser pour ajouter un élément à une multi-sélection avec la souris. 'ctrlCmd' mappe vers 'Contrôle' dans Windows et Linux, et vers 'Commande' dans macOS. Les mouvements de souris 'Ouvrir sur le côté', si supportés, s'adaptent pour ne pas entrer en conflit avec le modificateur multiselect." + "multiSelectModifier.alt": "Mappe vers 'Alt' dans Windows et Linux, et vers 'Option' dans macOS." } \ No newline at end of file diff --git a/i18n/fra/src/vs/platform/localizations/common/localizations.i18n.json b/i18n/fra/src/vs/platform/localizations/common/localizations.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/fra/src/vs/platform/localizations/common/localizations.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json b/i18n/fra/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/fra/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/api/node/extHostWorkspace.i18n.json b/i18n/fra/src/vs/workbench/api/node/extHostWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/fra/src/vs/workbench/api/node/extHostWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json b/i18n/fra/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json new file mode 100644 index 00000000000..58d22a471b8 --- /dev/null +++ b/i18n/fra/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "sizeB": "{0} o", + "sizeKB": "{0} Ko", + "sizeMB": "{0} Mo", + "sizeGB": "{0} Go", + "sizeTB": "{0} To", + "resourceOpenExternalButton": " Ouvrir l'image en utilisant un programme externe ?", + "nativeBinaryError": "Impossible d'afficher le fichier dans l'éditeur : soit il est binaire, soit il est très volumineux, soit il utilise un encodage de texte non pris en charge.", + "imgMeta": "{0}x{1} {2}" +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/fra/src/vs/workbench/electron-browser/main.contribution.i18n.json index 257d93b7eac..286165f993f 100644 --- a/i18n/fra/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -35,7 +35,6 @@ "panelDefaultLocation": "Contrôle l’emplacement par défaut du panneau. Il peut être affiché soit en bas ou à droite du banc d'essai.", "statusBarVisibility": "Contrôle la visibilité de la barre d'état au bas du banc d'essai.", "activityBarVisibility": "Contrôle la visibilité de la barre d'activités dans le banc d'essai.", - "fontAliasing": "Contrôle la méthode de font aliasing dans le workbench.\n- par défaut : Lissage des polices de sous-pixel. Sur la plupart des affichages non-ratina, cela vous donnera le texte le plus vif\n- crénelées : Lisse les polices au niveau du pixel, plutôt que les sous-pixels. Peut faire en sorte que la police apparaisse plus légère dans l’ensemble \n- none : désactive le lissage des polices. Le texte s'affichera avec des bordures dentelées", "workbench.fontAliasing.default": "Lissage de sous-pixel des polices. Sur la plupart des affichages non-retina, cela vous donnera le texte le plus vif.", "workbench.fontAliasing.antialiased": "Lisser les polices au niveau du pixel, plutôt que les sous-pixels. Peut faire en sorte que la police apparaisse plus légère dans l’ensemble.", "workbench.fontAliasing.none": "Désactive le lissage des polices. Le texte s'affichera avec des bordures dentelées.", diff --git a/i18n/fra/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json b/i18n/fra/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json index d50c1571882..4e7aec72ee2 100644 --- a/i18n/fra/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json @@ -19,12 +19,12 @@ "debugRequesMissing": "L’attribut '{0}' est introuvable dans la configuration de débogage choisie.", "debugTypeNotSupported": "Le type de débogage '{0}' configuré n'est pas pris en charge.", "debugTypeMissing": "La propriété 'type' est manquante pour la configuration de lancement sélectionnée.", - "debugAnyway": "Déboguer quand même", "preLaunchTaskErrors": "Des erreurs de build ont été détectées durant le preLaunchTask '{0}'.", "preLaunchTaskError": "Une erreur de build a été détectée durant le preLaunchTask '{0}'.", "preLaunchTaskExitCode": "Le preLaunchTask '{0}' s'est terminé avec le code de sortie {1}.", + "debugAnyway": "Déboguer quand même", + "cancel": "Annuler", "noFolderWorkspaceDebugError": "Impossible de déboguer le fichier actif. Vérifiez qu'il est enregistré sur le disque et qu'une extension de débogage est installée pour ce type de fichier.", - "NewLaunchConfig": "Configurez le fichier config de lancement de votre application. {0}", "DebugTaskNotFound": "preLaunchTask '{0}' introuvable.", "taskNotTracked": "La tâche de prélancement '{0}' n'a pas pu être tracée." } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index a1f89140c04..73f4e9667be 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -18,5 +18,6 @@ "sort by name": "Trier par : Nom", "suggestProxyError": "Marketplace a retourné 'ECONNREFUSED'. Vérifiez le paramètre 'http.proxy'.", "extensions": "Extensions", - "outdatedExtensions": "{0} extensions obsolètes" + "outdatedExtensions": "{0} extensions obsolètes", + "reloadNow": "Recharger maintenant" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json b/i18n/fra/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json index fc5eac0273f..6a8d5b6d58e 100644 --- a/i18n/fra/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json @@ -7,7 +7,6 @@ "Do not edit this file. It is machine generated." ], "installingVSIXExtension": "Installation d'extension depuis un VSIX...", - "installingMarketPlaceExtension": "Installation d'extension depuis le Marketplace...", "uninstallingExtension": "Désinstallation d'extension...", "enableDependeciesConfirmation": "L'activation de '{0}' entraîne également l'activation de ses dépendances. Voulez-vous continuer ?", "enable": "Oui", diff --git a/i18n/fra/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json b/i18n/fra/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json index b98a46b5108..a5a27d438f2 100644 --- a/i18n/fra/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json @@ -8,11 +8,10 @@ ], "openLogsFolder": "Ouvrir le dossier des journaux", "showLogs": "Afficher les journaux...", - "mainProcess": "Principal", - "sharedProcess": "Partagé", - "rendererProcess": "Fenêtre", + "emptyWindow": "Fenêtre", "extensionHost": "Hôte d'extension", - "selectProcess": "Sélectionner le processus", + "sharedProcess": "Partagé", + "mainProcess": "Principal", "openLogFile": "Ouvrir le fichier de log...", "setLogLevel": "Définir le niveau de journalisation (log)", "trace": "Trace", @@ -22,5 +21,6 @@ "err": "Erreur", "critical": "Critique", "off": "Désactivé", - "selectLogLevel": "Sélectionner le niveau de journalisation (log)" + "selectLogLevel": "Sélectionner le niveau de journalisation (log)", + "default": "Par défaut" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/markers/common/markers.i18n.json b/i18n/fra/src/vs/workbench/parts/markers/common/markers.i18n.json new file mode 100644 index 00000000000..556e096a283 --- /dev/null +++ b/i18n/fra/src/vs/workbench/parts/markers/common/markers.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "totalProblems": "Total de {0} problèmes", + "filteredProblems": "Affichage de {0} sur {1} problèmes" +} \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json b/i18n/fra/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json index 0178ac1509e..30ecf112fb6 100644 --- a/i18n/fra/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json @@ -17,7 +17,6 @@ "addLabel": "Ajouter une combinaison de touches", "removeLabel": "Supprimer la combinaison de touches", "resetLabel": "Définir une combinaison de touches", - "showConflictsLabel": "Afficher les conflits", "copyLabel": "Copier", "copyCommandLabel": "Copier la Commande", "error": "Erreur '{0}' durant la modification de la combinaison de touches. Ouvrez le fichier 'keybindings.json', puis effectuez la vérification.", diff --git a/i18n/fra/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json b/i18n/fra/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json index 56c0d4a40d2..46d2aa7ed76 100644 --- a/i18n/fra/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json @@ -10,8 +10,6 @@ "SearchSettingsWidget.AriaLabel": "Paramètres de recherche", "SearchSettingsWidget.Placeholder": "Paramètres de recherche", "noSettingsFound": "Aucun résultat", - "oneSettingFound": "1 paramètre correspondant", - "settingsFound": "{0} paramètres correspondants", "totalSettingsMessage": "Total de {0} paramètres", "nlpResult": "Résultats en langage naturel", "filterResult": "Résultats filtrés", diff --git a/i18n/fra/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json index 566c5cc4a7c..43b80d84ff2 100644 --- a/i18n/fra/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json @@ -12,6 +12,5 @@ "view": "Afficher", "scmConfigurationTitle": "SCM", "alwaysShowProviders": "S'il faut toujours afficher la section Fournisseur de contrôle de code source.", - "diffDecorations": "Contrôle les décorations diff dans l'éditeur", - "inputCounter": "Contrôle quand afficher le compteur de saisie" + "diffDecorations": "Contrôle les décorations diff dans l'éditeur" } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json b/i18n/fra/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json index 41a74d79ee3..47465e0f5cf 100644 --- a/i18n/fra/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json @@ -8,9 +8,6 @@ ], "scm providers": "Fournisseurs de contrôle de code source", "hideRepository": "Masquer", - "commitMessageInfo": "{0} caractères sur la ligne actuelle", - "commitMessageCountdown": "{0} caractères restants sur la ligne actuelle", - "commitMessageWarning": "{0} caractères sur {1} sur la ligne actuelle", "installAdditionalSCMProviders": "Installer des fournisseurs SCM supplémentaires...", "no open repo": "Il n’y a aucun fournisseur de contrôle de code source actif.", "source control": "Contrôle de code source", diff --git a/i18n/fra/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json b/i18n/fra/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json index 25af594698d..fb9dc3578ab 100644 --- a/i18n/fra/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json @@ -21,10 +21,6 @@ "JsonSchema.tasks.terminal": "La propriété de terminal est dépréciée. Utilisez la présentation à la place", "JsonSchema.tasks.group.kind": "Groupe d'exécution de la tâche.", "JsonSchema.tasks.group.isDefault": "Définit si cette tâche est la tâche par défaut du groupe.", - "JsonSchema.tasks.group.defaultBuild": "Marque la tâche comme tâche de génération par défaut.", - "JsonSchema.tasks.group.defaultTest": "Marque la tâche comme tâche de test par défaut.", - "JsonSchema.tasks.group.build": "Marque la tâche comme tâche de génération accessible par la commande 'Exécuter la tâche de génération'.", - "JsonSchema.tasks.group.test": "Marque la tâche comme tâche de test accessible par la commande 'Exécuter la tâche de test'.", "JsonSchema.tasks.group.none": "N'assigne la tâche à aucun groupe", "JsonSchema.tasks.group": "Définit le groupe d'exécution auquel la tâche appartient. Prend en charge \"build\" pour l'ajouter au groupe de génération et \"test\" pour l'ajouter au groupe de test.", "JsonSchema.tasks.type": "Définit si la tâche est exécutée comme un processus ou comme une commande à l’intérieur d’un shell.", diff --git a/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 8294037d329..b0481602ad8 100644 --- a/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -21,14 +21,12 @@ "terminal.integrated.fontFamily": "Contrôle la famille de polices du terminal. La valeur par défaut est la valeur associée à editor.fontFamily.", "terminal.integrated.fontSize": "Contrôle la taille de police en pixels du terminal.", "terminal.integrated.lineHeight": "Contrôle la hauteur de ligne du terminal. La multiplication de ce nombre par la taille de police du terminal permet d'obtenir la hauteur de ligne réelle en pixels.", - "terminal.integrated.enableBold": "Indique s'il faut activer le texte en gras dans le terminal, notez que cela nécessite la prise en charge du terminal Shell.", "terminal.integrated.cursorBlinking": "Contrôle si le curseur du terminal clignote.", "terminal.integrated.cursorStyle": "Contrôle le style du curseur du terminal.", "terminal.integrated.scrollback": "Contrôle la quantité maximale de lignes que le terminal conserve dans sa mémoire tampon.", "terminal.integrated.setLocaleVariables": "Contrôle si les variables locales sont définies au démarrage du terminal. La valeur par défaut est true sur OS X, false sur les autres plateformes.", "terminal.integrated.cwd": "Chemin explicite de lancement du terminal. Il est utilisé comme répertoire de travail actif du processus d'interpréteur de commandes. Cela peut être particulièrement utile dans les paramètres d'espace de travail, si le répertoire racine n'est pas un répertoire de travail actif adéquat.", "terminal.integrated.confirmOnExit": "Indique s'il est nécessaire de confirmer l'existence de sessions de terminal actives au moment de quitter.", - "terminal.integrated.enableBell": "Si le terminal bell est activé ou non.", "terminal.integrated.commandsToSkipShell": "Ensemble d'ID de commandes dont les combinaisons de touches sont gérées par Code au lieu d'être envoyées à l'interpréteur de commandes. Cela permet d'utiliser des combinaisons de touches qui sont normalement consommées par l'interpréteur de commandes et d'obtenir le même résultat quand le terminal n'a pas le focus, par exemple Ctrl+P pour lancer Quick Open.", "terminal.integrated.env.osx": "Objet avec les variables d’environnement qui seront ajoutées au processus VS Code pour être utilisées par le terminal sous OS X", "terminal.integrated.env.linux": "Objet avec les variables d’environnement qui seront ajoutées au processus VS Code pour être utilisées par le terminal sous Linux", diff --git a/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index 50a57fe62a2..0d387671221 100644 --- a/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -14,7 +14,6 @@ "workbench.action.terminal.selectAll": "Tout Sélectionner", "workbench.action.terminal.deleteWordLeft": "Supprimer le mot à gauche", "workbench.action.terminal.deleteWordRight": "Supprimer le mot à droite", - "workbench.action.terminal.enterLineNavigationMode": "Saisir le mode de navigation du lecteur d'écran", "workbench.action.terminal.new": "Créer un terminal intégré", "workbench.action.terminal.new.short": "Nouveau terminal", "workbench.action.terminal.newWorkspacePlaceholder": "Sélectionner le répertoire de travail actuel pour le nouveau terminal", diff --git a/i18n/fra/src/vs/workbench/parts/update/electron-browser/update.i18n.json b/i18n/fra/src/vs/workbench/parts/update/electron-browser/update.i18n.json index 29511aa7827..d57577cf970 100644 --- a/i18n/fra/src/vs/workbench/parts/update/electron-browser/update.i18n.json +++ b/i18n/fra/src/vs/workbench/parts/update/electron-browser/update.i18n.json @@ -6,12 +6,10 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "updateNow": "Mettre à jour maintenant", "later": "Plus tard", "unassigned": "non assigné", "releaseNotes": "Notes de publication", "showReleaseNotes": "Afficher les notes de publication", - "downloadNow": "Télécharger maintenant", "read the release notes": "Bienvenue dans {0} v{1} ! Voulez-vous lire les notes de publication ?", "licenseChanged": "Nos termes du contrat de licence ont changé. Prenez un instant pour les consulter.", "license": "Lire la licence", @@ -19,20 +17,20 @@ "64bitisavailable": "{0} pour Windows 64 bits est maintenant disponible !", "learn more": "En savoir plus", "updateIsReady": "Nouvelle mise à jour de {0} disponible.", - "thereIsUpdateAvailable": "Une mise à jour est disponible.", - "updateAvailable": "{0} sera mis à jour après avoir redémarré.", "noUpdatesAvailable": "Aucune mise à jour n'est disponible actuellement.", + "download now": "Télécharger maintenant", + "thereIsUpdateAvailable": "Une mise à jour est disponible.", + "updateNow": "Mettre à jour maintenant", + "updateAvailableAfterRestart": "{0} sera mis à jour après avoir redémarré.", "commandPalette": "Palette de commandes...", "settings": "Paramètres", "keyboardShortcuts": "Raccourcis clavier", "userSnippets": "Extraits de code de l'utilisateur", "selectTheme.label": "Thème de couleur", "themes.selectIconTheme.label": "Thème d'icône de fichier", - "not available": "Mises à jour non disponibles", + "checkForUpdates": "Rechercher les mises à jour...", "checkingForUpdates": "Recherche des mises à jour...", - "DownloadUpdate": "Télécharger la mise à jour disponible", "DownloadingUpdate": "Téléchargement de la mise à jour...", - "InstallingUpdate": "Installation de la mise à jour...", - "restartToUpdate": "Redémarrer pour mettre à jour...", - "checkForUpdates": "Rechercher les mises à jour..." + "installingUpdate": "Installation de la mise à jour...", + "restartToUpdate": "Redémarrer pour mettre à jour..." } \ No newline at end of file diff --git a/i18n/fra/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json b/i18n/fra/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json index 2ccd2d5fb23..66f94810fab 100644 --- a/i18n/fra/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json +++ b/i18n/fra/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json @@ -8,6 +8,6 @@ ], "jsonParseFail": "Échec de l'analyse de {0} : {1}.", "fileReadFail": "Impossible de lire le fichier {0} : {1}.", - "jsonsParseFail": "Échec de l'analyse de {0} ou de {1} : {2}.", + "jsonsParseReportErrors": "Échec de l'analyse de {0} : {1}.", "missingNLSKey": "Le message est introuvable pour la clé {0}." } \ No newline at end of file diff --git a/i18n/hun/extensions/css/client/out/cssMain.i18n.json b/i18n/hun/extensions/css/client/out/cssMain.i18n.json index e5331e1a5ac..762d665d83d 100644 --- a/i18n/hun/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/hun/extensions/css/client/out/cssMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cssserver.name": "CSS nyelvi szerver", "folding.start": "Összecsukható tartomány kezdete", "folding.end": "Összecsukható tartomány vége" diff --git a/i18n/hun/extensions/git/out/askpass-main.i18n.json b/i18n/hun/extensions/git/out/askpass-main.i18n.json index f81c61e88da..d2d12d782b3 100644 --- a/i18n/hun/extensions/git/out/askpass-main.i18n.json +++ b/i18n/hun/extensions/git/out/askpass-main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "missOrInvalid": "Hiányzó vagy érvénytelen hitelesítési adatok." } \ No newline at end of file diff --git a/i18n/hun/extensions/git/out/autofetch.i18n.json b/i18n/hun/extensions/git/out/autofetch.i18n.json index 83092572a2a..754c3cb42de 100644 --- a/i18n/hun/extensions/git/out/autofetch.i18n.json +++ b/i18n/hun/extensions/git/out/autofetch.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "yes": "Igen", "read more": "További információk", "no": "Nem", diff --git a/i18n/hun/extensions/git/out/commands.i18n.json b/i18n/hun/extensions/git/out/commands.i18n.json index 80f41babc05..8ef19727403 100644 --- a/i18n/hun/extensions/git/out/commands.i18n.json +++ b/i18n/hun/extensions/git/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "tag at": "Címke, a következőre mutat: {0}", "remote branch at": "Távoli ág, a következőre mutat: {0}", "create branch": "$(plus) Új ág létrehozása", @@ -26,7 +28,6 @@ "revert": "Módosítások visszaállítása", "discard": "Módosítások elvetése", "confirm delete": "Biztosan TÖRLI a következőt: {0}?", - "delete file": "Fájl törlése", "confirm discard": "Elveti a módosításokat a következő helyen: {0}?", "confirm discard multiple": "Elveti {0} fájl módosításait?", "warn untracked": "A művelet {0} nem követett fájl TÖRLÉSÉT fogja eredményezni!", @@ -35,7 +36,6 @@ "discardAll multiple": "Egy fájl elvetése", "discardAll": "Mind a(z) {0} fájl elvetése", "confirm delete multiple": "Biztosan TÖRÖLNI akar {0} fájlt?", - "delete files": "Fájlok törlése", "there are untracked files single": "A következő, nem követett fájl TÖRÖLVE LESZ A LEMEZRŐL, ha elvetésre kerül: {0}.", "there are untracked files": "{0} nem követett fájl TÖRÖLVE LESZ A LEMEZRŐL, ha elvetésre kerülnek. ", "confirm discard all 2": "{0}\n\nA művelet NEM VONHATÓ VISSZA, az aktuális munka ÖRÖKRE EL FOG VESZNI.", @@ -60,9 +60,7 @@ "branch already exists": "Már van '{0}' nevű ág", "select a branch to merge from": "Válassza ki az ágat, amit olvasztani szeretne", "merge conflicts": "Összeolvasztási konfliktusok keletkeztek. Oldja fel őket a beadás (commit) előtt!", - "tag name": "Címke neve", "provide tag name": "Adja meg a címke nevét", - "tag message": "Üzenet", "provide tag message": "Adja meg a címke leírását tartalmazó üzenetet", "no remotes to fetch": "A forráskódtárhoz nincsenek távoli szerverek konfigurálva, ahonnan le lehetne kérni.", "no remotes to pull": "A forráskódtárhoz nincsenek távoli szerverek konfigurálva, ahonnan pullozni lehetne.", diff --git a/i18n/hun/extensions/git/out/main.i18n.json b/i18n/hun/extensions/git/out/main.i18n.json index 19742ee7152..34ef76e258c 100644 --- a/i18n/hun/extensions/git/out/main.i18n.json +++ b/i18n/hun/extensions/git/out/main.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "looking": "Git keresése a következő helyen: {0}", "using git": "Git {0} használata a következő helyről: {1}", "downloadgit": "Git letöltése", diff --git a/i18n/hun/extensions/git/out/model.i18n.json b/i18n/hun/extensions/git/out/model.i18n.json index b48df0faf59..707e85e7418 100644 --- a/i18n/hun/extensions/git/out/model.i18n.json +++ b/i18n/hun/extensions/git/out/model.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "no repositories": "Nem található forráskódtár.", "pick repo": "Válasszon forráskódtárat!" } \ No newline at end of file diff --git a/i18n/hun/extensions/git/out/repository.i18n.json b/i18n/hun/extensions/git/out/repository.i18n.json index b2654e062b7..a0b8a02669a 100644 --- a/i18n/hun/extensions/git/out/repository.i18n.json +++ b/i18n/hun/extensions/git/out/repository.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "open": "Megnyitás", "index modified": "Index, módosítva", "modified": "Módosítva", @@ -26,6 +28,8 @@ "merge changes": "Módosítások összeolvasztása", "staged changes": "Beadásra előjegyzett módosítások", "changes": "Módosítások", + "commitMessageCountdown": "{0} karakter maradt az aktuális sorban", + "commitMessageWarning": " {0} karakterrel több, mint {1} az aktuális sorban", "ok": "OK", "neveragain": "Ne jelenítse meg újra", "huge": "A(z) '{0}' forráskódtárban túl sok aktív módosítás van. A Git-funkciók csak egy része lesz engedélyezve." diff --git a/i18n/hun/extensions/git/out/statusbar.i18n.json b/i18n/hun/extensions/git/out/statusbar.i18n.json index 9312f343102..7161f09b7b3 100644 --- a/i18n/hun/extensions/git/out/statusbar.i18n.json +++ b/i18n/hun/extensions/git/out/statusbar.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "checkout": "Checkout...", "sync changes": "Módosítások szinkronizálása", "publish changes": "Módosítások publikálása", diff --git a/i18n/hun/extensions/grunt/out/main.i18n.json b/i18n/hun/extensions/grunt/out/main.i18n.json index 343486514df..aa32b2ae15a 100644 --- a/i18n/hun/extensions/grunt/out/main.i18n.json +++ b/i18n/hun/extensions/grunt/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "A Grunt automatikus felderítése a(z) {0} mappához nem sikerült a következő hiba miatt: {1}" } \ No newline at end of file diff --git a/i18n/hun/extensions/gulp/out/main.i18n.json b/i18n/hun/extensions/gulp/out/main.i18n.json index 9a22c2ad9b3..b4716f93ef9 100644 --- a/i18n/hun/extensions/gulp/out/main.i18n.json +++ b/i18n/hun/extensions/gulp/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "A gulp automatikus felderítése a(z) {0} mappához nem sikerült a következő hiba miatt: {1}" } \ No newline at end of file diff --git a/i18n/hun/extensions/html/client/out/htmlMain.i18n.json b/i18n/hun/extensions/html/client/out/htmlMain.i18n.json index c7c371e8738..8b705a97409 100644 --- a/i18n/hun/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/hun/extensions/html/client/out/htmlMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "htmlserver.name": "HTML nyelvi szerver", "folding.start": "Összecsukható tartomány kezdete", "folding.end": "Összecsukható tartomány vége" diff --git a/i18n/hun/extensions/jake/out/main.i18n.json b/i18n/hun/extensions/jake/out/main.i18n.json index 3dd479da8bb..930f667a2b3 100644 --- a/i18n/hun/extensions/jake/out/main.i18n.json +++ b/i18n/hun/extensions/jake/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "A Jake automatikus felderítése a(z) {0} mappához nem sikerült a következő hiba miatt: {1}" } \ No newline at end of file diff --git a/i18n/hun/extensions/json/client/out/jsonMain.i18n.json b/i18n/hun/extensions/json/client/out/jsonMain.i18n.json index a71a351271b..7651ab518e4 100644 --- a/i18n/hun/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/hun/extensions/json/client/out/jsonMain.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "jsonserver.name": "JSON nyelvi szerver" } \ No newline at end of file diff --git a/i18n/hun/extensions/markdown/out/commands.i18n.json b/i18n/hun/extensions/markdown/out/commands.i18n.json index 4d7844c4529..8b19dff1723 100644 --- a/i18n/hun/extensions/markdown/out/commands.i18n.json +++ b/i18n/hun/extensions/markdown/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "previewTitle": "{0} előnézete", "onPreviewStyleLoadError": "A 'markdown.styles' nem tölthető be: {0}" } \ No newline at end of file diff --git a/i18n/hun/extensions/markdown/out/features/previewContentProvider.i18n.json b/i18n/hun/extensions/markdown/out/features/previewContentProvider.i18n.json index a99e0243419..0a920063d63 100644 --- a/i18n/hun/extensions/markdown/out/features/previewContentProvider.i18n.json +++ b/i18n/hun/extensions/markdown/out/features/previewContentProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "preview.securityMessage.text": "A tartalom egy része le van tiltva az aktuális dokumentumban", "preview.securityMessage.title": "Potencionálisan veszélyes vagy nem biztonságos tartalom lett letiltva a markdown-előnézetben. Módosítsa a markdown-előnézet biztonsági beállításait a nem biztonságos tartalmak vagy parancsfájlok engedélyezéséhez!", "preview.securityMessage.label": "Biztonsági figyelmeztetés: tartalom le van tiltva" diff --git a/i18n/hun/extensions/markdown/out/security.i18n.json b/i18n/hun/extensions/markdown/out/security.i18n.json index dc2803d3329..04355ed0724 100644 --- a/i18n/hun/extensions/markdown/out/security.i18n.json +++ b/i18n/hun/extensions/markdown/out/security.i18n.json @@ -1,10 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "strict.title": "Szigorú", + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "strict.description": "Csak biztonságos tartalmak betöltése", "insecureContent.title": "Nem biztonságos tartalom engedélyezése", "insecureContent.description": "Tartalom betöltésének engedélyezése HTTP-n keresztül.", @@ -13,6 +14,5 @@ "moreInfo.title": "További információ", "enableSecurityWarning.title": "Előnézettel kapcsolatos biztonsági figyelmeztetések engedélyezése ezen a munkaterületen", "disableSecurityWarning.title": "Előnézettel kapcsolatos biztonsági figyelmeztetések letiltása ezen a munkaterületen", - "toggleSecurityWarning.description": "Nem befolyásolja a tartalom biztonsági szintjét", "preview.showPreviewSecuritySelector.title": "Válassza ki a munkaterület Markdown-előnézeteinek biztonsági beállítását!" } \ No newline at end of file diff --git a/i18n/hun/extensions/merge-conflict/out/codelensProvider.i18n.json b/i18n/hun/extensions/merge-conflict/out/codelensProvider.i18n.json index 7dfc4ee0d5d..f791cf08702 100644 --- a/i18n/hun/extensions/merge-conflict/out/codelensProvider.i18n.json +++ b/i18n/hun/extensions/merge-conflict/out/codelensProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "acceptCurrentChange": "Helyi változtatás elfogadása", "acceptIncomingChange": "Beérkező változtatás elfogadása", "acceptBothChanges": "Változtatások elfogadása mindkét oldalról", diff --git a/i18n/hun/extensions/merge-conflict/out/commandHandler.i18n.json b/i18n/hun/extensions/merge-conflict/out/commandHandler.i18n.json index 16d242a669c..269bf3b18d1 100644 --- a/i18n/hun/extensions/merge-conflict/out/commandHandler.i18n.json +++ b/i18n/hun/extensions/merge-conflict/out/commandHandler.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cursorNotInConflict": "A szerkesztőablak kurzora nem egy összeolvasztási konfliktuson belül van.", "compareChangesTitle": "{0}: Helyi változtatások ⟷ Beérkező változtatások", "cursorOnCommonAncestorsRange": "A szerkesztőablak kurzora a közös ős blokkján van. Vigye vagy a \"helyi\" vagy a \"beérkező\" blokkra.", diff --git a/i18n/hun/extensions/merge-conflict/out/mergeDecorator.i18n.json b/i18n/hun/extensions/merge-conflict/out/mergeDecorator.i18n.json index dac641cdd10..267ec1fda8c 100644 --- a/i18n/hun/extensions/merge-conflict/out/mergeDecorator.i18n.json +++ b/i18n/hun/extensions/merge-conflict/out/mergeDecorator.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "currentChange": "(Helyi változtatás)", "incomingChange": "(Beérkező változtatás)" } \ No newline at end of file diff --git a/i18n/hun/extensions/npm/out/main.i18n.json b/i18n/hun/extensions/npm/out/main.i18n.json index 3ce6ffea152..7c22848110f 100644 --- a/i18n/hun/extensions/npm/out/main.i18n.json +++ b/i18n/hun/extensions/npm/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "npm.parseError": "Npm-feladatok felderítése: nem sikerült beolvasni a következő fájlt: {0}" } \ No newline at end of file diff --git a/i18n/hun/extensions/php/out/features/validationProvider.i18n.json b/i18n/hun/extensions/php/out/features/validationProvider.i18n.json index 2786c871df6..d4851192c11 100644 --- a/i18n/hun/extensions/php/out/features/validationProvider.i18n.json +++ b/i18n/hun/extensions/php/out/features/validationProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "php.useExecutablePath": "Engedélyezi a(z) {0} (munkaterületi beállításként megadott) végrehajtását a PHP-fájlok linteléséhez?", "php.yes": "Engedélyezés", "php.no": "Tiltás", diff --git a/i18n/hun/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json b/i18n/hun/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json new file mode 100644 index 00000000000..016d26a725b --- /dev/null +++ b/i18n/hun/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "noResults": "Nincs találat", + "description": "Leírás" +} \ No newline at end of file diff --git a/i18n/hun/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json b/i18n/hun/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/hun/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/hun/src/vs/code/electron-main/logUploader.i18n.json b/i18n/hun/src/vs/code/electron-main/logUploader.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/hun/src/vs/code/electron-main/logUploader.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/hun/src/vs/code/electron-main/menus.i18n.json b/i18n/hun/src/vs/code/electron-main/menus.i18n.json index 2bc39b91c91..94919096b31 100644 --- a/i18n/hun/src/vs/code/electron-main/menus.i18n.json +++ b/i18n/hun/src/vs/code/electron-main/menus.i18n.json @@ -180,12 +180,12 @@ "miConfigureTask": "Feladatok &&konfigurálása...", "miConfigureBuildTask": "Alapértelmezett buildelési &&feladat beállítása...", "accessibilityOptionsWindowTitle": "Kisegítő lehetőségek beállításai", - "miRestartToUpdate": "Újraindítás a frissítéshez...", + "miCheckForUpdates": "Frissítések keresése...", "miCheckingForUpdates": "Frissítések keresése...", "miDownloadUpdate": "Elérhető frissítés letöltése", "miDownloadingUpdate": "Frissítés letöltése...", "miInstallingUpdate": "Frissítés telepítése...", - "miCheckForUpdates": "Frissítések keresése...", + "miRestartToUpdate": "Újraindítás a frissítéshez...", "aboutDetail": "Verzió: {0}\nCommit: {1}\nDátum: {2}\nShell: {3}\nRendelő: {4}\nNode: {5}\nArchitektúra: {6}", "okButton": "OK", "copy": "&&Másolás" diff --git a/i18n/hun/src/vs/editor/browser/services/bulkEdit.i18n.json b/i18n/hun/src/vs/editor/browser/services/bulkEdit.i18n.json index 4542978520a..970cf632d01 100644 --- a/i18n/hun/src/vs/editor/browser/services/bulkEdit.i18n.json +++ b/i18n/hun/src/vs/editor/browser/services/bulkEdit.i18n.json @@ -6,8 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "conflict": "A következő fájlok módosultak időközben: {0}", "summary.0": "Nem történtek változtatások", "summary.nm": "{0} változtatást végzett {0} fájlban", - "summary.n0": "{0} változtatást végzett egy fájlban" + "summary.n0": "{0} változtatást végzett egy fájlban", + "conflict": "A következő fájlok módosultak időközben: {0}" } \ No newline at end of file diff --git a/i18n/hun/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/hun/src/vs/editor/common/config/commonEditorConfig.i18n.json index c297067e66f..21532a3464d 100644 --- a/i18n/hun/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/hun/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -28,6 +28,7 @@ "scrollBeyondLastLine": "Meghatározza, hogy a szerkesztőablak görgethető-e az utolsó sor után.", "smoothScrolling": "Meghatározza, hogy a szerkesztőablak animálva van-e görgetve.", "minimap.enabled": "Meghatározza, hogy megjelenjen-e a kódtérkép.", + "minimap.side": "Meghatározza, hogy melyik oldalon jelenjen meg a kódtérkép. Lehetséges értékek: 'right' és 'left'.", "minimap.showSlider": "Meghatározza, hogy automatikusan el legyen-e rejtve a kódtérképes görgetősáv. Lehetséges értékek: 'always' és 'mouseover'.", "minimap.renderCharacters": "Meghatározza, hogy a tényleges karakterek legyenek-e megjelenítve (színes téglalapok helyett)", "minimap.maxColumn": "Meghatározza, hogy a kódtérképen legfeljebb hány oszlop legyen kirajzolva.", @@ -65,6 +66,10 @@ "snippetSuggestions": "Meghatározza, hogy a kódtöredékek megjelenjenek-e a javaslatok között, illetve hogy hogyan legyenek rendezve.", "emptySelectionClipboard": "Meghatározza, hogy kijelölés nélküli másolás esetén a teljes sor legyen-e másolva.", "wordBasedSuggestions": "Meghatározza, hogy a kiegészítések listája a dokumentumban lévő szövegek alapján legyen-e meghatározva.", + "suggestSelection.first": "Mindig válassza az első javaslatot.", + "suggestSelection.recentlyUsed": "Válasszon a legutóbbi ajánlatok közül, hacsak a további gépelés ki nem választ egyet, pl. `console.| -> console.log`, mert nem rég a `log`-ra lett kiegészítve.", + "suggestSelection.recentlyUsedByPrefix": "Olyan ajánlat választása, ami már korábban ki lett választva az adott előtag használata esetén, pl. `co -> console` és `con -> const`.", + "suggestSelection": "Meghatározza, mely javaslat van előre kiválasztva a javaslatok listájából.", "suggestFontSize": "Az ajánlásokat tartalmazó modul betűmérete", "suggestLineHeight": "Az ajánlásokat tartalmazó modul sormagassága", "selectionHighlight": "Itt adható meg, hogy a szerkesztő kiemelje-e a kijelöléshez hasonló találatokat", @@ -74,7 +79,7 @@ "cursorBlinking": "Meghatározza a kurzor animációjának stílusát. Lehetséges értékek: 'blink', 'smooth', 'phase', 'expand' vagy 'solid'", "mouseWheelZoom": "A szerkesztőablak betűtípusának nagyítása vagy kicsinyítése az egérgörgő Ctrl lenyomása mellett történő használata esetén", "cursorStyle": "Meghatározza a kurzor stílusát. Lehetséges értékek: 'block', 'block-outline', 'line', 'line-thin', 'underline' vagy 'underline-thin'", - "lineCursorWidth": "Meghatározza a kurzor szélességét, ha az editor.cursorStyle értéke 'line'.", + "cursorWidth": "Meghatározza a kurzor szélességét, ha az editor.cursorStyle értéke 'line'.", "fontLigatures": "Engedélyezi a betűtípusban található ligatúrák használatát", "hideCursorInOverviewRuler": "Meghatározza, hogy a kurzor pozíciója el legyen-e rejtve az áttekintő sávon.", "renderWhitespace": "Meghatározza, hogy a szerkesztőablakban hogyan legyenek kirajzolva a szóköz karakterek. Lehetséges értékek: 'none', 'boundary', vagy 'all'. A 'boundary' beállítás esetén, ha szavak között egyetlen szóköz található, akkor az nem lesz kirajzolva.", diff --git a/i18n/hun/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json b/i18n/hun/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json index 19f928c5d06..97de1ae0872 100644 --- a/i18n/hun/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json +++ b/i18n/hun/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json @@ -6,5 +6,7 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "smartSelect.jumpBracket": "Ugrás a zárójelre" + "overviewRulerBracketMatchForeground": "Kapcsolódó zárójeleket jelölő jelzések színe az áttekintősávon.", + "smartSelect.jumpBracket": "Ugrás a zárójelre", + "smartSelect.selectToBracket": "Kijelölés a zárójelig" } \ No newline at end of file diff --git a/i18n/hun/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json b/i18n/hun/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json index c3dbdd9e809..34a96fd50f4 100644 --- a/i18n/hun/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json +++ b/i18n/hun/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json @@ -8,5 +8,6 @@ ], "quickFixWithKb": "Javítások megjelenítése ({0})", "quickFix": "Javítások megjelenítése", - "quickfix.trigger.label": "Gyorsjavítás" + "quickfix.trigger.label": "Gyorsjavítás", + "refactor.label": "Refaktorálás" } \ No newline at end of file diff --git a/i18n/hun/src/vs/platform/environment/node/argv.i18n.json b/i18n/hun/src/vs/platform/environment/node/argv.i18n.json index b0c1b656587..966e4e365e6 100644 --- a/i18n/hun/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/hun/src/vs/platform/environment/node/argv.i18n.json @@ -10,11 +10,8 @@ "diff": "Két fájl összehasonlítása egymással.", "add": "Mappá(k) hozzáadása a legutolsó aktív ablakhoz.", "goto": "Megnyitja a megadott elérési úton található fájlt a megadott sornál és oszlopnál.", - "newWindow": "Mindenképp induljon új példány a Code-ból.", - "reuseWindow": "Fájl vagy mappa megnyitása a legutoljára aktív ablakban.", "wait": "Várjon a fájlok bezárására a visszatérés előtt.", "locale": "A használt lokalizáció (pl. en-US vagy zh-TW)", - "userDataDir": "Meghatározza a könyvtárat, ahol a felhasználói adatok vannak tárolva. Hasznás, ha rootként van futtatva.", "version": "Verzió kiírása.", "help": "Használati útmutató kiírása.", "extensionHomePath": "A kiegészítők gyökérkönyvtárának beállítása.", @@ -33,7 +30,6 @@ "inspect-brk-extensions": "Hibakeresés és profilozás engedélyezése a kiegészítőkben, úgy, hogy a kiegészítő gazdafolyamata szüneteltetve lesz az indítás után. Ellenőrizze a fejlesztői eszközöket a csatlakozási URI-hoz. ", "disableGPU": "Hardveres gyorsítás letiltása.", "uploadLogs": "Az aktuális munkamenet naplóinak feltöltése egy biztonságos végpontra.", - "issue": "Probléma jelentése", "usage": "Használat", "options": "beállítások", "paths": "elérési utak", diff --git a/i18n/hun/src/vs/platform/issue/electron-main/issueService.i18n.json b/i18n/hun/src/vs/platform/issue/electron-main/issueService.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/hun/src/vs/platform/issue/electron-main/issueService.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/hun/src/vs/platform/list/browser/listService.i18n.json b/i18n/hun/src/vs/platform/list/browser/listService.i18n.json index 5363fa8a179..f820502bc2b 100644 --- a/i18n/hun/src/vs/platform/list/browser/listService.i18n.json +++ b/i18n/hun/src/vs/platform/list/browser/listService.i18n.json @@ -8,6 +8,5 @@ ], "workbenchConfigurationTitle": "Munkaterület", "multiSelectModifier.ctrlCmd": "Windows és Linux alatt a `Control`, macOS alatt a `Command` billentyűt jelenti.", - "multiSelectModifier.alt": "Windows és Linux alatt az `Alt`, macOS alatt az `Option` billentyűt jelenti.", - "multiSelectModifier": "Több elem kijelölése esetén újabb elem hozzáadásához használt módosítóbillentyű (például a fanézetekben és listáknál, ha támogatva van). A `ctrlCmd` Windows és Linux alatt a `Control`, macOS alatt a `Command` billentyűt jelenti. A 'Megnyitás oldalt\" egérgesztusok – ha támogatva vannak – automatikusan úgy lesznek beállítva, hogy ne ütközzenek a több elem kijelöléséhez tartozó módosítóbillentyűvel." + "multiSelectModifier.alt": "Windows és Linux alatt az `Alt`, macOS alatt az `Option` billentyűt jelenti." } \ No newline at end of file diff --git a/i18n/hun/src/vs/platform/localizations/common/localizations.i18n.json b/i18n/hun/src/vs/platform/localizations/common/localizations.i18n.json new file mode 100644 index 00000000000..9d2a66e5573 --- /dev/null +++ b/i18n/hun/src/vs/platform/localizations/common/localizations.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "vscode.extension.contributes.localizations": "Lokalizációkat szolgáltat a szerkesztőhöz", + "vscode.extension.contributes.localizations.languageId": "Annak a nyelvnek az azonosítója, amelyre a megjelenített szövegek fordítva vannak." +} \ No newline at end of file diff --git a/i18n/hun/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json b/i18n/hun/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/hun/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/hun/src/vs/workbench/api/node/extHostWorkspace.i18n.json b/i18n/hun/src/vs/workbench/api/node/extHostWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/hun/src/vs/workbench/api/node/extHostWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/hun/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json b/i18n/hun/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json new file mode 100644 index 00000000000..c5650196af2 --- /dev/null +++ b/i18n/hun/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "sizeB": "{0} B", + "sizeKB": "{0} KB", + "sizeMB": "{0} MB", + "sizeGB": "{0} GB", + "sizeTB": "{0} TB", + "resourceOpenExternalButton": "Kép megnyitása külső program használatával?", + "nativeBinaryError": "A fájl nem jeleníthető meg a szerkesztőben, mert bináris adatokat tartalmaz, túl nagy vagy nem támogatott szövegkódolást használ.", + "imgMeta": "{0}x{1} {2}" +} \ No newline at end of file diff --git a/i18n/hun/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/hun/src/vs/workbench/electron-browser/actions.i18n.json index 8466a8a20d0..14c76a0237d 100644 --- a/i18n/hun/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/hun/src/vs/workbench/electron-browser/actions.i18n.json @@ -31,7 +31,6 @@ "openRecent": "Legutóbbi megnyitása...", "quickOpenRecent": "Legutóbbi gyors megnyitása...", "closeMessages": "Értesítések törlése", - "openIssueReporter": "Hibajelentő megnyitása", "reportIssueInEnglish": "Probléma jelentése", "reportPerformanceIssue": "Teljesítményproblémák jelentése", "keybindingsReference": "Billentyűparancs-referencia", diff --git a/i18n/hun/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/hun/src/vs/workbench/electron-browser/main.contribution.i18n.json index dd0cb43a7a6..fb26cad0fa6 100644 --- a/i18n/hun/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/hun/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -35,7 +35,6 @@ "panelDefaultLocation": "Meghatározza a panel alapértelmezett pozícióját. A panel a munkaterület alján vagy jobb oldalán jelenhet meg.", "statusBarVisibility": "Meghatározza, hogy megjelenjen-e az állapotsor a munkaterület alján.", "activityBarVisibility": "Meghatározza, hogy megjelenjen-e a tevékenységsáv a munkaterületen.", - "fontAliasing": "Meghatározza a munkaterületen megjelenő betűtípusok élsimítási módszerét.\n- default: Szubpixeles betűsimítás. A legtöbb nem-retina típusú kijelzőn ez adja a legélesebb szöveget.\n- antialiased: A betűket pixelek, és nem szubpixelek szintjén simítja. A betűtípus vékonyabbnak tűnhet összességében.\n- none: Letiltja a betűtípusok élsimítését. A szövegek egyenetlen, éles szélekkel jelennek meg.", "workbench.fontAliasing.default": "Szubpixeles betűsimítás. A legtöbb nem-retina típusú kijelzőn ez adja a legélesebb szöveget.", "workbench.fontAliasing.antialiased": "A betűket pixelek, és nem szubpixelek szintjén simítja. A betűtípus vékonyabbnak tűnhet összességében.", "workbench.fontAliasing.none": "Letiltja a betűtípusok élsimítését. A szövegek egyenetlen, éles szélekkel jelennek meg.", diff --git a/i18n/hun/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json b/i18n/hun/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json index 04d4c5668b0..c0d50b4b05c 100644 --- a/i18n/hun/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json +++ b/i18n/hun/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json @@ -19,12 +19,12 @@ "debugRequesMissing": "A(z) '{0}' attribútum hiányzik a kiválasztott hibakeresési konfigurációból.", "debugTypeNotSupported": "A megadott hibakeresési típus ('{0}') nem támogatott.", "debugTypeMissing": "A kiválasztott indítási konfigurációnak hiányzik a `type` tulajdonsága.", - "debugAnyway": "Hibakeresés indítása mindenképp", "preLaunchTaskErrors": "Buildelési hibák léptek fel a(z) '{0}' preLaunchTask futása közben.", "preLaunchTaskError": "Buildelési hiba lépett fel a(z) '{0}' preLaunchTask futása közben.", "preLaunchTaskExitCode": "A(z) '{0}' preLaunchTask a következő hibakóddal fejeződött be: {1}.", + "debugAnyway": "Hibakeresés indítása mindenképp", + "cancel": "Mégse", "noFolderWorkspaceDebugError": "Az aktív fájlon nem lehet hibakeresést végezni. Bizonyosodjon meg róla, hogy el van mentve a lemezre, és hogy az adott fájltípushoz telepítve van a megfelelő hibakeresési kiegészítő.", - "NewLaunchConfig": "Állítson be egy indítási konfigurációt az alkalmazása számára. {0}", "DebugTaskNotFound": "A(z) '{0}' preLaunchTask nem található.", "taskNotTracked": "A(z) ${0} preLaunchTaskot nem lehet követni." } \ No newline at end of file diff --git a/i18n/hun/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/hun/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 2e6bc3952be..8c69d5e6f09 100644 --- a/i18n/hun/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/hun/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -18,5 +18,6 @@ "sort by name": "Rendezés név szerint", "suggestProxyError": "A piactér 'ECONNREFUSED' hibával tért vissza. Ellenőrizze a 'http.proxy' beállítást!", "extensions": "Kiegészítők", - "outdatedExtensions": "{0} elavult kiegészítő" + "outdatedExtensions": "{0} elavult kiegészítő", + "reloadNow": "Újratöltés most" } \ No newline at end of file diff --git a/i18n/hun/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json b/i18n/hun/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json index 9640132ec44..eb7e9655776 100644 --- a/i18n/hun/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json +++ b/i18n/hun/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json @@ -7,7 +7,6 @@ "Do not edit this file. It is machine generated." ], "installingVSIXExtension": "Kiegészítő telepítése VSIX-ből...", - "installingMarketPlaceExtension": "Kiegészítő telepítése a piactérről...", "uninstallingExtension": "Kiegészítő eltávolítása...", "enableDependeciesConfirmation": "A(z) '{0}' engedélyezésével annak függőségei is engedélyezve lesznek. Szeretné folytatni?", "enable": "Igen", diff --git a/i18n/hun/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json b/i18n/hun/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json index e879833dd7c..435a44357b5 100644 --- a/i18n/hun/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json +++ b/i18n/hun/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json @@ -8,11 +8,10 @@ ], "openLogsFolder": "Naplómappa megnyitása", "showLogs": "Naplók megjelenítése...", - "mainProcess": "Elsődleges", - "sharedProcess": "Megosztott", - "rendererProcess": "Ablak", + "emptyWindow": "Ablak", "extensionHost": "Kiegészítő gazdafolyamata", - "selectProcess": "Válasszon folyamatot!", + "sharedProcess": "Megosztott", + "mainProcess": "Elsődleges", "openLogFile": "Naplófájl megnyitása...", "setLogLevel": "Naplózási szint beállítása", "trace": "Nyomkövetés", @@ -22,5 +21,6 @@ "err": "Hiba", "critical": "Kritikus", "off": "Kikapcsolva", - "selectLogLevel": "Naplózási szint beállítása" + "selectLogLevel": "Naplózási szint beállítása", + "default": "Alapértelmezett" } \ No newline at end of file diff --git a/i18n/hun/src/vs/workbench/parts/markers/common/markers.i18n.json b/i18n/hun/src/vs/workbench/parts/markers/common/markers.i18n.json new file mode 100644 index 00000000000..0eecc9c3575 --- /dev/null +++ b/i18n/hun/src/vs/workbench/parts/markers/common/markers.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "totalProblems": "Összesen {0} probléma", + "filteredProblems": "{0} probléma megjelenítve (összesen: {1})" +} \ No newline at end of file diff --git a/i18n/hun/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json b/i18n/hun/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json index 2948cbb00e1..3b95fa88154 100644 --- a/i18n/hun/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json +++ b/i18n/hun/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json @@ -17,7 +17,6 @@ "addLabel": "Billentyűparancs hozzáadása", "removeLabel": "Billentyűparancs eltávolítása", "resetLabel": "Billentyűparancs visszaállítása", - "showConflictsLabel": "Konfliktusok megjelenítése", "copyLabel": "Másolás", "copyCommandLabel": "Parancs másolása", "error": "'{0}' hiba a billentyűparancsok szerkesztése közben. Nyissa meg a 'keybindings.json' fájlt, és ellenőrizze!", diff --git a/i18n/hun/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json b/i18n/hun/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json index 1d326c7d705..2affc6ad1ad 100644 --- a/i18n/hun/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json +++ b/i18n/hun/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json @@ -10,8 +10,6 @@ "SearchSettingsWidget.AriaLabel": "Beállítások keresése", "SearchSettingsWidget.Placeholder": "Beállítások keresése", "noSettingsFound": "Nincs eredmény", - "oneSettingFound": "1 illeszkedő beállítás", - "settingsFound": "{0} illeszkedő beállítás", "totalSettingsMessage": "Összesen {0} beállítás", "nlpResult": "Természetes nyelvi keresés eredményei", "filterResult": "Szűrt találatok", diff --git a/i18n/hun/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json b/i18n/hun/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json index 26d5a32c47f..1a2415a97d0 100644 --- a/i18n/hun/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json +++ b/i18n/hun/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json @@ -12,6 +12,5 @@ "view": "Nézet", "scmConfigurationTitle": "VKR (SCM)", "alwaysShowProviders": "Mindig megjelenjen-e a verziókezelő rendszerek szakasz.", - "diffDecorations": "Vezérli a szerkesztőablakban megjelenő, változásokat jelölő dekorátorokat.", - "inputCounter": "Meghatározza, hogy mikor jelenjen meg a bemeneti karakterszámláló." + "diffDecorations": "Vezérli a szerkesztőablakban megjelenő, változásokat jelölő dekorátorokat." } \ No newline at end of file diff --git a/i18n/hun/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json b/i18n/hun/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json index e68aa19a82a..62a27fb2806 100644 --- a/i18n/hun/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json +++ b/i18n/hun/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json @@ -8,9 +8,6 @@ ], "scm providers": "Verziókezelő rendszerek", "hideRepository": "Elrejtés", - "commitMessageInfo": "{0} karakter a jelenlegi sorban", - "commitMessageCountdown": "{0} karakter maradt az aktuális sorban", - "commitMessageWarning": " {0} karakterrel több, mint {1} az aktuális sorban", "installAdditionalSCMProviders": "További verziókezelő rendszerek telepítése...", "no open repo": "Nincs aktív verziókezelő rendszer.", "source control": "Verziókezelő rendszer", diff --git a/i18n/hun/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json b/i18n/hun/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json index 65bf3fa4359..273ee125f36 100644 --- a/i18n/hun/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json +++ b/i18n/hun/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json @@ -21,10 +21,6 @@ "JsonSchema.tasks.terminal": "A terminal tulajdonság elavult. Használja helyette a presentation tulajdonságot!", "JsonSchema.tasks.group.kind": "A feladat végrehajtási csoportja.", "JsonSchema.tasks.group.isDefault": "Meghatározza, hogy ez a feladat egy elsődleges feladat-e a csoportban.", - "JsonSchema.tasks.group.defaultBuild": "A feladatot az alapértelmezett buildelési feladatnak jelöli meg.", - "JsonSchema.tasks.group.defaultTest": "A feladatot az alapértelmezett tesztelési feladatnak jelöli meg.", - "JsonSchema.tasks.group.build": "A feladatot a 'Buildelési feladat futtatása' parancson keresztül elérhető buildelési feladatnak jelöli meg.", - "JsonSchema.tasks.group.test": "A feladatot a 'Tesztelési feladat futtatása' parancson keresztül elérhető tesztelési feladatnak jelöli meg.", "JsonSchema.tasks.group.none": "A feladatot egyetlen csoporthoz sem rendeli", "JsonSchema.tasks.group": "Meghatározza a feladat végrehajtási csoportját. A \"build\" esetén a buildelési csoportba, a \"test\" esetén a tesztelési csoportba kerül bele a feladat.", "JsonSchema.tasks.type": "Meghatározza, hogy a feladat folyamatként van-e végrehajtva vagy egy parancsként a shellben.", diff --git a/i18n/hun/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/hun/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index ac3342872e2..75d507968be 100644 --- a/i18n/hun/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/hun/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -21,14 +21,12 @@ "terminal.integrated.fontFamily": "Meghatározza a terminál betűtípusát. Alapértelmezett értéke az editor.fontFamily értéke.", "terminal.integrated.fontSize": "Meghatározza a terminálban használt betű méretét, pixelekben.", "terminal.integrated.lineHeight": "Meghatározza a terminál sormagasságát. A tényleges méret a megadott szám és a terminál betűméretének szorzatából jön ki.", - "terminal.integrated.enableBold": "Engedélyezve van-e a félkövér szöveg a terminálban. A működéshez szükséges, hogy a terminál shell támogassa a félkövér betűket.", "terminal.integrated.cursorBlinking": "Meghatározza, hogy a terminál kurzora villog-e.", "terminal.integrated.cursorStyle": "Meghatározza a terminál kurzorának stílusát.", "terminal.integrated.scrollback": "Meghatározza, hogy a terminál legfeljebb hány sort tárol a pufferben.", "terminal.integrated.setLocaleVariables": "Meghatározza, hogy a lokálváltozók be vannak-e állítva a terminál indításánál. Alapértelmezett értéke igaz OS X-en, hamis más platformokon.", "terminal.integrated.cwd": "Explicit elérési út, ahol a terminál indítva lesz. Ez a shellfolyamat munkakönyvtára (cwd) lesz. Ez a beállítás nagyon hasznos olyan munkaterületeken, ahol a gyökérkönyvtár nem felel meg munkakönyvtárnak.", "terminal.integrated.confirmOnExit": "Meghatározza, hogy megerősítést kér-e az alkalamzás, ha van aktív terminál-munkafolyamat.", - "terminal.integrated.enableBell": "Meghatározza, hogy engedélyezve van-e a csengő a terminálba.", "terminal.integrated.commandsToSkipShell": "Olyan parancsazonosítók listája, melyek nem lesznek elküldve a shellnek, és ehelyett mindig a Code kezeli le őket. Ez lehetővé teszi, hogy az olyan billentyűparancsok, melyeket normál esetben a shell dolgozna fel, ugyanúgy működjenek, mint mikor a terminálon nincs fókusz. Például ilyen a gyorsmegnyitás indításához használt Ctrl+P.", "terminal.integrated.env.osx": "A VS Code folyamatához hozzáadott környezeti változókat tartalmazó objektum, amit az OS X-es terminál használ.", "terminal.integrated.env.linux": "A VS Code folyamatához hozzáadott környezeti változókat tartalmazó objektum, amit a linuxos terminál használ.", diff --git a/i18n/hun/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/hun/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index 85e626360d9..a37e3c817b3 100644 --- a/i18n/hun/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/hun/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -14,7 +14,6 @@ "workbench.action.terminal.selectAll": "Összes kijelölése", "workbench.action.terminal.deleteWordLeft": "Balra lévő szó törlése", "workbench.action.terminal.deleteWordRight": "Jobbra lévő szó törlése", - "workbench.action.terminal.enterLineNavigationMode": "Belépés a képernyőolvasó navigációs módjába", "workbench.action.terminal.new": "Új integrált terminál létrehozása", "workbench.action.terminal.new.short": "Új terminál", "workbench.action.terminal.newWorkspacePlaceholder": "Az aktuális munkakönyvtár kiválasztása az új terminálhoz", diff --git a/i18n/hun/src/vs/workbench/parts/update/electron-browser/update.i18n.json b/i18n/hun/src/vs/workbench/parts/update/electron-browser/update.i18n.json index 208b9a0577b..d001933dd31 100644 --- a/i18n/hun/src/vs/workbench/parts/update/electron-browser/update.i18n.json +++ b/i18n/hun/src/vs/workbench/parts/update/electron-browser/update.i18n.json @@ -6,12 +6,10 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "updateNow": "Frissítés most", "later": "Később", "unassigned": "nincs hozzárendelve", "releaseNotes": "Kiadási jegyzék", "showReleaseNotes": "Kiadási jegyzék megjelenítése", - "downloadNow": "Letöltés most", "read the release notes": "Üdvözöljük a {0} v{1} verziójában. Szeretné megtekinteni a kiadási jegyzéket?", "licenseChanged": "A licencfeltételek változtak. Olvassa végig!", "license": "Licenc elolvasása", @@ -19,20 +17,20 @@ "64bitisavailable": "Elérhető a {0} 64-bites Windowsra készült változata!", "learn more": "További információ", "updateIsReady": "Új {0}-frissítés érhető el.", - "thereIsUpdateAvailable": "Van elérhető frissítés.", - "updateAvailable": "A {0} frissül az újraindítás után.", "noUpdatesAvailable": "Jelenleg nincs elérhető frissítés.", + "download now": "Letöltés most", + "thereIsUpdateAvailable": "Van elérhető frissítés.", + "updateNow": "Frissítés most", + "updateAvailableAfterRestart": "A {0} frissül az újraindítás után.", "commandPalette": "Parancskatalógus...", "settings": "Beállítások", "keyboardShortcuts": "Billentyűparancsok", "userSnippets": "Felhasználói kódrészletek", "selectTheme.label": "Színtéma", "themes.selectIconTheme.label": "Fájlikontéma", - "not available": "A frissítések nem érhetők el", + "checkForUpdates": "Frissítések keresése...", "checkingForUpdates": "Frissítések keresése...", - "DownloadUpdate": "Elérhető frissítés letöltése", "DownloadingUpdate": "Frissítés letöltése...", - "InstallingUpdate": "Frissítés telepítése...", - "restartToUpdate": "Újraindítás a frissítéshez...", - "checkForUpdates": "Frissítések keresése..." + "installingUpdate": "Frissítés telepítése...", + "restartToUpdate": "Újraindítás a frissítéshez..." } \ No newline at end of file diff --git a/i18n/hun/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json b/i18n/hun/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json index 6e303c9037d..816060ad966 100644 --- a/i18n/hun/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json +++ b/i18n/hun/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json @@ -8,6 +8,6 @@ ], "jsonParseFail": "Hiba a(z) {0} feldolgozása közben: {1}.", "fileReadFail": "A(z) ({0}) fájl nem olvasható: {1}.", - "jsonsParseFail": "Hiba a(z) {0} vagy {1} feldolgozása közben: {2}.", + "jsonsParseReportErrors": "Hiba a(z) {0} feldolgozása közben: {1}.", "missingNLSKey": "A(z) {0} kulcshoz tartozó üzenet nem található." } \ No newline at end of file diff --git a/i18n/ita/extensions/css/client/out/cssMain.i18n.json b/i18n/ita/extensions/css/client/out/cssMain.i18n.json index ba180eb1499..49766496907 100644 --- a/i18n/ita/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/ita/extensions/css/client/out/cssMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cssserver.name": "Server di linguaggio CSS", "folding.start": "Inizio di una regione riducibile", "folding.end": "Fine di una regione riducibile" diff --git a/i18n/ita/extensions/git/out/askpass-main.i18n.json b/i18n/ita/extensions/git/out/askpass-main.i18n.json index 4160c1353c3..02f004177e6 100644 --- a/i18n/ita/extensions/git/out/askpass-main.i18n.json +++ b/i18n/ita/extensions/git/out/askpass-main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "missOrInvalid": "Credenziali mancanti o non valide." } \ No newline at end of file diff --git a/i18n/ita/extensions/git/out/autofetch.i18n.json b/i18n/ita/extensions/git/out/autofetch.i18n.json index 96f76ecafff..b3512e5bc95 100644 --- a/i18n/ita/extensions/git/out/autofetch.i18n.json +++ b/i18n/ita/extensions/git/out/autofetch.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "yes": "Sì", "read more": "Altre informazioni", "no": "No", diff --git a/i18n/ita/extensions/git/out/commands.i18n.json b/i18n/ita/extensions/git/out/commands.i18n.json index 167af56bf54..fc40253cbec 100644 --- a/i18n/ita/extensions/git/out/commands.i18n.json +++ b/i18n/ita/extensions/git/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "tag at": "Tag in {0}", "remote branch at": "Ramo remoto in {0}", "create branch": "$(plus) Crea nuovo branch", @@ -26,7 +28,6 @@ "revert": "Annulla modifiche", "discard": "Rimuovi modifiche", "confirm delete": "ELIMINARE {0}?", - "delete file": "Elimina file", "confirm discard": "Rimuovere le modifiche in {0}?", "confirm discard multiple": "Rimuovere le modifiche in {0} file?", "warn untracked": "Verranno ELIMINATI {0} file di cui non viene tenuta traccia.", @@ -60,9 +61,7 @@ "branch already exists": "La branch denominata '{0}' esiste già", "select a branch to merge from": "Selezionare un ramo da cui eseguire il merge", "merge conflicts": "Ci sono conflitti di merge. Risolverli prima di eseguire commit.", - "tag name": "Nome del tag", "provide tag name": "Specificare un nome di tag", - "tag message": "Messaggio", "provide tag message": "Specificare un messaggio per aggiungere un'annotazione per il tag", "no remotes to fetch": "Questo repository non ha remote configurati da cui eseguire un fetch.", "no remotes to pull": "Il repository non contiene elementi remoti configurati come origini del pull.", @@ -74,6 +73,7 @@ "push with tags success": "Il push con tag è riuscito.", "pick remote": "Selezionare un repository remoto in cui pubblicare il ramo '{0}':", "sync is unpredictable": "Questa azione consentirà di effettuare il push e il pull di commit da e verso '{0}'.", + "never again": "OK, non visualizzare più", "no remotes to publish": "Il repository non contiene elementi remoti configurati come destinazione della pubblicazione.", "no changes stash": "Non ci sono modifiche da accantonare.", "provide stash message": "Specificare un messaggio di accantonamento (facoltativo)", diff --git a/i18n/ita/extensions/git/out/main.i18n.json b/i18n/ita/extensions/git/out/main.i18n.json index 657b68a5882..d8c93e7a514 100644 --- a/i18n/ita/extensions/git/out/main.i18n.json +++ b/i18n/ita/extensions/git/out/main.i18n.json @@ -1,12 +1,13 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "looking": "Ricerca di git in: {0}", "using git": "Uso di GIT {0} da {1}", - "downloadgit": "Scarica Git", "neverShowAgain": "Non visualizzare più questo messaggio", "notfound": "Git non trovato. Installarlo o configurarlo utilizzando l'impostazione 'git.path'.", "updateGit": "Aggiorna GIT", diff --git a/i18n/ita/extensions/git/out/model.i18n.json b/i18n/ita/extensions/git/out/model.i18n.json index 22eb58052df..f5ab915a1c3 100644 --- a/i18n/ita/extensions/git/out/model.i18n.json +++ b/i18n/ita/extensions/git/out/model.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "no repositories": "Non ci sono repository disponibili", "pick repo": "Scegli un repository" } \ No newline at end of file diff --git a/i18n/ita/extensions/git/out/repository.i18n.json b/i18n/ita/extensions/git/out/repository.i18n.json index b6420fa4c98..d5f49463711 100644 --- a/i18n/ita/extensions/git/out/repository.i18n.json +++ b/i18n/ita/extensions/git/out/repository.i18n.json @@ -1,24 +1,17 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "open": "Apri", "index modified": "Indice modificato", "modified": "Modificato", - "index added": "Indice aggiunto", - "index deleted": "Indice eliminato", "deleted": "Eliminato", - "index renamed": "Indice rinominato", - "index copied": "Indice copiato", "untracked": "Non registrato", "ignored": "Ignorato", - "both deleted": "Entrambi eliminati", - "added by us": "Aggiunto da noi", - "deleted by them": "Eliminato da loro", - "added by them": "Aggiunto da loro", - "deleted by us": "Eliminato da noi", "both added": "Entrambi aggiunti", "both modified": "Entrambi modificati", "commitMessage": "Message (press {0} to commit)", @@ -26,6 +19,8 @@ "merge changes": "Esegui merge delle modifiche", "staged changes": "Modifiche preparate per il commit", "changes": "Modifiche", + "commitMessageCountdown": "ancora {0} caratteri disponibili nella riga corrente", + "commitMessageWarning": "{0} caratteri rispetto ai {1} disponibili nella riga corrente", "ok": "OK", "neveragain": "Non visualizzare più questo messaggio", "huge": "Il repository git '{0}' ha troppe modifiche attive - verrà attivato solo un sottoinsieme delle funzionalità di Git." diff --git a/i18n/ita/extensions/git/out/statusbar.i18n.json b/i18n/ita/extensions/git/out/statusbar.i18n.json index fe9c1294a41..9c490ff6e8f 100644 --- a/i18n/ita/extensions/git/out/statusbar.i18n.json +++ b/i18n/ita/extensions/git/out/statusbar.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "checkout": "Estrai...", "sync changes": "Sincronizza modifiche", "publish changes": "Pubblica modifiche", diff --git a/i18n/ita/extensions/grunt/out/main.i18n.json b/i18n/ita/extensions/grunt/out/main.i18n.json index b0acbd01bca..01f22c8f2f3 100644 --- a/i18n/ita/extensions/grunt/out/main.i18n.json +++ b/i18n/ita/extensions/grunt/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Rilevamento automatico di Grunt per la cartella {0} non riuscito - errore: {1}" } \ No newline at end of file diff --git a/i18n/ita/extensions/gulp/out/main.i18n.json b/i18n/ita/extensions/gulp/out/main.i18n.json index e6e18f9d518..ecaa1de646c 100644 --- a/i18n/ita/extensions/gulp/out/main.i18n.json +++ b/i18n/ita/extensions/gulp/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Rilevamento automatico di Gulp per la cartella {0} non riuscito - errore: {1}" } \ No newline at end of file diff --git a/i18n/ita/extensions/html/client/out/htmlMain.i18n.json b/i18n/ita/extensions/html/client/out/htmlMain.i18n.json index 81abd3e7997..8313a5f7e1b 100644 --- a/i18n/ita/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/ita/extensions/html/client/out/htmlMain.i18n.json @@ -1,10 +1,12 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "htmlserver.name": "Server di linguaggio HTML", "folding.start": "Inizio di una regione riducibile", - "folding.end": "Fine regione riducibile" + "folding.end": "Fine di una regione riducibile" } \ No newline at end of file diff --git a/i18n/ita/extensions/jake/out/main.i18n.json b/i18n/ita/extensions/jake/out/main.i18n.json index 0a83577e4d6..fac2d4b2561 100644 --- a/i18n/ita/extensions/jake/out/main.i18n.json +++ b/i18n/ita/extensions/jake/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Rilevamento automatico di Jake per la cartella {0} non riuscito - errore: {1}" } \ No newline at end of file diff --git a/i18n/ita/extensions/json/client/out/jsonMain.i18n.json b/i18n/ita/extensions/json/client/out/jsonMain.i18n.json index 202f6e6cb7b..b9cca5241bb 100644 --- a/i18n/ita/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/ita/extensions/json/client/out/jsonMain.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "jsonserver.name": "Server di linguaggio JSON" } \ No newline at end of file diff --git a/i18n/ita/extensions/markdown/out/commands.i18n.json b/i18n/ita/extensions/markdown/out/commands.i18n.json index 385404beefc..eb5c477e4c1 100644 --- a/i18n/ita/extensions/markdown/out/commands.i18n.json +++ b/i18n/ita/extensions/markdown/out/commands.i18n.json @@ -1,9 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "previewTitle": "Anteprima {0}", + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "onPreviewStyleLoadError": "Impossibile caricare 'markdown.styles': {0}" } \ No newline at end of file diff --git a/i18n/ita/extensions/markdown/out/features/previewContentProvider.i18n.json b/i18n/ita/extensions/markdown/out/features/previewContentProvider.i18n.json index 9207358bc4d..991ae221d10 100644 --- a/i18n/ita/extensions/markdown/out/features/previewContentProvider.i18n.json +++ b/i18n/ita/extensions/markdown/out/features/previewContentProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "preview.securityMessage.text": "Alcuni contenuti sono stati disabilitati in questo documento", "preview.securityMessage.title": "Contenuti potenzialmente non sicuri sono stati disattivati nell'anteprima del Markdown. Modificare l'impostazione di protezione dell'anteprima del Markdown per consentire la visualizzazione di contenuto insicuro o abilitare gli script", "preview.securityMessage.label": "Avviso di sicurezza contenuto disabilitato" diff --git a/i18n/ita/extensions/markdown/out/security.i18n.json b/i18n/ita/extensions/markdown/out/security.i18n.json index 82c72e77e6a..3bbe03d07a3 100644 --- a/i18n/ita/extensions/markdown/out/security.i18n.json +++ b/i18n/ita/extensions/markdown/out/security.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "strict.title": "Strict", "strict.description": "Carica solo contenuto protetto", "insecureContent.title": "Consenti contenuto non protetto", @@ -13,6 +15,5 @@ "moreInfo.title": "Altre informazioni", "enableSecurityWarning.title": "Abilita anteprima degli avvisi di protezione in questa area di lavoro", "disableSecurityWarning.title": "Disabilita anteprima degli avvisi di protezione in questa area di lavoro", - "toggleSecurityWarning.description": "Non influenza il livello di sicurezza del contenuto", "preview.showPreviewSecuritySelector.title": "Seleziona impostazioni di protezione per le anteprime Markdown in questa area di lavoro" } \ No newline at end of file diff --git a/i18n/ita/extensions/merge-conflict/out/codelensProvider.i18n.json b/i18n/ita/extensions/merge-conflict/out/codelensProvider.i18n.json index b8b557539d9..591bd2bf3c6 100644 --- a/i18n/ita/extensions/merge-conflict/out/codelensProvider.i18n.json +++ b/i18n/ita/extensions/merge-conflict/out/codelensProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "acceptCurrentChange": "Accetta modifica corrente", "acceptIncomingChange": "Accetta modifica in ingresso", "acceptBothChanges": "Accetta entrambe le modifiche", diff --git a/i18n/ita/extensions/merge-conflict/out/commandHandler.i18n.json b/i18n/ita/extensions/merge-conflict/out/commandHandler.i18n.json index cc3827ee77b..8acf12c73f1 100644 --- a/i18n/ita/extensions/merge-conflict/out/commandHandler.i18n.json +++ b/i18n/ita/extensions/merge-conflict/out/commandHandler.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cursorNotInConflict": "Il cursore dell'editor non si trova all'interno di un conflitto merge", "compareChangesTitle": "{0}: modifiche correnti ⟷ modifiche in ingresso", "cursorOnCommonAncestorsRange": "Il cursore dell'editor si trova all'interno del blocco di antenati comuni, si prega di passare al blocco \"corrente\" o \"in arrivo\"", diff --git a/i18n/ita/extensions/merge-conflict/out/mergeDecorator.i18n.json b/i18n/ita/extensions/merge-conflict/out/mergeDecorator.i18n.json index ff68382dadc..1eb03a12d46 100644 --- a/i18n/ita/extensions/merge-conflict/out/mergeDecorator.i18n.json +++ b/i18n/ita/extensions/merge-conflict/out/mergeDecorator.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "currentChange": "(modifica corrente)", "incomingChange": "(modifica in ingresso)" } \ No newline at end of file diff --git a/i18n/ita/extensions/npm/out/main.i18n.json b/i18n/ita/extensions/npm/out/main.i18n.json index a8e1865d452..35229bd6699 100644 --- a/i18n/ita/extensions/npm/out/main.i18n.json +++ b/i18n/ita/extensions/npm/out/main.i18n.json @@ -1,8 +1,9 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "npm.parseError": "Rilevamento attività NPM: Impossibile analizzare il file {0}" + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] } \ No newline at end of file diff --git a/i18n/ita/extensions/php/out/features/validationProvider.i18n.json b/i18n/ita/extensions/php/out/features/validationProvider.i18n.json index a8021ba7105..7a30dfbedfe 100644 --- a/i18n/ita/extensions/php/out/features/validationProvider.i18n.json +++ b/i18n/ita/extensions/php/out/features/validationProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "php.useExecutablePath": "Consentire l'esecuzione di {0} (definito come impostazione dell'area di lavoro) per il lint dei file PHP?", "php.yes": "Consenti", "php.no": "Non consentire", diff --git a/i18n/ita/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json b/i18n/ita/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json new file mode 100644 index 00000000000..2e0da47978c --- /dev/null +++ b/i18n/ita/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "noResults": "Non sono stati trovati risultati", + "description": "Descrizione" +} \ No newline at end of file diff --git a/i18n/ita/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json b/i18n/ita/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/ita/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/ita/src/vs/code/electron-main/logUploader.i18n.json b/i18n/ita/src/vs/code/electron-main/logUploader.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/ita/src/vs/code/electron-main/logUploader.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/ita/src/vs/code/electron-main/menus.i18n.json b/i18n/ita/src/vs/code/electron-main/menus.i18n.json index e183c18f100..06696549d5d 100644 --- a/i18n/ita/src/vs/code/electron-main/menus.i18n.json +++ b/i18n/ita/src/vs/code/electron-main/menus.i18n.json @@ -180,12 +180,12 @@ "miConfigureTask": "&&Configura attività...", "miConfigureBuildTask": "Configura atti&&vità di compilazione predefinita...", "accessibilityOptionsWindowTitle": "Opzioni accessibilità", - "miRestartToUpdate": "Riavvia per aggiornare...", + "miCheckForUpdates": "Verifica disponibilità aggiornamenti...", "miCheckingForUpdates": "Verifica della disponibilità di aggiornamenti...", "miDownloadUpdate": "Scarica l'aggiornamento disponibile", "miDownloadingUpdate": "Download dell'aggiornamento...", "miInstallingUpdate": "Installazione dell'aggiornamento...", - "miCheckForUpdates": "Verifica disponibilità aggiornamenti...", + "miRestartToUpdate": "Riavvia per aggiornare...", "aboutDetail": "Versione {0}\nCommit {1}\nData {2}\nShell {3}\nRenderer {4}\nNodo {5}\nArchitettura {6}", "okButton": "OK", "copy": "&&Copia" diff --git a/i18n/ita/src/vs/editor/browser/services/bulkEdit.i18n.json b/i18n/ita/src/vs/editor/browser/services/bulkEdit.i18n.json index fc63286a92d..b13c64b973b 100644 --- a/i18n/ita/src/vs/editor/browser/services/bulkEdit.i18n.json +++ b/i18n/ita/src/vs/editor/browser/services/bulkEdit.i18n.json @@ -6,8 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "conflict": "Nel frattempo questi file sono stati modificati: {0}", "summary.0": "Non sono state effettuate modifiche", "summary.nm": "Effettuate {0} modifiche al testo in {1} file", - "summary.n0": "Effettuate {0} modifiche al testo in un file" + "summary.n0": "Effettuate {0} modifiche al testo in un file", + "conflict": "Nel frattempo questi file sono stati modificati: {0}" } \ No newline at end of file diff --git a/i18n/ita/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/ita/src/vs/editor/common/config/commonEditorConfig.i18n.json index 1a7ec1162a8..c10a03cda1b 100644 --- a/i18n/ita/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/ita/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -28,6 +28,7 @@ "scrollBeyondLastLine": "Controlla se l'editor scorrerà oltre l'ultima riga", "smoothScrolling": "Controlla se per lo scorrimento dell'editor verrà usata un'animazione.", "minimap.enabled": "Controlla se la mini mappa è visualizzata", + "minimap.side": "Definisce il lato in cui viene mostrata la mini mappa. I possibili valori sono 'destra' o 'sinistra'", "minimap.showSlider": "Controlla se il dispositivo di scorrimento della mini mappa viene nascosto automaticamente. I valori possibili sono 'always' e 'mouseover'", "minimap.renderCharacters": "Esegue il rendering dei caratteri effettivi di una riga (in contrapposizione ai blocchi colore)", "minimap.maxColumn": "Limita la larghezza della mini mappa in modo da eseguire il rendering al massimo di un certo numero di colonne", @@ -74,7 +75,7 @@ "cursorBlinking": "Controlla lo stile di animazione del cursore. I valori possibili sono: 'blink', 'smooth', 'phase', 'expand' e 'solid'", "mouseWheelZoom": "Ingrandisce il carattere dell'editor quando si usa la rotellina del mouse e si tiene premuto CTRL", "cursorStyle": "Controlla lo stile del cursore. I valori accettati sono 'block', 'block-outline', 'line', 'line-thin', 'underline' e 'underline-thin'", - "lineCursorWidth": "Controlla la larghezza del cursore quando editor.cursorSyle è impostato a 'line'", + "cursorWidth": "Controlla la larghezza del cursore quando editor.cursorSyle è impostato a 'line'", "fontLigatures": "Abilita i caratteri legatura", "hideCursorInOverviewRuler": "Controlla se il cursore deve essere nascosto nel righello delle annotazioni.", "renderWhitespace": "Consente di controllare in che modo l'editor deve eseguire il rendering dei caratteri di spazio vuoto. Le opzioni possibili sono: 'none', 'boundary' e 'all'. Con l'opzione 'boundary' non viene eseguito il rendering di singoli spazi tra le parole.", diff --git a/i18n/ita/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json b/i18n/ita/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json index fb609cd6c73..fdbfe573f79 100644 --- a/i18n/ita/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json +++ b/i18n/ita/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json @@ -6,5 +6,6 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "smartSelect.jumpBracket": "Vai alla parentesi" + "smartSelect.jumpBracket": "Vai alla parentesi", + "smartSelect.selectToBracket": "Seleziona fino alla parentesi" } \ No newline at end of file diff --git a/i18n/ita/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json b/i18n/ita/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json index 08189108e6e..cb81a1d813f 100644 --- a/i18n/ita/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json +++ b/i18n/ita/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json @@ -8,5 +8,6 @@ ], "quickFixWithKb": "Mostra correzioni ({0})", "quickFix": "Mostra correzioni", - "quickfix.trigger.label": "Correzione rapida" + "quickfix.trigger.label": "Correzione rapida", + "refactor.label": "Esegui il refactoring" } \ No newline at end of file diff --git a/i18n/ita/src/vs/platform/environment/node/argv.i18n.json b/i18n/ita/src/vs/platform/environment/node/argv.i18n.json index 9c140ccd544..ea39baecdc9 100644 --- a/i18n/ita/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/ita/src/vs/platform/environment/node/argv.i18n.json @@ -10,11 +10,10 @@ "diff": "Confronta due file tra loro.", "add": "Aggiunge la cartella o le cartelle all'ultima finestra attiva.", "goto": "Apre un file nel percorso alla posizione specificata di riga e carattere.", - "newWindow": "Forza una nuova istanza di Code.", + "newWindow": "Forza l'apertura di una nuova finestra.", "reuseWindow": "Forza l'apertura di un file o di una cartella nell'ultima finestra attiva.", "wait": "Attendere la chiusura dei file prima della restituzione.", "locale": "Impostazioni locali da usare, ad esempio en-US o it-IT.", - "userDataDir": "Consente di specificare la directory in cui si trovano i dati utente. Utile quando viene eseguito come root.", "version": "Visualizza la versione.", "help": "Visualizza la sintassi.", "extensionHomePath": "Impostare il percorso radice per le estensioni.", @@ -33,7 +32,6 @@ "inspect-brk-extensions": "Consentire il debug e profiling delle estensioni con l'host di estensione in pausa dopo inizio. Controllare gli strumenti di sviluppo per l'uri di connessione.", "disableGPU": "Disabilita l'accelerazione hardware della GPU.", "uploadLogs": "Caricamento dei log della sessione corrente verso un punto di comunicazione sicuro.", - "issue": "Segnala un problema", "usage": "Utilizzo", "options": "opzioni", "paths": "percorsi", diff --git a/i18n/ita/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json b/i18n/ita/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json index a026de6a7f7..ca0ebf07c84 100644 --- a/i18n/ita/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json +++ b/i18n/ita/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json @@ -13,6 +13,7 @@ "cancel": "Annulla", "errorInstallingDependencies": "Errore durante l'installazione delle dipendenze. {0}", "notFoundCompatible": "Impossibile installare '{0}'; non è presente alcuna versione compatibile con VS Code '{1}'.", + "malicious extension": "Non è possibile installare l'estensione poiché è stata segnalata come problematica.", "notFoundCompatibleDependency": "Impossibile installare perché non è stata trovata l'estensione dipendente '{0}' compatibile con la versione corrente '{1}' di VS Code.", "quitCode": "Impossibile installare l'estensione. Riavviare VS Code prima di procedere ad un nuovo setup.", "exitCode": "Impossibile installare l'estensione. Riavviare VS Code prima di procedere ad un nuovo setup.", diff --git a/i18n/ita/src/vs/platform/issue/electron-main/issueService.i18n.json b/i18n/ita/src/vs/platform/issue/electron-main/issueService.i18n.json new file mode 100644 index 00000000000..bff3003fd32 --- /dev/null +++ b/i18n/ita/src/vs/platform/issue/electron-main/issueService.i18n.json @@ -0,0 +1,10 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "issueReporter": "Rapporti di issue" +} \ No newline at end of file diff --git a/i18n/ita/src/vs/platform/list/browser/listService.i18n.json b/i18n/ita/src/vs/platform/list/browser/listService.i18n.json index 5a8d21bb3bd..b1080ce0418 100644 --- a/i18n/ita/src/vs/platform/list/browser/listService.i18n.json +++ b/i18n/ita/src/vs/platform/list/browser/listService.i18n.json @@ -9,5 +9,6 @@ "workbenchConfigurationTitle": "Area di lavoro", "multiSelectModifier.ctrlCmd": "Rappresenta il tasto 'Control' (ctrl) su Windows e Linux e il tasto 'Comando' (cmd) su OSX.", "multiSelectModifier.alt": "Rappresenta il tasto 'Alt' su Windows e Linux e il tasto 'Opzione' su OSX.", - "multiSelectModifier": "Il modificatore da utilizzare per aggiungere un elemento a una multi-selezione con il mouse (ad esempio in alberi e liste, se supportati). 'ctrlCmd' rappresenta il tasto 'Control' su Windows e Linux e il tasto 'Comando' su OSX. I gesti del mouse Apri lateralmente, se supportati, si adatteranno in modo da non entrare in conflitto con il modificatore multi-selezione." + "openMode.singleClick": "Apre elementi facendo un singolo clic col mouse.", + "openMode.doubleClick": "Apre elementi facendo doppio clic col mouse." } \ No newline at end of file diff --git a/i18n/ita/src/vs/platform/localizations/common/localizations.i18n.json b/i18n/ita/src/vs/platform/localizations/common/localizations.i18n.json new file mode 100644 index 00000000000..f270a8d2f86 --- /dev/null +++ b/i18n/ita/src/vs/platform/localizations/common/localizations.i18n.json @@ -0,0 +1,14 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "vscode.extension.contributes.localizations": "Contribuisce traduzioni all'editor", + "vscode.extension.contributes.localizations.languageId": "Id della lingua in cui sono tradotte le stringhe visualizzate.", + "vscode.extension.contributes.localizations.languageName": "Nome della lingua in inglese.", + "vscode.extension.contributes.localizations.languageNameLocalized": "Nome della lingua nella lingua stessa.", + "vscode.extension.contributes.localizations.translations": "Lista delle traduzioni associate alla lingua." +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json b/i18n/ita/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/ita/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/api/node/extHostWorkspace.i18n.json b/i18n/ita/src/vs/workbench/api/node/extHostWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/ita/src/vs/workbench/api/node/extHostWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json b/i18n/ita/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json new file mode 100644 index 00000000000..8299e019741 --- /dev/null +++ b/i18n/ita/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "sizeB": "{0} B", + "sizeKB": "{0} KB", + "sizeMB": "{0} MB", + "sizeGB": "{0} GB", + "sizeTB": "{0} TB", + "resourceOpenExternalButton": "Aprire l'immagine utilizzando un programma esterno?", + "nativeBinaryError": "Il file non verrà visualizzato nell'editor perché è binario, è molto grande o usa una codifica testo non supportata.", + "imgMeta": "{0}x{1} {2}" +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/ita/src/vs/workbench/electron-browser/actions.i18n.json index 787ec2bb37a..a91ffe86f86 100644 --- a/i18n/ita/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/ita/src/vs/workbench/electron-browser/actions.i18n.json @@ -31,7 +31,6 @@ "openRecent": "Apri recenti...", "quickOpenRecent": "Apertura rapida recenti...", "closeMessages": "Chiudi messaggi di notifica", - "openIssueReporter": "Rapporti di issue aperti", "reportIssueInEnglish": "Segnala problema", "reportPerformanceIssue": "Segnala problema di prestazioni", "keybindingsReference": "Riferimento per tasti di scelta rapida", diff --git a/i18n/ita/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/ita/src/vs/workbench/electron-browser/main.contribution.i18n.json index a324dd50c29..b0bde6ad0f4 100644 --- a/i18n/ita/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -35,7 +35,6 @@ "panelDefaultLocation": "Controlla la posizione predefinita del pannello. Può essere mostrato nella parte inferiore o a destra del banco di lavoro.", "statusBarVisibility": "Controlla la visibilità della barra di stato nella parte inferiore del workbench.", "activityBarVisibility": "Controlla la visibilità della barra attività nel workbench.", - "fontAliasing": "Controlla il metodo di aliasing dei caratteri nell'area di lavoro.\n- impostazione predefinita: anti-aliasing dei caratteri a livello di sub-pixel. Nella maggior parte delle visualizzazioni non retina consentirà di ottenere un testo con il massimo contrasto.\n- anti-aliasing: anti-aliasing dei caratteri a livello di pixel, invece che a livello di sub-pixel. Consente di visualizzare i caratteri più chiari.\n- nessuno: disabilita l'anti-aliasing dei caratteri. Il testo verrà visualizzato con contorni irregolari.", "workbench.fontAliasing.default": "Anti-aliasing dei caratteri a livello di sub-pixel. Nella maggior parte delle visualizzazioni non retina consentirà di ottenere un testo con il massimo contrasto.", "workbench.fontAliasing.antialiased": "Anti-aliasing dei caratteri a livello di pixel, invece che a livello di sub-pixel. Consente di visualizzare i caratteri più chiari.", "workbench.fontAliasing.none": "Disabilita l'anti-aliasing dei caratteri. Il testo verrà visualizzato con contorni irregolari. ", diff --git a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json index 27fa29a8ab0..4ac06a68557 100644 --- a/i18n/ita/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json @@ -19,12 +19,12 @@ "debugRequesMissing": "Nella configurazione di debug scelta manca l'attributo '{0}'.", "debugTypeNotSupported": "Il tipo di debug configurato '{0}' non è supportato.", "debugTypeMissing": "Proprietà 'tipo' mancante per la configurazione di avvio scelta", - "debugAnyway": "Eseguire comunque il debug", "preLaunchTaskErrors": "Sono stati rilevati errori di compilazione durante preLaunchTask '{0}'.", "preLaunchTaskError": "È stato rilevato un errore di compilazione durante preLaunchTask '{0}'.", "preLaunchTaskExitCode": "L'attività di preavvio '{0}' è stata terminata ed è stato restituito il codice di uscita {1}.", + "debugAnyway": "Eseguire comunque il debug", + "cancel": "Annulla", "noFolderWorkspaceDebugError": "Non è possibile eseguire il debug del file attivo. Assicurarsi che sia salvato su disco e che sia installata un'estensione di debug per tale tipo di file.", - "NewLaunchConfig": "Impostare il file di configurazione di avvio per l'applicazione. {0}", "DebugTaskNotFound": "L'attività di preavvio '{0}' non è stata trovata.", "taskNotTracked": "Non è possibile tenere traccia del preLaunchTask '{0}'." } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 68da05ce868..8653c7d9177 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -18,5 +18,6 @@ "sort by name": "Ordina per: Nome", "suggestProxyError": "Marketplace ha restituito 'ECONNREFUSED'. Controllare l'impostazione 'http.proxy'.", "extensions": "Estensioni", - "outdatedExtensions": "{0} estensioni obsolete" + "outdatedExtensions": "{0} estensioni obsolete", + "reloadNow": "Ricarica ora" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json b/i18n/ita/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json index 493c16c68d1..44ef61d873d 100644 --- a/i18n/ita/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json @@ -7,7 +7,6 @@ "Do not edit this file. It is machine generated." ], "installingVSIXExtension": "Installazione estensione da VSIX in corso...", - "installingMarketPlaceExtension": "Installazione estensione del Marketplace in corso...", "uninstallingExtension": "Disinstallazione estensione in corso...", "enableDependeciesConfirmation": "Se si abilita '{0}', verranno abilitate anche le relative dipendenze. Continuare?", "enable": "Sì", diff --git a/i18n/ita/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json b/i18n/ita/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json index 971a7afc029..92d8091e39a 100644 --- a/i18n/ita/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json @@ -8,11 +8,10 @@ ], "openLogsFolder": "Apri cartella dei log", "showLogs": "Mostra log...", - "mainProcess": "Principale", - "sharedProcess": "Condiviso", - "rendererProcess": "Finestra", + "emptyWindow": "Finestra", "extensionHost": "Host dell'estensione", - "selectProcess": "Seleziona il processo", + "sharedProcess": "Condiviso", + "mainProcess": "Principale", "openLogFile": "Apri file di Log...", "setLogLevel": "Imposta livello log", "trace": "Analisi", @@ -22,5 +21,6 @@ "err": "Errore", "critical": "Errori critici", "off": "Disattivato", - "selectLogLevel": "Seleziona il livello log" + "selectLogLevel": "Seleziona il livello log", + "default": "Impostazione predefinita" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/markers/common/markers.i18n.json b/i18n/ita/src/vs/workbench/parts/markers/common/markers.i18n.json new file mode 100644 index 00000000000..8c26d708058 --- /dev/null +++ b/i18n/ita/src/vs/workbench/parts/markers/common/markers.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "totalProblems": "Totale {0} problemi", + "filteredProblems": "Mostrando {0} di {1} problemi" +} \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json b/i18n/ita/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json index c6a42cdac6e..8a1184b8387 100644 --- a/i18n/ita/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json @@ -17,7 +17,6 @@ "addLabel": "Aggiungi tasto di scelta rapida", "removeLabel": "Rimuovi tasto di scelta rapida", "resetLabel": "Reimposta tasto di scelta rapida", - "showConflictsLabel": "Mostra conflitti", "copyLabel": "Copia", "copyCommandLabel": "Copia comando", "error": "Errore '{0}' durante la modifica del tasto di scelta rapida. Si prega di aprire il file 'keybindings.json' e verificare.", diff --git a/i18n/ita/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json b/i18n/ita/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json index 129108260dc..e2ecce4b00b 100644 --- a/i18n/ita/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json @@ -10,8 +10,6 @@ "SearchSettingsWidget.AriaLabel": "Cerca impostazioni", "SearchSettingsWidget.Placeholder": "Cerca impostazioni", "noSettingsFound": "Nessun risultato", - "oneSettingFound": "1 impostazione corrispondente", - "settingsFound": "{0} impostazioni corrispondenti", "totalSettingsMessage": "{0} impostazioni in totale", "nlpResult": "Risultati linguaggio naturale", "filterResult": "Risultati filtrati", diff --git a/i18n/ita/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json index 4938ffb93ab..14e7e6018a6 100644 --- a/i18n/ita/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json @@ -12,6 +12,5 @@ "view": "Visualizza", "scmConfigurationTitle": "Gestione controllo servizi", "alwaysShowProviders": "Mostrare sempre la sezione Provider di controllo del codice sorgente.", - "diffDecorations": "Controlla decorazioni diff nell'editor", - "inputCounter": "Controlla quando mostrare il contatore di input." + "diffDecorations": "Controlla decorazioni diff nell'editor" } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json b/i18n/ita/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json index 3a4dae603c8..b11614a0056 100644 --- a/i18n/ita/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json @@ -8,9 +8,6 @@ ], "scm providers": "Provider di controllo del codice sorgente", "hideRepository": "Nascondi", - "commitMessageInfo": "{0} caratteri nella riga corrente", - "commitMessageCountdown": "ancora {0} caratteri disponibili nella riga corrente", - "commitMessageWarning": "{0} caratteri rispetto ai {1} disponibili nella riga corrente", "installAdditionalSCMProviders": "Installa ulteriori provider SCM ...", "no open repo": "Non esistono provider di controllo codice sorgente attivi.", "source control": "Controllo del codice sorgente", diff --git a/i18n/ita/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json b/i18n/ita/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json index e6fdaedc73f..825ff7f9a4e 100644 --- a/i18n/ita/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json @@ -21,10 +21,6 @@ "JsonSchema.tasks.terminal": "La proprietà terminal è deprecata. In alternativa, usare presentation.", "JsonSchema.tasks.group.kind": "Gruppo di esecuzione dell'attività.", "JsonSchema.tasks.group.isDefault": "Definisce se questa attività è l'attività predefinita nel gruppo.", - "JsonSchema.tasks.group.defaultBuild": "Contrassegna le attività come attività di compilazione predefinita.", - "JsonSchema.tasks.group.defaultTest": "Contrassegna le attività come attività di test predefinita.", - "JsonSchema.tasks.group.build": "Contrassegna l'attività come attività di compilazione accessibile tramite il comando 'Esegui attività di compilazione'.", - "JsonSchema.tasks.group.test": "Contrassegna l'attività come attività di test accessibile tramite il comando 'Esegui attività di test'.", "JsonSchema.tasks.group.none": "Non assegna l'attività ad alcun gruppo", "JsonSchema.tasks.group": "Definisce il gruppo di esecuzione a cui appartiene questa attività. Supporta \"build\" per aggiungerlo al gruppo di compilazione e \"test\" per aggiungerlo al gruppo di test.", "JsonSchema.tasks.type": "Definisce se l'attività viene eseguita come un processo o come un comando all'interno di una shell.", diff --git a/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index de77eb62038..eaed493cc30 100644 --- a/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -21,14 +21,12 @@ "terminal.integrated.fontFamily": "Controlla la famiglia di caratteri del terminale. L'impostazione predefinita è il valore di editor.fontFamily.", "terminal.integrated.fontSize": "Consente di controllare le dimensioni del carattere in pixel del terminale.", "terminal.integrated.lineHeight": "Controlla l'altezza della riga del terminale. Questo numero è moltiplicato per la dimensione del carattere del terminale per ottenere l'effettiva altezza della riga in pixel.", - "terminal.integrated.enableBold": "Per abilitare il grassetto del testo all'interno del terminale, è necessario il supporto della shell del terminale.", "terminal.integrated.cursorBlinking": "Controlla se il cursore del terminale è intermittente o meno.", "terminal.integrated.cursorStyle": "Controlla lo stile del cursore del terminale.", "terminal.integrated.scrollback": "Consente di controllare il numero massimo di righe che il terminale mantiene nel buffer.", "terminal.integrated.setLocaleVariables": "Controlla se le variabili delle impostazioni locali sono impostate all'avvio del terminale. Il valore predefinito è true per OS X e false per altre piattaforme.", "terminal.integrated.cwd": "Percorso di avvio esplicito in cui verrà avviato il terminale. Viene usato come directory di lavoro corrente per il processo della shell. Può risultare particolarmente utile nelle impostazioni dell'area di lavoro se la directory radice non costituisce una directory di lavoro corrente comoda.", "terminal.integrated.confirmOnExit": "Indica se confermare all'uscita la presenza di sessioni di terminale attive.", - "terminal.integrated.enableBell": "se il cicalino del terminale è abilitato o meno.", "terminal.integrated.commandsToSkipShell": "Set di ID comando i cui tasti di scelta rapida non verranno inviati alla shell e verranno sempre gestiti da Code. In tal modo i tasti di scelta rapida normalmente utilizzati dalla shell avranno lo stesso effetto di quando il terminale non ha lo stato attivo, ad esempio CTRL+P per avviare Quick Open.", "terminal.integrated.env.osx": "Oggetto con variabili di ambiente che verrà aggiunto al processo VS Code per essere utilizzato dal terminale su OS X", "terminal.integrated.env.linux": "Oggetto con variabili di ambiente che verrà aggiunto al processo VS Code per essere utilizzato dal terminale su Linux", diff --git a/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index bb735af3d0e..25cfc3c3dfd 100644 --- a/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -14,7 +14,6 @@ "workbench.action.terminal.selectAll": "Seleziona tutto", "workbench.action.terminal.deleteWordLeft": "Elimina parola a sinistra", "workbench.action.terminal.deleteWordRight": "Elimina la parola a destra", - "workbench.action.terminal.enterLineNavigationMode": "Entra nella modalità navigazione tramite utilità lettura schermo", "workbench.action.terminal.new": "Crea nuovo terminale integrato", "workbench.action.terminal.new.short": "Nuovo terminale", "workbench.action.terminal.newWorkspacePlaceholder": "Selezionare la cartella di lavoro corrente per un nuovo terminale.", diff --git a/i18n/ita/src/vs/workbench/parts/update/electron-browser/update.i18n.json b/i18n/ita/src/vs/workbench/parts/update/electron-browser/update.i18n.json index e94a136a045..2792473dc0b 100644 --- a/i18n/ita/src/vs/workbench/parts/update/electron-browser/update.i18n.json +++ b/i18n/ita/src/vs/workbench/parts/update/electron-browser/update.i18n.json @@ -6,12 +6,10 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "updateNow": "Aggiorna adesso", "later": "In seguito", "unassigned": "non assegnato", "releaseNotes": "Note sulla versione", "showReleaseNotes": "Mostra note sulla versione", - "downloadNow": "Scarica ora", "read the release notes": "Benvenuti in {0} versione {1}. Leggere le note sulla versione?", "licenseChanged": "I termini della licenza sono cambiati. Leggerli con attenzione.", "license": "Leggi licenza", @@ -19,20 +17,20 @@ "64bitisavailable": "{0} per Windows a 64 bit è ora disponibile.", "learn more": "Altre informazioni", "updateIsReady": "Nuovo aggiornamento di {0} disponibile.", - "thereIsUpdateAvailable": "È disponibile un aggiornamento.", - "updateAvailable": "{0} verrà aggiornato dopo il riavvio.", "noUpdatesAvailable": "Al momento non sono disponibili aggiornamenti.", + "download now": "Scarica ora", + "thereIsUpdateAvailable": "È disponibile un aggiornamento.", + "updateNow": "Aggiorna adesso", + "updateAvailableAfterRestart": "{0} verrà aggiornato dopo il riavvio.", "commandPalette": "Riquadro comandi...", "settings": "Impostazioni", "keyboardShortcuts": "Scelte rapide da tastiera", "userSnippets": "Frammenti utente", "selectTheme.label": "Tema colori", "themes.selectIconTheme.label": "Tema icona file", - "not available": "Aggiornamenti non disponibili", + "checkForUpdates": "Verifica disponibilità aggiornamenti...", "checkingForUpdates": "Verifica della disponibilità di aggiornamenti...", - "DownloadUpdate": "Scarica l'aggiornamento disponibile", "DownloadingUpdate": "Download dell'aggiornamento...", - "InstallingUpdate": "Installazione dell'aggiornamento...", - "restartToUpdate": "Riavvia per aggiornare...", - "checkForUpdates": "Verifica disponibilità aggiornamenti..." + "installingUpdate": "Installazione dell'aggiornamento...", + "restartToUpdate": "Riavvia per aggiornare..." } \ No newline at end of file diff --git a/i18n/ita/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json b/i18n/ita/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json index c7a7adc1472..357580d8fe3 100644 --- a/i18n/ita/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json +++ b/i18n/ita/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json @@ -8,6 +8,6 @@ ], "jsonParseFail": "Non è stato possibile analizzare {0}: {1}.", "fileReadFail": "Non è possibile leggere il file {0}: {1}.", - "jsonsParseFail": "Non è stato possibile analizzare {0} o {1}: {2}.", + "jsonsParseReportErrors": "Non è stato possibile analizzare {0}: {1}.", "missingNLSKey": "Il messaggio per la chiave {0} non è stato trovato." } \ No newline at end of file diff --git a/i18n/jpn/extensions/css/client/out/cssMain.i18n.json b/i18n/jpn/extensions/css/client/out/cssMain.i18n.json index 29ef8e73dad..6d6b061cb73 100644 --- a/i18n/jpn/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/jpn/extensions/css/client/out/cssMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cssserver.name": "CSS 言語サーバー", "folding.start": "折りたたみ領域の開始", "folding.end": "折りたたみ領域の終了" diff --git a/i18n/jpn/extensions/git/out/askpass-main.i18n.json b/i18n/jpn/extensions/git/out/askpass-main.i18n.json index fbc0d0f2c5b..c13f979d5ae 100644 --- a/i18n/jpn/extensions/git/out/askpass-main.i18n.json +++ b/i18n/jpn/extensions/git/out/askpass-main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "missOrInvalid": "資格情報が見つからないか、無効です。" } \ No newline at end of file diff --git a/i18n/jpn/extensions/git/out/autofetch.i18n.json b/i18n/jpn/extensions/git/out/autofetch.i18n.json index 4dcee36f0c2..f87e567adf6 100644 --- a/i18n/jpn/extensions/git/out/autofetch.i18n.json +++ b/i18n/jpn/extensions/git/out/autofetch.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "yes": "はい", "read more": "詳細を参照", "no": "いいえ", diff --git a/i18n/jpn/extensions/git/out/commands.i18n.json b/i18n/jpn/extensions/git/out/commands.i18n.json index 5411af2ba63..b764f7a053a 100644 --- a/i18n/jpn/extensions/git/out/commands.i18n.json +++ b/i18n/jpn/extensions/git/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "tag at": "{0} のタグ", "remote branch at": "{0} でのリモート ブランチ", "create branch": "$(plus) 新しいブランチを作成", @@ -60,9 +62,6 @@ "branch already exists": "ブランチ名 '{0}' は既に存在します", "select a branch to merge from": "マージ元のブランチを選択", "merge conflicts": "マージの競合があります。コミットする前にこれを解決してください。", - "tag name": "タグ名", - "provide tag name": "タグ名を入力してください。", - "tag message": "メッセージ", "provide tag message": "注釈付きタグにつけるメッセージを入力してください", "no remotes to fetch": "リポジトリには、フェッチ元として構成されているリモートがありません。", "no remotes to pull": "リポジトリには、プル元として構成されているリモートがありません。", diff --git a/i18n/jpn/extensions/git/out/main.i18n.json b/i18n/jpn/extensions/git/out/main.i18n.json index 4af1f0fc9d9..d94864fc45a 100644 --- a/i18n/jpn/extensions/git/out/main.i18n.json +++ b/i18n/jpn/extensions/git/out/main.i18n.json @@ -1,10 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "looking": "Git を探しています: {0}", + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "using git": "{1} から Git {0} を使用しています", "downloadgit": "Git のダウンロード", "neverShowAgain": "今後は表示しない", diff --git a/i18n/jpn/extensions/git/out/model.i18n.json b/i18n/jpn/extensions/git/out/model.i18n.json index 223a2121eec..74af0c2cdf0 100644 --- a/i18n/jpn/extensions/git/out/model.i18n.json +++ b/i18n/jpn/extensions/git/out/model.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "no repositories": "利用可能なリポジトリがありません", "pick repo": "リポジトリの選択" } \ No newline at end of file diff --git a/i18n/jpn/extensions/git/out/repository.i18n.json b/i18n/jpn/extensions/git/out/repository.i18n.json index 230222eb69b..fe638b7b050 100644 --- a/i18n/jpn/extensions/git/out/repository.i18n.json +++ b/i18n/jpn/extensions/git/out/repository.i18n.json @@ -1,14 +1,14 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "open": "開く", - "index modified": "インデックスの変更", "modified": "変更済み", "index added": "インデックスの追加", - "index deleted": "インデックスの削除", "deleted": "削除済み", "index renamed": "インデックスの名前変更", "index copied": "インデックスをコピー", @@ -26,6 +26,8 @@ "merge changes": "変更のマージ", "staged changes": "ステージング済みの変更", "changes": "変更", + "commitMessageCountdown": "現在の行で残り {0} 文字", + "commitMessageWarning": "現在の行で {1} から {0} 文字オーバー", "ok": "OK", "neveragain": "今後は表示しない", "huge": "'{0}' のGit リポジトリにアクティブな変更が多いため、 Git 機能の一部のみが有効になります。" diff --git a/i18n/jpn/extensions/git/out/statusbar.i18n.json b/i18n/jpn/extensions/git/out/statusbar.i18n.json index 4dd2ed31bb6..bf0824d668b 100644 --- a/i18n/jpn/extensions/git/out/statusbar.i18n.json +++ b/i18n/jpn/extensions/git/out/statusbar.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "checkout": "チェックアウト...", "sync changes": "変更の同期", "publish changes": "変更の発行", diff --git a/i18n/jpn/extensions/git/package.i18n.json b/i18n/jpn/extensions/git/package.i18n.json index 1b383c5a451..32ac162d5ba 100644 --- a/i18n/jpn/extensions/git/package.i18n.json +++ b/i18n/jpn/extensions/git/package.i18n.json @@ -71,6 +71,8 @@ "config.enableCommitSigning": "GPG によりデジタル署名されたコミットを有効にします。", "config.discardAllScope": "'すべての変更を破棄' コマンドによってどの変更が破棄されるかを制御します。'all' はすべての変更を破棄します。 'tracked' は追跡されているファイルだけを破棄します。 'prompt' は、アクションが実行されるたびにプロンプ​​ト ダイアログを表示します。", "config.decorations.enabled": "Git が配色とバッジをエクスプローラーと開いているエディターのビューに提供するかどうかを制御します。", + "config.promptToSaveFilesBeforeCommit": "コミット前に Git が保存していないファイルを確認すべきかどうかを制御します。", + "config.showInlineOpenFileAction": "Git 変更の表示内にインラインのファイルを開くアクションを表示するかどうかを制御します。", "colors.modified": "リソースを改変した場合の配色", "colors.deleted": "リソースを検出した場合の配色", "colors.untracked": "リソースを追跡しない場合の配色", diff --git a/i18n/jpn/extensions/grunt/out/main.i18n.json b/i18n/jpn/extensions/grunt/out/main.i18n.json index c7f240f8ee9..556e0d512ef 100644 --- a/i18n/jpn/extensions/grunt/out/main.i18n.json +++ b/i18n/jpn/extensions/grunt/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "フォルダ {0} でGrunt のエラーによる失敗を自動検出: {1}" } \ No newline at end of file diff --git a/i18n/jpn/extensions/gulp/out/main.i18n.json b/i18n/jpn/extensions/gulp/out/main.i18n.json index 69bef1eecdc..abc19b7449e 100644 --- a/i18n/jpn/extensions/gulp/out/main.i18n.json +++ b/i18n/jpn/extensions/gulp/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "フォルダ {0} でgulp のエラーによる失敗を自動検出: {1}" } \ No newline at end of file diff --git a/i18n/jpn/extensions/html/client/out/htmlMain.i18n.json b/i18n/jpn/extensions/html/client/out/htmlMain.i18n.json index bcf35d4b14f..ed3272fd709 100644 --- a/i18n/jpn/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/jpn/extensions/html/client/out/htmlMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "htmlserver.name": "HTML 言語サーバー", "folding.start": "折りたたみ領域の開始", "folding.end": "折りたたみ領域の終了" diff --git a/i18n/jpn/extensions/jake/out/main.i18n.json b/i18n/jpn/extensions/jake/out/main.i18n.json index bd786d74d17..22de3ec1404 100644 --- a/i18n/jpn/extensions/jake/out/main.i18n.json +++ b/i18n/jpn/extensions/jake/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "フォルダ {0} でJake のエラーによる失敗を自動検出: {1}" } \ No newline at end of file diff --git a/i18n/jpn/extensions/json/client/out/jsonMain.i18n.json b/i18n/jpn/extensions/json/client/out/jsonMain.i18n.json index 00b098f3a86..2700229f8e7 100644 --- a/i18n/jpn/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/jpn/extensions/json/client/out/jsonMain.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "jsonserver.name": "JSON 言語サーバー" } \ No newline at end of file diff --git a/i18n/jpn/extensions/markdown/out/commands.i18n.json b/i18n/jpn/extensions/markdown/out/commands.i18n.json index bc7b2057e45..d6aacde9fbe 100644 --- a/i18n/jpn/extensions/markdown/out/commands.i18n.json +++ b/i18n/jpn/extensions/markdown/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "previewTitle": "プレビュー {0}", "onPreviewStyleLoadError": "'markdown.styles' を読み込むことができません: {0}" } \ No newline at end of file diff --git a/i18n/jpn/extensions/markdown/out/features/previewContentProvider.i18n.json b/i18n/jpn/extensions/markdown/out/features/previewContentProvider.i18n.json index 6d4c8918e8f..8031d3c647d 100644 --- a/i18n/jpn/extensions/markdown/out/features/previewContentProvider.i18n.json +++ b/i18n/jpn/extensions/markdown/out/features/previewContentProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "preview.securityMessage.text": "このドキュメントで一部のコンテンツが無効になっています", "preview.securityMessage.title": "安全でない可能性があるか保護されていないコンテンツは、マークダウン プレビューで無効化されています。保護されていないコンテンツやスクリプトを有効にするには、マークダウン プレビューのセキュリティ設定を変更してください", "preview.securityMessage.label": "セキュリティが無効なコンテンツの警告" diff --git a/i18n/jpn/extensions/markdown/out/security.i18n.json b/i18n/jpn/extensions/markdown/out/security.i18n.json index 40f48a3d2fd..9c71e76f1d2 100644 --- a/i18n/jpn/extensions/markdown/out/security.i18n.json +++ b/i18n/jpn/extensions/markdown/out/security.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "strict.title": "高レベル", "strict.description": "セキュリティで保護されたコンテンツのみを読み込む", "insecureContent.title": "セキュリティで保護されていないコンテンツを許可する", @@ -13,6 +15,5 @@ "moreInfo.title": "詳細情報", "enableSecurityWarning.title": "このワークスペースでプレビューのセキュリティ警告を有効にする", "disableSecurityWarning.title": "このワークスペースでプレビューのセキュリティ警告を有効にする", - "toggleSecurityWarning.description": "コンテンツのセキュリティ レベルに影響しません", "preview.showPreviewSecuritySelector.title": "ワークスペースのマークダウン プレビューに関するセキュリティ設定を選択 " } \ No newline at end of file diff --git a/i18n/jpn/extensions/merge-conflict/out/codelensProvider.i18n.json b/i18n/jpn/extensions/merge-conflict/out/codelensProvider.i18n.json index e4f0ccc6045..d8ec9931111 100644 --- a/i18n/jpn/extensions/merge-conflict/out/codelensProvider.i18n.json +++ b/i18n/jpn/extensions/merge-conflict/out/codelensProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "acceptCurrentChange": "現在の変更を取り込む", "acceptIncomingChange": "入力側の変更を取り込む", "acceptBothChanges": "両方の変更を取り込む", diff --git a/i18n/jpn/extensions/merge-conflict/out/commandHandler.i18n.json b/i18n/jpn/extensions/merge-conflict/out/commandHandler.i18n.json index fad88207470..0c28587b20c 100644 --- a/i18n/jpn/extensions/merge-conflict/out/commandHandler.i18n.json +++ b/i18n/jpn/extensions/merge-conflict/out/commandHandler.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cursorNotInConflict": "エディターのカーソルがマージの競合の範囲内にありません", "compareChangesTitle": "{0}: 現在の変更 ⟷ 入力側の変更", "cursorOnCommonAncestorsRange": "エディターのカーソルが共通の祖先ブロック内にあります。”現在” または \"入力側\" のいずれかのブロックに移動してください", diff --git a/i18n/jpn/extensions/merge-conflict/out/mergeDecorator.i18n.json b/i18n/jpn/extensions/merge-conflict/out/mergeDecorator.i18n.json index 6f8b1654a4d..b034d10361a 100644 --- a/i18n/jpn/extensions/merge-conflict/out/mergeDecorator.i18n.json +++ b/i18n/jpn/extensions/merge-conflict/out/mergeDecorator.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "currentChange": "(現在の変更)", "incomingChange": "(入力側の変更)" } \ No newline at end of file diff --git a/i18n/jpn/extensions/npm/out/main.i18n.json b/i18n/jpn/extensions/npm/out/main.i18n.json index 3e583a812d8..3995a9c7f9b 100644 --- a/i18n/jpn/extensions/npm/out/main.i18n.json +++ b/i18n/jpn/extensions/npm/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "npm.parseError": "npmタスク検出: ファイル {0} の解析に失敗しました" } \ No newline at end of file diff --git a/i18n/jpn/extensions/php/out/features/validationProvider.i18n.json b/i18n/jpn/extensions/php/out/features/validationProvider.i18n.json index 430186dee08..3f34bb85eac 100644 --- a/i18n/jpn/extensions/php/out/features/validationProvider.i18n.json +++ b/i18n/jpn/extensions/php/out/features/validationProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "php.useExecutablePath": "PHP ファイルを lint するために {0} (ワークスペースの設定として定義されている) を実行することを許可しますか?", "php.yes": "許可", "php.no": "許可しない", diff --git a/i18n/jpn/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json b/i18n/jpn/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json new file mode 100644 index 00000000000..f174b2a04e1 --- /dev/null +++ b/i18n/jpn/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "previewOnGitHub": "GitHub 上でプレビュー", + "similarIssues": "類似の問題", + "noResults": "一致する項目はありません", + "stepsToReproduce": "再現手順", + "bugDescription": "どのようにこの問題に遭遇しましたか?問題を確実に再現するためには、どのような手順を踏む必要がありますか?何が起きることを期待し、何が実際に発生しましたか?", + "performanceIssueDesciption": "このパフォーマンスの問題はいつ発生しましたか?たとえば、それは起動時ですか?それとも特定のアクションのあとですか?詳細な情報が私たちの調査に役立ちます。", + "description": "説明", + "disabledExtensions": "拡張機能が無効化されています" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json b/i18n/jpn/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json new file mode 100644 index 00000000000..2354d28c590 --- /dev/null +++ b/i18n/jpn/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json @@ -0,0 +1,27 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "completeInEnglish": "英語で記入して下さい。", + "issueTypeLabel": "次の問題を提出します", + "bugReporter": "バグ報告", + "performanceIssue": "パフォーマンスの問題", + "featureRequest": "機能欲求", + "issueTitleLabel": "タイトル", + "issueTitleRequired": "タイトルを入力してください", + "vscodeVersion": "VS Code のバージョン", + "osVersion": "OS のバージョン", + "systemInfo": "私のシステム情報", + "sendData": "データを送信する", + "processes": "現在実行中のプロセス", + "workspaceStats": "私のワークスペースのステータス", + "extensions": "私の拡張機能", + "showRunningExtensions": "すべての実行中の拡張機能を確認する", + "githubMarkdown": "GitHub-flavored Markdown に対応しています。GitHub 上で確認するときに問題を編集してスクリーンショットを追加できます。", + "issueDescriptionRequired": "説明を入力してください。", + "loadingData": "データを読み込んでいます..." +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/code/electron-main/logUploader.i18n.json b/i18n/jpn/src/vs/code/electron-main/logUploader.i18n.json new file mode 100644 index 00000000000..d8c3570a912 --- /dev/null +++ b/i18n/jpn/src/vs/code/electron-main/logUploader.i18n.json @@ -0,0 +1,18 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "invalidEndpoint": "無効なログ アップローダーのエンドポイント", + "beginUploading": "アップロードしています...", + "didUploadLogs": "アップロードに成功しました! Log file ID: {0}", + "userDeniedUpload": "アップロードを取り消しました", + "logUploadPromptHeader": "安全なエンドポイントにセッションのログをアップロードしますか?", + "logUploadPromptBody": "次の場所でログ ファイルを確認してください: '{0}'", + "logUploadPromptBodyDetails": "ログには完全なパスやファイルの内容などの個人情報を含んでいる可能性があります。", + "logUploadPromptKey": "ログを確認しました ('y' を入力してアップロードを確認)", + "postError": "ログを提出中のエラー: {0}" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/code/electron-main/menus.i18n.json b/i18n/jpn/src/vs/code/electron-main/menus.i18n.json index 594ffcdd168..d107227f741 100644 --- a/i18n/jpn/src/vs/code/electron-main/menus.i18n.json +++ b/i18n/jpn/src/vs/code/electron-main/menus.i18n.json @@ -90,6 +90,7 @@ "miMarker": "問題(&&P)", "miAdditionalViews": "その他のビュー(&&V)", "miCommandPalette": "コマンド パレット(&&C)...", + "miOpenView": "ビューを開く... &&O", "miToggleFullScreen": "全画面表示の切り替え(&&F)", "miToggleZenMode": "Zen Mode の切り替え", "miToggleMenuBar": "メニュー バーの切り替え(&&B)", @@ -180,12 +181,13 @@ "miConfigureTask": "タスクの構成(&&C)…", "miConfigureBuildTask": "既定のビルド タスクの構成(&&F)…", "accessibilityOptionsWindowTitle": "ユーザー補助オプション", - "miRestartToUpdate": "再起動して更新...", + "miCheckForUpdates": "更新の確認...", "miCheckingForUpdates": "更新を確認しています...", "miDownloadUpdate": "利用可能な更新プログラムをダウンロードします", "miDownloadingUpdate": "更新をダウンロードしています...", + "miInstallUpdate": "更新プログラムのインストール...", "miInstallingUpdate": "更新プログラムをインストールしています...", - "miCheckForUpdates": "更新の確認...", + "miRestartToUpdate": "再起動して更新...", "aboutDetail": "バージョン {0}\nコミット {1}\n日付 {2}\nシェル {3}\nレンダラー {4}\nNode {5}\nアーキテクチャ {6}", "okButton": "OK", "copy": "コピー (&&C)" diff --git a/i18n/jpn/src/vs/editor/browser/services/bulkEdit.i18n.json b/i18n/jpn/src/vs/editor/browser/services/bulkEdit.i18n.json index 7ad5de13c89..89893c1411c 100644 --- a/i18n/jpn/src/vs/editor/browser/services/bulkEdit.i18n.json +++ b/i18n/jpn/src/vs/editor/browser/services/bulkEdit.i18n.json @@ -6,8 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "conflict": "この間に次のファイルが変更されました: {0}", "summary.0": "編集は行われませんでした", "summary.nm": "{1} 個のファイルで {0} 件のテキスト編集を実行", - "summary.n0": "1 つのファイルで {0} 個のテキストを編集" + "summary.n0": "1 つのファイルで {0} 個のテキストを編集", + "conflict": "この間に次のファイルが変更されました: {0}" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/jpn/src/vs/editor/common/config/commonEditorConfig.i18n.json index 4396d8bde72..84f90c69a75 100644 --- a/i18n/jpn/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/jpn/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -28,6 +28,7 @@ "scrollBeyondLastLine": "エディターで最後の行を越えてスクロールするかどうかを制御します", "smoothScrolling": "アニメーションでエディターをスクロールするかどうかを制御します", "minimap.enabled": "ミニマップを表示するかどうかを制御します", + "minimap.side": "ミニマップの表示を制御します。使用可能な値は 'right'、および 'left' です。", "minimap.showSlider": "ミニマップのスライダーを自動的に非表示にするかどうかを制御します。指定できる値は 'always' と 'mouseover' です", "minimap.renderCharacters": "行に (カラー ブロックではなく) 実際の文字を表示します", "minimap.maxColumn": "表示するミニマップの最大幅を特定の桁数に制限します", @@ -74,7 +75,7 @@ "cursorBlinking": "カーソルのアニメーション スタイルを制御します。指定できる値は 'blink'、'smooth'、'phase'、'expand'、'solid' です", "mouseWheelZoom": "Ctrl キーを押しながらマウス ホイールを使用してエディターのフォントをズームします", "cursorStyle": "カーソルのスタイルを制御します。指定できる値は 'block'、'block-outline'、'line'、'line-thin'、'underline'、'underline-thin' です", - "lineCursorWidth": "editor.cursorStyle が 'line' に設定されている場合、カーソルの幅を制御する", + "cursorWidth": "editor.cursorStyle が 'line' に設定されている場合、カーソルの幅を制御する", "fontLigatures": "フォントの合字を使用します", "hideCursorInOverviewRuler": "概要ルーラーでカーソルを非表示にするかどうかを制御します。", "renderWhitespace": "エディターで空白文字を表示する方法を制御します。'none'、'boundary' および 'all' が使用可能です。'boundary' オプションでは、単語間の単一スペースは表示されません。", diff --git a/i18n/jpn/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json b/i18n/jpn/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json index b89992763c2..f3a19e19b68 100644 --- a/i18n/jpn/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json +++ b/i18n/jpn/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json @@ -8,5 +8,6 @@ ], "quickFixWithKb": "修正プログラム ({0}) を表示する", "quickFix": "修正プログラムを表示する", - "quickfix.trigger.label": "クイック修正" + "quickfix.trigger.label": "クイック修正", + "refactor.label": "リファクタリング" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/platform/environment/node/argv.i18n.json b/i18n/jpn/src/vs/platform/environment/node/argv.i18n.json index 9aabe55b745..14135cac24b 100644 --- a/i18n/jpn/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/jpn/src/vs/platform/environment/node/argv.i18n.json @@ -10,11 +10,10 @@ "diff": "2 つのファイルを比較します。", "add": "最後にアクティブだったウィンドウにフォルダーを追加します。", "goto": "指定した行と文字の位置にあるパスでファイルを開きます。", - "newWindow": "新しい Code のインスタンスを強制します。", - "reuseWindow": "最後のアクティブ ウィンドウにファイルまたはフォルダーを強制的に開きます。", + "newWindow": "強制的に新しいウィンドウを開きます。", + "reuseWindow": "強制的に最後にアクティブだったウィンドウ内でファイルかフォルダーを開きます。", "wait": "現在のファイルが閉じられるまで待機します。", "locale": "使用する国と地域 (例:en-US や zh-TW など)。", - "userDataDir": "ユーザー データを保持するディレクトリを指定します。ルートで実行している場合に役立ちます。", "version": "バージョンを表示します。", "help": "使用法を表示します。", "extensionHomePath": "拡張機能のルート パスを設定します。", @@ -33,7 +32,6 @@ "inspect-brk-extensions": "起動後に一時停止されている拡張ホストとの拡張機能のデバッグとプロファイリングを許可します。接続 URI を開発者ツールでチェックします。", "disableGPU": "GPU ハードウェア アクセラレータを無効にします。", "uploadLogs": "現在のセッションから安全なエンドポイントにログをアップロードします。", - "issue": "問題を報告します。", "usage": "使用法", "options": "オプション", "paths": "パス", diff --git a/i18n/jpn/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json b/i18n/jpn/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json index b5a73a4ce51..4cd87e974bd 100644 --- a/i18n/jpn/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json +++ b/i18n/jpn/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json @@ -13,6 +13,7 @@ "cancel": "キャンセル", "errorInstallingDependencies": "依存関係のインストール中にエラーが発生しました。{0}", "notFoundCompatible": "'{0}' をインストールできません。VS Code '{1}' と互換性がある利用可能なバージョンがありません。", + "malicious extension": "問題が報告されたので、拡張機能をインストールできません。", "notFoundCompatibleDependency": "VS Code の現在のバージョン '{1}' と互換性を持つ、依存関係がある拡張機能 '{0}' が見つからないため、インストールできません。", "quitCode": "拡張機能をインストールできません。再インストールの前に VS Code の終了と起動を実施してください。", "exitCode": "拡張機能をインストールできません。再インストールの前に VS Code の終了と起動を実施してください。", diff --git a/i18n/jpn/src/vs/platform/issue/electron-main/issueService.i18n.json b/i18n/jpn/src/vs/platform/issue/electron-main/issueService.i18n.json new file mode 100644 index 00000000000..40973f69053 --- /dev/null +++ b/i18n/jpn/src/vs/platform/issue/electron-main/issueService.i18n.json @@ -0,0 +1,10 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "issueReporter": "問題のレポーター" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/platform/list/browser/listService.i18n.json b/i18n/jpn/src/vs/platform/list/browser/listService.i18n.json index 705f3767fda..a4b5f4f0f6e 100644 --- a/i18n/jpn/src/vs/platform/list/browser/listService.i18n.json +++ b/i18n/jpn/src/vs/platform/list/browser/listService.i18n.json @@ -9,5 +9,6 @@ "workbenchConfigurationTitle": "ワークベンチ", "multiSelectModifier.ctrlCmd": "Windows および Linux 上の `Control` キーと macOS 上の `Command` キーに割り当てます。", "multiSelectModifier.alt": "Windows および Linux 上の `Alt` キーと macOS 上の `Option` キーに割り当てます。", - "multiSelectModifier": "(tたとえば、サポートしている場合、ツリーやリストで) マウスを使用して項目を複数選択するときに使用する修飾キーです。`ctrlCmd` は Windows および Linux 上の `Control` キーと macOS 上の `Command` に割り当てます。「横に開く」のマウス操作をサポートしている場合、複数選択の修飾キーと競合しないように適応されます。" + "openMode.singleClick": "マウスのシングル クリックで項目を開きます。", + "openMode.doubleClick": "マウスのダブル クリックで項目を開きます。" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/platform/localizations/common/localizations.i18n.json b/i18n/jpn/src/vs/platform/localizations/common/localizations.i18n.json new file mode 100644 index 00000000000..c98784e8474 --- /dev/null +++ b/i18n/jpn/src/vs/platform/localizations/common/localizations.i18n.json @@ -0,0 +1,13 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "vscode.extension.contributes.localizations": "ローカリゼーションをエディターに提供します", + "vscode.extension.contributes.localizations.languageId": "表示文字列が翻訳される言語の id。", + "vscode.extension.contributes.localizations.translations": "言語に関連付けられている翻訳の一覧です。", + "vscode.extension.contributes.localizations.translations.path": "言語の翻訳を含むファイルへの相対パス。" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json b/i18n/jpn/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/jpn/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/api/node/extHostWorkspace.i18n.json b/i18n/jpn/src/vs/workbench/api/node/extHostWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/jpn/src/vs/workbench/api/node/extHostWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json b/i18n/jpn/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json new file mode 100644 index 00000000000..ee62f8238dc --- /dev/null +++ b/i18n/jpn/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "sizeB": "{0}B", + "sizeKB": "{0}KB", + "sizeMB": "{0}MB", + "sizeGB": "{0}GB", + "sizeTB": "{0}TB", + "resourceOpenExternalButton": "外部のプログラムを使用して画像を開きますか?", + "nativeBinaryError": "このファイルはバイナリか、非常に大きいか、またはサポートされていないテキスト エンコードを使用しているため、エディターに表示されません。", + "imgMeta": "{0}x{1} {2}" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/jpn/src/vs/workbench/electron-browser/actions.i18n.json index c25ffac3091..431bb580975 100644 --- a/i18n/jpn/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/jpn/src/vs/workbench/electron-browser/actions.i18n.json @@ -31,7 +31,6 @@ "openRecent": "最近開いた項目…", "quickOpenRecent": "最近使用したものを開く...", "closeMessages": "通知メッセージを閉じる", - "openIssueReporter": "問題のレポーターを開く", "reportIssueInEnglish": "問題の報告", "reportPerformanceIssue": "パフォーマンスの問題のレポート", "keybindingsReference": "キーボード ショートカットの参照", diff --git a/i18n/jpn/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/jpn/src/vs/workbench/electron-browser/main.contribution.i18n.json index 10e84b4adb1..df6fd4aa198 100644 --- a/i18n/jpn/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -35,10 +35,11 @@ "panelDefaultLocation": "パネルの既定の位置を制御します。ワークベンチの下部または右のいずれかに表示できます。", "statusBarVisibility": "ワークベンチの下部にステータス バーを表示するかどうかを制御します。", "activityBarVisibility": "ワークベンチでのアクティビティ バーの表示をコントロールします。", - "fontAliasing": "ワークベンチのフォント エイリアシング方法を制御します。\n- default: サブピクセル方式でフォントを滑らかにします。ほとんどの非 Retina ディスプレイでもっとも鮮明なテキストを提供します\n- antialiased: サブピクセルとは対照的に、ピクセルのレベルでフォントを滑らかにします。フォント全体がより細く見えます\n- none: フォントのスムージングを無効にします。テキストをぎざぎざな尖ったエッジで表示します", + "fontAliasing": "ワークベンチのフォント エイリアシング方法を制御します。\n- default: サブピクセル方式でフォントを滑らかにします。ほとんどの非 Retina ディスプレイでもっとも鮮明なテキストを提供します\n- antialiased: サブピクセルとは対照的に、ピクセルのレベルでフォントを滑らかにします。フォント全体がより細く見えます\n- none: フォントのスムージングを無効にします。テキストをぎざぎざな尖ったエッジで表示します\n- auto: ディスプレイの DPI に基づいて自動的に `default` か `antialiased` を適用します", "workbench.fontAliasing.default": "サブピクセル方式でフォントを滑らかにします。ほとんどの非 Retina ディスプレイでもっとも鮮明なテキストを提供します。", "workbench.fontAliasing.antialiased": "サブピクセルとは対照的に、ピクセルのレベルでフォントを滑らかにします。フォント全体がより細く見えるようになります。", "workbench.fontAliasing.none": "フォントのスムージングを無効にします。テキストをぎざぎざな尖ったエッジで表示します。", + "workbench.fontAliasing.auto": "ディスプレイの DPI に基づいて自動的に `default` か `antialiased` を適用します。", "enableNaturalLanguageSettingsSearch": "設定で自然文検索モードを有効にするかどうかを制御します。", "windowConfigurationTitle": "ウィンドウ", "window.openFilesInNewWindow.on": "新しいウィンドウでファイルを開きます", diff --git a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json index f02d50650a2..f81b60ffef4 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json @@ -35,5 +35,7 @@ "app.launch.json.compounds.configurations": "この複合の一部として開始される構成の名前。", "debugNoType": "デバッグ アダプター 'type' は省略不可で、'string' 型でなければなりません。", "selectDebug": "環境の選択", - "DebugConfig.failed": "'launch.json' ファイルを '.vscode' フォルダー ({0}) 内に作成できません。" + "DebugConfig.failed": "'launch.json' ファイルを '.vscode' フォルダー ({0}) 内に作成できません。", + "workspace": "ワークスペース", + "user settings": "ユーザー設定" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json index 64d7de6cf1f..78931990c2a 100644 --- a/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json @@ -19,12 +19,12 @@ "debugRequesMissing": "選択しているデバッグ構成に属性 '{0}' が含まれていません。", "debugTypeNotSupported": "構成されているデバッグの種類 '{0}' はサポートされていません。", "debugTypeMissing": "選択している起動構成の `type` プロパティがありません。", - "debugAnyway": "このままデバッグを続ける", "preLaunchTaskErrors": "preLaunchTask '{0}' の実行中にビルド エラーが検出されました。", "preLaunchTaskError": "preLaunchTask '{0}' の実行中にビルド エラーが検出されました。", "preLaunchTaskExitCode": "preLaunchTask '{0}' が終了コード {1} で終了しました。", + "debugAnyway": "このままデバッグを続ける", + "cancel": "キャンセル", "noFolderWorkspaceDebugError": "アクティブ ファイルをデバッグできません。ファイルがディスクに保存されており、そのファイル タイプのデバッグ拡張機能がインストールされていることを確認してください。", - "NewLaunchConfig": "アプリケーションの起動構成ファイルをセットアップしてください。{0}", "DebugTaskNotFound": "preLaunchTask '{0}' が見つかりませんでした。", "taskNotTracked": "preLaunchTask '{0}' を追跡できません。" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index d175357ad41..572fc4519ab 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -18,5 +18,6 @@ "sort by name": "並べ替え: 名前", "suggestProxyError": "Marketplace が 'ECONNREFUSED' を返しました。'http.proxy' 設定を確認してください。", "extensions": "拡張機能", - "outdatedExtensions": "{0} 古くなった拡張機能" + "outdatedExtensions": "{0} 古くなった拡張機能", + "reloadNow": "今すぐ再度読み込む" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json b/i18n/jpn/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json index cbdf22ac45e..83cbae31999 100644 --- a/i18n/jpn/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json @@ -7,7 +7,7 @@ "Do not edit this file. It is machine generated." ], "installingVSIXExtension": "VSIX から拡張機能をインストールしています...", - "installingMarketPlaceExtension": "マーケット プレースから拡張機能をインストールしています... ", + "installingMarketPlaceExtension": "Marketplace から拡張機能をインストールしています...", "uninstallingExtension": "拡張機能をアンインストールしています...", "enableDependeciesConfirmation": "'{0}' を有効にするとその依存関係も有効になります。続行しますか?", "enable": "はい", diff --git a/i18n/jpn/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json index b6365af5823..3992b5dad3f 100644 --- a/i18n/jpn/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json @@ -8,11 +8,10 @@ ], "openLogsFolder": "ログ フォルダーを開く", "showLogs": "ログの表示...", - "mainProcess": "メイン", - "sharedProcess": "共有", - "rendererProcess": "ウィンドウ", + "emptyWindow": "ウィンドウ", "extensionHost": "拡張機能ホスト", - "selectProcess": "プロセスの選択", + "sharedProcess": "共有", + "mainProcess": "メイン", "openLogFile": "ログ ファイルを開く...", "setLogLevel": "ログ レベルの設定", "trace": "トレース", @@ -22,5 +21,6 @@ "err": "エラー", "critical": "重大", "off": "オフ", - "selectLogLevel": "ログ レベルを選択" + "selectLogLevel": "ログ レベルを選択", + "default": "既定" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/markers/common/markers.i18n.json b/i18n/jpn/src/vs/workbench/parts/markers/common/markers.i18n.json new file mode 100644 index 00000000000..4d411c1a062 --- /dev/null +++ b/i18n/jpn/src/vs/workbench/parts/markers/common/markers.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "totalProblems": "合計 {0} 個の問題", + "filteredProblems": "{1} 個中 {0} 個の問題を表示しています" +} \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json b/i18n/jpn/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json index 54b5b286818..e72b4e70776 100644 --- a/i18n/jpn/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json @@ -17,7 +17,6 @@ "addLabel": "キー バインドの追加", "removeLabel": "キー バインドの削除", "resetLabel": "キー バインドのリセット", - "showConflictsLabel": "競合の表示", "copyLabel": "コピー", "copyCommandLabel": "コピー コマンド", "error": "キー バインドの編集中にエラー '{0}' が発生しました。'keybindings.json' ファイルを開いてご確認ください。", diff --git a/i18n/jpn/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json b/i18n/jpn/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json index cc5e48c7806..b7e7f03ad0d 100644 --- a/i18n/jpn/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json @@ -10,8 +10,8 @@ "SearchSettingsWidget.AriaLabel": "設定の検索", "SearchSettingsWidget.Placeholder": "設定の検索", "noSettingsFound": "結果なし", - "oneSettingFound": "1 つの設定が一致します", - "settingsFound": "{0} 個の設定が一致します", + "oneSettingFound": "1 個の設定が見つかりました", + "settingsFound": "{0} 個の設定が見つかりました", "totalSettingsMessage": "合計 {0} 個の設定", "nlpResult": "自然文 (natural language) の結果", "filterResult": "フィルター後の結果", diff --git a/i18n/jpn/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json index 4d91896906d..a34f2bdfaf5 100644 --- a/i18n/jpn/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json @@ -12,6 +12,5 @@ "view": "表示", "scmConfigurationTitle": "SCM", "alwaysShowProviders": "ソース管理プロバイダーのセクションを常に表示するかどうか。", - "diffDecorations": "エディターの差分デコレーターを制御します。", - "inputCounter": "入力文字のカウントをいつ表示するかを制御します。" + "diffDecorations": "エディターの差分デコレーターを制御します。" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json b/i18n/jpn/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json index 924b2e52975..cb6f2096d64 100644 --- a/i18n/jpn/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json @@ -8,9 +8,6 @@ ], "scm providers": "ソース管理プロバイダー", "hideRepository": "非表示", - "commitMessageInfo": "現在の行に {0}  文字", - "commitMessageCountdown": "現在の行で残り {0} 文字", - "commitMessageWarning": "現在の行で {1} から {0} 文字オーバー", "installAdditionalSCMProviders": "その他の SCM プロバイダーをインストール...", "no open repo": "有効なソース管理プロバイダーがありません。", "source control": "ソース管理", diff --git a/i18n/jpn/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json b/i18n/jpn/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json index c985b8ea0c0..9b171966a41 100644 --- a/i18n/jpn/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json @@ -21,10 +21,6 @@ "JsonSchema.tasks.terminal": "terminal プロパティは非推奨です。代わりに presentation をご使用ください", "JsonSchema.tasks.group.kind": "タスクの実行グループ。", "JsonSchema.tasks.group.isDefault": "このタスクがグループ内の既定のタスクであるかどうかを定義します。", - "JsonSchema.tasks.group.defaultBuild": "このタスクを既定のビルド タスクとしてマークします。", - "JsonSchema.tasks.group.defaultTest": "このタスクを既定のテスト タスクとしてマークします。", - "JsonSchema.tasks.group.build": "タスクを 'Run Build Task' (ビルド タスクの実行) コマンドを介してアクセス可能なビルド タスクとしてマークします。", - "JsonSchema.tasks.group.test": "タスクを 'Run Test Task' (テスト タスクの実行) コマンドを介してアクセス可能なテスト タスクとしてマークします。", "JsonSchema.tasks.group.none": "タスクをグループに割り当てない", "JsonSchema.tasks.group": "このタスクが属する実行グループを定義します。ビルド グループに追加する \"build\" とテスト グループに追加する \"test\" をサポートしています。", "JsonSchema.tasks.type": "タスクをプロセスとして実行するか、またはシェル内部でコマンドとして実行するかどうかを定義します。", diff --git a/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 44b9979bff6..4a62f635efd 100644 --- a/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -21,7 +21,8 @@ "terminal.integrated.fontFamily": "端末のフォント ファミリを制御します。既定値は editor.fontFamily になります。", "terminal.integrated.fontSize": "ターミナルのフォント サイズをピクセル単位で制御します。", "terminal.integrated.lineHeight": "ターミナルの行の高さを制御します。この数値にターミナルのフォント サイズを乗算すると、実際の行の高さ (ピクセル単位) になります。", - "terminal.integrated.enableBold": "ターミナル内でテキストを太字にするかどうか。ターミナル シェルのサポートが必要なことに注意してください。", + "terminal.integrated.fontWeight": "ターミナルで太字以外のテキストに使用するフォントの太さ。", + "terminal.integrated.fontWeightBold": "ターミナルで太字のテキストに使用するフォントの太さ。", "terminal.integrated.cursorBlinking": "ターミナルのカーソルを点滅させるかどうかを制御します。", "terminal.integrated.cursorStyle": "端末のカーソルのスタイルを制御します。", "terminal.integrated.scrollback": "端末がそのバッファーに保持できる最大行数を制御します。", diff --git a/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index 8d0b433f593..e4aee0a7cc4 100644 --- a/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -14,7 +14,6 @@ "workbench.action.terminal.selectAll": "すべて選択", "workbench.action.terminal.deleteWordLeft": "左の文字を削除", "workbench.action.terminal.deleteWordRight": "右の文字を削除", - "workbench.action.terminal.enterLineNavigationMode": "スクリーン リーダー移動モードにする", "workbench.action.terminal.new": "新しい統合ターミナルの作成", "workbench.action.terminal.new.short": "新しいターミナル", "workbench.action.terminal.newWorkspacePlaceholder": "新しいターミナルの作業ディレクトリを選択してください", diff --git a/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 22850a0fcda..b968d0bca71 100644 --- a/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -8,5 +8,6 @@ ], "release notes": "リリース ノート", "updateConfigurationTitle": "更新", - "updateChannel": "更新チャネルから自動更新を受信するかどうかを構成します。変更後に再起動が必要です。" + "updateChannel": "更新チャネルから自動更新を受信するかどうかを構成します。変更後に再起動が必要です。", + "enableWindowsBackgroundUpdates": "Windows のバックグラウンド更新を有効にします。" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.i18n.json b/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.i18n.json index 5e317e436fe..1977af284a4 100644 --- a/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.i18n.json +++ b/i18n/jpn/src/vs/workbench/parts/update/electron-browser/update.i18n.json @@ -6,12 +6,10 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "updateNow": "今すぐ更新", "later": "後で", "unassigned": "未割り当て", "releaseNotes": "リリース ノート", "showReleaseNotes": "リリース ノートの表示", - "downloadNow": "今すぐダウンロード", "read the release notes": "{0} v{1} へようこそ! リリース ノートを確認しますか?", "licenseChanged": "ライセンス条項が変更されました。内容をご確認ください。", "license": "ライセンスの閲覧", @@ -19,20 +17,24 @@ "64bitisavailable": "64 ビット Windows 用の {0} が利用可能になりました!", "learn more": "詳細情報", "updateIsReady": "新しい更新 {0} が利用可能です。", - "thereIsUpdateAvailable": "利用可能な更新プログラムがあります。", - "updateAvailable": "{0} は再起動後に更新されます。", "noUpdatesAvailable": "現在入手可能な更新はありません。", + "download now": "今すぐダウンロード", + "thereIsUpdateAvailable": "利用可能な更新プログラムがあります。", + "installUpdate": "更新プログラムのインストール", + "updateAvailable": "利用可能な更新プログラムがあります: {0} {1}", + "updateInstalling": "バックグラウンドで {0} {1} がインストールされています。処理が完了次第、お知らせします。", + "updateNow": "今すぐ更新", + "updateAvailableAfterRestart": "{0} は再起動後に更新されます。", "commandPalette": "コマンド パレット...", "settings": "設定", "keyboardShortcuts": "キーボード ショートカット", "userSnippets": "ユーザー スニペット", "selectTheme.label": "配色テーマ", "themes.selectIconTheme.label": "ファイル アイコンのテーマ", - "not available": "更新は利用できません", + "checkForUpdates": "更新の確認...", "checkingForUpdates": "更新を確認しています...", - "DownloadUpdate": "利用可能な更新プログラムをダウンロード", "DownloadingUpdate": "更新をダウンロードしています...", - "InstallingUpdate": "更新プログラムをインストールしています...", - "restartToUpdate": "再起動して更新...", - "checkForUpdates": "更新の確認..." + "installUpdate...": "更新プログラムのインストール...", + "installingUpdate": "更新プログラムをインストールしています...", + "restartToUpdate": "再起動して更新..." } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json b/i18n/jpn/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json index d8f2d6bb9ca..9b3063f1b25 100644 --- a/i18n/jpn/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json +++ b/i18n/jpn/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json @@ -21,6 +21,7 @@ "workspaceConfig.name.description": "フォルダーにつけるオプションの名前。", "workspaceConfig.uri.description": "フォルダーの URI", "workspaceConfig.settings.description": "ワークスペースの設定", + "workspaceConfig.launch.description": "ワークスペースの起動構成", "workspaceConfig.extensions.description": "ワークスペースの拡張機能", "unknownWorkspaceProperty": "不明なワークスペース構成のプロパティ" } \ No newline at end of file diff --git a/i18n/jpn/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json b/i18n/jpn/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json index 9c26ed966f5..764aaf678ad 100644 --- a/i18n/jpn/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json +++ b/i18n/jpn/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json @@ -8,6 +8,6 @@ ], "jsonParseFail": "{0} を解析できません: {1}。", "fileReadFail": "ファイル {0} を読み取れません: {1}。", - "jsonsParseFail": "{0} または {1} を解析できませんでした: {2}。", + "jsonsParseReportErrors": "{0} を解析できません: {1}。", "missingNLSKey": "キー {0} のメッセージが見つかりませんでした。" } \ No newline at end of file diff --git a/i18n/kor/extensions/css/client/out/cssMain.i18n.json b/i18n/kor/extensions/css/client/out/cssMain.i18n.json index 64beafb9245..18013d8de41 100644 --- a/i18n/kor/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/kor/extensions/css/client/out/cssMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cssserver.name": "CSS 언어 서버", "folding.start": "영역 접기 시작", "folding.end": "접기 영역 끝" diff --git a/i18n/kor/extensions/git/out/askpass-main.i18n.json b/i18n/kor/extensions/git/out/askpass-main.i18n.json index 445155ebb53..24a0710bfc1 100644 --- a/i18n/kor/extensions/git/out/askpass-main.i18n.json +++ b/i18n/kor/extensions/git/out/askpass-main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "missOrInvalid": "자격 증명이 없거나 잘못되었습니다." } \ No newline at end of file diff --git a/i18n/kor/extensions/git/out/autofetch.i18n.json b/i18n/kor/extensions/git/out/autofetch.i18n.json index 1a491bc8a6d..2ca2ddd5a69 100644 --- a/i18n/kor/extensions/git/out/autofetch.i18n.json +++ b/i18n/kor/extensions/git/out/autofetch.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "yes": "예", "read more": "자세히 알아보기", "no": "아니요", diff --git a/i18n/kor/extensions/git/out/commands.i18n.json b/i18n/kor/extensions/git/out/commands.i18n.json index 97749e34962..69fccaefa9f 100644 --- a/i18n/kor/extensions/git/out/commands.i18n.json +++ b/i18n/kor/extensions/git/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "tag at": "{0}의 태그", "remote branch at": "{0}에서 원격 분기", "create branch": "$(plus) 새 분기 생성", @@ -74,6 +76,7 @@ "push with tags success": "태그와 함께 푸시되었습니다.", "pick remote": "'{0}' 분기를 다음에 게시하려면 원격을 선택하세요.", "sync is unpredictable": "이 작업은 '{0}' 간에 커밋을 푸시하고 풀합니다.", + "never again": "다시 표시 안 함", "no remotes to publish": "리포지토리에 게시하도록 구성된 원격이 없습니다.", "no changes stash": "스태시할 변경 내용이 없습니다.", "provide stash message": "필요한 경우 스태시 메시지를 입력하세요.", diff --git a/i18n/kor/extensions/git/out/main.i18n.json b/i18n/kor/extensions/git/out/main.i18n.json index e152fcdc537..d456beffb80 100644 --- a/i18n/kor/extensions/git/out/main.i18n.json +++ b/i18n/kor/extensions/git/out/main.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "looking": "다음에서 git을 찾는 중: {0}", "using git": "{1}에서 git {0}을(를) 사용하는 중", "downloadgit": "Git 다운로드", diff --git a/i18n/kor/extensions/git/out/model.i18n.json b/i18n/kor/extensions/git/out/model.i18n.json index 0992c34ccab..2f1a201e501 100644 --- a/i18n/kor/extensions/git/out/model.i18n.json +++ b/i18n/kor/extensions/git/out/model.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "no repositories": "사용 가능한 리포지토리가 없습니다.", "pick repo": "리포지토리 선택" } \ No newline at end of file diff --git a/i18n/kor/extensions/git/out/repository.i18n.json b/i18n/kor/extensions/git/out/repository.i18n.json index c8d7793b731..4cfbdb4611e 100644 --- a/i18n/kor/extensions/git/out/repository.i18n.json +++ b/i18n/kor/extensions/git/out/repository.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "open": "열기", "index modified": "인덱스 수정됨", "modified": "수정됨", @@ -26,6 +28,8 @@ "merge changes": "변경 내용 병합", "staged changes": "스테이징된 변경 내용", "changes": "변경 내용", + "commitMessageCountdown": "현재 줄에서 {0} 글자 남음", + "commitMessageWarning": "현재 줄에서 {0} 글자 초과 {1}", "ok": "확인", "neveragain": "다시 표시 안 함", "huge": "'{0}'의 Git 리포지토리에 활성 변경 내용이 너무 많습니다. Git 기능의 하위 집합만 사용할 수 있도록 설정됩니다." diff --git a/i18n/kor/extensions/git/out/statusbar.i18n.json b/i18n/kor/extensions/git/out/statusbar.i18n.json index 4abde23d344..faf6fa27f20 100644 --- a/i18n/kor/extensions/git/out/statusbar.i18n.json +++ b/i18n/kor/extensions/git/out/statusbar.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "checkout": "체크 아웃...", "sync changes": "변경 내용 동기화", "publish changes": "변경 내용 게시", diff --git a/i18n/kor/extensions/git/package.i18n.json b/i18n/kor/extensions/git/package.i18n.json index aa42564b3c2..bcc589eb682 100644 --- a/i18n/kor/extensions/git/package.i18n.json +++ b/i18n/kor/extensions/git/package.i18n.json @@ -71,6 +71,8 @@ "config.enableCommitSigning": "GPG를 사용한 커밋 서명을 사용하도록 설정합니다.", "config.discardAllScope": "`모든 변경 내용 취소` 명령으로 취소되는 변경 내용을 제어합니다. `all`이면 모든 변경 내용을 취소합니다. `tracked`이면 추적된 파일만 취소합니다. `prompt`이면 작업을 실행할 때마다 프롬프트 대화 상자를 표시합니다.", "config.decorations.enabled": "Git에서 색과 배지를 탐색기와 열려 있는 편집기 뷰에 적용하는지 제어합니다.", + "config.promptToSaveFilesBeforeCommit": "Git가 제출(commit)하기 전에 저장되지 않은 파일을 검사할지를 제어합니다. ", + "config.showInlineOpenFileAction": "Git 변경점 보기에서 파일 열기 동작 줄을 표시할지의 여부를 제어합니다.", "colors.modified": "수정된 리소스의 색상입니다.", "colors.deleted": "삭제된 리소스의 색상입니다.", "colors.untracked": "추적되지 않은 리소스의 색상입니다.", diff --git a/i18n/kor/extensions/grunt/out/main.i18n.json b/i18n/kor/extensions/grunt/out/main.i18n.json index e7957d307fc..12be3ef6461 100644 --- a/i18n/kor/extensions/grunt/out/main.i18n.json +++ b/i18n/kor/extensions/grunt/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "폴더 {0}에 대해 Grunt 자동 검색에 실패하고 {1} 오류가 발생했습니다." } \ No newline at end of file diff --git a/i18n/kor/extensions/gulp/out/main.i18n.json b/i18n/kor/extensions/gulp/out/main.i18n.json index 87895182ec6..d31cddf0bd4 100644 --- a/i18n/kor/extensions/gulp/out/main.i18n.json +++ b/i18n/kor/extensions/gulp/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "폴더 {0}에 대해 Gulp 자동 검색에 실패하고 {1} 오류가 발생했습니다." } \ No newline at end of file diff --git a/i18n/kor/extensions/html/client/out/htmlMain.i18n.json b/i18n/kor/extensions/html/client/out/htmlMain.i18n.json index 596b2f4e3b5..d112b7520ae 100644 --- a/i18n/kor/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/kor/extensions/html/client/out/htmlMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "htmlserver.name": "HTML 언어 서버", "folding.start": "영역 접기 시작", "folding.end": "접기 영역 끝" diff --git a/i18n/kor/extensions/jake/out/main.i18n.json b/i18n/kor/extensions/jake/out/main.i18n.json index 508a5285839..7f2b9a95456 100644 --- a/i18n/kor/extensions/jake/out/main.i18n.json +++ b/i18n/kor/extensions/jake/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "폴더 {0}에 대해 Jake 자동 검색에 실패하고 {1} 오류가 발생했습니다." } \ No newline at end of file diff --git a/i18n/kor/extensions/json/client/out/jsonMain.i18n.json b/i18n/kor/extensions/json/client/out/jsonMain.i18n.json index 0df526f3eb5..115ea612718 100644 --- a/i18n/kor/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/kor/extensions/json/client/out/jsonMain.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "jsonserver.name": "JSON 언어 서버" } \ No newline at end of file diff --git a/i18n/kor/extensions/markdown/out/commands.i18n.json b/i18n/kor/extensions/markdown/out/commands.i18n.json index 055ede2dd13..aea09e921f6 100644 --- a/i18n/kor/extensions/markdown/out/commands.i18n.json +++ b/i18n/kor/extensions/markdown/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "previewTitle": "{0} 미리 보기", "onPreviewStyleLoadError": "'markdown.styles': {0}을 불러올 수 없음" } \ No newline at end of file diff --git a/i18n/kor/extensions/markdown/out/features/previewContentProvider.i18n.json b/i18n/kor/extensions/markdown/out/features/previewContentProvider.i18n.json index 966b7d5fad1..01370fa604b 100644 --- a/i18n/kor/extensions/markdown/out/features/previewContentProvider.i18n.json +++ b/i18n/kor/extensions/markdown/out/features/previewContentProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "preview.securityMessage.text": "이 문서에서 일부 콘텐츠가 사용하지 않도록 설정되었습니다.", "preview.securityMessage.title": "Markdown 미리 보기에서 잠재적으로 안전하지 않거나 보안되지 않은 콘텐츠가 사용하지 않도록 설정되어 있습니다. 이 콘텐츠나 스크립트를 허용하려면 Markdown 미리 보기 보안 설정을 변경하세요.", "preview.securityMessage.label": "콘텐츠 사용할 수 없음 보안 경고" diff --git a/i18n/kor/extensions/markdown/out/security.i18n.json b/i18n/kor/extensions/markdown/out/security.i18n.json index dcffab2e9ec..8c1b92c0822 100644 --- a/i18n/kor/extensions/markdown/out/security.i18n.json +++ b/i18n/kor/extensions/markdown/out/security.i18n.json @@ -1,18 +1,19 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "strict.title": "Strict", "strict.description": "보안 콘텐츠만 로드", - "insecureContent.title": "보아되지 않은 콘텐츠 허용", + "insecureContent.title": "안전하지 않은 콘텐츠 허용", "insecureContent.description": "http를 통한 콘텐츠 로드 사용", "disable.title": "사용 안 함", "disable.description": "모든 콘텐츠 및 스크립트 실행을 허용합니다. 권장하지 않습니다.", "moreInfo.title": "추가 정보", "enableSecurityWarning.title": "이 작업 영역에서 미리 보기 보안 경고 사용", "disableSecurityWarning.title": "이 작업 영역에서 미리보기 보안 경고 사용 안 함", - "toggleSecurityWarning.description": "콘텐츠 보안 수준에 영향을 주지 않습니다.", "preview.showPreviewSecuritySelector.title": "이 작업 영역에 대해 Markdown 미리 보기의 보안 설정 선택" } \ No newline at end of file diff --git a/i18n/kor/extensions/merge-conflict/out/codelensProvider.i18n.json b/i18n/kor/extensions/merge-conflict/out/codelensProvider.i18n.json index 8b5b2b04aab..4bfb419b679 100644 --- a/i18n/kor/extensions/merge-conflict/out/codelensProvider.i18n.json +++ b/i18n/kor/extensions/merge-conflict/out/codelensProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "acceptCurrentChange": "현재 변경 사항 수락", "acceptIncomingChange": "수신 변경 사항 수락", "acceptBothChanges": "두 변경 사항 모두 수락", diff --git a/i18n/kor/extensions/merge-conflict/out/commandHandler.i18n.json b/i18n/kor/extensions/merge-conflict/out/commandHandler.i18n.json index 844c3a0d88b..90edd092445 100644 --- a/i18n/kor/extensions/merge-conflict/out/commandHandler.i18n.json +++ b/i18n/kor/extensions/merge-conflict/out/commandHandler.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cursorNotInConflict": "편집기 커서가 병합 충돌 내에 없음", "compareChangesTitle": "{0}: 현재 변경 사항 ⟷ 수신 변경 사항", "cursorOnCommonAncestorsRange": "편집기 커서가 공통 과거 블록 내에 있습니다. \"현재\" 또는 \"수신\" 블록으로 옮기세요.", diff --git a/i18n/kor/extensions/merge-conflict/out/mergeDecorator.i18n.json b/i18n/kor/extensions/merge-conflict/out/mergeDecorator.i18n.json index 41b53ce1e6c..8d91980beaa 100644 --- a/i18n/kor/extensions/merge-conflict/out/mergeDecorator.i18n.json +++ b/i18n/kor/extensions/merge-conflict/out/mergeDecorator.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "currentChange": "(현재 변경 사항)", "incomingChange": "(수신 변경 사항)" } \ No newline at end of file diff --git a/i18n/kor/extensions/npm/out/main.i18n.json b/i18n/kor/extensions/npm/out/main.i18n.json index 552c723f47e..c60d6694a03 100644 --- a/i18n/kor/extensions/npm/out/main.i18n.json +++ b/i18n/kor/extensions/npm/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "npm.parseError": "Npm 작업 검색: {0} 파일을 구문 분석하지 못했습니다. " } \ No newline at end of file diff --git a/i18n/kor/extensions/php/out/features/validationProvider.i18n.json b/i18n/kor/extensions/php/out/features/validationProvider.i18n.json index 4aaa8ed2617..e88d0e75520 100644 --- a/i18n/kor/extensions/php/out/features/validationProvider.i18n.json +++ b/i18n/kor/extensions/php/out/features/validationProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "php.useExecutablePath": "PHP 파일을 lint하기 위해 {0}(작업 영역 설정으로 정의됨)의 실행을 허용하시겠습니까?", "php.yes": "허용", "php.no": "허용 안 함", diff --git a/i18n/kor/extensions/typescript/out/features/quickFixProvider.i18n.json b/i18n/kor/extensions/typescript/out/features/quickFixProvider.i18n.json index 35229bd6699..b91c84de957 100644 --- a/i18n/kor/extensions/typescript/out/features/quickFixProvider.i18n.json +++ b/i18n/kor/extensions/typescript/out/features/quickFixProvider.i18n.json @@ -5,5 +5,6 @@ "Licensed under the MIT License. See License.txt in the project root for license information.", "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." - ] + ], + "fixAllInFileLabel": "{0} (파일에서 모두 수정)" } \ No newline at end of file diff --git a/i18n/kor/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json b/i18n/kor/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json new file mode 100644 index 00000000000..2f3763ae9fb --- /dev/null +++ b/i18n/kor/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "noResults": "결과 없음", + "description": "설명" +} \ No newline at end of file diff --git a/i18n/kor/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json b/i18n/kor/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/kor/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/kor/src/vs/code/electron-main/logUploader.i18n.json b/i18n/kor/src/vs/code/electron-main/logUploader.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/kor/src/vs/code/electron-main/logUploader.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/kor/src/vs/code/electron-main/menus.i18n.json b/i18n/kor/src/vs/code/electron-main/menus.i18n.json index 737df80febd..e08964a36de 100644 --- a/i18n/kor/src/vs/code/electron-main/menus.i18n.json +++ b/i18n/kor/src/vs/code/electron-main/menus.i18n.json @@ -180,12 +180,12 @@ "miConfigureTask": "작업 구성(&&C)...", "miConfigureBuildTask": "기본 빌드 작업 구성(&&F)...", "accessibilityOptionsWindowTitle": "접근성 옵션", - "miRestartToUpdate": "다시 시작하여 업데이트...", + "miCheckForUpdates": "업데이트 확인...", "miCheckingForUpdates": "업데이트를 확인하는 중...", "miDownloadUpdate": "사용 가능한 업데이트 다운로드", "miDownloadingUpdate": "업데이트를 다운로드하는 중...", "miInstallingUpdate": "업데이트를 설치하는 중...", - "miCheckForUpdates": "업데이트 확인...", + "miRestartToUpdate": "다시 시작하여 업데이트...", "aboutDetail": "버전 {0}\n커밋 {1}\n날짜 {2}\n셸 {3}\n렌더러 {4}\n노드 {5}\n아키텍처 {6}", "okButton": "확인", "copy": "복사(&&C)" diff --git a/i18n/kor/src/vs/editor/browser/services/bulkEdit.i18n.json b/i18n/kor/src/vs/editor/browser/services/bulkEdit.i18n.json index 02de8a137d3..1b092993f52 100644 --- a/i18n/kor/src/vs/editor/browser/services/bulkEdit.i18n.json +++ b/i18n/kor/src/vs/editor/browser/services/bulkEdit.i18n.json @@ -6,8 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "conflict": "이러한 파일이 동시에 변경되었습니다. {0}", "summary.0": "편집하지 않음", "summary.nm": "{1}개 파일에서 {0}개 텍스트 편집을 수행함", - "summary.n0": "1개 파일에서 {0}개 텍스트 편집을 수행함" + "summary.n0": "1개 파일에서 {0}개 텍스트 편집을 수행함", + "conflict": "이러한 파일이 동시에 변경되었습니다. {0}" } \ No newline at end of file diff --git a/i18n/kor/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/kor/src/vs/editor/common/config/commonEditorConfig.i18n.json index ab9931eed96..625cbf270c2 100644 --- a/i18n/kor/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/kor/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -28,6 +28,7 @@ "scrollBeyondLastLine": "편집기에서 마지막 줄 이후로 스크롤할지 여부를 제어합니다.", "smoothScrolling": "편집기에서 애니메이션을 사용하여 스크롤할지 여부를 제어합니다.", "minimap.enabled": "미니맵 표시 여부를 제어합니다.", + "minimap.side": "미니맵이 표시될 곳을 결정합니다. '오른쪽'과 '왼쪽'이 선택 가능합니다.", "minimap.showSlider": "미니맵 슬라이더를 자동으로 숨길지 결정합니다. 가능한 값은 'always' 및 'mouseover'입니다.", "minimap.renderCharacters": "줄의 실제 문자(색 블록 아님) 렌더링", "minimap.maxColumn": "최대 특정 수의 열을 렌더링하도록 미니맵의 너비를 제한합니다.", @@ -42,6 +43,9 @@ "wordWrapColumn": "`editor.wordWrap`이 'wordWrapColumn' 또는 'bounded'인 경우 편집기의 열 줄 바꿈을 제어합니다.", "wrappingIndent": "줄 바꿈 행의 들여쓰기를 제어합니다. 'none', 'same' 또는 'indent' 중 하나일 수 있습니다.", "mouseWheelScrollSensitivity": "마우스 휠 스크롤 이벤트의 `deltaX` 및 `deltaY`에서 사용할 승수", + "multiCursorModifier.ctrlCmd": "Windows와 Linux의 'Control'을 macOS의 'Command'로 매핑합니다.", + "multiCursorModifier.alt": "Windows와 Linux의 'Alt'를 macOS의 'Option'으로 매핑합니다.", + "multiCursorModifier": "마우스로 여러 커서를 추가할 때 사용할 수정자입니다. `ctrlCmd`는 Windows와 Linux에서 `Control`로 매핑되고 macOS에서 `Command`로 매핑됩니다. Go To Definition 및 Open Link 마우스 제스처가 멀티커서 수정자와 충돌하지 않도록 조정됩니다.", "quickSuggestions.strings": "문자열 내에서 빠른 제안을 사용합니다.", "quickSuggestions.comments": "주석 내에서 빠른 제안을 사용합니다.", "quickSuggestions.other": "문자열 및 주석 외부에서 빠른 제안을 사용합니다.", @@ -71,6 +75,7 @@ "cursorBlinking": "커서 애니메이션 스타일을 제어합니다. 가능한 값은 'blink', 'smooth', 'phase', 'expand' 및 'solid'입니다.", "mouseWheelZoom": "마우스 휠을 사용할 때 Ctrl 키를 누르고 있으면 편집기의 글꼴 확대/축소", "cursorStyle": "커서 스타일을 제어합니다. 허용되는 값은 '블록', '블록-윤곽', '줄', '줄-가늘게', '밑줄' 및 '밑줄-가늘게'입니다.", + "cursorWidth": "editor.cursorStyle 설정이 'line'으로 설정되어 있을 때 커서의 넓이를 조절합니다.", "fontLigatures": "글꼴 합자 사용", "hideCursorInOverviewRuler": "커서가 개요 눈금자에서 가려져야 하는지 여부를 제어합니다.", "renderWhitespace": "편집기에서 공백 문자를 렌더링하는 방법을 제어합니다. 가능한 값은 'none', 'boundary' 및 'all'입니다. 'boundary' 옵션은 단어 사이의 한 칸 공백을 렌더링하지 않습니다.", diff --git a/i18n/kor/src/vs/editor/common/view/editorColorRegistry.i18n.json b/i18n/kor/src/vs/editor/common/view/editorColorRegistry.i18n.json index 81be07bd9e4..e8add1e1eb3 100644 --- a/i18n/kor/src/vs/editor/common/view/editorColorRegistry.i18n.json +++ b/i18n/kor/src/vs/editor/common/view/editorColorRegistry.i18n.json @@ -8,6 +8,7 @@ ], "lineHighlight": "커서 위치의 줄 강조 표시에 대한 배경색입니다.", "lineHighlightBorderBox": "커서 위치의 줄 테두리에 대한 배경색입니다.", + "rangeHighlight": "빠른 열기 및 찾기 기능 등을 통해 강조 표시된 영역의 배경색입니다. 색은 밑에 깔린 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", "caret": "편집기 커서 색입니다.", "editorCursorBackground": "편집기 커서의 배경색입니다. 블록 커서와 겹치는 글자의 색상을 사용자 정의할 수 있습니다.", "editorWhitespaces": "편집기의 공백 문자 색입니다.", diff --git a/i18n/kor/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json b/i18n/kor/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json index ed349c51d2d..4e71c899a27 100644 --- a/i18n/kor/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json +++ b/i18n/kor/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json @@ -6,5 +6,7 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "smartSelect.jumpBracket": "대괄호로 이동" + "overviewRulerBracketMatchForeground": "괄호에 해당하는 영역을 표시자에 채색하여 표시합니다.", + "smartSelect.jumpBracket": "대괄호로 이동", + "smartSelect.selectToBracket": "괄호까지 선택" } \ No newline at end of file diff --git a/i18n/kor/src/vs/editor/contrib/gotoError/gotoError.i18n.json b/i18n/kor/src/vs/editor/contrib/gotoError/gotoError.i18n.json index ff17e99717f..96b96049dd7 100644 --- a/i18n/kor/src/vs/editor/contrib/gotoError/gotoError.i18n.json +++ b/i18n/kor/src/vs/editor/contrib/gotoError/gotoError.i18n.json @@ -7,6 +7,8 @@ "Do not edit this file. It is machine generated." ], "title.wo_source": "({0}/{1})", + "markerAction.next.label": "다음 문제로 이동 (오류, 경고, 정보)", + "markerAction.previous.label": "이전 문제로 이동 (오류, 경고, 정보)", "editorMarkerNavigationError": "편집기 표식 탐색 위젯 오류 색입니다.", "editorMarkerNavigationWarning": "편집기 표식 탐색 위젯 경고 색입니다.", "editorMarkerNavigationInfo": "편집기 표식 탐색 위젯 정보 색입니다.", diff --git a/i18n/kor/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json b/i18n/kor/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json index 2fa68839992..c277197a433 100644 --- a/i18n/kor/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json +++ b/i18n/kor/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json @@ -8,5 +8,6 @@ ], "quickFixWithKb": "수정 사항 표시({0})", "quickFix": "수정 사항 표시", - "quickfix.trigger.label": "빠른 수정" + "quickfix.trigger.label": "빠른 수정", + "refactor.label": "리팩터링" } \ No newline at end of file diff --git a/i18n/kor/src/vs/editor/contrib/wordHighlighter/wordHighlighter.i18n.json b/i18n/kor/src/vs/editor/contrib/wordHighlighter/wordHighlighter.i18n.json index 7b3e185b94d..a23156388c7 100644 --- a/i18n/kor/src/vs/editor/contrib/wordHighlighter/wordHighlighter.i18n.json +++ b/i18n/kor/src/vs/editor/contrib/wordHighlighter/wordHighlighter.i18n.json @@ -6,6 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "wordHighlight": "변수 읽기와 같은 읽기 액세스 중 기호의 배경색입니다. 색상은 밑에 깔린 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", + "wordHighlightStrong": "변수에 쓰기와 같은 쓰기 액세스 중 기호의 배경색입니다. 색상은 밑에 깔린 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", "overviewRulerWordHighlightForeground": "기호 강조 표시의 개요 눈금자 마커 색입니다.", "overviewRulerWordHighlightStrongForeground": "쓰기 권한 기호 강조 표시의 개요 눈금자 마커 색입니다.", "wordHighlight.next.label": "다음 강조 기호로 이동", diff --git a/i18n/kor/src/vs/platform/environment/node/argv.i18n.json b/i18n/kor/src/vs/platform/environment/node/argv.i18n.json index 62ce2fff1e2..9ceec5abd21 100644 --- a/i18n/kor/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/kor/src/vs/platform/environment/node/argv.i18n.json @@ -10,11 +10,8 @@ "diff": "두 파일을 서로 비교합니다.", "add": "마지막 활성 창에 폴더를 추가합니다.", "goto": "지정된 줄과 문자 위치에 있는 경로의 파일을 엽니다.", - "newWindow": "Code의 새 인스턴스를 강제 적용합니다.", - "reuseWindow": "마지막 활성 창에서 파일 또는 폴더를 강제로 엽니다.", "wait": "파일이 닫힐 때 까지 기다린 후 돌아갑니다.", "locale": "사용할 로캘(예: en-US 또는 zh-TW)입니다.", - "userDataDir": "사용자 데이터가 저장되는 디렉터리를 지정합니다(루트로 실행할 경우 유용함).", "version": "버전을 출력합니다.", "help": "사용법을 출력합니다.", "extensionHomePath": "확장의 루트 경로를 설정합니다.", @@ -32,7 +29,7 @@ "inspect-extensions": "디버깅 및 확장 프로파일링을 허용합니다. 연결 uri에 대한 개발자 도구를 확인하십시오.", "inspect-brk-extensions": "시작 후 일시 중시된 확장 호스트에서 디버깅 및 확장 프로파일링을 허용합니다. 연결 URL은 개발자 도구를 확인하세요.", "disableGPU": "GPU 하드웨어 가속을 사용하지 않도록 설정합니다.", - "issue": "문제를 보고하십시오.", + "uploadLogs": "현재의 세션에서 안전한 종점으로 로그 업로드", "usage": "사용법", "options": "옵션", "paths": "경로", diff --git a/i18n/kor/src/vs/platform/issue/electron-main/issueService.i18n.json b/i18n/kor/src/vs/platform/issue/electron-main/issueService.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/kor/src/vs/platform/issue/electron-main/issueService.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/kor/src/vs/platform/list/browser/listService.i18n.json b/i18n/kor/src/vs/platform/list/browser/listService.i18n.json index d5157878b87..7e6f7bfe858 100644 --- a/i18n/kor/src/vs/platform/list/browser/listService.i18n.json +++ b/i18n/kor/src/vs/platform/list/browser/listService.i18n.json @@ -6,5 +6,7 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "workbenchConfigurationTitle": "워크벤치" + "workbenchConfigurationTitle": "워크벤치", + "multiSelectModifier.ctrlCmd": "Windows와 Linux의 'Control'을 macOS의 'Command'로 매핑합니다.", + "multiSelectModifier.alt": "Windows와 Linux의 'Alt'를 macOS의 'Option'으로 매핑합니다." } \ No newline at end of file diff --git a/i18n/kor/src/vs/platform/localizations/common/localizations.i18n.json b/i18n/kor/src/vs/platform/localizations/common/localizations.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/kor/src/vs/platform/localizations/common/localizations.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/kor/src/vs/platform/theme/common/colorRegistry.i18n.json b/i18n/kor/src/vs/platform/theme/common/colorRegistry.i18n.json index 4616f125eee..f9643f90b7c 100644 --- a/i18n/kor/src/vs/platform/theme/common/colorRegistry.i18n.json +++ b/i18n/kor/src/vs/platform/theme/common/colorRegistry.i18n.json @@ -65,7 +65,12 @@ "editorWidgetBorder": "편집기 위젯의 테두리 색입니다. 위젯에 테두리가 있고 위젯이 색상을 무시하지 않을 때만 사용됩니다.", "editorSelectionBackground": "편집기 선택 영역의 색입니다.", "editorSelectionForeground": "고대비를 위한 선택 텍스트의 색입니다.", + "editorInactiveSelection": "비활성화된 편집기에서 선택영역의 색상. 색상은 밑의 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", + "editorSelectionHighlight": "선택 영역과 동일한 콘텐츠가 있는 영역의 색입니다. 색상은 밑의 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", "editorFindMatch": "현재 검색 일치 항목의 색입니다.", + "findMatchHighlight": "기타 일치하는 검색의 색상. 색상은 밑의 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", + "findRangeHighlight": "범위 제한 검색의 색상. 색상은 밑의 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", + "hoverHighlight": "호버가 표시된 단어 아래를 강조 표시합니다. 색상은 밑의 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", "hoverBackground": "편집기 호버의 배경색.", "hoverBorder": "편집기 호버의 테두리 색입니다.", "activeLinkForeground": "활성 링크의 색입니다.", @@ -73,6 +78,12 @@ "diffEditorRemoved": "제거된 텍스트의 배경색입니다.", "diffEditorInsertedOutline": "삽입된 텍스트의 윤곽선 색입니다.", "diffEditorRemovedOutline": "제거된 텍스트의 윤곽선 색입니다.", + "mergeCurrentHeaderBackground": "인라인 병합 충돌의 현재 헤더 배경입니다. 색상은 밑의 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", + "mergeCurrentContentBackground": "인라인 병합 충돌의 현재 콘텐츠 배경입니다. 색상은 밑의 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", + "mergeIncomingHeaderBackground": "인라인 병합 충돌에서 수신 헤더 배경입니다. 색상은 밑의 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", + "mergeIncomingContentBackground": "인라인 병합 충돌에서 수신 콘텐츠 배경입니다. 색상은 밑의 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", + "mergeCommonHeaderBackground": "인라인 병합 충돌의 공통 과거 헤더 배경입니다. 색상은 밑의 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", + "mergeCommonContentBackground": "인라인 병합 충돌의 공통 과거 콘텐츠 배경입니다. 색상은 밑의 꾸밈을 가리지 않도록 반드시 불투명이 아니어야 합니다.", "mergeBorder": "인라인 병합 충돌에서 헤더 및 스플리터의 테두리 색입니다.", "overviewRulerCurrentContentForeground": "인라인 병합 충돌에서 현재 개요 눈금 전경색입니다.", "overviewRulerIncomingContentForeground": "인라인 병합 충돌에서 수신 개요 눈금 전경색입니다.", diff --git a/i18n/kor/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json b/i18n/kor/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/kor/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/api/node/extHostWorkspace.i18n.json b/i18n/kor/src/vs/workbench/api/node/extHostWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/kor/src/vs/workbench/api/node/extHostWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json b/i18n/kor/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json new file mode 100644 index 00000000000..56e89b535ba --- /dev/null +++ b/i18n/kor/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "sizeB": "{0}B", + "sizeKB": "{0}KB", + "sizeMB": "{0}MB", + "sizeGB": "{0}GB", + "sizeTB": "{0}TB", + "resourceOpenExternalButton": " 외부 프로그램으로 이미지를 열까요?", + "nativeBinaryError": "파일이 이진이거나 매우 크거나 지원되지 않는 텍스트 인코딩을 사용하기 때문에 편집기에서 표시되지 않습니다.", + "imgMeta": "{0}x{1} {2}" +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/kor/src/vs/workbench/electron-browser/main.contribution.i18n.json index 432522883b9..1e4438f0ffc 100644 --- a/i18n/kor/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -35,7 +35,6 @@ "panelDefaultLocation": "패널의 기본 위치를 제어합니다. 워크벤치의 아래 또는 오른쪽에 표시될 수 있습니다.", "statusBarVisibility": "워크벤치 아래쪽에서 상태 표시줄의 표시 유형을 제어합니다.", "activityBarVisibility": "워크벤치에서 작업 막대의 표시 유형을 제어합니다.", - "fontAliasing": "워크벤치에서 글꼴 앨리어싱 방식을 제어합니다.\n- 기본: 서브 픽셀 글꼴 다듬기. 대부분의 일반 디스플레이에서 가장 선명한 글꼴 제공\n- 안티앨리어싱: 서브 픽셀이 아닌 픽셀 단위에서 글꼴 다듬기. 전반적으로 더 밝은 느낌을 줄 수 있음\n- 없음: 글꼴 다듬기 사용 안 함. 텍스트 모서리가 각지게 표시됨", "workbench.fontAliasing.default": "서브 픽셀 글꼴 다듬기. 대부분의 일반 디스플레이에서 가장 선명한 텍스트를 제공합니다. ", "workbench.fontAliasing.antialiased": "서브 픽셀이 아닌 픽셀 수준에서 글꼴을 다듬습니다. 전반적으로 글꼴이 더 밝게 표시됩니다.", "workbench.fontAliasing.none": "글꼴 다듬기를 사용하지 않습니다. 텍스트 가장자리가 각지게 표시됩니다.", diff --git a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json index c245348a2cb..0eeadebbdc4 100644 --- a/i18n/kor/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json @@ -19,12 +19,12 @@ "debugRequesMissing": "선택한 디버그 구성에 특성 '{0}'이(가) 없습니다.", "debugTypeNotSupported": "구성된 디버그 형식 '{0}'은(는) 지원되지 않습니다.", "debugTypeMissing": "선택한 시작 구성에 대한 'type' 속성이 없습니다.", - "debugAnyway": "디버그", "preLaunchTaskErrors": "preLaunchTask '{0}' 진행 중에 빌드 오류가 감지되었습니다.", "preLaunchTaskError": "preLaunchTask '{0}' 진행 중에 빌드 오류가 감지되었습니다.", "preLaunchTaskExitCode": "preLaunchTask '{0}'이(가) {1} 종료 코드와 함께 종료되었습니다.", + "debugAnyway": "디버그", + "cancel": "취소", "noFolderWorkspaceDebugError": "활성 파일은 디버그할 수 없습니다. 이 파일이 디스크에 저장되어 있고 해당 파일 형식에 대한 디버그 확장이 설치되어 있는지 확인하세요.", - "NewLaunchConfig": "응용 프로그램에 사용할 구성 시작 파일을 설정하세요. {0}", "DebugTaskNotFound": "preLaunchTask '{0}'을(를) 찾을 수 없습니다.", "taskNotTracked": "PreLaunchTask '{0}'을(를) 추적할 수 없습니다." } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index dda475d2667..716717bd06d 100644 --- a/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -18,5 +18,6 @@ "sort by name": "정렬 기준: 이름", "suggestProxyError": "마켓플레이스에서 'ECONNREFUSED'를 반환했습니다. 'http.proxy' 설정을 확인하세요.", "extensions": "확장", - "outdatedExtensions": "{0}개의 만료된 확장" + "outdatedExtensions": "{0}개의 만료된 확장", + "reloadNow": "지금 다시 로드" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/logs/electron-browser/logs.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/logs/electron-browser/logs.contribution.i18n.json index 3cc57080035..eed5e71d3e5 100644 --- a/i18n/kor/src/vs/workbench/parts/logs/electron-browser/logs.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/logs/electron-browser/logs.contribution.i18n.json @@ -7,6 +7,7 @@ "Do not edit this file. It is machine generated." ], "mainLog": "로그(메인)", + "sharedLog": "로그(공유)", "rendererLog": "로그(창)", "extensionsLog": "로그(확장 호스트)", "developer": "개발자" diff --git a/i18n/kor/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json b/i18n/kor/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json index 152f8b3300f..c3c5cdfd9f3 100644 --- a/i18n/kor/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json @@ -8,10 +8,11 @@ ], "openLogsFolder": "로그 폴더 열기", "showLogs": "로그 표시...", - "mainProcess": "기본", + "emptyWindow": "창", + "extensionHost": "확장 호스트", "sharedProcess": "공유", - "rendererProcess": "창", - "selectProcess": "프로세스 선택", + "mainProcess": "기본", + "openLogFile": "로그 파일 열기...", "setLogLevel": "로그 수준 설정", "trace": "Trace", "debug": "디버그", @@ -19,5 +20,7 @@ "warn": "경고", "err": "오류", "critical": "Critical", - "off": "Off" + "off": "Off", + "selectLogLevel": "로그 수준 선택", + "default": "기본값" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/markers/common/markers.i18n.json b/i18n/kor/src/vs/workbench/parts/markers/common/markers.i18n.json new file mode 100644 index 00000000000..5ea2aa6a147 --- /dev/null +++ b/i18n/kor/src/vs/workbench/parts/markers/common/markers.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "totalProblems": "총 {0}개 문제", + "filteredProblems": "{1}개 중 {0}개 문제 표시" +} \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/output/electron-browser/outputServices.i18n.json b/i18n/kor/src/vs/workbench/parts/output/electron-browser/outputServices.i18n.json index ed0bb2e27f2..675dfcdef15 100644 --- a/i18n/kor/src/vs/workbench/parts/output/electron-browser/outputServices.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/output/electron-browser/outputServices.i18n.json @@ -6,5 +6,6 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "output": "{0} - 출력" + "output": "{0} - 출력", + "channel": "'{0}'에 대한 출력 채널" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json b/i18n/kor/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json index d300c523756..797d5a4e7da 100644 --- a/i18n/kor/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json @@ -17,7 +17,6 @@ "addLabel": "키 바인딩 추가", "removeLabel": "키 바인딩 제거", "resetLabel": "키 바인딩 다시 설정", - "showConflictsLabel": "충돌 표시", "copyLabel": "복사", "error": "키 바인딩을 편집하는 동안 오류 '{0}'이(가) 발생했습니다. 'keybindings.json' 파일을 열고 확인하세요.", "command": "명령", diff --git a/i18n/kor/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json b/i18n/kor/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json index 4b540774f88..395d4bef25e 100644 --- a/i18n/kor/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json @@ -10,8 +10,6 @@ "SearchSettingsWidget.AriaLabel": "설정 검색", "SearchSettingsWidget.Placeholder": "설정 검색", "noSettingsFound": "결과 없음", - "oneSettingFound": "1개 설정 일치함", - "settingsFound": "{0}개 설정 일치함", "totalSettingsMessage": "총 {0}개 설정", "defaultSettings": "기본 설정", "defaultFolderSettings": "기본 폴더 설정", diff --git a/i18n/kor/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json index a54eb864282..4049e742fe8 100644 --- a/i18n/kor/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json @@ -10,5 +10,7 @@ "source control": "소스 제어", "toggleSCMViewlet": "SCM 표시", "view": "보기", - "scmConfigurationTitle": "SCM" + "scmConfigurationTitle": "SCM", + "alwaysShowProviders": "소스 제어 공급자 부분을 항상 표시할지의 여부", + "diffDecorations": "편집기에서 차이점 장식을 제어합니다." } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/snippets/electron-browser/configureSnippets.i18n.json b/i18n/kor/src/vs/workbench/parts/snippets/electron-browser/configureSnippets.i18n.json index c1bd94745a4..b11c2573fb8 100644 --- a/i18n/kor/src/vs/workbench/parts/snippets/electron-browser/configureSnippets.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/snippets/electron-browser/configureSnippets.i18n.json @@ -7,5 +7,6 @@ "Do not edit this file. It is machine generated." ], "global.1": "({0})", + "new.global.sep": "새 코드 조각", "preferences": "기본 설정" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/snippets/electron-browser/snippets.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/snippets/electron-browser/snippets.contribution.i18n.json index fe555d85751..c3fc6b2dfd0 100644 --- a/i18n/kor/src/vs/workbench/parts/snippets/electron-browser/snippets.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/snippets/electron-browser/snippets.contribution.i18n.json @@ -10,5 +10,6 @@ "snippetSchema.json": "사용자 코드 조각 구성", "snippetSchema.json.prefix": "IntelliSense에서 코드 조각을 선택할 때 사용할 접두사입니다.", "snippetSchema.json.body": "코드 조각 콘텐츠입니다. '$1', '${1:defaultText}'를 사용하여 커서 위치를 정의하고, '$0'을 최종 커서 위치에 사용하세요. '${varName}' 및 '${varName:defaultText}'에 변수 값을 삽입하세요(예: '$TM_FILENAME 파일입니다').", - "snippetSchema.json.description": "코드 조각 설명입니다." + "snippetSchema.json.description": "코드 조각 설명입니다.", + "snippetSchema.json.scope": "예를 들어, 'typescript,javascript' 와 같이 해당 코드 조각이 적용되는 언어 이름의 목록입니다." } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json b/i18n/kor/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json index 58e2a3a2594..00ebf63a54e 100644 --- a/i18n/kor/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json @@ -21,10 +21,6 @@ "JsonSchema.tasks.terminal": "이 터미널 속성은 사용되지 않습니다. 프레젠테이션을 대신 사용하세요.", "JsonSchema.tasks.group.kind": "작업 실행 그룹입니다.", "JsonSchema.tasks.group.isDefault": "작업이 그룹 내 기본 작업에 있는지 정의합니다.", - "JsonSchema.tasks.group.defaultBuild": "이 작업을 기본 빌드 작업으로 표시합니다.", - "JsonSchema.tasks.group.defaultTest": "이 작업을 기본 테스트 작업으로 표시합니다.", - "JsonSchema.tasks.group.build": "이 작업을 '빌드 작업 실행' 명령을 통해 액세스 가능한 빌드 작업으로 표시합니다.", - "JsonSchema.tasks.group.test": "이 작업을 '테스트 작업 실행' 명령을 통해 액세스할 수 있는 테스트 작업으로 표시합니다.", "JsonSchema.tasks.group.none": "작업을 그룹에 할당 안 함", "JsonSchema.tasks.group": "이 작업을 할당할 실행 그룹을 정의합니다. 빌드 그룹에 추가를 위한 \"build'와 테스트 그룹에 추가를 위한 \"test\"를 지원합니다.", "JsonSchema.tasks.type": "작업이 프로세스로 실행되는지 또는 셸 내의 명령으로 실행되는지를 제어합니다.", diff --git a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index c6a99544325..3e8e0df6db9 100644 --- a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -16,10 +16,10 @@ "terminal.integrated.shell.windows": "터미널이 Windows에서 사용하는 셸의 경로입니다. Windows와 함께 제공되는 셸을 사용하는 경우(cmd, PowerShell 또는 Ubuntu의 Bash)", "terminal.integrated.shellArgs.windows": "Windows 터미널에 있을 때 사용할 명령줄 인수입니다.", "terminal.integrated.rightClickCopyPaste": "설정하는 경우 터미널 내에서 마우스 오른쪽 단추를 클릭할 때 상황에 맞는 메뉴가 표시되지 않고 대신 선택 항목이 있으면 복사하고 선택 항목이 없으면 붙여넣습니다.", + "terminal.integrated.copyOnSelection": "설정된 경우, 터미널에서 선택된 텍스트가 클립보드로 복사됩니다.", "terminal.integrated.fontFamily": "터미널의 글꼴 패밀리를 제어하며, 기본값은 editor.fontFamily의 값입니다.", "terminal.integrated.fontSize": "터미널의 글꼴 크기(픽셀)를 제어합니다.", "terminal.integrated.lineHeight": "터미널의 줄 높이를 제어합니다. 이 숫자에 터미널 글꼴 크기를 곱해 실제 줄 높이(픽셀)를 얻습니다.", - "terminal.integrated.enableBold": "터미널 내에서 굵은 텍스트를 사용하도록 설정할지 여부이며, 터미널 셸의 지원이 필요합니다.", "terminal.integrated.cursorBlinking": "터미널 커서 깜박임 여부를 제어합니다.", "terminal.integrated.cursorStyle": "터미널 커서의 스타일을 제어합니다.", "terminal.integrated.scrollback": "터미널에서 버퍼에 유지하는 최대 줄 수를 제어합니다.", diff --git a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index f01e294260b..0eb7fd16c4a 100644 --- a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -16,6 +16,8 @@ "workbench.action.terminal.deleteWordRight": "오른쪽 단어 삭제", "workbench.action.terminal.new": "새 통합 터미널 만들기", "workbench.action.terminal.new.short": "새 터미널", + "workbench.action.terminal.newWorkspacePlaceholder": "새 터미널의 현재 작업 디렉토리를 선택합니다.", + "workbench.action.terminal.newInActiveWorkspace": "새 통합 터미널 만들기(활성 작업 영역에)", "workbench.action.terminal.focus": "터미널에 포커스", "workbench.action.terminal.focusNext": "다음 터미널에 포커스", "workbench.action.terminal.focusPrevious": "이전 터미널에 포커스", diff --git a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalColorRegistry.i18n.json b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalColorRegistry.i18n.json index 36502b205a4..de6a8420211 100644 --- a/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalColorRegistry.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/terminal/electron-browser/terminalColorRegistry.i18n.json @@ -10,5 +10,6 @@ "terminal.foreground": "터미널의 전경색입니다.", "terminalCursor.foreground": "터미널 커서의 전경색입니다.", "terminalCursor.background": "터미널 커서의 배경색입니다. 블록 커서와 겹친 문자의 색상을 사용자 정의할 수 있습니다.", - "terminal.selectionBackground": "터미널의 선택 영역 배경색입니다." + "terminal.selectionBackground": "터미널의 선택 영역 배경색입니다.", + "terminal.ansiColor": "터미널의 '{0}' ANSI 색상" } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index 49524389fa9..6585b0759d4 100644 --- a/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -8,5 +8,6 @@ ], "release notes": "릴리스 정보", "updateConfigurationTitle": "업데이트", - "updateChannel": "업데이트 채널에서 자동 업데이트를 받을지 여부를 구성합니다. 변경 후 다시 시작해야 합니다." + "updateChannel": "업데이트 채널에서 자동 업데이트를 받을지 여부를 구성합니다. 변경 후 다시 시작해야 합니다.", + "enableWindowsBackgroundUpdates": "Windows 배경 업데이트를 활성화합니다." } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.i18n.json b/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.i18n.json index 10994f1245d..e579df60c64 100644 --- a/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.i18n.json +++ b/i18n/kor/src/vs/workbench/parts/update/electron-browser/update.i18n.json @@ -6,12 +6,10 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "updateNow": "지금 업데이트", "later": "나중에", "unassigned": "할당되지 않음", "releaseNotes": "릴리스 정보", "showReleaseNotes": "릴리스 정보 표시", - "downloadNow": "지금 다운로드", "read the release notes": "{0} v{1}을(를) 시작합니다. 릴리스 정보를 확인하시겠습니까?", "licenseChanged": "사용 조건이 변경되었습니다. 자세히 읽어보세요.", "license": "라이선스 읽기", @@ -19,20 +17,20 @@ "64bitisavailable": "64비트 Windows용 {0}을(를) 지금 사용할 수 있습니다.", "learn more": "자세한 정보", "updateIsReady": "새 {0} 업데이트를 사용할 수 있습니다.", - "thereIsUpdateAvailable": "사용 가능한 업데이트가 있습니다.", - "updateAvailable": "다시 시작하면 {0}이(가) 업데이트됩니다.", "noUpdatesAvailable": "현재 사용 가능한 업데이트가 없습니다.", + "download now": "지금 다운로드", + "thereIsUpdateAvailable": "사용 가능한 업데이트가 있습니다.", + "updateNow": "지금 업데이트", + "updateAvailableAfterRestart": "다시 시작하면 {0}이(가) 업데이트됩니다.", "commandPalette": "명령 팔레트...", "settings": "설정", "keyboardShortcuts": "바로 가기 키(&&K)", "userSnippets": "사용자 코드 조각", "selectTheme.label": "색 테마", "themes.selectIconTheme.label": "파일 아이콘 테마", - "not available": "업데이트를 사용할 수 없음", + "checkForUpdates": "업데이트 확인...", "checkingForUpdates": "업데이트를 확인하는 중...", - "DownloadUpdate": "사용 가능한 업데이트 다운로드", "DownloadingUpdate": "업데이트를 다운로드하는 중...", - "InstallingUpdate": "업데이트를 설치하는 중...", - "restartToUpdate": "업데이트하기 위해 다시 시작...", - "checkForUpdates": "업데이트 확인..." + "installingUpdate": "업데이트를 설치하는 중...", + "restartToUpdate": "업데이트하기 위해 다시 시작..." } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json b/i18n/kor/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json index 0cb2eb21783..d8ba92cfb2a 100644 --- a/i18n/kor/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json +++ b/i18n/kor/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json @@ -8,6 +8,6 @@ ], "jsonParseFail": "{0}을(를) 구문 분석하지 못함: {1}.", "fileReadFail": "파일 {0}을(를) 읽을 수 없음: {1}.", - "jsonsParseFail": "{0} 또는 {1}을(를) 구문 분석하지 못했습니다. {2}", + "jsonsParseReportErrors": "{0}을(를) 구문 분석하지 못함: {1}.", "missingNLSKey": "키 {0}에 대한 메시지를 찾을 수 없습니다." } \ No newline at end of file diff --git a/i18n/kor/src/vs/workbench/services/files/node/fileService.i18n.json b/i18n/kor/src/vs/workbench/services/files/node/fileService.i18n.json index 6c99308b6ce..d411f384a72 100644 --- a/i18n/kor/src/vs/workbench/services/files/node/fileService.i18n.json +++ b/i18n/kor/src/vs/workbench/services/files/node/fileService.i18n.json @@ -12,6 +12,7 @@ "fileTooLargeError": "파일이 너무 커서 열 수 없음", "fileNotFoundError": "파일을 찾을 수 없습니다({0}).", "fileBinaryError": "파일이 이진인 것 같으므로 테스트로 열 수 없습니다.", + "filePermission": "파일 쓰기 권한이 거부되었습니다. ({0})", "fileExists": "만드려는 파일이 이미 있음({0})", "fileMoveConflict": "이동/복사할 수 없습니다. 대상에 파일이 이미 있습니다.", "unableToMoveCopyError": "이동/복사할 수 없습니다. 파일이 포함된 폴더를 파일로 대체합니다.", diff --git a/i18n/ptb/extensions/css/client/out/cssMain.i18n.json b/i18n/ptb/extensions/css/client/out/cssMain.i18n.json index 4eeecc57ff2..d8cc2994174 100644 --- a/i18n/ptb/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/ptb/extensions/css/client/out/cssMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cssserver.name": "Servidor de linguagem CSS", "folding.start": "Início da Região Expansível", "folding.end": "Fim da Região Expansível" diff --git a/i18n/ptb/extensions/git/out/askpass-main.i18n.json b/i18n/ptb/extensions/git/out/askpass-main.i18n.json index 280b14bd0d7..748b96bae29 100644 --- a/i18n/ptb/extensions/git/out/askpass-main.i18n.json +++ b/i18n/ptb/extensions/git/out/askpass-main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "missOrInvalid": "Credenciais ausentes ou inválidas." } \ No newline at end of file diff --git a/i18n/ptb/extensions/git/out/autofetch.i18n.json b/i18n/ptb/extensions/git/out/autofetch.i18n.json index 5df527f070d..a3d4119e785 100644 --- a/i18n/ptb/extensions/git/out/autofetch.i18n.json +++ b/i18n/ptb/extensions/git/out/autofetch.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "yes": "Sim", "read more": "Ler Mais", "no": "Não", diff --git a/i18n/ptb/extensions/git/out/commands.i18n.json b/i18n/ptb/extensions/git/out/commands.i18n.json index b56c7d4a6f4..0e3ae33fa0e 100644 --- a/i18n/ptb/extensions/git/out/commands.i18n.json +++ b/i18n/ptb/extensions/git/out/commands.i18n.json @@ -1,23 +1,23 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "tag at": "Etiqueta em {0}", "remote branch at": "Ramo remoto em {0}", "create branch": "$(plus) criar nova ramificação", "repourl": "URL do repositório", "parent": "Diretório pai", "cancel": "$(sync~spin) Clonando o repositório... Clique para cancelar", - "cancel tooltip": "Cancelar o clone", "cloning": "Clonando repositório do Git...", "openrepo": "Abrir Repositório", "proposeopen": "Gostaria de abrir o repositório clonado?", "init": "Escolher a pasta de trabalho para inicializar o git repo", "init repo": "Inicializar Repositório", "create repo": "Inicializar Repositório", - "are you sure": "Isto irá criar um repositório Git em '{0}'. Tem certeza que deseja continuar?", "HEAD not available": "Versão HEAD de '{0}' não está disponível.", "confirm stage files with merge conflicts": "Tem certeza que deseja processar {0} arquivos com conflitos de mesclagem?", "confirm stage file with merge conflicts": "Tem certeza que deseja processar {0} com conflitos de mesclagem?", @@ -26,7 +26,6 @@ "revert": "Reverter as alterações", "discard": "Descartar alterações", "confirm delete": "Tem certeza que deseja EXCLUIR {0}?", - "delete file": "Excluir arquivo", "confirm discard": "Tem certeza que deseja descartar as alterações em {0}?", "confirm discard multiple": "Tem certeza que deseja descartar as alterações em {0} arquivos?", "warn untracked": "Isso irá excluir {0} registros não rastreados!", @@ -34,8 +33,6 @@ "confirm discard all": "Tem certeza que deseja descartar todas as alterações em {0} arquivos?\nIsso é IRREVERSíVEL!\nO conjunto de trabalhando atual será PERDIDO PARA SEMPRE.", "discardAll multiple": "Descartar 1 Arquivo", "discardAll": "Descartar Todos os {0} Arquivos", - "confirm delete multiple": "Tem certeza que deseja excluir {0} arquivos?", - "delete files": "Excluir arquivos", "there are untracked files single": "O seguinte arquivo não controlado será excluído do disco se descartado: {0}.", "there are untracked files": "Existem {0} arquivos não controlados que serão excluídos do disco se descartados.", "confirm discard all 2": "{0}\n\n é IRREVERSÍVEL, o conjunto de trabalho atual será PERDIDO PARA SEMPRE.", @@ -57,12 +54,10 @@ "confirm force delete branch": "A ramificação '{0}' não foi totalmente mesclada. Excluir mesmo assim?", "delete branch": "Excluir ramificação", "invalid branch name": "Nome da ramificação inválido.", - "branch already exists": "Um ramo chamado '{0}' já existe", "select a branch to merge from": "Selecione uma ramificação para mesclar", "merge conflicts": "Existem conflitos de mesclagem. Resolva-os antes de confirmar.", "tag name": "Nome do rótulo", "provide tag name": "Por favor, forneça um nome de Tag", - "tag message": "Mensagem", "provide tag message": "Por favor, forneça uma mensagem para comentar o rótulo", "no remotes to fetch": "Este repositório não possui remotos configurados para buscar algo", "no remotes to pull": "O seu repositório não possui remotos configurados para efetuar pull.", @@ -76,7 +71,6 @@ "sync is unpredictable": "Esta ação vai fazer push e pull nos commits de e para '{0}'.", "never again": "OK, Não Mostrar Novamente", "no remotes to publish": "Seu repositório não possui remotos configurados para publicação.", - "no changes stash": "Não há nenhuma mudança para esconder.", "provide stash message": "Opcionalmente forneça uma mensagem para esconder.", "stash message": "Mensagem oculta", "no stashes": "Não há esconderijos para restaurar.", diff --git a/i18n/ptb/extensions/git/out/main.i18n.json b/i18n/ptb/extensions/git/out/main.i18n.json index 9991e6dc5e9..6236df1b2fc 100644 --- a/i18n/ptb/extensions/git/out/main.i18n.json +++ b/i18n/ptb/extensions/git/out/main.i18n.json @@ -1,10 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "looking": "Procurando por git em: {0}", + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "using git": "Usando git {0} de {1}", "downloadgit": "Baixar o Git", "neverShowAgain": "Não mostrar novamente", diff --git a/i18n/ptb/extensions/git/out/model.i18n.json b/i18n/ptb/extensions/git/out/model.i18n.json index 05c63b7788a..f6eebe27271 100644 --- a/i18n/ptb/extensions/git/out/model.i18n.json +++ b/i18n/ptb/extensions/git/out/model.i18n.json @@ -1,9 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "no repositories": "Não existem repositórios disponíveis", - "pick repo": "Escolher um repositório" + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "no repositories": "Não existem repositórios disponíveis" } \ No newline at end of file diff --git a/i18n/ptb/extensions/git/out/repository.i18n.json b/i18n/ptb/extensions/git/out/repository.i18n.json index df6cf8fd751..983c5d1d8cc 100644 --- a/i18n/ptb/extensions/git/out/repository.i18n.json +++ b/i18n/ptb/extensions/git/out/repository.i18n.json @@ -1,31 +1,25 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "open": "Abrir", - "index modified": "Índice modificado", "modified": "Modificado", - "index added": "Índice adicionado", - "index deleted": "Índice excluído", "deleted": "Excluído", - "index renamed": "Índice renomeado", - "index copied": "Índice copiado", "untracked": "Não acompanhado", "ignored": "Ignorado", "both deleted": "Ambos Excluídos", - "added by us": "Adicionado por nós", - "deleted by them": "Excluído por eles", - "added by them": "Adicionado por eles", - "deleted by us": "Excluído por nós", "both added": "Ambos adicionados", - "both modified": "Ambos modificados", "commitMessage": "Mensagem (tecle {0} para confirmar)", "commit": "Confirmar", "merge changes": "Mesclar Alterações", "staged changes": "Alterações em Etapas", "changes": "Alterações", + "commitMessageCountdown": "{0} caracteres restantes na linha atual", + "commitMessageWarning": "{0} caracteres sobre {1} na linha atual", "ok": "OK", "neveragain": "Não mostrar novamente", "huge": "O repositório git em '{0}' tem muitas atualizações ativas, somente um subconjunto de funcionalidades do Git será habilitado." diff --git a/i18n/ptb/extensions/git/out/statusbar.i18n.json b/i18n/ptb/extensions/git/out/statusbar.i18n.json index a7cb7d22aae..e73bb5248d1 100644 --- a/i18n/ptb/extensions/git/out/statusbar.i18n.json +++ b/i18n/ptb/extensions/git/out/statusbar.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "checkout": "Checkout...", "sync changes": "Sincronizar alterações", "publish changes": "Publicar Alterações", diff --git a/i18n/ptb/extensions/git/package.i18n.json b/i18n/ptb/extensions/git/package.i18n.json index 6fe9f16e928..9a2e18d19d1 100644 --- a/i18n/ptb/extensions/git/package.i18n.json +++ b/i18n/ptb/extensions/git/package.i18n.json @@ -71,6 +71,8 @@ "config.enableCommitSigning": "Habilitar Commit assinando com GPG.", "config.discardAllScope": "Controla as alterações que são descartadas pelo comando 'Descartar todas as alterações'. 'todos' descarta todas as alterações. 'rastreados' descarta somente arquivos rastreados. 'prompt' mostra uma caixa de diálogo de alerta cada vez que a ação é executada.", "config.decorations.enabled": "Controla se o Git contribui cores e emblemas para o explorer e visualizador de editores abertos.", + "config.promptToSaveFilesBeforeCommit": "Controla se o Git deve verificar arquivos não salvos antes do Commit.", + "config.showInlineOpenFileAction": "Controla se deve mostrar uma ação Abrir Arquivo em linha na visualização de alterações do Git.", "colors.modified": "Cor para recursos modificados.", "colors.deleted": "Cor para recursos excluídos.", "colors.untracked": "Cor para recursos não controlados.", diff --git a/i18n/ptb/extensions/grunt/out/main.i18n.json b/i18n/ptb/extensions/grunt/out/main.i18n.json index be0251a24d3..11d261fe593 100644 --- a/i18n/ptb/extensions/grunt/out/main.i18n.json +++ b/i18n/ptb/extensions/grunt/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Auto detecção de Grunt para pasta {0} falhou com erro: {1}" } \ No newline at end of file diff --git a/i18n/ptb/extensions/gulp/out/main.i18n.json b/i18n/ptb/extensions/gulp/out/main.i18n.json index ef8a9dc0891..debfd09446d 100644 --- a/i18n/ptb/extensions/gulp/out/main.i18n.json +++ b/i18n/ptb/extensions/gulp/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Auto detecção de gulp para pasta {0} falhou com erro: {1}" } \ No newline at end of file diff --git a/i18n/ptb/extensions/html/client/out/htmlMain.i18n.json b/i18n/ptb/extensions/html/client/out/htmlMain.i18n.json index 30700d15da1..6e9a973c172 100644 --- a/i18n/ptb/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/ptb/extensions/html/client/out/htmlMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "htmlserver.name": "Servidor de Linguagem HTML", "folding.start": "Início da Região Expansível", "folding.end": "Fim da Região Expansível" diff --git a/i18n/ptb/extensions/jake/out/main.i18n.json b/i18n/ptb/extensions/jake/out/main.i18n.json index 556bbc75d39..35229bd6699 100644 --- a/i18n/ptb/extensions/jake/out/main.i18n.json +++ b/i18n/ptb/extensions/jake/out/main.i18n.json @@ -1,8 +1,9 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "execFailed": "Auto detecção de Jake para pasta {0} falhou com erro: {1}" + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] } \ No newline at end of file diff --git a/i18n/ptb/extensions/json/client/out/jsonMain.i18n.json b/i18n/ptb/extensions/json/client/out/jsonMain.i18n.json index 4391c95a2ba..3db289491e4 100644 --- a/i18n/ptb/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/ptb/extensions/json/client/out/jsonMain.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "jsonserver.name": "Servidor de linguagem JSON" } \ No newline at end of file diff --git a/i18n/ptb/extensions/markdown/out/commands.i18n.json b/i18n/ptb/extensions/markdown/out/commands.i18n.json index 2396a32ab23..b72e8b907d6 100644 --- a/i18n/ptb/extensions/markdown/out/commands.i18n.json +++ b/i18n/ptb/extensions/markdown/out/commands.i18n.json @@ -1,9 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "previewTitle": "Visualização {0}", + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "onPreviewStyleLoadError": "Não foi possível carregar o 'markdown.styles': {0}" } \ No newline at end of file diff --git a/i18n/ptb/extensions/markdown/out/features/previewContentProvider.i18n.json b/i18n/ptb/extensions/markdown/out/features/previewContentProvider.i18n.json index b8fe23c6262..9af87ac0da6 100644 --- a/i18n/ptb/extensions/markdown/out/features/previewContentProvider.i18n.json +++ b/i18n/ptb/extensions/markdown/out/features/previewContentProvider.i18n.json @@ -1,10 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "preview.securityMessage.text": "Algum conteúdo foi desativado neste documento", - "preview.securityMessage.title": "Conteúdo potencialmente inseguro foi desativado na visualização de remarcação. Altere a configuração de segurança de visualização do Markdown para permitir conteúdo inseguro ou habilitar scripts", - "preview.securityMessage.label": "Conteúdo do aviso de segurança desativado" + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "preview.securityMessage.title": "Conteúdo potencialmente inseguro foi desativado na visualização de remarcação. Altere a configuração de segurança de visualização do Markdown para permitir conteúdo inseguro ou habilitar scripts" } \ No newline at end of file diff --git a/i18n/ptb/extensions/markdown/out/security.i18n.json b/i18n/ptb/extensions/markdown/out/security.i18n.json index 3d066b17ee3..e8aa71537e2 100644 --- a/i18n/ptb/extensions/markdown/out/security.i18n.json +++ b/i18n/ptb/extensions/markdown/out/security.i18n.json @@ -1,18 +1,16 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "strict.title": "Estrita", + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "strict.description": "Somente carregar conteúdo seguro", "insecureContent.title": "Permitir conteúdo inseguro", - "insecureContent.description": "Habilitar o carregamento de conteúdo sobre http", "disable.title": "Desabilitar", "disable.description": "Permitir a execução de conteúdo e scripts. Não recomendado", "moreInfo.title": "Mais informações", "enableSecurityWarning.title": "Habilitar a visualização de avisos de segurança neste espaço de trabalho", - "disableSecurityWarning.title": "Desabilitar a visualização de avisos de segurança neste espaço de trabalho", - "toggleSecurityWarning.description": "Não afeta o nível de segurança do conteúdo", - "preview.showPreviewSecuritySelector.title": "Selecione as configurações de segurança para visualizações de Markdown neste espaço de trabalho" + "disableSecurityWarning.title": "Desabilitar a visualização de avisos de segurança neste espaço de trabalho" } \ No newline at end of file diff --git a/i18n/ptb/extensions/merge-conflict/out/codelensProvider.i18n.json b/i18n/ptb/extensions/merge-conflict/out/codelensProvider.i18n.json index e3c98669238..e9077c87e47 100644 --- a/i18n/ptb/extensions/merge-conflict/out/codelensProvider.i18n.json +++ b/i18n/ptb/extensions/merge-conflict/out/codelensProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "acceptCurrentChange": "Aceitar a mudança atual", "acceptIncomingChange": "Aceitar a mudança de entrada", "acceptBothChanges": "Aceitar as duas alterações", diff --git a/i18n/ptb/extensions/merge-conflict/out/commandHandler.i18n.json b/i18n/ptb/extensions/merge-conflict/out/commandHandler.i18n.json index 6308a5d70f5..4d35c4109d9 100644 --- a/i18n/ptb/extensions/merge-conflict/out/commandHandler.i18n.json +++ b/i18n/ptb/extensions/merge-conflict/out/commandHandler.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cursorNotInConflict": "Cursor do editor não está dentro de um conflito de mesclagem", "compareChangesTitle": "{0}: Alterações Atuais ⟷ Alterações de Entrada", "cursorOnCommonAncestorsRange": "Cursor do editor está dentro do bloco comum de ancestrais, favor mover para o bloco \"atual\" ou \"entrada\"", diff --git a/i18n/ptb/extensions/merge-conflict/out/mergeDecorator.i18n.json b/i18n/ptb/extensions/merge-conflict/out/mergeDecorator.i18n.json index 2b29ae4a254..03de8be1cfa 100644 --- a/i18n/ptb/extensions/merge-conflict/out/mergeDecorator.i18n.json +++ b/i18n/ptb/extensions/merge-conflict/out/mergeDecorator.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "currentChange": "(Mudança Atual)", "incomingChange": "(Próxima Mudança)" } \ No newline at end of file diff --git a/i18n/ptb/extensions/npm/out/main.i18n.json b/i18n/ptb/extensions/npm/out/main.i18n.json index e0f0d395640..35229bd6699 100644 --- a/i18n/ptb/extensions/npm/out/main.i18n.json +++ b/i18n/ptb/extensions/npm/out/main.i18n.json @@ -1,8 +1,9 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "npm.parseError": "Deteção de tarefa NPM: falha ao analisar o arquivo {0}" + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] } \ No newline at end of file diff --git a/i18n/ptb/extensions/php/out/features/validationProvider.i18n.json b/i18n/ptb/extensions/php/out/features/validationProvider.i18n.json index 9e0ce64f472..bfb1b796def 100644 --- a/i18n/ptb/extensions/php/out/features/validationProvider.i18n.json +++ b/i18n/ptb/extensions/php/out/features/validationProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "php.useExecutablePath": "Você permite {0} (definido como uma configuração do espaço de trabalho) a ser executado para lint de arquivos PHP?", "php.yes": "Permitir", "php.no": "Não permitir", diff --git a/i18n/ptb/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json b/i18n/ptb/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json new file mode 100644 index 00000000000..6c1e3e438e5 --- /dev/null +++ b/i18n/ptb/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "noResults": "Nenhum resultado encontrado", + "description": "Descrição" +} \ No newline at end of file diff --git a/i18n/ptb/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json b/i18n/ptb/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/ptb/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/ptb/src/vs/code/electron-main/logUploader.i18n.json b/i18n/ptb/src/vs/code/electron-main/logUploader.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/ptb/src/vs/code/electron-main/logUploader.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/ptb/src/vs/code/electron-main/menus.i18n.json b/i18n/ptb/src/vs/code/electron-main/menus.i18n.json index d549b5ab312..154a6fdf47c 100644 --- a/i18n/ptb/src/vs/code/electron-main/menus.i18n.json +++ b/i18n/ptb/src/vs/code/electron-main/menus.i18n.json @@ -180,12 +180,12 @@ "miConfigureTask": "&& Configurar Tarefas...", "miConfigureBuildTask": "Configurar Tarefas Padrão de Compilação...", "accessibilityOptionsWindowTitle": "Opções de Acessibilidade", - "miRestartToUpdate": "Reinicie para Atualizar...", + "miCheckForUpdates": "Verificar Atualizações...", "miCheckingForUpdates": "Verificando Atualizações...", "miDownloadUpdate": "Baixar Atualização Disponível", "miDownloadingUpdate": "Baixando Atualização...", "miInstallingUpdate": "Instalando Atualização...", - "miCheckForUpdates": "Verificar Atualizações...", + "miRestartToUpdate": "Reinicie para Atualizar...", "aboutDetail": "Versão {0}\nConfirmação {1}\nData {2}\nShell {3}\nRenderizador {4}\nNó {5}\nArquitetura {6}", "okButton": "OK", "copy": "&&Copiar" diff --git a/i18n/ptb/src/vs/editor/browser/services/bulkEdit.i18n.json b/i18n/ptb/src/vs/editor/browser/services/bulkEdit.i18n.json index c25b65a519b..f86add7197c 100644 --- a/i18n/ptb/src/vs/editor/browser/services/bulkEdit.i18n.json +++ b/i18n/ptb/src/vs/editor/browser/services/bulkEdit.i18n.json @@ -6,8 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "conflict": "Estes arquivos foram alterados nesse meio tempo: {0}", "summary.0": "Não foram feitas edições", "summary.nm": "Feitas {0} edições de texto em {1} arquivos", - "summary.n0": "Feitas {0} edições de texto em um arquivo" + "summary.n0": "Feitas {0} edições de texto em um arquivo", + "conflict": "Estes arquivos foram alterados nesse meio tempo: {0}" } \ No newline at end of file diff --git a/i18n/ptb/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/ptb/src/vs/editor/common/config/commonEditorConfig.i18n.json index ac942cfa014..99e86baf79a 100644 --- a/i18n/ptb/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/ptb/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -28,6 +28,7 @@ "scrollBeyondLastLine": "Controla se o editor rolará além da última linha", "smoothScrolling": "Controla se o editor irá rolar usando uma animação", "minimap.enabled": "Controla se o mini mapa é exibido", + "minimap.side": "Controla o lado onde processar o minimap. Os valores possíveis são 'direita' e 'esquerda'", "minimap.showSlider": "Controla se o controle deslizante minimap é automaticamente escondido. Os valores possíveis são 'sempre' e 'mouseover'", "minimap.renderCharacters": "Renderizar os caracteres em uma linha (em oposição a blocos de caracteres)", "minimap.maxColumn": "Limitar o tamanho de um mini-mapa para renderizar no máximo um número determinado de colunas", @@ -65,6 +66,8 @@ "snippetSuggestions": "Controla se os snippets são exibidos juntamente com as outras sugestões e como eles são ordenados.", "emptySelectionClipboard": "Controla se a cópia sem nenhuma seleção copia a linha atual.", "wordBasedSuggestions": "Controla se o auto-completar deve ser calculado baseado nas palavras no documento.", + "suggestSelection.first": "Escolha sempre a primeira sugestão.", + "suggestSelection.recentlyUsed": "Selecionar sugestões recentes, a menos que digitações adicionais selecionem um, por exemplo, 'console.| -> console. log ' porque 'log' foi concluída recentemente.", "suggestFontSize": "Tamanho da fonte para a ferramenta de sugestão", "suggestLineHeight": "Altura de linha para a ferramenta de sugestão", "selectionHighlight": "Controla se o editor deve realçar correspondências semelhantes à seleção", @@ -74,7 +77,7 @@ "cursorBlinking": "Controla o estilo de animação do cursor, os valores possíveis são 'blink', 'smooth', 'phase', 'expand' e 'solid'", "mouseWheelZoom": "Alterar o zoom da fonte editor quando utilizada a roda do mouse e pressionando Ctrl", "cursorStyle": "Controla o estilo do cursor, os valores aceitos são 'block', 'block-outline', 'line', 'line-thin', 'underline' e 'underline-thin'", - "lineCursorWidth": "Controla a largura do cursor quando editor.cursorStyle está definido como 'line'", + "cursorWidth": "Controla a largura do cursor quando editor.cursorStyle está definido como 'line'", "fontLigatures": "Habilita ligaduras de fontes", "hideCursorInOverviewRuler": "Controla se o cursor deve ficar oculto na régua de visão geral.", "renderWhitespace": "Controla como o editor deve rendenizar caracteres de espaços em branco, possibilidades são 'none', 'boundary' e 'all'. A opção 'boundary' não rendeniza espaços simples entre palavras.", diff --git a/i18n/ptb/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json b/i18n/ptb/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json index 4203168cbdd..3455981fc0f 100644 --- a/i18n/ptb/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json +++ b/i18n/ptb/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json @@ -6,5 +6,7 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "smartSelect.jumpBracket": "Ir para colchete" + "overviewRulerBracketMatchForeground": "Visão geral da cor do marcador da régua para colchetes correspondentes.", + "smartSelect.jumpBracket": "Ir para colchete", + "smartSelect.selectToBracket": "Selecionar para colchetes." } \ No newline at end of file diff --git a/i18n/ptb/src/vs/platform/environment/node/argv.i18n.json b/i18n/ptb/src/vs/platform/environment/node/argv.i18n.json index 5e75815622e..42a72743325 100644 --- a/i18n/ptb/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/ptb/src/vs/platform/environment/node/argv.i18n.json @@ -10,11 +10,11 @@ "diff": "Comparar dois arquivos entre si.", "add": "Adicione pasta(s) para a última janela ativa.", "goto": "Abra um arquivo no caminho sobre a linha especificada e a posição do caractere.", - "newWindow": "Força uma nova instância do Código.", - "reuseWindow": "Forçar a abertura de um arquivo ou pasta na última janela ativa", + "newWindow": "Obriga a abrir uma nova janela.", + "reuseWindow": "Obriga a abrir um arquivo ou pasta na última janela ativa.", "wait": "Espere pelos arquivos a serem fechados antes de retornar.", "locale": "Para localização utilize (ex. en-US ou zh-TW).", - "userDataDir": "Especifica o diretório que os dados do usuário serão mantidos, útil quando estiver rodando como root.", + "userDataDir": "Especifica o diretório em que os dados do usuário são mantidos. Pode ser usado para abrir várias instâncias distintas do Code.", "version": "Versão de impressão", "help": "Uso de impressão.", "extensionHomePath": "Defina o caminho raíz para as extensões.", @@ -33,7 +33,6 @@ "inspect-brk-extensions": "Permitir depuração e criação de perfil de extensões com o host de extensão em pausa após o início. Verifique as ferramentas do desenvolvedor para a conexão uri.", "disableGPU": "Desabilita aceleração de hardware da GPU.", "uploadLogs": "Envia os registros de atividade da sessão atual para um destino seguro.", - "issue": "Reportar um problema.", "usage": "Uso", "options": "opções", "paths": "caminhos", diff --git a/i18n/ptb/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json b/i18n/ptb/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json index 78201cc0a59..c8dc90b9046 100644 --- a/i18n/ptb/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json +++ b/i18n/ptb/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json @@ -13,6 +13,7 @@ "cancel": "Cancelar", "errorInstallingDependencies": "Erro ao instalar dependências. {0}", "notFoundCompatible": "Não foi possível instalar '{0}; não existe nenhuma versão compatível com o VSCode '{1}'.", + "malicious extension": "Não foi possível instalar a extensão, pois foi relatada como problemática.", "notFoundCompatibleDependency": "Não foi possível instalar porque a extensão dependente '{0}' compatível com a versão atual '{1}' do VS Code não foi encontrada.", "quitCode": "Não foi possível instalar a extensão. Por favor, saia e reinicie o VS Code antes de reinstalar.", "exitCode": "Não foi possível instalar a extensão. Por favor, saia e reinicie o VS Code antes de reinstalar.", diff --git a/i18n/ptb/src/vs/platform/issue/electron-main/issueService.i18n.json b/i18n/ptb/src/vs/platform/issue/electron-main/issueService.i18n.json new file mode 100644 index 00000000000..b4947e208c7 --- /dev/null +++ b/i18n/ptb/src/vs/platform/issue/electron-main/issueService.i18n.json @@ -0,0 +1,10 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "issueReporter": "Notificador de Problemas" +} \ No newline at end of file diff --git a/i18n/ptb/src/vs/platform/list/browser/listService.i18n.json b/i18n/ptb/src/vs/platform/list/browser/listService.i18n.json index 6c2a2041bcb..5c542087a0c 100644 --- a/i18n/ptb/src/vs/platform/list/browser/listService.i18n.json +++ b/i18n/ptb/src/vs/platform/list/browser/listService.i18n.json @@ -8,6 +8,5 @@ ], "workbenchConfigurationTitle": "Área de Trabalho", "multiSelectModifier.ctrlCmd": "Mapeia para 'Control' no Windows e Linux e para 'Command' no macOS.", - "multiSelectModifier.alt": "Mapeia para 'Alt' no Windows e Linux e 'Option' no macOS.", - "multiSelectModifier": "O modificador a ser usado para adicionar um item à múltiplas seleções com o mouse (por exemplo, em árvores e listas, se suportado) `ctrlCmd` mapeia para 'Control' no Windows e Linux e 'Command' no macOS. Os gestos do mouse para 'Abrir do Lado' - se suportado - irá adaptar-se de forma que eles não entrem em conflito com o modificador de múltiplas seleções." + "multiSelectModifier.alt": "Mapeia para 'Alt' no Windows e Linux e 'Option' no macOS." } \ No newline at end of file diff --git a/i18n/ptb/src/vs/platform/localizations/common/localizations.i18n.json b/i18n/ptb/src/vs/platform/localizations/common/localizations.i18n.json new file mode 100644 index 00000000000..e8f51c0e5c9 --- /dev/null +++ b/i18n/ptb/src/vs/platform/localizations/common/localizations.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "vscode.extension.contributes.localizations": "Contribui localizações ao editor", + "vscode.extension.contributes.localizations.languageId": "Id do idioma em que as strings de exibição estão traduzidas.", + "vscode.extension.contributes.localizations.languageName": "Nome do idioma em Inglês.", + "vscode.extension.contributes.localizations.languageNameLocalized": "Nome do idioma no idioma de contribuição.", + "vscode.extension.contributes.localizations.translations": "Lista de traduções associadas ao idioma.", + "vscode.extension.contributes.localizations.translations.id": "Id do VS Code ou Extensão para o qual essa tradução teve contribuição. Id do VS Code é sempre `vscode` e da extensão deve ser no formato `publisherId.extensionName`.", + "vscode.extension.contributes.localizations.translations.id.pattern": "Id deve ser `vscode` ou no formato `publisherId.extensionName` para traduzir VS code ou uma extensão, respectivamente.", + "vscode.extension.contributes.localizations.translations.path": "Um caminho relativo para um arquivo contendo traduções para o idioma." +} \ No newline at end of file diff --git a/i18n/ptb/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json b/i18n/ptb/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/ptb/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/ptb/src/vs/workbench/api/node/extHostWorkspace.i18n.json b/i18n/ptb/src/vs/workbench/api/node/extHostWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/ptb/src/vs/workbench/api/node/extHostWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/ptb/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json b/i18n/ptb/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json new file mode 100644 index 00000000000..0e2720fc721 --- /dev/null +++ b/i18n/ptb/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "sizeB": "{0}B", + "sizeKB": "{0}KB", + "sizeMB": "{0}MB", + "sizeGB": "{0}GB", + "sizeTB": "{0}TB", + "resourceOpenExternalButton": "Abrir imagem usando um programa externo?", + "nativeBinaryError": "O arquivo não pode ser exibido no editor porque é binário, muito grande ou usa uma codificação de texto sem suporte.", + "imgMeta": "{0}x{1} {2}" +} \ No newline at end of file diff --git a/i18n/ptb/src/vs/workbench/electron-browser/actions.i18n.json b/i18n/ptb/src/vs/workbench/electron-browser/actions.i18n.json index 1a60437d193..6bd8e3ddb07 100644 --- a/i18n/ptb/src/vs/workbench/electron-browser/actions.i18n.json +++ b/i18n/ptb/src/vs/workbench/electron-browser/actions.i18n.json @@ -31,7 +31,6 @@ "openRecent": "Abrir Recente...", "quickOpenRecent": "Abertura Rápida de Recente...", "closeMessages": "Fechar mensagens de notificação", - "openIssueReporter": "Abrir Notificador de Problemas", "reportIssueInEnglish": "Reportar Problema", "reportPerformanceIssue": "Reportar Problema de Desempenho", "keybindingsReference": "Referência de Atalhos de Teclado", diff --git a/i18n/ptb/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/ptb/src/vs/workbench/electron-browser/main.contribution.i18n.json index b7909e25d44..11981b2a3b0 100644 --- a/i18n/ptb/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/ptb/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -35,7 +35,6 @@ "panelDefaultLocation": "Controla o local padrão do painel. Pode ser visualizado na parte inferior ou no lado direito da área de trabalho.", "statusBarVisibility": "Controla a visibilidade da barra de status na parte inferior da área de trabalho.", "activityBarVisibility": "Controla a visibilidade da barra de atividades na área de trabalho.", - "fontAliasing": "Controla o método de identificação de fonte no espaço de trabalho.\n- padrão: Suavização de fonte subpixel. Na maioria dos monitores não-retina isto mostrará o texto mais nítido\n- antialiased: Suaviza a fonte no nível do pixel, em oposição a subpixel. Pode fazer a fonte aparecer mais clara de um modo geral \n- nenhum: Desabilita a suavização de fonte. Texto será mostrado com bordas irregulares", "workbench.fontAliasing.default": "Suavização de fonte subpixel. Na maioria dos monitores não-retina isto mostrará o texto mais nítido.", "workbench.fontAliasing.antialiased": "Suavizar a fonte no nível do pixel, em oposição a subpixel. Pode fazer com que a fonte apareça mais clara de uma forma geral.", "workbench.fontAliasing.none": "Desabilita a suavização de fonte. Texto será mostrado com bordas irregulares.", diff --git a/i18n/ptb/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json b/i18n/ptb/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json index c064baff4d1..7ae697429f6 100644 --- a/i18n/ptb/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json +++ b/i18n/ptb/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json @@ -19,12 +19,12 @@ "debugRequesMissing": "Atributo '{0}' está faltando para a configuração de depuração escolhida.", "debugTypeNotSupported": "Tipo de depuração configurado '{0}' não é suportado.", "debugTypeMissing": "Falta a propriedade 'tipo' para a configuração de lançamento escolhida.", - "debugAnyway": "Depurar mesmo assim", "preLaunchTaskErrors": "Erros de build foram detectados durante a preLaunchTask '{0}'.", "preLaunchTaskError": "Erro de build foi detectado durante a preLaunchTask '{0}'.", "preLaunchTaskExitCode": "A preLaunchTask '{0}' encerrada com código de saída {1}.", + "debugAnyway": "Depurar mesmo assim", + "cancel": "Cancelar", "noFolderWorkspaceDebugError": "O arquivo ativo não pode ser depurado. Certifique-se de que ele está salvo no disco e que tem uma extensão de depuração instalada para esse tipo de arquivo.", - "NewLaunchConfig": "Por favor, configure o arquivo de configuração de lançamento para seu aplicativo. {0}", "DebugTaskNotFound": "Não foi possível encontrar o preLaunchTask '{0}'.", "taskNotTracked": "Tarefa de pré-lançamento ${0} não pode ser rastreada." } \ No newline at end of file diff --git a/i18n/ptb/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/ptb/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 48acc419f39..8bca69e9d6f 100644 --- a/i18n/ptb/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/ptb/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -18,5 +18,6 @@ "sort by name": "Ordenar por: Nome", "suggestProxyError": "A Loja retornou 'ECONNREFUSED'. Por favor, verifique a configuração de 'http.proxy'.", "extensions": "Extensões", - "outdatedExtensions": "{0} Extensões Desatualizadas" + "outdatedExtensions": "{0} Extensões Desatualizadas", + "reloadNow": "Recarregar Agora" } \ No newline at end of file diff --git a/i18n/ptb/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json b/i18n/ptb/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json index e3d5a26e119..af4d27f2511 100644 --- a/i18n/ptb/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json +++ b/i18n/ptb/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json @@ -7,7 +7,6 @@ "Do not edit this file. It is machine generated." ], "installingVSIXExtension": "Instalando extensão do VSIX...", - "installingMarketPlaceExtension": "Instalando extensão da Loja...", "uninstallingExtension": "Desinstalando extensão...", "enableDependeciesConfirmation": "Habilitando '{0}' também habilita suas dependências. Gostaria de continuar?", "enable": "Sim", diff --git a/i18n/ptb/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json b/i18n/ptb/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json index 9caa3a29bbf..55df51eb748 100644 --- a/i18n/ptb/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json +++ b/i18n/ptb/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json @@ -8,11 +8,10 @@ ], "openLogsFolder": "Abrir Pasta de Logs", "showLogs": "Exibir Logs...", - "mainProcess": "Principal", - "sharedProcess": "Compartilhado", - "rendererProcess": "Janela", + "emptyWindow": "Janela", "extensionHost": "Host de Extensão", - "selectProcess": "Selecionar processo", + "sharedProcess": "Compartilhado", + "mainProcess": "Principal", "openLogFile": "Abrir Arquivo de Log...", "setLogLevel": "Definir Nível de Log", "trace": "Rastreamento", @@ -22,5 +21,6 @@ "err": "Erro", "critical": "Crítico", "off": "Desligado", - "selectLogLevel": "Selecione o nível de log" + "selectLogLevel": "Selecione o nível de log", + "default": "Valor padrão" } \ No newline at end of file diff --git a/i18n/ptb/src/vs/workbench/parts/markers/common/markers.i18n.json b/i18n/ptb/src/vs/workbench/parts/markers/common/markers.i18n.json new file mode 100644 index 00000000000..b5d8f47647e --- /dev/null +++ b/i18n/ptb/src/vs/workbench/parts/markers/common/markers.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "totalProblems": "Total {0} Problemas", + "filteredProblems": "Mostrando {0} de {1} Problemas" +} \ No newline at end of file diff --git a/i18n/ptb/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json b/i18n/ptb/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json index bf7eef13e25..0823852bb72 100644 --- a/i18n/ptb/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json +++ b/i18n/ptb/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json @@ -17,7 +17,6 @@ "addLabel": "Adicionar Keybinding", "removeLabel": "Remover Keybinding", "resetLabel": "Redefinir Keybinding", - "showConflictsLabel": "Mostrar Conflitos", "copyLabel": "Copiar", "copyCommandLabel": "Copiar Comando", "error": "Erro '{0}' enquanto edita keybinding. Por favor, abra o arquivo 'keybindings.json' e verifique.", diff --git a/i18n/ptb/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json b/i18n/ptb/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json index 0b000f09e6a..292914da17b 100644 --- a/i18n/ptb/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json +++ b/i18n/ptb/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json @@ -10,8 +10,6 @@ "SearchSettingsWidget.AriaLabel": "Configurações de Pesquisa", "SearchSettingsWidget.Placeholder": "Configurações de Pesquisa", "noSettingsFound": "Nenhum resultado", - "oneSettingFound": "1 Configuração correspondente", - "settingsFound": "{0} Configurações correspondentes", "totalSettingsMessage": "Total {0} Configurações", "nlpResult": "Resultados da Linguagem Natural", "filterResult": "Resultados Filtrados", diff --git a/i18n/ptb/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json b/i18n/ptb/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json index f000c5b7f2d..6d5e4e05bcb 100644 --- a/i18n/ptb/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json +++ b/i18n/ptb/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json @@ -12,6 +12,5 @@ "view": "Exibir", "scmConfigurationTitle": "SCM", "alwaysShowProviders": "Se deverá sempre mostrar a seção Provedor de Controle de Código Fonte.", - "diffDecorations": "Controla decorações do diff no editor.", - "inputCounter": "Controla quando exibir o contador de entrada." + "diffDecorations": "Controla decorações do diff no editor." } \ No newline at end of file diff --git a/i18n/ptb/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json b/i18n/ptb/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json index fff51ae487b..a7ff00a96e8 100644 --- a/i18n/ptb/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json +++ b/i18n/ptb/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json @@ -8,9 +8,6 @@ ], "scm providers": "Provedores de Controle de Código Fonte", "hideRepository": "Ocultar", - "commitMessageInfo": "{0} caracteres na linha atual", - "commitMessageCountdown": "{0} caracteres restantes na linha atual", - "commitMessageWarning": "{0} caracteres sobre {1} na linha atual", "installAdditionalSCMProviders": "Instalar provedores de SCM adicionais...", "no open repo": "Não existem provedores controle de código fonte ativos.", "source control": "Controle de código-fonte", diff --git a/i18n/ptb/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json b/i18n/ptb/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json index 0a64f4b6d6d..46dfeebc8bc 100644 --- a/i18n/ptb/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json +++ b/i18n/ptb/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json @@ -21,10 +21,6 @@ "JsonSchema.tasks.terminal": "A propriedade terminal é obsoleta. Use presentation em seu lugar.", "JsonSchema.tasks.group.kind": "Grupo de execução da tarefa.", "JsonSchema.tasks.group.isDefault": "Define-se essa tarefa é a tarefa do padrão do grupo.", - "JsonSchema.tasks.group.defaultBuild": "Marca as tarefas como tarefas padrão de compilação.", - "JsonSchema.tasks.group.defaultTest": "Marca as tarefas como a tarefa de teste padrão.", - "JsonSchema.tasks.group.build": "Marca as tarefas como uma tarefa de compilação acessível através do comando 'Run Build Task'.", - "JsonSchema.tasks.group.test": "Marca as tarefas como uma tarefa de teste acessível através do comando 'Run Test Task'.", "JsonSchema.tasks.group.none": "Atribui a tarefa para nenhum grupo", "JsonSchema.tasks.group": "Define a que grupo de execução desta tarefa pertence. Suporta \"build\" para adicioná-lo ao grupo de compilação e \"test\" para adicioná-lo ao grupo de teste.", "JsonSchema.tasks.type": "Define quando a tarefa é executada como um processo ou como um comando dentro do shell.", diff --git a/i18n/ptb/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/ptb/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index e39203f4736..488a2ef16e8 100644 --- a/i18n/ptb/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/ptb/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -21,14 +21,12 @@ "terminal.integrated.fontFamily": "Controla a família de fontes do terminal, este padrão é o valor do editor.fontFamily.", "terminal.integrated.fontSize": "Controla o tamanho da fonte em pixels do terminal.", "terminal.integrated.lineHeight": "Controla a altura da linha do terminal, este número é multiplicado pelo tamanho da fonte do terminal para obter a altura real da linha em pixels.", - "terminal.integrated.enableBold": "Se deseja habilitar o texto em negrito dentro do terminal, note que isso requer o apoio do shell do terminal.", "terminal.integrated.cursorBlinking": "Controla se o cursor do terminal pisca.", "terminal.integrated.cursorStyle": "Controla o estilo do cursor do terminal.", "terminal.integrated.scrollback": "Controla a quantidade máxima de linhas que o terminal mantém em seu buffer.", "terminal.integrated.setLocaleVariables": "Controla se as variáveis locais são definidas na inicialização do terminal, este padrão é verdadeiro no OS X e falso em outras plataformas.", "terminal.integrated.cwd": "Um caminho de início explícito onde o terminal será lançado, isso é usado como o diretório de trabalho atual (cwd) para o processo shell. Isto pode ser particularmente útil em configurações de espaço de trabalho se o diretório raiz não é um cwd conveniente.", "terminal.integrated.confirmOnExit": "Confirmar na saída se ainda houverem sessões de terminal ativas.", - "terminal.integrated.enableBell": "Se o sino do terminal está habilitado ou não.", "terminal.integrated.commandsToSkipShell": "Um conjunto de IDs de comando, cujas combinações de teclas não serão enviadas para o shell e sempre serão tratadas por código. Isto permite o uso de combinações de teclas que normalmente seriam consumidas pelo shell para agir da mesma forma quando o terminal não é focado, por exemplo ctrl+p para Execução Rápida.", "terminal.integrated.env.osx": "Objeto com variáveis de ambiente que serão adicionadas ao VS Code e utilizadas pelo terminal no Mac OS X", "terminal.integrated.env.linux": "Objeto com variáveis de ambiente que serão adicionadas ao VS Code e utilizadas pelo terminal no Linux", diff --git a/i18n/ptb/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/ptb/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index a0a979258b4..c4945396eb0 100644 --- a/i18n/ptb/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/ptb/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -14,7 +14,6 @@ "workbench.action.terminal.selectAll": "Selecionar Tudo", "workbench.action.terminal.deleteWordLeft": "Excluir Palavra à Esquerda", "workbench.action.terminal.deleteWordRight": "Excluir Palavra à Direita", - "workbench.action.terminal.enterLineNavigationMode": "Entrar no Modo de Navegação de Leitor de Tela", "workbench.action.terminal.new": "Criar Novo Terminal Integrado", "workbench.action.terminal.new.short": "Novo Terminal", "workbench.action.terminal.newWorkspacePlaceholder": "Selecione o diretório de trabalho atual para novo terminal", diff --git a/i18n/ptb/src/vs/workbench/parts/update/electron-browser/update.i18n.json b/i18n/ptb/src/vs/workbench/parts/update/electron-browser/update.i18n.json index 98ada3e6ec2..0079d5ea17d 100644 --- a/i18n/ptb/src/vs/workbench/parts/update/electron-browser/update.i18n.json +++ b/i18n/ptb/src/vs/workbench/parts/update/electron-browser/update.i18n.json @@ -6,12 +6,10 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "updateNow": "Atualizar Agora", "later": "Mais tarde", "unassigned": "Não atribuído", "releaseNotes": "Notas da Versão", "showReleaseNotes": "Mostrar Notas da Versão", - "downloadNow": "Baixar agora", "read the release notes": "Bem-vindo a {0} v{1}! Gostaria de ler as Notas da Versão?", "licenseChanged": "Nossos termos de licença mudaram, favor revisá-los.", "license": "Ler Licença", @@ -19,20 +17,20 @@ "64bitisavailable": "{0} para Windows de 64 bits está agora disponível!", "learn more": "Saiba Mais", "updateIsReady": "Nova atualização de {0} disponível.", - "thereIsUpdateAvailable": "Há uma atualização disponível.", - "updateAvailable": "{0} será atualizado após reiniciar.", "noUpdatesAvailable": "Não há nenhuma atualização disponível.", + "download now": "Baixar agora", + "thereIsUpdateAvailable": "Há uma atualização disponível.", + "updateNow": "Atualizar Agora", + "updateAvailableAfterRestart": "{0} será atualizado após reiniciar.", "commandPalette": "Paleta de comandos...", "settings": "Configurações", "keyboardShortcuts": "Atalhos de Teclado", "userSnippets": "Trecho de código do usuário", "selectTheme.label": "Tema de Cores", "themes.selectIconTheme.label": "Arquivo de Ícone do Tema", - "not available": "Atualizações Indisponíveis", + "checkForUpdates": "Verificar atualizações...", "checkingForUpdates": "Verificando Atualizações...", - "DownloadUpdate": "Baixar Atualização Disponível", "DownloadingUpdate": "Baixando Atualização...", - "InstallingUpdate": "Instalando Atualização...", - "restartToUpdate": "Reinicie para Atualizar...", - "checkForUpdates": "Verificar atualizações..." + "installingUpdate": "Instalando Atualização...", + "restartToUpdate": "Reinicie para Atualizar..." } \ No newline at end of file diff --git a/i18n/ptb/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json b/i18n/ptb/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json index bbb1f6f322c..0f83744e99a 100644 --- a/i18n/ptb/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json +++ b/i18n/ptb/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json @@ -8,6 +8,6 @@ ], "jsonParseFail": "Falha ao analisar {0}: {1}.", "fileReadFail": "Não foi possível ler o arquivo {0}: {1}.", - "jsonsParseFail": "Falha ao analisar {0} ou {1}: {2}.", + "jsonsParseReportErrors": "Falha ao analisar {0}: {1}.", "missingNLSKey": "Não foi possível encontrar a mensagem para a chave {0}." } \ No newline at end of file diff --git a/i18n/rus/extensions/css/client/out/cssMain.i18n.json b/i18n/rus/extensions/css/client/out/cssMain.i18n.json index 237c382d200..01ee817cdcd 100644 --- a/i18n/rus/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/rus/extensions/css/client/out/cssMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cssserver.name": "Языковой сервер CSS", "folding.start": "Начало сворачиваемого региона", "folding.end": "Окончание сворачиваемого региона" diff --git a/i18n/rus/extensions/git/out/askpass-main.i18n.json b/i18n/rus/extensions/git/out/askpass-main.i18n.json index 024ac9fb55a..a9f991ebfb6 100644 --- a/i18n/rus/extensions/git/out/askpass-main.i18n.json +++ b/i18n/rus/extensions/git/out/askpass-main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "missOrInvalid": "Учетные данные отсутствуют или недопустимы." } \ No newline at end of file diff --git a/i18n/rus/extensions/git/out/autofetch.i18n.json b/i18n/rus/extensions/git/out/autofetch.i18n.json index d3d761f3636..d53301e4a67 100644 --- a/i18n/rus/extensions/git/out/autofetch.i18n.json +++ b/i18n/rus/extensions/git/out/autofetch.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "yes": "Да", "read more": "Подробнее", "no": "Нет" diff --git a/i18n/rus/extensions/git/out/commands.i18n.json b/i18n/rus/extensions/git/out/commands.i18n.json index b99a2ac09aa..e32644e5e4b 100644 --- a/i18n/rus/extensions/git/out/commands.i18n.json +++ b/i18n/rus/extensions/git/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "tag at": "Тег в {0}", "remote branch at": "Удаленная ветвь в {0}", "create branch": "$(plus) Создать новую ветвь", @@ -26,7 +28,6 @@ "revert": "Отменить изменения", "discard": "Отменить изменения", "confirm delete": "Вы действительно хотите удалить {0}?", - "delete file": "Удалить файл", "confirm discard": "Вы действительно хотите отменить изменения в {0}?", "confirm discard multiple": "Вы действительно хотите отменить изменения в файлах ({0})?", "warn untracked": "Это приведет к удалению неотслеживаемых файлов ({0})!", @@ -56,9 +57,7 @@ "branch already exists": "Ветви с именем '{0}' уже существует", "select a branch to merge from": "Выберите ветвь для слияния", "merge conflicts": "Обнаружены конфликты слияния. Устраните их перед фиксацией.", - "tag name": "Имя тега", "provide tag name": "Укажите имя тега", - "tag message": "Сообщение", "provide tag message": "Укажите сообщение для аннотирования тега", "no remotes to fetch": "Для этого репозитория не настроены удаленные репозитории для получения данных.", "no remotes to pull": "Для вашего репозитория не настроены удаленные репозитории для получения данных.", diff --git a/i18n/rus/extensions/git/out/main.i18n.json b/i18n/rus/extensions/git/out/main.i18n.json index f4e90ccb987..a1cf97dd4cd 100644 --- a/i18n/rus/extensions/git/out/main.i18n.json +++ b/i18n/rus/extensions/git/out/main.i18n.json @@ -1,12 +1,13 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "looking": "Поиск Git в: {0}", "using git": "Использование GIT {0} из {1}", - "downloadgit": "Скачать Git", "neverShowAgain": "Больше не показывать", "notfound": "Git не найден. Установите Git или укажите путь к нему в параметре 'git.path'.", "updateGit": "Обновить Git", diff --git a/i18n/rus/extensions/git/out/model.i18n.json b/i18n/rus/extensions/git/out/model.i18n.json index 00d28dbb017..ee6fb29cf37 100644 --- a/i18n/rus/extensions/git/out/model.i18n.json +++ b/i18n/rus/extensions/git/out/model.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "no repositories": "Доступные репозитории отсутствуют", "pick repo": "Выберите репозиторий" } \ No newline at end of file diff --git a/i18n/rus/extensions/git/out/repository.i18n.json b/i18n/rus/extensions/git/out/repository.i18n.json index beb3198e742..5fe9e2f3030 100644 --- a/i18n/rus/extensions/git/out/repository.i18n.json +++ b/i18n/rus/extensions/git/out/repository.i18n.json @@ -1,14 +1,15 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "open": "Открыть", "index modified": "Индекс изменен", "modified": "Изменено", "index added": "Индекс добавлен", - "index deleted": "Индекс удален", "deleted": "Удалено", "index renamed": "Индекс переименован", "index copied": "Индекс скопирован", @@ -26,6 +27,7 @@ "merge changes": "Объединить изменения", "staged changes": "Промежуточно сохраненные изменения", "changes": "Изменения", + "commitMessageCountdown": "Осталось {0} знаков в текущей строке", "ok": "ОК", "neveragain": "Больше не показывать", "huge": "Репозиторий git в '{0}' имеет очень много активных изменений, только часть функций Git будет доступна." diff --git a/i18n/rus/extensions/git/out/statusbar.i18n.json b/i18n/rus/extensions/git/out/statusbar.i18n.json index b70a09ca508..3ac365ffb53 100644 --- a/i18n/rus/extensions/git/out/statusbar.i18n.json +++ b/i18n/rus/extensions/git/out/statusbar.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "checkout": "Извлечь...", "sync changes": "Синхронизировать изменения", "publish changes": "Опубликовать изменения", diff --git a/i18n/rus/extensions/grunt/out/main.i18n.json b/i18n/rus/extensions/grunt/out/main.i18n.json index 2de2f8e2719..41900393afd 100644 --- a/i18n/rus/extensions/grunt/out/main.i18n.json +++ b/i18n/rus/extensions/grunt/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Не удалось автоматически определить задания Grunt для папки {0}. Ошибка: {1}" } \ No newline at end of file diff --git a/i18n/rus/extensions/gulp/out/main.i18n.json b/i18n/rus/extensions/gulp/out/main.i18n.json index 21e246af6b3..08a7f70824a 100644 --- a/i18n/rus/extensions/gulp/out/main.i18n.json +++ b/i18n/rus/extensions/gulp/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Не удалось автоматически определить задания gulp для папки {0}. Ошибка: {1}" } \ No newline at end of file diff --git a/i18n/rus/extensions/html/client/out/htmlMain.i18n.json b/i18n/rus/extensions/html/client/out/htmlMain.i18n.json index 27921a772ec..113482bb267 100644 --- a/i18n/rus/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/rus/extensions/html/client/out/htmlMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "htmlserver.name": "Языковой сервер HTML", "folding.start": "Начало сворачиваемого региона", "folding.end": "Окончание сворачиваемого региона" diff --git a/i18n/rus/extensions/jake/out/main.i18n.json b/i18n/rus/extensions/jake/out/main.i18n.json index 7a33b80be29..9870397c070 100644 --- a/i18n/rus/extensions/jake/out/main.i18n.json +++ b/i18n/rus/extensions/jake/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "Не удалось автоматически определить задания Jake для папки {0}. Ошибка: {1}" } \ No newline at end of file diff --git a/i18n/rus/extensions/json/client/out/jsonMain.i18n.json b/i18n/rus/extensions/json/client/out/jsonMain.i18n.json index 666d0c168d2..ae46a81e4e9 100644 --- a/i18n/rus/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/rus/extensions/json/client/out/jsonMain.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "jsonserver.name": "Языковой сервер JSON" } \ No newline at end of file diff --git a/i18n/rus/extensions/markdown/out/commands.i18n.json b/i18n/rus/extensions/markdown/out/commands.i18n.json index e2752845d0f..b4a71726277 100644 --- a/i18n/rus/extensions/markdown/out/commands.i18n.json +++ b/i18n/rus/extensions/markdown/out/commands.i18n.json @@ -1,9 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "previewTitle": "Предварительный просмотр {0}", + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "onPreviewStyleLoadError": "Не удалось загрузить 'markdown.styles': {0}" } \ No newline at end of file diff --git a/i18n/rus/extensions/markdown/out/features/previewContentProvider.i18n.json b/i18n/rus/extensions/markdown/out/features/previewContentProvider.i18n.json index 62ff186c858..01fb924a326 100644 --- a/i18n/rus/extensions/markdown/out/features/previewContentProvider.i18n.json +++ b/i18n/rus/extensions/markdown/out/features/previewContentProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "preview.securityMessage.text": "Некоторое содержимое в этом документе было отключено", "preview.securityMessage.title": "В предварительном просмотре Markdown было отключено потенциально опасное или ненадежное содержимое. Чтобы разрешить ненадежное содержимое или включить сценарии, измените параметры безопасности предварительного просмотра Markdown.", "preview.securityMessage.label": "Предупреждение безопасности об отключении содержимого" diff --git a/i18n/rus/extensions/markdown/out/security.i18n.json b/i18n/rus/extensions/markdown/out/security.i18n.json index 17f7b23073a..85ed9bd8fa4 100644 --- a/i18n/rus/extensions/markdown/out/security.i18n.json +++ b/i18n/rus/extensions/markdown/out/security.i18n.json @@ -1,10 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { - "strict.title": "Строгий", + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "strict.description": "Загружать только безопасное содержимое", "insecureContent.title": "Разрешить небезопасное содержимое", "insecureContent.description": "Включить загрузку содержимого через HTTP", @@ -13,6 +14,5 @@ "moreInfo.title": "Дополнительные сведения", "enableSecurityWarning.title": "Включить предварительный просмотр предупреждений системы безопасности в этой рабочей области", "disableSecurityWarning.title": "Отключить предварительный просмотр предупреждений системы безопасности в этой рабочей области", - "toggleSecurityWarning.description": "Не влияет на уровень безопасности содержимого", "preview.showPreviewSecuritySelector.title": "Установите параметры безопасности для предварительного просмотра Markdown в этой рабочей области" } \ No newline at end of file diff --git a/i18n/rus/extensions/merge-conflict/out/codelensProvider.i18n.json b/i18n/rus/extensions/merge-conflict/out/codelensProvider.i18n.json index 8b8980ff833..d480fc71c6b 100644 --- a/i18n/rus/extensions/merge-conflict/out/codelensProvider.i18n.json +++ b/i18n/rus/extensions/merge-conflict/out/codelensProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "acceptCurrentChange": "Принять текущее изменение", "acceptIncomingChange": "Принять входящее изменение", "acceptBothChanges": "Принять оба изменения", diff --git a/i18n/rus/extensions/merge-conflict/out/commandHandler.i18n.json b/i18n/rus/extensions/merge-conflict/out/commandHandler.i18n.json index c9bb796671a..bfbfdfd654b 100644 --- a/i18n/rus/extensions/merge-conflict/out/commandHandler.i18n.json +++ b/i18n/rus/extensions/merge-conflict/out/commandHandler.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cursorNotInConflict": "Курсор не находится на конфликте объединения", "compareChangesTitle": "{0}: текущие изменения ⟷ входящие изменения", "cursorOnCommonAncestorsRange": "Курсор редактора находится в блоке общих предков. Переместите его в блок \"Текущее\" или \"Входящее\"", diff --git a/i18n/rus/extensions/merge-conflict/out/mergeDecorator.i18n.json b/i18n/rus/extensions/merge-conflict/out/mergeDecorator.i18n.json index 19166bea629..4f367289770 100644 --- a/i18n/rus/extensions/merge-conflict/out/mergeDecorator.i18n.json +++ b/i18n/rus/extensions/merge-conflict/out/mergeDecorator.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "currentChange": "(текущее изменение)", "incomingChange": "(входящее изменение)" } \ No newline at end of file diff --git a/i18n/rus/extensions/npm/out/main.i18n.json b/i18n/rus/extensions/npm/out/main.i18n.json index e567298cc85..df41ba3c218 100644 --- a/i18n/rus/extensions/npm/out/main.i18n.json +++ b/i18n/rus/extensions/npm/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "npm.parseError": "Определение задач npm: не удалось проанализировать файл {0} " } \ No newline at end of file diff --git a/i18n/rus/extensions/php/out/features/validationProvider.i18n.json b/i18n/rus/extensions/php/out/features/validationProvider.i18n.json index 38ad31efd84..5696440e52e 100644 --- a/i18n/rus/extensions/php/out/features/validationProvider.i18n.json +++ b/i18n/rus/extensions/php/out/features/validationProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "php.useExecutablePath": "Разрешить выполнять {0} (определяется как параметр рабочей области) для обработки PHP-файлов через lint?", "php.yes": "Разрешить", "php.no": "Запретить", diff --git a/i18n/rus/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json b/i18n/rus/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json new file mode 100644 index 00000000000..34eeeb68b9e --- /dev/null +++ b/i18n/rus/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "noResults": "Результаты не найдены", + "description": "Описание" +} \ No newline at end of file diff --git a/i18n/rus/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json b/i18n/rus/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/rus/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/rus/src/vs/code/electron-main/logUploader.i18n.json b/i18n/rus/src/vs/code/electron-main/logUploader.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/rus/src/vs/code/electron-main/logUploader.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/rus/src/vs/code/electron-main/menus.i18n.json b/i18n/rus/src/vs/code/electron-main/menus.i18n.json index 2f437ffc548..d14ec46f24d 100644 --- a/i18n/rus/src/vs/code/electron-main/menus.i18n.json +++ b/i18n/rus/src/vs/code/electron-main/menus.i18n.json @@ -180,12 +180,12 @@ "miConfigureTask": "&&Настроить задачи...", "miConfigureBuildTask": "Настроить задачу сборки по у&&молчанию...", "accessibilityOptionsWindowTitle": "Специальные возможности", - "miRestartToUpdate": "Перезапустить программу для обновления...", + "miCheckForUpdates": "Проверить наличие обновлений...", "miCheckingForUpdates": "Идет проверка наличия обновлений...", "miDownloadUpdate": "Скачать доступное обновление", "miDownloadingUpdate": "Скачивается обновление...", "miInstallingUpdate": "Идет установка обновления...", - "miCheckForUpdates": "Проверить наличие обновлений...", + "miRestartToUpdate": "Перезапустить программу для обновления...", "aboutDetail": "Версия {0}\nФиксация {1}\nДата {2}\nОболочка {3}\nОтрисовщик {4}\nУзел {5}\nАрхитектура {6}", "okButton": "ОК", "copy": "Копировать" diff --git a/i18n/rus/src/vs/editor/browser/services/bulkEdit.i18n.json b/i18n/rus/src/vs/editor/browser/services/bulkEdit.i18n.json index 160405bbc54..a2b4834beae 100644 --- a/i18n/rus/src/vs/editor/browser/services/bulkEdit.i18n.json +++ b/i18n/rus/src/vs/editor/browser/services/bulkEdit.i18n.json @@ -6,8 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "conflict": "Следующие файлы были изменены: {0}", "summary.0": "Нет изменений", "summary.nm": "Сделано изменений {0} в {1} файлах", - "summary.n0": "Сделано изменений {0} в одном файле" + "summary.n0": "Сделано изменений {0} в одном файле", + "conflict": "Следующие файлы были изменены: {0}" } \ No newline at end of file diff --git a/i18n/rus/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/rus/src/vs/editor/common/config/commonEditorConfig.i18n.json index 06dbf0c7c4d..4f8eb695690 100644 --- a/i18n/rus/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/rus/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -71,7 +71,7 @@ "cursorBlinking": "Управляет стилем анимации курсора. Допустимые значения: \"blink\", \"smooth\", \"phase\", \"expand\" и \"solid\"", "mouseWheelZoom": "Изменение размера шрифта в редакторе при нажатой клавише CTRL и движении колесика мыши", "cursorStyle": "Определяет стиль курсора. Допустимые значения: \"block\", \"block-outline\", \"line\", \"line-thin\", \"underline\" и \"underline-thin\"", - "lineCursorWidth": "Управляет шириной курсора, когда для параметра editor.cursorStyle установлено значение 'line'", + "cursorWidth": "Управляет шириной курсора, когда для параметра editor.cursorStyle установлено значение 'line'", "fontLigatures": "Включает лигатуры шрифта.", "hideCursorInOverviewRuler": "Управляет скрытием курсора в обзорной линейке.", "renderWhitespace": "Определяет, должен ли редактор обрабатывать символы пробела; возможные значения: \"none\", \"boundary\" и \"all\". Параметр \"boundary\" не обрабатывает единичные пробелы между словами.", diff --git a/i18n/rus/src/vs/platform/environment/node/argv.i18n.json b/i18n/rus/src/vs/platform/environment/node/argv.i18n.json index 7a53467db5c..321f7624b03 100644 --- a/i18n/rus/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/rus/src/vs/platform/environment/node/argv.i18n.json @@ -10,11 +10,8 @@ "diff": "Сравнение двух файлов друг с другом", "add": "Добавление папок в последнее активное окно.", "goto": "Открытие файла по указанному пути с выделением указанного символа в указанной строке.", - "newWindow": "Принудительно запустить новый экземпляр Code.", - "reuseWindow": "Принудительно открыть файл или папку в последнем активном окне.", "wait": "Дождаться закрытия файлов перед возвратом.", "locale": "Языковой стандарт, который следует использовать (например, en-US или zh-TW).", - "userDataDir": "Указывает каталог, в котором хранятся данные пользователей, используется в случае выполнения от имени привилегированного пользователя.", "version": "Печать версии.", "help": "Распечатать данные об использовании.", "extensionHomePath": "Задайте корневой путь для расширений.", @@ -32,7 +29,6 @@ "inspect-extensions": "Разрешить отладку и профилирование расширений. Проверьте URI подключения для инструментов разработчика.", "inspect-brk-extensions": "Разрешить отладку и профилирование расширений, когда узел расширения приостановлен после запуска. Проверьте URI подключения для инструментов разработчика. ", "disableGPU": "Отключить аппаратное ускорение GPU.", - "issue": "Сообщить об ошибке.", "usage": "Использование", "options": "параметры", "paths": "пути", diff --git a/i18n/rus/src/vs/platform/issue/electron-main/issueService.i18n.json b/i18n/rus/src/vs/platform/issue/electron-main/issueService.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/rus/src/vs/platform/issue/electron-main/issueService.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/rus/src/vs/platform/list/browser/listService.i18n.json b/i18n/rus/src/vs/platform/list/browser/listService.i18n.json index 0c00a86f855..7894eceea4d 100644 --- a/i18n/rus/src/vs/platform/list/browser/listService.i18n.json +++ b/i18n/rus/src/vs/platform/list/browser/listService.i18n.json @@ -6,6 +6,5 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "workbenchConfigurationTitle": "Рабочее место", - "multiSelectModifier": "Модификатор, который будет использоваться для добавления нескольких выделений с помощью мыши (например деревья и списки, при наличии поддержки). \"ctrlCmd\" соответствует клавише CTRL в Windows и Linux и клавише COMMAND в macOS. Жесты мыши \"Открыть сторону\", при наличии поддержки, будут изменены так, чтобы они не конфликтовали с несколькими курсорами." + "workbenchConfigurationTitle": "Рабочее место" } \ No newline at end of file diff --git a/i18n/rus/src/vs/platform/localizations/common/localizations.i18n.json b/i18n/rus/src/vs/platform/localizations/common/localizations.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/rus/src/vs/platform/localizations/common/localizations.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json b/i18n/rus/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/rus/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/api/node/extHostWorkspace.i18n.json b/i18n/rus/src/vs/workbench/api/node/extHostWorkspace.i18n.json new file mode 100644 index 00000000000..35229bd6699 --- /dev/null +++ b/i18n/rus/src/vs/workbench/api/node/extHostWorkspace.i18n.json @@ -0,0 +1,9 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ] +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json b/i18n/rus/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json new file mode 100644 index 00000000000..320c1467b62 --- /dev/null +++ b/i18n/rus/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "sizeB": "{0} Б", + "sizeKB": "{0} КБ", + "sizeMB": "{0} МБ", + "sizeGB": "{0} ГБ", + "sizeTB": "{0} ТБ", + "resourceOpenExternalButton": "Открыть изображение с помощью внешней программы?", + "nativeBinaryError": "Файл не будет отображен в редакторе, так как он двоичный, очень большой или использует неподдерживаемую кодировку текста.", + "imgMeta": "{0}x{1} {2}" +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/rus/src/vs/workbench/electron-browser/main.contribution.i18n.json index 5d626f50c1d..dfd0b2e5bc6 100644 --- a/i18n/rus/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -34,7 +34,6 @@ "sideBarLocation": "Определяет расположение боковой панели: слева или справа от рабочего места.", "statusBarVisibility": "Управляет видимостью строки состояния в нижней части рабочего места.", "activityBarVisibility": "Управляет видимостью панели действий на рабочем месте.", - "fontAliasing": "Управляет методом сглаживания шрифтов в рабочей области.-по умолчанию: субпиксельное сглаживание шрифтов; позволит добиться максимальной четкости текста на большинстве дисплеев за исключением Retina - сглаживание: сглаживание шрифтов на уровне пикселей, в отличие от субпиксельного сглаживания; позволит сделать шрифт более светлым в целом - нет: сглаживание шрифтов отключено; текст будет отображаться с неровными острыми краями ", "workbench.fontAliasing.default": "Субпиксельное сглаживание шрифтов; позволит добиться максимальной четкости текста на большинстве дисплеев за исключением Retina.", "workbench.fontAliasing.antialiased": "Сглаживание шрифтов на уровне пикселей, в отличие от субпиксельного сглаживания. Может сделать шрифт светлее в целом.", "workbench.fontAliasing.none": "Отключает сглаживание шрифтов; текст будет отображаться с неровными острыми краями.", diff --git a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json index 0a8bd497fcc..36b2312dd65 100644 --- a/i18n/rus/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json @@ -19,12 +19,12 @@ "debugRequesMissing": "В выбранной конфигурации отладки отсутствует атрибут '{0}'.", "debugTypeNotSupported": "Настроенный тип отладки \"{0}\" не поддерживается.", "debugTypeMissing": "Отсутствует свойство 'type' для выбранной конфигурации запуска.", - "debugAnyway": "Принудительная отладка", "preLaunchTaskErrors": "При выполнении предварительной задачи \"{0}\" обнаружены ошибки.", "preLaunchTaskError": "При выполнении предварительной задачи \"{0}\" обнаружена ошибка.", "preLaunchTaskExitCode": "Выполнение предварительной задачи \"{0}\" завершено с кодом выхода {1}.", + "debugAnyway": "Принудительная отладка", + "cancel": "Отмена", "noFolderWorkspaceDebugError": "Нельзя выполнить отладку активного файла. Убедитесь, что файл сохранен на диске и установлено расширение отладки для этого типа файла.", - "NewLaunchConfig": "Настройте файл конфигурации запуска для вашего приложения. {0}", "DebugTaskNotFound": "Не удалось найти задачу preLaunchTask \"{0}\".", "taskNotTracked": "Не удается отследить задачу предварительного запуска '{0}'." } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index f1934440bd8..4367c72b1cb 100644 --- a/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -18,5 +18,6 @@ "sort by name": "Сортировать по: название", "suggestProxyError": "Marketplace вернул значение \"ECONNREFUSED\". Проверьте параметр \"http.proxy\".", "extensions": "Расширения", - "outdatedExtensions": "Устаревшие расширения: {0}" + "outdatedExtensions": "Устаревшие расширения: {0}", + "reloadNow": "Перезагрузить" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json b/i18n/rus/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json index acbcfff1b11..9665e49caa1 100644 --- a/i18n/rus/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json @@ -7,10 +7,10 @@ "Do not edit this file. It is machine generated." ], "openLogsFolder": "Открыть папку журналов", - "mainProcess": "Главный", - "sharedProcess": "Общий", - "rendererProcess": "Окно", + "emptyWindow": "Окно", "extensionHost": "Узел расширения", + "sharedProcess": "Общий", + "mainProcess": "Главный", "openLogFile": "Открыть лог", "setLogLevel": "Установите уровень ведения журнала", "trace": "Трассировка", @@ -20,5 +20,6 @@ "err": "Ошибка", "critical": "Критично", "off": "Отключено", - "selectLogLevel": "Установите уровень ведения журнала" + "selectLogLevel": "Установите уровень ведения журнала", + "default": "По умолчанию" } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/markers/common/markers.i18n.json b/i18n/rus/src/vs/workbench/parts/markers/common/markers.i18n.json new file mode 100644 index 00000000000..9f1e9238a73 --- /dev/null +++ b/i18n/rus/src/vs/workbench/parts/markers/common/markers.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "totalProblems": "Всего проблем: {0}", + "filteredProblems": "Показано проблем: {0} из {1}" +} \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json b/i18n/rus/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json index 9c3ee62846c..07d11b5eb6f 100644 --- a/i18n/rus/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json @@ -17,7 +17,6 @@ "addLabel": "Добавить настраиваемое сочетание клавиш", "removeLabel": "Удаление настраиваемого сочетания клавиш", "resetLabel": "Сбросить настраиваемое сочетание клавиш", - "showConflictsLabel": "Показать конфиликты", "copyLabel": "Копировать", "error": "Произошла ошибка \"{0}\" при редактировании настраиваемого сочетания клавиш. Откройте и проверьте файл \"keybindings.json\".", "command": "Команда", diff --git a/i18n/rus/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json b/i18n/rus/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json index cf12386691e..5d997666f2a 100644 --- a/i18n/rus/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json @@ -10,8 +10,6 @@ "SearchSettingsWidget.AriaLabel": "Параметры поиска", "SearchSettingsWidget.Placeholder": "Параметры поиска", "noSettingsFound": "Нет результатов", - "oneSettingFound": "Один соответствующий параметр", - "settingsFound": "Соответствующих параметров: {0}", "totalSettingsMessage": "Всего параметров: {0}", "defaultSettings": "Параметры по умолчанию", "defaultFolderSettings": "Параметры папок по умолчанию", diff --git a/i18n/rus/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json b/i18n/rus/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json index 5d4ce24105e..53719eca157 100644 --- a/i18n/rus/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/scm/electron-browser/scmViewlet.i18n.json @@ -8,8 +8,6 @@ ], "scm providers": "Поставщики систем управления версиями", "hideRepository": "Скрыть", - "commitMessageInfo": "{0} знаков в текущей строке", - "commitMessageCountdown": "Осталось {0} знаков в текущей строке", "installAdditionalSCMProviders": "Установить дополнительных поставщиков SCM...", "no open repo": "Отсутствуют активные поставщики систем управления версиями.", "source control": "Система управления версиями", diff --git a/i18n/rus/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json b/i18n/rus/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json index 60e666cad4c..cb0885ffff1 100644 --- a/i18n/rus/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json @@ -21,10 +21,6 @@ "JsonSchema.tasks.terminal": "Свойство terminal является устаревшим. Используйте свойство presentation", "JsonSchema.tasks.group.kind": "Группа выполнения задачи", "JsonSchema.tasks.group.isDefault": "Определяет, является ли эта задача задачей по умолчанию в группе.", - "JsonSchema.tasks.group.defaultBuild": "Отмечает задачу как задачу сборки по умолчанию.", - "JsonSchema.tasks.group.defaultTest": "Отмечает задачу как задачу тестирования по умолчанию.", - "JsonSchema.tasks.group.build": "Отмечает задачу как задачу сборки, доступ к которой осуществляется с помощью команды \"Запустить задачу сборки\".", - "JsonSchema.tasks.group.test": "Отмечает задачу как задачу тестирования, доступ к которой осуществляется с помощью команды \"Запустить задачу тестирования\".", "JsonSchema.tasks.group.none": "Отменяет связь задачи со всеми группами", "JsonSchema.tasks.group": "Определяет, к какой группе выполнения принадлежит эта задача. Поддерживаемые значения: \"build\" для добавления задачи к группе сборки и \"test\" для добавления задачи к группе тестирования.", "JsonSchema.tasks.type": "Определяет, выполняется ли задача в виде процесса или в виде команды оболочки.", diff --git a/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 5316076b2ad..a56f8c90a3e 100644 --- a/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -20,7 +20,6 @@ "terminal.integrated.fontFamily": "Определяет семейство шрифтов терминала, значение по умолчанию — editor.fontFamily.", "terminal.integrated.fontSize": "Определяет размер шрифта (в пикселях) для терминала.", "terminal.integrated.lineHeight": "Определяет высоту строки терминала; это число умножается на размер шрифта терминала, что дает фактическую высоту строки в пикселях.", - "terminal.integrated.enableBold": "Следует ли разрешить полужирный текст в терминале. Эта функция должна поддерживаться оболочкой терминала.", "terminal.integrated.cursorBlinking": "Управляет миганием курсора терминала.", "terminal.integrated.cursorStyle": "Определяет стиль курсора терминала.", "terminal.integrated.scrollback": "Определяет предельное число строк в буфере терминала.", diff --git a/i18n/rus/src/vs/workbench/parts/update/electron-browser/update.i18n.json b/i18n/rus/src/vs/workbench/parts/update/electron-browser/update.i18n.json index 4fbd597f1d7..9f0954a0641 100644 --- a/i18n/rus/src/vs/workbench/parts/update/electron-browser/update.i18n.json +++ b/i18n/rus/src/vs/workbench/parts/update/electron-browser/update.i18n.json @@ -6,12 +6,10 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "updateNow": "Обновить сейчас", "later": "Позже", "unassigned": "не присвоено", "releaseNotes": "Заметки о выпуске", "showReleaseNotes": "Показать заметки о выпуске", - "downloadNow": "Скачать сейчас", "read the release notes": "Вас приветствует {0} v{1}! Вы хотите прочитать заметки о выпуске?", "licenseChanged": "Условия использования лицензии изменились, ознакомьтесь с ними.", "license": "Прочитать условия лицензии", @@ -19,19 +17,19 @@ "64bitisavailable": "{0} для 64-разрядной версии Windows теперь доступен!", "learn more": "Дополнительные сведения", "updateIsReady": "Доступно новое обновление {0}.", - "thereIsUpdateAvailable": "Доступно обновление.", - "updateAvailable": "{0} будет обновлен после перезапуска.", "noUpdatesAvailable": "В настоящее время нет доступных обновлений.", + "download now": "Скачать сейчас", + "thereIsUpdateAvailable": "Доступно обновление.", + "updateNow": "Обновить сейчас", + "updateAvailableAfterRestart": "{0} будет обновлен после перезапуска.", "commandPalette": "Палитра команд...", "settings": "Параметры", "keyboardShortcuts": "Сочетания клавиш", "selectTheme.label": "Цветовая тема", "themes.selectIconTheme.label": "Тема значков файлов", - "not available": "Обновления недоступны", + "checkForUpdates": "Проверить наличие обновлений...", "checkingForUpdates": "Идет проверка наличия обновлений...", - "DownloadUpdate": "Скачать доступное обновление", "DownloadingUpdate": "Скачивается обновление...", - "InstallingUpdate": "Идет установка обновления...", - "restartToUpdate": "Перезапустить для обновления...", - "checkForUpdates": "Проверить наличие обновлений..." + "installingUpdate": "Идет установка обновления...", + "restartToUpdate": "Перезапустить для обновления..." } \ No newline at end of file diff --git a/i18n/rus/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json b/i18n/rus/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json index 10ff98395cb..91df8772837 100644 --- a/i18n/rus/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json +++ b/i18n/rus/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json @@ -8,6 +8,6 @@ ], "jsonParseFail": "Не удалось проанализировать {0}: {1}.", "fileReadFail": "Не удается прочитать файл {0}: {1}.", - "jsonsParseFail": "Не удалось проанализировать {0} или {1}: {2}.", + "jsonsParseReportErrors": "Не удалось проанализировать {0}: {1}.", "missingNLSKey": "Не удалось найти сообщение для ключа {0}." } \ No newline at end of file diff --git a/i18n/trk/extensions/css/client/out/cssMain.i18n.json b/i18n/trk/extensions/css/client/out/cssMain.i18n.json index efa3cfefe20..5d438afc47c 100644 --- a/i18n/trk/extensions/css/client/out/cssMain.i18n.json +++ b/i18n/trk/extensions/css/client/out/cssMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cssserver.name": "CSS Dil Sunucusu", "folding.start": "Katlama Bölgesi Başlangıcı", "folding.end": "Katlama Bölgesi Sonu" diff --git a/i18n/trk/extensions/emmet/package.i18n.json b/i18n/trk/extensions/emmet/package.i18n.json index 5c7fe1c9362..ac85b2043c1 100644 --- a/i18n/trk/extensions/emmet/package.i18n.json +++ b/i18n/trk/extensions/emmet/package.i18n.json @@ -54,5 +54,9 @@ "emmetPreferencesFilterCommentTrigger": "Yorum filterinin uygulanması için kısaltmada bulunması gereken virgülle ayrılmış öznitelik adları listesi", "emmetPreferencesFormatNoIndentTags": "İçe girintilenmemesi gereken bir etiket adları dizisi", "emmetPreferencesFormatForceIndentTags": "Her zaman içe girintilenmesi gereken bir etiket adları dizisi", - "emmetPreferencesAllowCompactBoolean": "Doğruysa, boole niteliklerinin öz gösterimi üretilir" + "emmetPreferencesAllowCompactBoolean": "Doğruysa, boole niteliklerinin öz gösterimi üretilir", + "emmetPreferencesCssWebkitProperties": "`-` ile başlayan emmet kısaltmasında kullanıldığında \"webkit\" önekini alacak virgülle ayrılmış css özellikleri. \"webkit\" önekinden her zaman kaçınmak için boş bir dize olarak ayarlayın.", + "emmetPreferencesCssMozProperties": "`-` ile başlayan emmet kısaltmasında kullanıldığında \"moz\" önekini alacak virgülle ayrılmış css özellikleri. \"moz\" önekinden her zaman kaçınmak için boş bir dize olarak ayarlayın.", + "emmetPreferencesCssOProperties": "`-` ile başlayan emmet kısaltmasında kullanıldığında \"o\" önekini alacak virgülle ayrılmış css özellikleri. \"o\" önekinden her zaman kaçınmak için boş bir dize olarak ayarlayın.", + "emmetPreferencesCssMsProperties": "`-` ile başlayan emmet kısaltmasında kullanıldığında \"ms\" önekini alacak virgülle ayrılmış css özellikleri. \"ms\" önekinden her zaman kaçınmak için boş bir dize olarak ayarlayın." } \ No newline at end of file diff --git a/i18n/trk/extensions/git/out/askpass-main.i18n.json b/i18n/trk/extensions/git/out/askpass-main.i18n.json index 56e7f652dd6..8e761ff13da 100644 --- a/i18n/trk/extensions/git/out/askpass-main.i18n.json +++ b/i18n/trk/extensions/git/out/askpass-main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "missOrInvalid": "Eksik veya geçersiz kimlik bilgisi." } \ No newline at end of file diff --git a/i18n/trk/extensions/git/out/autofetch.i18n.json b/i18n/trk/extensions/git/out/autofetch.i18n.json index 737e720ea79..3acef4c84bd 100644 --- a/i18n/trk/extensions/git/out/autofetch.i18n.json +++ b/i18n/trk/extensions/git/out/autofetch.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "yes": "Evet", "read more": "Devamını oku", "no": "Hayır", diff --git a/i18n/trk/extensions/git/out/commands.i18n.json b/i18n/trk/extensions/git/out/commands.i18n.json index 3e01d946db5..9ab82c662af 100644 --- a/i18n/trk/extensions/git/out/commands.i18n.json +++ b/i18n/trk/extensions/git/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "tag at": "{0} üzerindeki etiket", "remote branch at": "{0} üzerindeki uzak dal", "create branch": "$(plus) Yeni dal oluştur", @@ -46,7 +48,7 @@ "save and commit": "Tümünü Kaydet & Commit'le", "commit": "Yine de Commit'le", "no staged changes": "Commit'lenecek hazırlanmış değişiklik yok.\n\nTüm değişikliklerinizi otomatik olarak hazırlamak ve direkt olarak commit'lemek ister misiniz?", - "always": "Her Zaman", + "always": "Daima", "no changes": "Commit'lenecek değişiklik yok.", "commit message": "Commit mesajı", "provide commit message": "Lütfen bir commit mesajı belirtin.", diff --git a/i18n/trk/extensions/git/out/main.i18n.json b/i18n/trk/extensions/git/out/main.i18n.json index ebd9e4be3fa..22cc3828e0d 100644 --- a/i18n/trk/extensions/git/out/main.i18n.json +++ b/i18n/trk/extensions/git/out/main.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "looking": "Git, şu konumda aranıyor: {0}", "using git": "{1} yolundaki git {0} kullanılıyor", "downloadgit": "Git'i İndir", diff --git a/i18n/trk/extensions/git/out/model.i18n.json b/i18n/trk/extensions/git/out/model.i18n.json index 9bc54bdfe7a..7b7cc6ce8a3 100644 --- a/i18n/trk/extensions/git/out/model.i18n.json +++ b/i18n/trk/extensions/git/out/model.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "no repositories": "Mevcut depo yok", "pick repo": "Bir depo seçin" } \ No newline at end of file diff --git a/i18n/trk/extensions/git/out/repository.i18n.json b/i18n/trk/extensions/git/out/repository.i18n.json index 793421109b8..249d053dd31 100644 --- a/i18n/trk/extensions/git/out/repository.i18n.json +++ b/i18n/trk/extensions/git/out/repository.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "open": "Aç", "index modified": "Dizin Değiştirildi", "modified": "Değiştirilmiş", @@ -26,6 +28,8 @@ "merge changes": "Değişiklikleri Birleştir", "staged changes": "Hazırlanmış Değişiklikler", "changes": "Değişiklikler", + "commitMessageCountdown": "geçerli satırda {0} karakter kaldı", + "commitMessageWarning": "geçerli satırda {1} üzerinde {0} karakter", "ok": "Tamam", "neveragain": "Tekrar Gösterme", "huge": "'{0}' yolundaki git deposunda çok fazla aktif değişikliklik var, Git özelliklerinin yalnızca bir alt kümesi etkinleştirilecektir." diff --git a/i18n/trk/extensions/git/out/statusbar.i18n.json b/i18n/trk/extensions/git/out/statusbar.i18n.json index eb7a0d55141..927c48aacf3 100644 --- a/i18n/trk/extensions/git/out/statusbar.i18n.json +++ b/i18n/trk/extensions/git/out/statusbar.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "checkout": "Geçiş yap...", "sync changes": "Değişiklikleri Senkronize Et", "publish changes": "Değişiklikleri Yayınla", diff --git a/i18n/trk/extensions/git/package.i18n.json b/i18n/trk/extensions/git/package.i18n.json index a66082c290d..f7b71e7ac2c 100644 --- a/i18n/trk/extensions/git/package.i18n.json +++ b/i18n/trk/extensions/git/package.i18n.json @@ -71,6 +71,9 @@ "config.enableCommitSigning": "GPG ile commit imzalamayı etkinleştirir.", "config.discardAllScope": "`Tüm Değişiklikleri Göz Ardı Et` komutuyla hangi değişikliklerin göz ardı edileceğini denetler. `all` tüm değişiklikleri göz ardı eder. `tracked` sadece izlenen dosyaları göz ardı eder. `prompt` eylem her çalıştığında bir onay penceresi gösterir.", "config.decorations.enabled": "Git'in gezgine ve açık düzenleyiciler görünümüne renkler ve göstergeler ile ekleme yapıp yapmadığını denetler.", + "config.promptToSaveFilesBeforeCommit": "Commit'lemeden önce Git'in kaydedilmemiş dosyaları kontrol edip etmeyeceğini denetler.", + "config.showInlineOpenFileAction": "Git değişiklikleri görünümünde satır içi Dosyayı Aç eyleminin gösterilip gösterilmeyeceğini denetler.", + "config.detectSubmodules": "Git alt modüllerin otomatik olarak tespit edilip edilmeyeceğini denetler.", "colors.modified": "Değiştirilen kaynakların rengi.", "colors.deleted": "Silinen kaynakların rengi.", "colors.untracked": "İzlenmeyen kaynakların rengi.", diff --git a/i18n/trk/extensions/grunt/out/main.i18n.json b/i18n/trk/extensions/grunt/out/main.i18n.json index 1a6d51e7ba0..d3cd0c98812 100644 --- a/i18n/trk/extensions/grunt/out/main.i18n.json +++ b/i18n/trk/extensions/grunt/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "{0} klasörü için Grunt otomatik tespiti hata ile sonuçlandı: {1}" } \ No newline at end of file diff --git a/i18n/trk/extensions/gulp/out/main.i18n.json b/i18n/trk/extensions/gulp/out/main.i18n.json index 9baacfba3fb..cdcef9fdb98 100644 --- a/i18n/trk/extensions/gulp/out/main.i18n.json +++ b/i18n/trk/extensions/gulp/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "{0} klasörü için gulp otomatik tespiti hata ile sonuçlandı: {1}" } \ No newline at end of file diff --git a/i18n/trk/extensions/html/client/out/htmlMain.i18n.json b/i18n/trk/extensions/html/client/out/htmlMain.i18n.json index 885fe117726..cd480d42123 100644 --- a/i18n/trk/extensions/html/client/out/htmlMain.i18n.json +++ b/i18n/trk/extensions/html/client/out/htmlMain.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "htmlserver.name": "HTML Dil Sunucusu", "folding.start": "Katlama Bölgesi Başlangıcı", "folding.end": "Katlama Bölgesi Sonu" diff --git a/i18n/trk/extensions/jake/out/main.i18n.json b/i18n/trk/extensions/jake/out/main.i18n.json index 0f9fe99820a..7934a6441a6 100644 --- a/i18n/trk/extensions/jake/out/main.i18n.json +++ b/i18n/trk/extensions/jake/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "execFailed": "{0} klasörü için Jake otomatik tespiti hata ile sonuçlandı: {1}" } \ No newline at end of file diff --git a/i18n/trk/extensions/json/client/out/jsonMain.i18n.json b/i18n/trk/extensions/json/client/out/jsonMain.i18n.json index f0d4863e745..34990f71588 100644 --- a/i18n/trk/extensions/json/client/out/jsonMain.i18n.json +++ b/i18n/trk/extensions/json/client/out/jsonMain.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "jsonserver.name": "JSON Dil Sunucusu" } \ No newline at end of file diff --git a/i18n/trk/extensions/markdown/out/commands.i18n.json b/i18n/trk/extensions/markdown/out/commands.i18n.json index 58734fd8dcf..062136d45f3 100644 --- a/i18n/trk/extensions/markdown/out/commands.i18n.json +++ b/i18n/trk/extensions/markdown/out/commands.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "previewTitle": "{0} Önizlemesi", "onPreviewStyleLoadError": "'markdown.styles' yüklenemedi: {0}" } \ No newline at end of file diff --git a/i18n/trk/extensions/markdown/out/features/previewContentProvider.i18n.json b/i18n/trk/extensions/markdown/out/features/previewContentProvider.i18n.json index 04c06b0e2dd..76db8cd58cf 100644 --- a/i18n/trk/extensions/markdown/out/features/previewContentProvider.i18n.json +++ b/i18n/trk/extensions/markdown/out/features/previewContentProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "preview.securityMessage.text": "Bu belgedeki bazı içerikler devre dışı bırakıldı", "preview.securityMessage.title": "Markdown önizlemesinde potansiyel olarak tehlikeli veya güvenli olmayan içerik devre dışı bırakıldı. Güvenli olmayan içeriğe izin vermek veya betikleri etkinleştirmek için Markdown önizleme güvenlik ayarını değiştirin", "preview.securityMessage.label": "İçerik Devre Dışı Güvenlik Uyarısı" diff --git a/i18n/trk/extensions/markdown/out/security.i18n.json b/i18n/trk/extensions/markdown/out/security.i18n.json index b066062580e..df9d9eb7615 100644 --- a/i18n/trk/extensions/markdown/out/security.i18n.json +++ b/i18n/trk/extensions/markdown/out/security.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "strict.title": "Katı", "strict.description": "Sadece güvenli içeriği yükle", "insecureContent.title": "Güvenli olmayan içeriğe izin ver", diff --git a/i18n/trk/extensions/merge-conflict/out/codelensProvider.i18n.json b/i18n/trk/extensions/merge-conflict/out/codelensProvider.i18n.json index 0476f24fb1e..cbb6bd565f0 100644 --- a/i18n/trk/extensions/merge-conflict/out/codelensProvider.i18n.json +++ b/i18n/trk/extensions/merge-conflict/out/codelensProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "acceptCurrentChange": "Mevcut Değişikliği Kabul Et", "acceptIncomingChange": "Gelen Değişikliği Kabul Et", "acceptBothChanges": "Her İki Değişikliği de Kabul Et", diff --git a/i18n/trk/extensions/merge-conflict/out/commandHandler.i18n.json b/i18n/trk/extensions/merge-conflict/out/commandHandler.i18n.json index 705fbc5a822..66c08747a6f 100644 --- a/i18n/trk/extensions/merge-conflict/out/commandHandler.i18n.json +++ b/i18n/trk/extensions/merge-conflict/out/commandHandler.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "cursorNotInConflict": "Düzenleyici imleci birleştirme çakışması içinde değil", "compareChangesTitle": "{0}: Mevcut Değişiklikler ⟷ Gelen Değişiklikler", "cursorOnCommonAncestorsRange": "Düzenleyici imleci ortak atalar bloğunda, imleci lütfen \"mevcut\" veya \"gelen\" bloğundan birine getirin", diff --git a/i18n/trk/extensions/merge-conflict/out/mergeDecorator.i18n.json b/i18n/trk/extensions/merge-conflict/out/mergeDecorator.i18n.json index 3e7f492fb7d..21dfafcb391 100644 --- a/i18n/trk/extensions/merge-conflict/out/mergeDecorator.i18n.json +++ b/i18n/trk/extensions/merge-conflict/out/mergeDecorator.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "currentChange": "(Mevcut Değişiklik)", "incomingChange": "(Gelen Değişiklik)" } \ No newline at end of file diff --git a/i18n/trk/extensions/npm/out/main.i18n.json b/i18n/trk/extensions/npm/out/main.i18n.json index 76d363a5138..30e9e07e3ad 100644 --- a/i18n/trk/extensions/npm/out/main.i18n.json +++ b/i18n/trk/extensions/npm/out/main.i18n.json @@ -1,8 +1,10 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "npm.parseError": "Npm görev algılama: {0} dosyası ayrıştırılamadı" } \ No newline at end of file diff --git a/i18n/trk/extensions/php/out/features/validationProvider.i18n.json b/i18n/trk/extensions/php/out/features/validationProvider.i18n.json index dbfa92074c8..d882c2764da 100644 --- a/i18n/trk/extensions/php/out/features/validationProvider.i18n.json +++ b/i18n/trk/extensions/php/out/features/validationProvider.i18n.json @@ -1,9 +1,11 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// Do not edit this file. It is machine generated. { + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], "php.useExecutablePath": "{0} (çalışma alanı ayarı olarak tanımlı) yürütülebilir dosyasına PHP dosyalarını doğrulama izni veriyor musunuz?", "php.yes": "İzin Ver", "php.no": "İzin Verme", diff --git a/i18n/trk/extensions/typescript/out/features/quickFixProvider.i18n.json b/i18n/trk/extensions/typescript/out/features/quickFixProvider.i18n.json index 35229bd6699..323d1a99391 100644 --- a/i18n/trk/extensions/typescript/out/features/quickFixProvider.i18n.json +++ b/i18n/trk/extensions/typescript/out/features/quickFixProvider.i18n.json @@ -5,5 +5,6 @@ "Licensed under the MIT License. See License.txt in the project root for license information.", "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." - ] + ], + "fixAllInFileLabel": "{0} (Dosyadaki tümünü düzelt)" } \ No newline at end of file diff --git a/i18n/trk/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json b/i18n/trk/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json new file mode 100644 index 00000000000..e526a94f4fe --- /dev/null +++ b/i18n/trk/src/vs/code/electron-browser/issue/issueReporterMain.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "previewOnGitHub": "GitHub'da Önizle", + "similarIssues": "Benzer sorunlar", + "noResults": "Sonuç bulunamadı", + "stepsToReproduce": "Yeniden oluşturma adımları", + "bugDescription": "Bu sorunla nasıl karşılaştınız? Sorunu güvenilir bir şekilde oluşturmak için gerçekleştirmeniz gereken adımlar nelerdir? Ne olmasını bekliyordunuz ve karşılığında ne oldu?", + "performanceIssueDesciption": "Bu performans sorunu ne zaman oluştu? Örneğin, başlangıçtan sonra mı yoksa belirli eylemlerden sonra mı oluşuyor? Belirteceğiniz her detay araştırmamıza yardımcı olacaktır.", + "description": "Açıklama", + "disabledExtensions": "Eklentiler devre dışı" +} \ No newline at end of file diff --git a/i18n/trk/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json b/i18n/trk/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json new file mode 100644 index 00000000000..9335c658b90 --- /dev/null +++ b/i18n/trk/src/vs/code/electron-browser/issue/issueReporterPage.i18n.json @@ -0,0 +1,28 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "completeInEnglish": "Lütfen formu İngilizce olarak doldurunuz.", + "issueTypeLabel": "Göndermek istediğim şey bir", + "bugReporter": "Hata Raporu", + "performanceIssue": "Performans Sorunu", + "featureRequest": "Özellik İsteği", + "issueTitleLabel": "Başlık", + "issueTitleRequired": "Lütfen bir başlık girin.", + "vscodeVersion": "VS Code Sürümü", + "osVersion": "İşletim Sistemi Sürümü", + "systemInfo": "Sistem Bilgilerim", + "sendData": "Verilerimi gönder", + "processes": "Şu Anda Çalışan İşlemler", + "workspaceStats": "Çalışma Alanı İstatistiklerim", + "extensions": "Eklentilerim", + "tryDisablingExtensions": "Eklentiler devre dışı bırakıldığında sorun yeniden oluşturulabiliyor", + "disableExtensions": "tüm eklentileri devre dışı bırakıp pencereyi yeniden yükleyin", + "showRunningExtensions": "tüm çalışan eklentileri görün", + "issueDescriptionRequired": "Lütfen bir açıklama girin.", + "loadingData": "Veri yükleniyor..." +} \ No newline at end of file diff --git a/i18n/trk/src/vs/code/electron-main/logUploader.i18n.json b/i18n/trk/src/vs/code/electron-main/logUploader.i18n.json new file mode 100644 index 00000000000..81ceb798892 --- /dev/null +++ b/i18n/trk/src/vs/code/electron-main/logUploader.i18n.json @@ -0,0 +1,21 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "invalidEndpoint": "Geçersiz günlük yükleme uçbirimi", + "beginUploading": "Karşıya yükleniyor...", + "didUploadLogs": "Yükleme başarılı! Günlük dosyası ID'si: {0}", + "userDeniedUpload": "Yükleme iptal edildi", + "logUploadPromptHeader": "Oturum günlükleri güvenli bir uçbirime yüklensin mi?", + "logUploadPromptBody": "Lütfen günlük dosyalarınızı buradan inceleyin: '{0}'", + "logUploadPromptBodyDetails": "Günlükler, tam yollar ve dosya içerikleri gibi kişisel bilgiler içerebilir.", + "logUploadPromptKey": "Günlüklerimi inceledim (yüklemeyi onaylamak için 'y' tuşuna basın)", + "postError": "Günlükler gönderilirken hata oluştu: {0}", + "responseError": "Günlükler gönderilirken hata oluştu: {0} alındı — {1}", + "parseError": "Cevap ayrıştırılamadı", + "zipError": "Günlükler sıkıştırlırken hata oluştu: {0}" +} \ No newline at end of file diff --git a/i18n/trk/src/vs/code/electron-main/menus.i18n.json b/i18n/trk/src/vs/code/electron-main/menus.i18n.json index 43b92b876c9..677e275ea7b 100644 --- a/i18n/trk/src/vs/code/electron-main/menus.i18n.json +++ b/i18n/trk/src/vs/code/electron-main/menus.i18n.json @@ -180,12 +180,13 @@ "miConfigureTask": "Görevleri Ya&&pılandır...", "miConfigureBuildTask": "&&Varsayılan Derleme Görevini Yapılandır...", "accessibilityOptionsWindowTitle": "Erişilebilirlik Seçenekleri", - "miRestartToUpdate": "Güncelleştirmek için Yeniden Başlat...", + "miCheckForUpdates": "Güncelleştirmeleri Denetle...", "miCheckingForUpdates": "Güncelleştirmeler Denetleniyor...", "miDownloadUpdate": "Mevcut Güncelleştirmeyi İndir", "miDownloadingUpdate": "Güncelleştirme İndiriliyor...", + "miInstallUpdate": "Güncelleştirmeyi Yükle...", "miInstallingUpdate": "Güncelleştirme Yükleniyor...", - "miCheckForUpdates": "Güncelleştirmeleri Denetle...", + "miRestartToUpdate": "Güncelleştirmek için Yeniden Başlat...", "aboutDetail": "Sürüm {0}\nCommit {1}\nTarih {2}\nKabuk {3}\nRender Alan {4}\nNode {5}\nMimari {6}", "okButton": "Tamam", "copy": "K&&opyala" diff --git a/i18n/trk/src/vs/editor/browser/services/bulkEdit.i18n.json b/i18n/trk/src/vs/editor/browser/services/bulkEdit.i18n.json index e848818ebea..bdfef4d2c99 100644 --- a/i18n/trk/src/vs/editor/browser/services/bulkEdit.i18n.json +++ b/i18n/trk/src/vs/editor/browser/services/bulkEdit.i18n.json @@ -6,8 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "conflict": "Bu dosyalar bu arada değiştirildi: {0}", "summary.0": "Düzenleme yapılmadı", "summary.nm": "{1} dosyada {0} metin düzenlemesi yapıldı", - "summary.n0": "Bir dosyada {0} metin düzenlemesi yapıldı" + "summary.n0": "Bir dosyada {0} metin düzenlemesi yapıldı", + "conflict": "Bu dosyalar bu arada değiştirildi: {0}" } \ No newline at end of file diff --git a/i18n/trk/src/vs/editor/common/config/commonEditorConfig.i18n.json b/i18n/trk/src/vs/editor/common/config/commonEditorConfig.i18n.json index 50f7fed1800..fe3cdc25532 100644 --- a/i18n/trk/src/vs/editor/common/config/commonEditorConfig.i18n.json +++ b/i18n/trk/src/vs/editor/common/config/commonEditorConfig.i18n.json @@ -28,6 +28,7 @@ "scrollBeyondLastLine": "Düzenleyicinin son satırın ötesine ilerleyip ilerlemeyeceğini denetler", "smoothScrolling": "Düzenleyicinin bir animasyon kullanarak kaydırıp kaydırmayacağını denetler", "minimap.enabled": "Mini haritanın gösterilip gösterilmeyeceğini denetler", + "minimap.side": "Mini haritanın görüntüleneceği tarafı denetler. Olası değerler 'right' ve 'left'tir", "minimap.showSlider": "Mini harita kaydıracının otomatik olarak gizlenip gizlenmeyeceğini denetler. Alabileceği değerler 'always' ve 'mouseover'dır.", "minimap.renderCharacters": "(Renk blokları yerine) Bir satırdaki gerçek harfleri göster", "minimap.maxColumn": "Hazırlanacak mini haritanın azami genişliğini belirli sayıda sütunla sınırla", @@ -65,6 +66,7 @@ "snippetSuggestions": "Parçacıkların diğer önerilerle gösterilip gösterilmeyeceğini ve bunların nasıl sıralanacaklarını denetler.", "emptySelectionClipboard": "Bir seçim olmadan geçerli satırı kopyalayıp kopyalamamayı denetler.", "wordBasedSuggestions": "Tamamlamaların belgedeki sözcüklere dayalı olarak hesaplanıp hesaplanmayacağını denetler.", + "suggestSelection.first": "Her zaman ilk öneriyi seç.", "suggestFontSize": "Öneri aracının yazı tipi boyutu", "suggestLineHeight": "Öneri aracının satır yüksekliği", "selectionHighlight": "Düzenleyicinin seçime benzer eşleşmeleri vurgulayıp vurgulamayacağını denetler", @@ -74,6 +76,7 @@ "cursorBlinking": "İmleç animasyon stilini denetler, olası değerler 'blink', 'smooth', 'phase', 'expand' ve 'solid'dir", "mouseWheelZoom": "Ctrl tuşuna basarken fare tekerleği ile düzenleyici yazı tipini yakınlaştırın", "cursorStyle": "İmleç stilini denetler, kabul edilen değerler: 'block', 'block-outline', 'line', 'line-thin', 'underline' ve 'underline-thin'", + "cursorWidth": "editor.cursorStyle, 'line' olarak ayarlandığında imlecin genişliğini denetler", "fontLigatures": "Yazı tipi ligatürlerini etkinleştirir", "hideCursorInOverviewRuler": "İmlecin genel bakış cetvelinde gizlenip gizlenmeyeceğini denetler.", "renderWhitespace": "Düzenleyicinin boşluk karakterlerini nasıl göstereceğini denetler, seçenekler: 'none', 'boundary', ve 'all'. 'boundary' seçeneği sözcükler arasındaki tek boşlukları göstermez.", diff --git a/i18n/trk/src/vs/editor/common/view/editorColorRegistry.i18n.json b/i18n/trk/src/vs/editor/common/view/editorColorRegistry.i18n.json index 9650a22ed4c..75344b3a6a1 100644 --- a/i18n/trk/src/vs/editor/common/view/editorColorRegistry.i18n.json +++ b/i18n/trk/src/vs/editor/common/view/editorColorRegistry.i18n.json @@ -8,6 +8,7 @@ ], "lineHighlight": "İmlecin bulunduğu satırın vurgusunun arka plan rengi.", "lineHighlightBorderBox": "İmlecin bulunduğu satırın kenarlığının arka plan rengi.", + "rangeHighlight": "Hızlı açma veya arama özellikleri gibi vurgulanan aralıkların arka plan rengi. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", "caret": "Düzenleyici imlecinin rengi.", "editorCursorBackground": "Düzenleyici imlecinin arka plan rengi. Bir blok imlecinin kapladığı bir karakterin rengini özelleştirmeyi sağlar.", "editorWhitespaces": "Düzenleyicideki boşluk karakterlerinin rengi.", diff --git a/i18n/trk/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json b/i18n/trk/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json index fdb6d0238b1..e5c99a76729 100644 --- a/i18n/trk/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json +++ b/i18n/trk/src/vs/editor/contrib/bracketMatching/bracketMatching.i18n.json @@ -6,5 +6,6 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "overviewRulerBracketMatchForeground": "Eşleşen ayraçlar için genel bakış cetvelinin işaretleyici rengi.", "smartSelect.jumpBracket": "Ayraca Git" } \ No newline at end of file diff --git a/i18n/trk/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json b/i18n/trk/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json index 7c6e0a0cec3..be911653722 100644 --- a/i18n/trk/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json +++ b/i18n/trk/src/vs/editor/contrib/quickFix/quickFixCommands.i18n.json @@ -8,5 +8,6 @@ ], "quickFixWithKb": "Düzeltmeleri Göster ({0})", "quickFix": "Düzeltmeleri Göster", - "quickfix.trigger.label": "Hızlı Düzeltme" + "quickfix.trigger.label": "Hızlı Düzeltme", + "refactor.label": "Yeniden Düzenle" } \ No newline at end of file diff --git a/i18n/trk/src/vs/editor/contrib/wordHighlighter/wordHighlighter.i18n.json b/i18n/trk/src/vs/editor/contrib/wordHighlighter/wordHighlighter.i18n.json index 946ca603cfe..4ed8bf72dac 100644 --- a/i18n/trk/src/vs/editor/contrib/wordHighlighter/wordHighlighter.i18n.json +++ b/i18n/trk/src/vs/editor/contrib/wordHighlighter/wordHighlighter.i18n.json @@ -6,6 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "wordHighlight": "Bir değişkeni okumak gibi, okuma-erişimi sırasındaki bir sembolün arka plan rengi. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", + "wordHighlightStrong": "Bir değişkene yazmak gibi, yazma-erişimi sırasındaki bir sembolün arka plan rengi. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", "overviewRulerWordHighlightForeground": "Sembol vurguları için genel bakış cetvelinin işaretleyici rengi.", "overviewRulerWordHighlightStrongForeground": "Yazma erişimli sembol vurguları için genel bakış cetvelinin işaretleyici rengi.", "wordHighlight.next.label": "Sonraki Sembol Vurgusuna Git", diff --git a/i18n/trk/src/vs/platform/environment/node/argv.i18n.json b/i18n/trk/src/vs/platform/environment/node/argv.i18n.json index c0f47e3097b..7ca3dc5a2cc 100644 --- a/i18n/trk/src/vs/platform/environment/node/argv.i18n.json +++ b/i18n/trk/src/vs/platform/environment/node/argv.i18n.json @@ -10,11 +10,11 @@ "diff": "İki dosyayı birbiriyle karşılaştır.", "add": "Son aktif pencereye klasör(ler) ekle.", "goto": "Konumdaki bir dosyayı belirtilen satır ve sütunda aç.", - "newWindow": "Yeni bir Code örneğini zorla.", - "reuseWindow": "Bir dosya veya klasörü son etkin pencerede açmaya zorlayın.", + "newWindow": "Yeni pencere açmaya zorla.", + "reuseWindow": "Bir dosya veya klasörü son aktif pencerede açmaya zorlayın.", "wait": "Geri dönmeden önce dosyaların kapanmasını bekle.", "locale": "Kullanılacak yerel dil (örnek: en-US veya zh-TW).", - "userDataDir": "Kullanıcı verilerinin tutulacağı klasörü belirtir, root olarak çalışırken yararlıdır.", + "userDataDir": "Kullanıcı verilerinin tutulacağı klasörü belirtir. Code'un farklı örneklerini açmak için kullanılabilir.", "version": "Sürümü göster.", "help": "Kullanımı göster.", "extensionHomePath": "Eklentilerin kök dizinini belirle.", @@ -32,7 +32,7 @@ "inspect-extensions": "Eklentilerde hata ayıklama ve ayrımlamaya izin ver. Bağlantı URI'ı için geliştirici araçlarını kontrol edin.", "inspect-brk-extensions": "Eklentilerde hata ayıklama ve ayrımlamaya eklenti sunucusu başladıktan hemen sonra duraklatılacak şekilde izin ver. Bağlantı URI'ı için geliştirici araçlarını kontrol edin.", "disableGPU": "GPU donanım hızlandırmasını devre dışı bırak.", - "issue": "Sorun bildirin.", + "uploadLogs": "Geçerli oturumdaki günlükleri güvenli bir uçbirime yükler.", "usage": "Kullanım", "options": "seçenekler", "paths": "yollar", diff --git a/i18n/trk/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json b/i18n/trk/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json index 86bc516fc62..5d60bc44625 100644 --- a/i18n/trk/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json +++ b/i18n/trk/src/vs/platform/extensionManagement/node/extensionManagementService.i18n.json @@ -13,6 +13,7 @@ "cancel": "İptal", "errorInstallingDependencies": "Bağımlılıklar yüklenirken hata oluştu. {0}", "notFoundCompatible": "'{0}' yüklenemiyor; VS Code '{1}' ile uyumlu mevcut bir sürümü yok.", + "malicious extension": "Eklenti sorunlu olarak bildirildiği için yüklenemiyor.", "notFoundCompatibleDependency": "Yükleme başarısız oldu çünkü, bağımlılığı bulunan '{0}' eklentisinin uyumlu olduğu VS Code'un '{1}' sürümü bulunamadı.", "quitCode": "Eklenti yüklenemedi. Lütfen yeniden yüklemeden önce VS Code'u sonlandırın ve tekrar başlatın.", "exitCode": "Eklenti yüklenemedi. Lütfen yeniden yüklemeden önce VS Code'u sonlandırın ve tekrar başlatın.", diff --git a/i18n/trk/src/vs/platform/issue/electron-main/issueService.i18n.json b/i18n/trk/src/vs/platform/issue/electron-main/issueService.i18n.json new file mode 100644 index 00000000000..fcc823ac2e0 --- /dev/null +++ b/i18n/trk/src/vs/platform/issue/electron-main/issueService.i18n.json @@ -0,0 +1,10 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "issueReporter": "Sorun Bildirici" +} \ No newline at end of file diff --git a/i18n/trk/src/vs/platform/list/browser/listService.i18n.json b/i18n/trk/src/vs/platform/list/browser/listService.i18n.json index 39d837e65a9..8cc26093046 100644 --- a/i18n/trk/src/vs/platform/list/browser/listService.i18n.json +++ b/i18n/trk/src/vs/platform/list/browser/listService.i18n.json @@ -8,5 +8,9 @@ ], "workbenchConfigurationTitle": "Çalışma Ekranı", "multiSelectModifier.ctrlCmd": "Windows ve Linux'da `Control` ve macOS'de `Command` ile eşleşir.", - "multiSelectModifier.alt": "Windows ve Linux'da `Alt` ve macOS'de `Option` ile eşleşir." + "multiSelectModifier.alt": "Windows ve Linux'da `Alt` ve macOS'de `Option` ile eşleşir.", + "multiSelectModifier": "Ağaç veya listelerdeki bir ögenin çoklu seçime fare ile eklenmesinde kullanılacak değiştirici(örneğin gezgin, açık düzenleyiciler ve scm görünümlerinde). `ctrlCmd` Windows ve Linux'da `Control` ve macOS'de `Command` ile eşleşir. 'Yana Aç' fare hareketleri - destekleniyorsa - birden çok seçim değiştiricisi ile çakışmayacak şekilde uyum sağlarlar.", + "openMode.singleClick": "Tek tıklamayla ögeleri aç.", + "openMode.doubleClick": "Çift tıklamayla ögeleri aç.", + "openModeModifier": "Ağaç ve listelerdeki ögelerin (destekleniyorsa) fare ile nasıl açılacağını denetler. Ögeleri tek tıklamayla açmak için `singleClick`, çift tıklamayla açmak için `doubleClick` olarak ayarlayın. Ağaçlardaki alt ögeler içeren ögeler için bu ayar üst ögenin tek veya çift tıklama tarafından genişletilmesini denetler. Bazı ağaç veya listelerin, bu ayar uygulanamaz ise görmezden gelmeyi seçebileceklerini unutmayın." } \ No newline at end of file diff --git a/i18n/trk/src/vs/platform/localizations/common/localizations.i18n.json b/i18n/trk/src/vs/platform/localizations/common/localizations.i18n.json new file mode 100644 index 00000000000..b6cafbaebda --- /dev/null +++ b/i18n/trk/src/vs/platform/localizations/common/localizations.i18n.json @@ -0,0 +1,17 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "vscode.extension.contributes.localizations": "Düzenleyiciye yerelleştirmeleri ekler", + "vscode.extension.contributes.localizations.languageId": "Görüntülenen dizelerin çevrileceği dilin kimliği.", + "vscode.extension.contributes.localizations.languageName": "Dilin İngilizcedeki adı.", + "vscode.extension.contributes.localizations.languageNameLocalized": "Dilin eklenen dildeki adı.", + "vscode.extension.contributes.localizations.translations": "Bu dille ilişkili çevirilerin listesi.", + "vscode.extension.contributes.localizations.translations.id": "Bu çevirinin ekleneceği VS Code veya Eklenti kimliği. VS Code kimliği her zaman `vscode` şeklindedir ve eklenti ise `yayinciAdi.eklentiAdi` biçiminde olmalıdır.", + "vscode.extension.contributes.localizations.translations.id.pattern": "Kimlik, VS Code çevirisi için `vscode` olmalı veya eklenti çevirisi için `yayinciAdi.eklentiAdi` biçiminde olmalıdır.", + "vscode.extension.contributes.localizations.translations.path": "Dilin çevirilerini içeren dosyaya göreli yol." +} \ No newline at end of file diff --git a/i18n/trk/src/vs/platform/theme/common/colorRegistry.i18n.json b/i18n/trk/src/vs/platform/theme/common/colorRegistry.i18n.json index 564b7359f4f..ac17b1c7b80 100644 --- a/i18n/trk/src/vs/platform/theme/common/colorRegistry.i18n.json +++ b/i18n/trk/src/vs/platform/theme/common/colorRegistry.i18n.json @@ -65,7 +65,12 @@ "editorWidgetBorder": "Editör araçlarının kenarlık rengi. Renk, araç bir kenarlığı olmasına karar verdiğinde ve renk hiçbir eklenti tarafından geçersiz kılınmadığında kullanılır.", "editorSelectionBackground": "Düzenleyici seçiminin rengi.", "editorSelectionForeground": "Yüksek karşıtlık için seçilen metnin rengi.", + "editorInactiveSelection": "Aktif olmayan bir düzenleyicideki seçimin rengi. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", + "editorSelectionHighlight": "Seçimle aynı içeriğe sahip bölgelerin rengi. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", "editorFindMatch": "Geçerli arama eşleşmesinin rengi.", + "findMatchHighlight": "Diğer arama eşleşmelerinin rengi. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", + "findRangeHighlight": "Aramayı sınırlandıran aralığın rengi. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", + "hoverHighlight": "Sözcüğün altında yer alan bağlantı vurgusu. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", "hoverBackground": "Düzenleyici bağlantı vurgusunun arka plan rengi.", "hoverBorder": "Düzenleyici bağlantı vurgusunun kenarlık rengi.", "activeLinkForeground": "Aktif bağlantıların rengi.", @@ -73,8 +78,14 @@ "diffEditorRemoved": "Çıkarılan metnin arka plan rengi.", "diffEditorInsertedOutline": "Eklenen metnin ana hat rengi.", "diffEditorRemovedOutline": "Çıkarılan metnin ana hat rengi.", + "mergeCurrentHeaderBackground": "Satır içi birleştirme çakışmalarında \"mevcut olan\" üstbilgisi arka planı. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", + "mergeCurrentContentBackground": "Satır içi birleştirme çakışmalarında mevcut olan içeriğin arka planı. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", + "mergeIncomingHeaderBackground": "Satır içi birleştirme çakışmalarında \"gelen değişiklik\" üstbilgisi arka planı. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", + "mergeIncomingContentBackground": "Satır içi birleştirme çakışmalarında gelen değişiklik içeriğinin arka planı. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", + "mergeCommonHeaderBackground": "Satır içi birleştirme çakışmalarında ortak ata üstbilgisi arka planı. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", + "mergeCommonContentBackground": "Satır içi birleştirme çakışmalarında ortak ata içeriğinin arka planı. Altta yer alan süslemeleri gizlememek için renk opak olmamalıdır.", "mergeBorder": "Satır içi birleştirme çakışmalarında üst bilgi ve ayırıcıdaki kenarlık rengi.", - "overviewRulerCurrentContentForeground": "Satır içi birleştirme çakışmalarında geçerli genel bakış cetveli ön planı.", + "overviewRulerCurrentContentForeground": "Satır içi birleştirme çakışmalarında \"mevcut olan\" için genel bakış cetveli ön planı.", "overviewRulerIncomingContentForeground": "Satır içi birleştirme çakışmalarında gelen genel bakış cetveli ön planı.", "overviewRulerCommonContentForeground": "Satır içi birleştirme çakışmalarında ortak ata genel bakış cetveli ön planı.", "overviewRulerFindMatchForeground": "Bulunan eşler için genel bakış cetvelinin işaretleyici rengi.", diff --git a/i18n/trk/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json b/i18n/trk/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json new file mode 100644 index 00000000000..5d1720a3df1 --- /dev/null +++ b/i18n/trk/src/vs/workbench/api/electron-browser/mainThreadWorkspace.i18n.json @@ -0,0 +1,14 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "folderStatusMessageAddSingleFolder": "'{0}' eklentisi çalışma alanına 1 klasör ekledi", + "folderStatusMessageAddMultipleFolders": "'{0}' eklentisi çalışma alanına {1} klasör ekledi", + "folderStatusMessageRemoveSingleFolder": "'{0}' eklentisi çalışma alanından 1 klasör kaldırdı", + "folderStatusMessageRemoveMultipleFolders": "'{0}' eklentisi çalışma alanından {1} klasör kaldırdı", + "folderStatusChangeFolder": "'{0}' eklentisi çalışma alanındaki klasörleri değiştirdi" +} \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/api/node/extHostTreeViews.i18n.json b/i18n/trk/src/vs/workbench/api/node/extHostTreeViews.i18n.json index f3ce8f685d1..d8a7f990546 100644 --- a/i18n/trk/src/vs/workbench/api/node/extHostTreeViews.i18n.json +++ b/i18n/trk/src/vs/workbench/api/node/extHostTreeViews.i18n.json @@ -6,5 +6,6 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "treeView.notRegistered": "Kayıtlı '{0}' Id'li ağaç görünümü yok." + "treeView.notRegistered": "Kayıtlı '{0}' Id'li ağaç görünümü yok.", + "treeView.duplicateElement": "{0} kimliğine sahip bir öge zaten kayıtlı" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/api/node/extHostWorkspace.i18n.json b/i18n/trk/src/vs/workbench/api/node/extHostWorkspace.i18n.json new file mode 100644 index 00000000000..c8e9b71ccda --- /dev/null +++ b/i18n/trk/src/vs/workbench/api/node/extHostWorkspace.i18n.json @@ -0,0 +1,10 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "updateerror": "'{0}' eklentisinin çalışma alanındaki klasörleri güncellemesi başarısız oldu: {1}" +} \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json b/i18n/trk/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json index fed5a431308..64026c9f1be 100644 --- a/i18n/trk/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json +++ b/i18n/trk/src/vs/workbench/browser/actions/toggleSidebarPosition.i18n.json @@ -6,5 +6,6 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "toggleSidebarPosition": "Kenar Çubuğu Konumunu Değiştir", "view": "Görüntüle" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/browser/parts/editor/editor.contribution.i18n.json b/i18n/trk/src/vs/workbench/browser/parts/editor/editor.contribution.i18n.json index abfea14e2c8..c2a46f7972c 100644 --- a/i18n/trk/src/vs/workbench/browser/parts/editor/editor.contribution.i18n.json +++ b/i18n/trk/src/vs/workbench/browser/parts/editor/editor.contribution.i18n.json @@ -22,6 +22,7 @@ "closeAllUnmodified": "Değiştirilmeyenleri Kapat", "closeAll": "Tümünü Kapat", "keepOpen": "Açık Tut", + "toggleInlineView": "Satır İçi Görünümü Aç/Kapat", "showOpenedEditors": "Açık Düzenleyicileri Göster", "keepEditor": "Düzenleyiciyi Tut", "closeEditorsInGroup": "Gruptaki Tüm Düzenleyicileri Kapat", diff --git a/i18n/trk/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json b/i18n/trk/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json new file mode 100644 index 00000000000..4e305d89305 --- /dev/null +++ b/i18n/trk/src/vs/workbench/browser/parts/editor/resourceViewer.i18n.json @@ -0,0 +1,19 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "sizeB": "{0}B", + "sizeKB": "{0}KB", + "sizeMB": "{0}MB", + "sizeGB": "{0}GB", + "sizeTB": "{0}TB", + "largeImageError": "Resim dosyası boyutu düzenleyicide görüntülemek için çok büyük (>1MB).", + "resourceOpenExternalButton": "Harici program kullanarak resmi aç", + "nativeBinaryError": "Dosya ikili olduğu, çok büyük olduğu veya desteklenmeyen bir metin kodlaması kullandığı için düzenleyicide görüntülenemiyor.", + "zoom.action.fit.label": "Resmin Tamamı", + "imgMeta": "{0}x{1} {2}" +} \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/browser/parts/views/viewsViewlet.i18n.json b/i18n/trk/src/vs/workbench/browser/parts/views/viewsViewlet.i18n.json index 35229bd6699..e77d9b82be0 100644 --- a/i18n/trk/src/vs/workbench/browser/parts/views/viewsViewlet.i18n.json +++ b/i18n/trk/src/vs/workbench/browser/parts/views/viewsViewlet.i18n.json @@ -5,5 +5,6 @@ "Licensed under the MIT License. See License.txt in the project root for license information.", "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." - ] + ], + "hideView": "Gizle" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/electron-browser/main.contribution.i18n.json b/i18n/trk/src/vs/workbench/electron-browser/main.contribution.i18n.json index 188a9f155b8..cd006e007f4 100644 --- a/i18n/trk/src/vs/workbench/electron-browser/main.contribution.i18n.json +++ b/i18n/trk/src/vs/workbench/electron-browser/main.contribution.i18n.json @@ -35,10 +35,11 @@ "panelDefaultLocation": "Panelin varsayılan konumunu denetler. Çalışma ekranının ya altında ya da sağında gösterilebilir.", "statusBarVisibility": "Çalışma ekranının altındaki durum çubuğunun görünürlüğünü denetler.", "activityBarVisibility": "Çalışma ekranındaki etkinlik çubuğunun görünürlüğünü denetler.", - "fontAliasing": "Çalışma ekranındaki yazı tipi yumuşatma yöntemini denetler.\n- default: Alt-piksel yazı tipi yumuşatma. Bu, çoğu retina olmayan ekranda en keskin metni verir\n- antialiased: Alt-pikselin tersine, pikselin seviyesine göre yazı tipini yumuşat. Yazı tipinin genel olarak daha açık görünmesini sağlayabilir\n- none: Yazı tipi yumuşatmayı devre dışı bırakır. Metin pürüzlü keskin kenarlarla gösterilir.", + "fontAliasing": "Çalışma ekranındaki yazı tipi yumuşatma yöntemini denetler.\n- default: Alt-piksel yazı tipi yumuşatma. Bu, çoğu retina olmayan ekranda en keskin metni verir\n- antialiased: Alt-pikselin tersine, pikselin seviyesine göre yazı tipini yumuşat. Yazı tipinin genel olarak daha açık görünmesini sağlayabilir\n- none: Yazı tipi yumuşatmayı devre dışı bırakır. Metin pürüzlü keskin kenarlarla gösterilir.\n- auto: Ekranların DPI'ına göre otomatik olarak `default` veya`antialiased`ı uygular.", "workbench.fontAliasing.default": "Alt-piksel yazı tipi yumuşatma. Bu, çoğu retina olmayan ekranda en keskin metni verir.", "workbench.fontAliasing.antialiased": "Alt-pikselin tersine, pikselin seviyesine göre yazı tipini yumuşat. Yazı tipinin genel olarak daha açık görünmesini sağlayabilir.", "workbench.fontAliasing.none": "Yazı tipi yumuşatmayı devre dışı bırakır. Metin pürüzlü keskin kenarlarla gösterilir.", + "workbench.fontAliasing.auto": "Ekranların DPI'ına göre otomatik olarak `default` veya `antialiased`ı uygular.", "enableNaturalLanguageSettingsSearch": "Ayarlar için doğal dil arama modunun etkinleştirilip etkinleştirilmeyeceğini denetler.", "windowConfigurationTitle": "Pencere", "window.openFilesInNewWindow.on": "Dosyalar yeni bir pencerede açılacak", diff --git a/i18n/trk/src/vs/workbench/parts/debug/browser/debugActionsWidget.i18n.json b/i18n/trk/src/vs/workbench/parts/debug/browser/debugActionsWidget.i18n.json index 5a6b002e1f5..3d7ac474b05 100644 --- a/i18n/trk/src/vs/workbench/parts/debug/browser/debugActionsWidget.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/debug/browser/debugActionsWidget.i18n.json @@ -6,5 +6,6 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "debugToolBarBackground": "Hata ayıklama araç çubuğu arka plan rengi." + "debugToolBarBackground": "Hata ayıklama araç çubuğu arka plan rengi.", + "debugToolBarBorder": "Hata ayıklama araç çubuğu kenarlık rengi." } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json b/i18n/trk/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json index 01a8261efc5..cd45b59aebc 100644 --- a/i18n/trk/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.i18n.json @@ -21,6 +21,8 @@ "vscode.extension.contributes.debuggers.configurationAttributes": "'launch.json' dosyasını doğrulayacak JSON şema yapılandırmaları.", "vscode.extension.contributes.debuggers.windows": "Windows'a özel ayarlar.", "vscode.extension.contributes.debuggers.windows.runtime": "Windows'da kullanılacak çalışma zamanı.", + "vscode.extension.contributes.debuggers.osx": "macOS'e özel ayarlar.", + "vscode.extension.contributes.debuggers.osx.runtime": "macOS'de kullanılacak çalışma zamanı.", "vscode.extension.contributes.debuggers.linux": "Linux'a özel ayarlar.", "vscode.extension.contributes.debuggers.linux.runtime": "Linux'da kullanılacak çalışma zamanı.", "vscode.extension.contributes.breakpoints": "Kesme noktalarına ekleme yapar.", @@ -30,8 +32,11 @@ "app.launch.json.configurations": "Yapılandırma listesi. IntelliSense kullanarak yeni yapılandırmalar ekleyin veya mevcut olanları düzenleyin.", "app.launch.json.compounds": "Bileşikler listesi. Her bileşik, birlikte çalıştırılacak birden çok yapılandırmaya başvurur.", "app.launch.json.compound.name": "Bileşiğin adı. Başlatma yapılandırması açılır kutu menüsünde görünür.", + "useUniqueNames": "Lütfen benzersiz yapılandırma adları kullanın.", "app.launch.json.compounds.configurations": "Bu bileşiğin parçası olarak başlatılacak yapılandırmaların adları.", "debugNoType": "Hata ayıklama bağdaştırıcısının 'type' ögesi atlanabilir veya 'dize' türünde olmalıdır.", "selectDebug": "Ortam Seçin", - "DebugConfig.failed": " '.vscode' klasörü içinde 'launch.json' dosyası oluşturulamıyor ({0})." + "DebugConfig.failed": " '.vscode' klasörü içinde 'launch.json' dosyası oluşturulamıyor ({0}).", + "workspace": "çalışma alanı", + "user settings": "kullanıcı ayarları" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json b/i18n/trk/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json index a005682b40c..6460a155a16 100644 --- a/i18n/trk/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/debug/electron-browser/debugService.i18n.json @@ -19,12 +19,13 @@ "debugRequesMissing": "'{0}' özniteliği seçilen hata ayıklama yapılandırılmasında eksik.", "debugTypeNotSupported": "Yapılandırılan hata ayıklama türü '{0}', desteklenmiyor.", "debugTypeMissing": "Seçilen başlatma yapılandırmasında `type` özelliği eksik.", - "debugAnyway": "Yine de Hata Ayıkla", "preLaunchTaskErrors": "'{0}' ön başlatma görevi sırasında derleme hataları algılandı.", "preLaunchTaskError": "'{0}' ön başlatma görevi sırasında derleme hatası algılandı.", "preLaunchTaskExitCode": "'{0}' ön başlatma görevi {1} çıkış koduyla sonlandı.", + "debugAnyway": "Yine de Hata Ayıkla", + "showErrors": "Hataları Göster", + "cancel": "İptal", "noFolderWorkspaceDebugError": "Aktif dosyada hata ayıklama yapılamıyor. Lütfen, dosyanın diskte kayıtlı olduğundan ve bu dosya türü için hata ayıklama eklentinizin olduğundan emin olun.", - "NewLaunchConfig": "Lütfen uygulamanızın başlatma yapılandırması dosyasını ayarlayın. {0}", "DebugTaskNotFound": "'{0}' ön başlatma görevi bulunamadı.", "taskNotTracked": "'{0}' başlatma öncesi görevi izlenemez." } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json b/i18n/trk/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json index 1643630ee3b..0899baae717 100644 --- a/i18n/trk/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/extensions/browser/extensionEditor.i18n.json @@ -33,6 +33,8 @@ "view id": "ID", "view name": "Adı", "view location": "Yeri", + "localizations language id": "Dil Kimliği", + "localizations language name": "Dil Adı", "colorThemes": "Renk Temaları ({0})", "iconThemes": "Simge Temaları ({0})", "colors": "Renkler ({0})", diff --git a/i18n/trk/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json b/i18n/trk/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json index 4b621394ed3..d8103706cda 100644 --- a/i18n/trk/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/extensions/browser/extensionsActions.i18n.json @@ -52,6 +52,8 @@ "configureWorkspaceRecommendedExtensions": "Tavsiye Edilen Eklentileri Yapılandır (Çalışma Alanı)", "configureWorkspaceFolderRecommendedExtensions": "Tavsiye Edilen Eklentileri Yapılandır (Çalışma Alanı Klasörü)", "builtin": "Yerleşik", + "malicious tooltip": "Bu eklentinin sorunlu olduğu bildirildi.", + "malicious": "Kötü amaçlı", "disableAll": "Yüklü Tüm Eklentileri Devre Dışı Bırak", "disableAllWorkspace": "Bu Çalışma Alanı için Yüklü Tüm Eklentileri Devre Dışı Bırak", "enableAll": "Yüklü Tüm Eklentileri Etkinleştir", diff --git a/i18n/trk/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.i18n.json b/i18n/trk/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.i18n.json index c9cf7c16e7f..cdc94b0f213 100644 --- a/i18n/trk/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.i18n.json @@ -15,6 +15,8 @@ "reallyRecommendedExtensionPack": "'{0}' eklenti paketi bu dosya türü için tavsiye edilir.", "showRecommendations": "Tavsiyeleri Göster", "install": "Yükle", + "showLanguageExtensions": "Markette '.{0}' dosyaları için yardımcı olabilecek eklentiler bulunuyor", + "searchMarketplace": "Marketi Ara", "workspaceRecommended": "Bu çalışma alanı bazı eklentileri tavsiye ediyor.", "installAll": "Tümünü Yükle", "ignoreExtensionRecommendations": "Tüm eklenti tavsiyelerini yok saymak istiyor musunuz?", diff --git a/i18n/trk/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json b/i18n/trk/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json index 2f32c76c3b9..8a7b64b5ad3 100644 --- a/i18n/trk/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/extensions/electron-browser/extensionsViewlet.i18n.json @@ -18,5 +18,7 @@ "sort by name": "Sırala: Ada Göre", "suggestProxyError": "Market, 'ECONNREFUSED' döndürdü. Lütfen 'http.proxy' ayarını kontrol edin.", "extensions": "Eklentiler", - "outdatedExtensions": "{0} Eski Eklenti" + "outdatedExtensions": "{0} Eski Eklenti", + "malicious warning": "'{0}' eklentisini sorunlu olarak bildirildiği için kaldırdık.", + "reloadNow": "Şimdi Yeniden Yükle" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json b/i18n/trk/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json index 44cbfb8c87d..e8da73abc2b 100644 --- a/i18n/trk/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.i18n.json @@ -6,6 +6,10 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "installingVSIXExtension": "VSIX'den eklenti yükle...", + "malicious": "Bu eklentinin sorunlu olduğu bildirildi.", + "installingMarketPlaceExtension": "Marketten eklenti yükleniyor...", + "uninstallingExtension": "Eklenti kaldırılıyor...", "enableDependeciesConfirmation": "'{0}' eklentisini etkinleştirdiğinizde onun bağımlılıkları da etkinleştirilir. Devam etmek istiyor musunuz?", "enable": "Evet", "doNotEnable": "Hayır", diff --git a/i18n/trk/src/vs/workbench/parts/feedback/electron-browser/feedback.contribution.i18n.json b/i18n/trk/src/vs/workbench/parts/feedback/electron-browser/feedback.contribution.i18n.json index ebda79ea1d4..2cb4c52d6df 100644 --- a/i18n/trk/src/vs/workbench/parts/feedback/electron-browser/feedback.contribution.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/feedback/electron-browser/feedback.contribution.i18n.json @@ -6,5 +6,6 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "workbenchConfigurationTitle": "Çalışma Ekranı" + "workbenchConfigurationTitle": "Çalışma Ekranı", + "feedbackVisibility": "Çalışma ekranının altındaki durum çubuğunda bulunan Twitter geri bildiriminin (gülen yüz) görünürlüğünü denetler." } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/feedback/electron-browser/feedback.i18n.json b/i18n/trk/src/vs/workbench/parts/feedback/electron-browser/feedback.i18n.json index 3303043a37d..bfd7bcf27b2 100644 --- a/i18n/trk/src/vs/workbench/parts/feedback/electron-browser/feedback.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/feedback/electron-browser/feedback.i18n.json @@ -18,6 +18,7 @@ "request a missing feature": "Eksik bir özellik talebinde bulun", "tell us why?": "Bize nedenini söyleyin:", "commentsHeader": "Açıklamalar", + "showFeedback": "Durum Çubuğunda Geri Bildirim Gülen Yüzünü Göster", "tweet": "Tweet'le", "character left": "karakter kaldı", "characters left": "karakter kaldı", diff --git a/i18n/trk/src/vs/workbench/parts/files/electron-browser/fileActions.contribution.i18n.json b/i18n/trk/src/vs/workbench/parts/files/electron-browser/fileActions.contribution.i18n.json index 682bcf058c0..4dde2a5cf5f 100644 --- a/i18n/trk/src/vs/workbench/parts/files/electron-browser/fileActions.contribution.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/files/electron-browser/fileActions.contribution.i18n.json @@ -26,6 +26,7 @@ "compareWithSaved": "Kaydedilenle Karşılaştır", "compareWithSelected": "Seçilenle Karşılaştır", "compareSource": "Karşılaştırma İçin Seç", + "compareSelected": "Seçilenle Karşılaştır", "close": "Kapat", "closeOthers": "Diğerlerini Kapat", "closeUnmodified": "Değiştirilmeyenleri Kapat", diff --git a/i18n/trk/src/vs/workbench/parts/files/electron-browser/fileActions.i18n.json b/i18n/trk/src/vs/workbench/parts/files/electron-browser/fileActions.i18n.json index 1d64273bf7f..e7b7c9e3b18 100644 --- a/i18n/trk/src/vs/workbench/parts/files/electron-browser/fileActions.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/files/electron-browser/fileActions.i18n.json @@ -20,15 +20,18 @@ "deleteButtonLabelRecycleBin": "&&Geri Dönüşüm Kutusuna Taşı", "deleteButtonLabelTrash": "&&Çöp Kutusuna Taşı", "deleteButtonLabel": "&&Sil", + "dirtyMessageFilesDelete": "Kaydedilmemiş değişiklik barındıran dosyaları siliyorsunuz. Devam etmek istiyor musunuz?", "dirtyMessageFolderOneDelete": "1 dosyada kaydedilmemiş değişiklik barındıran bir klasörü siliyorsunuz. Devam etmek istiyor musunuz?", "dirtyMessageFolderDelete": "{0} dosyada kaydedilmemiş değişiklik barındıran bir klasörü siliyorsunuz. Devam etmek istiyor musunuz?", "dirtyMessageFileDelete": "Kaydedilmemiş değişiklik barındıran bir dosyayı siliyorsunuz. Devam etmek istiyor musunuz?", "dirtyWarning": "Değişiklikleriniz, kaydetmezseniz kaybolur.", + "confirmMoveTrashMessageMultiple": "Aşağıdaki {0} dosyayı silmek istediğinizden emin misiniz?", "confirmMoveTrashMessageFolder": "'{0}' ve içindekileri silmek istediğinizden emin misiniz?", "confirmMoveTrashMessageFile": "'{0}' öğesini silmek istediğinize emin misiniz?", "undoBin": "Geri dönüşüm kutusundan geri alabilirsiniz.", "undoTrash": "Çöp kutusundan geri alabilirsiniz.", "doNotAskAgain": "Bir daha sorma", + "confirmDeleteMessageMultiple": "Aşağıdaki {0} dosyayı kalıcı olarak silmek istediğinizden emin misiniz?", "confirmDeleteMessageFolder": "'{0}' öğesini ve içindekileri kalıcı olarak silmek istediğinizden emin misiniz?", "confirmDeleteMessageFile": "'{0}' öğesini kalıcı olarak silmek istediğinizden emin misiniz?", "irreversible": "Bu eylem geri döndürülemez!", diff --git a/i18n/trk/src/vs/workbench/parts/files/electron-browser/files.contribution.i18n.json b/i18n/trk/src/vs/workbench/parts/files/electron-browser/files.contribution.i18n.json index f9c4104f6fe..16f13358790 100644 --- a/i18n/trk/src/vs/workbench/parts/files/electron-browser/files.contribution.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/files/electron-browser/files.contribution.i18n.json @@ -38,6 +38,7 @@ "editorConfigurationTitle": "Düzenleyici", "formatOnSave": "Dosyayı kaydederken biçimlendir. Bir biçimlendirici mevcut olmalıdır, dosya otomatik olarak kaydedilmemelidir, ve düzenleyici kapanmıyor olmalıdır.", "explorerConfigurationTitle": "Dosya Gezgini", + "openEditorsVisible": "Açık Düzenleyiciler bölmesinde gösterilen düzenleyici sayısı.", "autoReveal": "Gezginin dosyaları açarken, onları otomatik olarak ortaya çıkartmasını ve seçmesini denetler.", "enableDragAndDrop": "Gezgeinin sürükle bırak ile dosyaları ve klasörleri taşımaya izin verip vermeyeceğini denetler.", "confirmDragAndDrop": "Gezginin, sürükle bırak ile dosyalar ve klasörlerin taşındığı zaman onay isteyip istemeyeceğini denetler.", diff --git a/i18n/trk/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.i18n.json b/i18n/trk/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.i18n.json index ac7329c0d1c..0f152512cf0 100644 --- a/i18n/trk/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/files/electron-browser/views/explorerViewer.i18n.json @@ -12,6 +12,7 @@ "dropFolder": "Klasörü çalışma alanına eklemek istiyor musunuz?", "addFolders": "Klasörleri &&Ekle", "addFolder": "Klasörü &&Ekle", + "confirmMultiMove": "Aşağıdaki {0} dosyayı taşımak istediğinizden emin misiniz?", "confirmMove": "'{0}' ögesini taşımak istediğinizden emin misiniz?", "doNotAskAgain": "Bir daha sorma", "moveButtonLabel": "&&Taşı", diff --git a/i18n/trk/src/vs/workbench/parts/logs/electron-browser/logs.contribution.i18n.json b/i18n/trk/src/vs/workbench/parts/logs/electron-browser/logs.contribution.i18n.json index 3ee9881d488..e9f359925ec 100644 --- a/i18n/trk/src/vs/workbench/parts/logs/electron-browser/logs.contribution.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/logs/electron-browser/logs.contribution.i18n.json @@ -9,5 +9,6 @@ "mainLog": "Günlük (Temel)", "sharedLog": "Günlük (Ortak)", "rendererLog": "Günlük (Pencere)", + "extensionsLog": "Günlük (Eklenti Sunucusu)", "developer": "Geliştirici" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json b/i18n/trk/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json index 7a3b53e9e49..993f35e4e17 100644 --- a/i18n/trk/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/logs/electron-browser/logsActions.i18n.json @@ -8,16 +8,23 @@ ], "openLogsFolder": "Günlük Klasörünü Aç", "showLogs": "Günlükleri Göster...", - "mainProcess": "Temel", - "sharedProcess": "Ortak", - "rendererProcess": "Pencere", + "rendererProcess": "Pencere ({0})", + "emptyWindow": "Pencere", "extensionHost": "Eklenti Sunucusu", - "selectProcess": "İşlem seçin", + "sharedProcess": "Ortak", + "mainProcess": "Temel", + "selectProcess": "İşlem için Günlük Seçin", + "openLogFile": "Günlük Dosyasını Aç...", "setLogLevel": "Günlük Düzeyini Ayarla", "trace": "İzle", "debug": "Hata Ayıklama", "info": "Bilgi", "warn": "Uyarı", "err": "Hata", - "selectLogLevel": "Günlük düzeyini seçin" + "critical": "Kritik", + "off": "Kapalı", + "selectLogLevel": "Günlük düzeyini seçin", + "default and current": "Varsayılan & Geçerli Olan", + "default": "Varsayılan", + "current": "Geçerli Olan" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/markers/common/markers.i18n.json b/i18n/trk/src/vs/workbench/parts/markers/common/markers.i18n.json new file mode 100644 index 00000000000..03c12e0efce --- /dev/null +++ b/i18n/trk/src/vs/workbench/parts/markers/common/markers.i18n.json @@ -0,0 +1,11 @@ +{ + "": [ + "--------------------------------------------------------------------------------------------", + "Copyright (c) Microsoft Corporation. All rights reserved.", + "Licensed under the MIT License. See License.txt in the project root for license information.", + "--------------------------------------------------------------------------------------------", + "Do not edit this file. It is machine generated." + ], + "totalProblems": "Toplam {0} Sorun", + "filteredProblems": "{1} Sorundan {0} Tanesi Gösteriliyor" +} \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/markers/common/messages.i18n.json b/i18n/trk/src/vs/workbench/parts/markers/common/messages.i18n.json index de410ced52d..6f51355c9d1 100644 --- a/i18n/trk/src/vs/workbench/parts/markers/common/messages.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/markers/common/messages.i18n.json @@ -7,6 +7,8 @@ "Do not edit this file. It is machine generated." ], "viewCategory": "Görüntüle", + "problems.view.toggle.label": "Sorunları Aç/Kapat (Hatalar, Uyarılar, Bilgiler)", + "problems.view.focus.label": "Sorunlara Odakla (Hatalar, Uyarılar, Bilgiler)", "problems.panel.configuration.title": "Sorunlar Görünümü", "problems.panel.configuration.autoreveal": "Sorunlar görünümünün; dosyalar açılırken, dosyaları otomatik olarak ortaya çıkarıp çıkarmayacağını denetler.", "markers.panel.title.problems": "Sorunlar", diff --git a/i18n/trk/src/vs/workbench/parts/output/electron-browser/output.contribution.i18n.json b/i18n/trk/src/vs/workbench/parts/output/electron-browser/output.contribution.i18n.json index 5e7696ab8c3..ddb5af6067c 100644 --- a/i18n/trk/src/vs/workbench/parts/output/electron-browser/output.contribution.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/output/electron-browser/output.contribution.i18n.json @@ -7,6 +7,7 @@ "Do not edit this file. It is machine generated." ], "output": "Çıktı", + "logViewer": "Günlük Görüntüleyici", "viewCategory": "Görüntüle", "clearOutput.label": "Çıktıyı Temizle" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/output/electron-browser/outputServices.i18n.json b/i18n/trk/src/vs/workbench/parts/output/electron-browser/outputServices.i18n.json index 35229bd6699..b87f8651833 100644 --- a/i18n/trk/src/vs/workbench/parts/output/electron-browser/outputServices.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/output/electron-browser/outputServices.i18n.json @@ -5,5 +5,7 @@ "Licensed under the MIT License. See License.txt in the project root for license information.", "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." - ] + ], + "output": "{0} - Çıktı", + "channel": "'{0}' için çıktı kanalı" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json b/i18n/trk/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json index 7d73b3eeb45..c7efb518f98 100644 --- a/i18n/trk/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/preferences/browser/keybindingsEditor.i18n.json @@ -17,8 +17,9 @@ "addLabel": "Tuş Bağını Ekle", "removeLabel": "Tuş Bağını Kaldır", "resetLabel": "Tuş Bağını Sıfırla", - "showConflictsLabel": "Çakışmaları Göster", + "showSameKeybindings": "Aynı Tuş Bağlarını Göster", "copyLabel": "Kopyala", + "copyCommandLabel": "Komutu Kopyala", "error": "Tuş bağını düzenlerken '{0}' hatası. Lütfen 'keybindings.json' dosyasını açın ve kontrol edin.", "command": "Command", "keybinding": "Tuş bağı", diff --git a/i18n/trk/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json b/i18n/trk/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json index 07ebfc185ee..5205b6b6f58 100644 --- a/i18n/trk/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/preferences/browser/preferencesEditor.i18n.json @@ -10,9 +10,11 @@ "SearchSettingsWidget.AriaLabel": "Ayarları ara", "SearchSettingsWidget.Placeholder": "Ayarları Ara", "noSettingsFound": "Sonuç Yok", - "oneSettingFound": "1 ayar eşleşti", - "settingsFound": "{0} ayar eşleşti", + "oneSettingFound": "1 Ayar Bulundu", + "settingsFound": "{0} Ayar Bulundu", "totalSettingsMessage": "Toplam {0} Ayar", + "nlpResult": "Doğal Dil Sonuçları", + "filterResult": "Filtrelenmiş Sonuçlar", "defaultSettings": "Varsayılan Ayarlar", "defaultFolderSettings": "Varsayılan Klasör Ayarları", "defaultEditorReadonly": "Varsayılan ayarları geçersiz kılmak için sağ taraftaki düzeyicide düzenleme yapın.", diff --git a/i18n/trk/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json b/i18n/trk/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json index 83c2d47da03..4487758c401 100644 --- a/i18n/trk/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/scm/electron-browser/scm.contribution.i18n.json @@ -10,5 +10,7 @@ "source control": "Kaynak Kontrolü", "toggleSCMViewlet": "SCM'yi Göster", "view": "Görüntüle", - "scmConfigurationTitle": "SCM" + "scmConfigurationTitle": "SCM", + "alwaysShowProviders": "Kaynak Kontrolü Sağlayıcısı bölümünün her zaman gösterilip gösterilmeyeceği.", + "diffDecorations": "Düzenleyicideki farklar(diff) dekoratörlerini denetler." } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/search/browser/searchActions.i18n.json b/i18n/trk/src/vs/workbench/parts/search/browser/searchActions.i18n.json index 09c337a9ae9..d655bbf2c91 100644 --- a/i18n/trk/src/vs/workbench/parts/search/browser/searchActions.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/search/browser/searchActions.i18n.json @@ -18,6 +18,7 @@ "RefreshAction.label": "Yenile", "CollapseDeepestExpandedLevelAction.label": "Tümünü Daralt", "ClearSearchResultsAction.label": "Temizle", + "CancelSearchAction.label": "Aramayı İptal Et", "FocusNextSearchResult.label": "Sonraki Arama Sonucuna Odakla", "FocusPreviousSearchResult.label": "Önceki Arama Sonucuna Odakla", "RemoveAction.label": "Sonlandır", diff --git a/i18n/trk/src/vs/workbench/parts/search/electron-browser/search.contribution.i18n.json b/i18n/trk/src/vs/workbench/parts/search/electron-browser/search.contribution.i18n.json index 01513f787d3..33bb8c98744 100644 --- a/i18n/trk/src/vs/workbench/parts/search/electron-browser/search.contribution.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/search/electron-browser/search.contribution.i18n.json @@ -23,5 +23,7 @@ "useRipgrep": "Metin ve dosya aramasında Ripgrep kullanılıp kullanılmayacağını denetler", "useIgnoreFiles": "Dosyaları ararken .gitignore ve .ignore dosyalarının kullanılıp kullanılmayacağını denetler.", "search.quickOpen.includeSymbols": "Dosya sonuçlarındaki bir global sembol aramasının sonuçlarının Hızlı Aç'a dahil edilip edilmeyeceğini yapılandırın.", - "search.followSymlinks": "Arama yaparken sembolik linklerin takip edilip edilmeyeceğini denetler." + "search.followSymlinks": "Arama yaparken sembolik linklerin takip edilip edilmeyeceğini denetler.", + "search.smartCase": "Örüntü tamamen küçük harflerden oluşuyorsa büyük küçük harf duyarlılığı olmadan arar, diğer durumda ise büyük küçük harf duyarlılığı ile arar", + "search.globalFindClipboard": "macOS'de Arama Görünümünün paylaşılan panoyu okuyup okumamasını veya değiştirip değiştirmemesini denetler" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/configureSnippets.i18n.json b/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/configureSnippets.i18n.json index 8433367f5b6..370e3ca46f1 100644 --- a/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/configureSnippets.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/configureSnippets.i18n.json @@ -6,6 +6,12 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "global.scope": "(global)", "global.1": "({0})", + "new.global": "Yeni Global Parçacıklar dosyası...", + "group.global": "Mevcut Parçacıklar", + "new.global.sep": "Yeni Parçacıklar", + "openSnippet.pickLanguage": "Parçacıklar Dosyası Seç veya Parçacık Oluştur", + "openSnippet.label": "Kullanıcı Parçacıklarını Yapılandır", "preferences": "Tercihler" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/snippets.contribution.i18n.json b/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/snippets.contribution.i18n.json index 8d83a146a1f..61a732f0568 100644 --- a/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/snippets.contribution.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/snippets.contribution.i18n.json @@ -10,5 +10,6 @@ "snippetSchema.json": "Kullanıcı parçacığı yapılandırması", "snippetSchema.json.prefix": "Parçacığı IntelliSense'de seçerken kullanılacak ön ek", "snippetSchema.json.body": "Parçacık içeriği. İmleç konumlarını tanımlamak için '$1', '${1:varsayilanMetin}' kullanın, en son imleç konumu için '$0' kullanın. Değişken değerlerini '${degiskenAdi}' ve '${degiskenAdi:varsayilanMetin}' ile ekleyin, ör. 'Bu bir dosyadır: $TM_FILENAME'.", - "snippetSchema.json.description": "Parçacık açıklaması." + "snippetSchema.json.description": "Parçacık açıklaması.", + "snippetSchema.json.scope": "Bu parçacığın uygulanacağı dillerin bir listesi, ör: 'typescript,javascript'." } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/snippetsFile.i18n.json b/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/snippetsFile.i18n.json index f2aecfb88ad..334b2419218 100644 --- a/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/snippetsFile.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/snippetsFile.i18n.json @@ -6,5 +6,6 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "source.snippetGlobal": "Global Kullanıcı Parçacığı", "source.snippet": "Kullanıcı Parçacığı" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/snippetsService.i18n.json b/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/snippetsService.i18n.json index 0922077f146..c12f98f1f7d 100644 --- a/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/snippetsService.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/snippets/electron-browser/snippetsService.i18n.json @@ -7,6 +7,7 @@ "Do not edit this file. It is machine generated." ], "invalid.path.0": "`contributes.{0}.path` ögesinde dize bekleniyor. Sağlanan değer: {1}", + "invalid.language.0": "Dil atlanırken `contributes.{0}.path`in değeri bir `.code-snippets` dosyası olmalıdır. Belirtilen değer {1}", "invalid.language": "`contributes.{0}.language` ögesinde bilinmeyen dil. Sağlanan değer: {1}", "invalid.path.1": "`contributes.{0}.path` ögesinin ({1}) eklentinin klasöründe ({2}) yer alması bekleniyor. Bu, eklentiyi taşınamaz yapabilir.", "vscode.extension.contributes.snippets": "Parçacıklara ekleme yapar.", diff --git a/i18n/trk/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json b/i18n/trk/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json index 08ebf43ab5b..8edb00a2a6a 100644 --- a/i18n/trk/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/tasks/electron-browser/jsonSchema_v2.i18n.json @@ -21,10 +21,10 @@ "JsonSchema.tasks.terminal": "'terminal' özelliği kullanım dışıdır. Bunun yerine 'presentation' özelliğini kullanın.", "JsonSchema.tasks.group.kind": "Görevin yürütme grubu.", "JsonSchema.tasks.group.isDefault": "Bu görevin, gruptaki varsayılan görev olup olmadığını tanımlar.", - "JsonSchema.tasks.group.defaultBuild": "Bu görevi varsayılan derleme görevi olarak işaretler.", - "JsonSchema.tasks.group.defaultTest": "Bu görevi varsayılan test görevi olarak işaretler.", - "JsonSchema.tasks.group.build": "Görevleri 'Derleme Görevini Çalıştır' komutu ile ulaşılabilecek şekilde bir derleme görevi olarak işaretler.", - "JsonSchema.tasks.group.test": "Görevleri 'Test Görevini Çalıştır' komutu ile ulaşılabilecek şekilde bir test görevi olarak işaretler.", + "JsonSchema.tasks.group.defaultBuild": "Görevi varsayılan derleme görevi olarak işaretler.", + "JsonSchema.tasks.group.defaultTest": "Görevi varsayılan test görevi olarak işaretler.", + "JsonSchema.tasks.group.build": "Görevi 'Derleme Görevini Çalıştır' komutu ile ulaşılabilecek şekilde bir derleme görevi olarak işaretler.", + "JsonSchema.tasks.group.test": "Görevi 'Test Görevini Çalıştır' komutu ile ulaşılabilecek şekilde bir test görevi olarak işaretler.", "JsonSchema.tasks.group.none": "Görevi grupsuz olarak atar", "JsonSchema.tasks.group": "Bu görevin ait olduğu çalıştırma grubunu tanımlar. Derleme grubuna eklemek için \"build\"ı ve test grubuna eklemek için \"test\"i destekler.", "JsonSchema.tasks.type": "Görevin bir işlem olarak veya bir kabukta komut olarak çalıştırılıp çalıştırılmayacağını tanımlar.", diff --git a/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json b/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json index 0d33a004b23..fd4be9a7654 100644 --- a/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminal.contribution.i18n.json @@ -15,21 +15,26 @@ "terminal.integrated.shellArgs.osx": "OS X terminalindeyken kullanılacak komut satırı argümanları.", "terminal.integrated.shell.windows": "Terminalin Windows'da kullandığı kabuğun yolu. Windows ile birlikte gelen kabukları kullanırken (cmd, PowerShell veya Bash on Ubuntu) uygulanır.", "terminal.integrated.shellArgs.windows": "Windows terminalindeyken kullanılacak komut satırı argümanları.", + "terminal.integrated.macOptionIsMeta": "macOS'de terminalde option tuşuna, meta tuşu gibi davran.", "terminal.integrated.rightClickCopyPaste": "Ayarlandığında, terminal içinde sağ tıklandığında bağlam menüsünün görünmesini engeller, onun yerine bir seçim varsa kopyalama yapar, bir seçim yoksa yapıştırma yapar.", + "terminal.integrated.copyOnSelection": "Ayarlandığında, terminalde seçilen metin panoya kopyalanır.", "terminal.integrated.fontFamily": "Terminalin yazı tipi ailesini denetler; bu, varsayılan olarak editor.fontFamily'nin değeridir.", "terminal.integrated.fontSize": "Terminaldeki yazı tipi boyutunu piksel olarak denetler.", "terminal.integrated.lineHeight": "Terminalin satır yüksekliğini denetler, bu sayı gerçek satır yüksekliğini piksel olarak elde etmek için terminal yazı tipi boyutu ile çarpılır.", - "terminal.integrated.enableBold": "Terminalde kalın yazının etkinleştirilip etkinleştirilmeyeceği; bu, terminal kabuğunun desteğini gerektirir.", + "terminal.integrated.fontWeight": "Terminalde kalın olmayan metinler için kullanılacak yazı tipi kalınlığı.", + "terminal.integrated.fontWeightBold": "Terminalde kalın metinler için kullanılacak yazı tipi kalınlığı.", "terminal.integrated.cursorBlinking": "Terminaldeki imlecin yanıp sönmesini denetler.", "terminal.integrated.cursorStyle": "Terminaldeki imlecin stilini denetler.", "terminal.integrated.scrollback": "Terminalin tamponunda tuttuğu maksimum satır sayısını denetler.", "terminal.integrated.setLocaleVariables": "Terminal başlangıcında yereli içeren değişkenlerin ayarlanıp ayarlanmayacağını denetler; bu, OS X'de varsayılan olarak açıktır, diğer platformlarda kapalıdır.", "terminal.integrated.cwd": "Terminalin nerede başlatılacağına ait açık bir yol; bu, kabuk işlemleri için geçerli çalışma klasörü (cwd) olarak kullanılır. Bu, çalışma alanı ayarlarında kök dizini uygun bir cwd değilse özellikle yararlı olabilir.", "terminal.integrated.confirmOnExit": "Aktif terminal oturumları varken çıkışta onay istenip istenmeyeceği.", + "terminal.integrated.enableBell": "Terminal zilinin etkin olup olmadığı.", "terminal.integrated.commandsToSkipShell": "Tuş bağlarının kabuğa gönderilmeyip bunun yerine her zaman Code tarafından işleneceği bir komut ID'leri kümesi. Bu, tuş bağlarının normalde kabuk tarafından terminal odakta değilken nasılsa öyle davranmasını sağlar, örnek olarak Hızlı Aç'ı başlatmak için ctrl+p.", "terminal.integrated.env.osx": "OS X'deki terminal tarafından kullanılacak VS Code işlemine eklenecek ortam değişkenlerini içeren nesne", "terminal.integrated.env.linux": "Linux'daki terminal tarafından kullanılacak VS Code işlemine eklenecek ortam değişkenlerini içeren nesne", "terminal.integrated.env.windows": "Windows'daki terminal tarafından kullanılacak VS Code işlemine eklenecek ortam değişkenlerini içeren nesne", + "terminal.integrated.showExitAlert": "Çıkış kodu sıfır değilse `Terminal işlemi çıkış koduyla sonlandı` uyarısını göster.", "terminalCategory": "Terminal", "viewCategory": "Görüntüle" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json b/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json index aae4d5819f8..7109dbcd207 100644 --- a/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalActions.i18n.json @@ -16,6 +16,8 @@ "workbench.action.terminal.deleteWordRight": "Sağdaki Sözcüğü Sil", "workbench.action.terminal.new": "Yeni Entegre Terminal Oluştur", "workbench.action.terminal.new.short": "Yeni Terminal", + "workbench.action.terminal.newWorkspacePlaceholder": "Yeni terminal için geçerli çalışma dizinini seçin", + "workbench.action.terminal.newInActiveWorkspace": "(Aktif Çalışma Alanında) Yeni Entegre Terminal Oluştur", "workbench.action.terminal.focus": "Terminale Odakla", "workbench.action.terminal.focusNext": "Sonraki Terminale Odakla", "workbench.action.terminal.focusPrevious": "Önceki Terminale Odakla", diff --git a/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalColorRegistry.i18n.json b/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalColorRegistry.i18n.json index 40635a1b7f3..dcee4daf5c1 100644 --- a/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalColorRegistry.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalColorRegistry.i18n.json @@ -10,5 +10,6 @@ "terminal.foreground": "Terminalin ön plan rengi.", "terminalCursor.foreground": "Terminal imlecinin ön plan rengi.", "terminalCursor.background": "Terminal imlecinin arka plan rengi. Bir blok imlecinin kapladığı bir karakterin rengini özelleştirmeyi sağlar.", - "terminal.selectionBackground": "Terminalin seçim arkaplanı rengi." + "terminal.selectionBackground": "Terminalin seçim arkaplanı rengi.", + "terminal.ansiColor": "Terminalde '{0}' ANSI rengi." } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json b/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json index 9c59c75c35a..36924d0a44b 100644 --- a/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalInstance.i18n.json @@ -6,6 +6,8 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], + "terminal.integrated.a11yBlankLine": "Boş satır", + "terminal.integrated.a11yPromptLabel": "Terminal girdisi", "terminal.integrated.copySelection.noSelection": "Terminalde kopyalanacak bir seçim bulunmuyor", "terminal.integrated.exitedWithCode": "Terminal işlemi şu çıkış koduyla sonlandı: {0}", "terminal.integrated.waitOnExit": "Terminali kapatmak için lütfen bir tuşa basın", diff --git a/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalService.i18n.json b/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalService.i18n.json index 67d2c3126bf..faa8ac3b7e0 100644 --- a/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalService.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/terminal/electron-browser/terminalService.i18n.json @@ -9,6 +9,7 @@ "terminal.integrated.chooseWindowsShellInfo": "Özelleştir butonuna tıklayıp varsayılan terminal kabuğunu seçebilirsiniz.", "customize": "Özelleştir", "cancel": "İptal", + "never again": "Tamam, Tekrar Gösterme", "terminal.integrated.chooseWindowsShell": "Tercih ettiğiniz terminal kabuğunu seçin, bunu daha sonra ayarlarınızdan değiştirebilirsiniz", "terminalService.terminalCloseConfirmationSingular": "Aktif bir terminal oturumu var, sonlandırmak istiyor musunuz?", "terminalService.terminalCloseConfirmationPlural": "{0} aktif terminal oturumu var, bunları sonlandırmak istiyor musunuz?" diff --git a/i18n/trk/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json b/i18n/trk/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json index f5bce7b0566..75e36076d12 100644 --- a/i18n/trk/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/update/electron-browser/update.contribution.i18n.json @@ -8,5 +8,6 @@ ], "release notes": "Sürüm notları", "updateConfigurationTitle": "Güncelle", - "updateChannel": "Güncelleştirme kanalından otomatik güncelleştirmeler alıp almayacağınızı ayarlayın. Değişiklikten sonra yeniden başlatma gerektirir." + "updateChannel": "Güncelleştirme kanalından otomatik güncelleştirmeler alıp almayacağınızı ayarlayın. Değişiklikten sonra yeniden başlatma gerektirir.", + "enableWindowsBackgroundUpdates": "Windows arka plan güncelleştirmelerini etkinleştirir." } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/parts/update/electron-browser/update.i18n.json b/i18n/trk/src/vs/workbench/parts/update/electron-browser/update.i18n.json index 5ce93fc7a99..826d85fdb29 100644 --- a/i18n/trk/src/vs/workbench/parts/update/electron-browser/update.i18n.json +++ b/i18n/trk/src/vs/workbench/parts/update/electron-browser/update.i18n.json @@ -6,12 +6,10 @@ "--------------------------------------------------------------------------------------------", "Do not edit this file. It is machine generated." ], - "updateNow": "Şimdi Güncelle", "later": "Daha Sonra", "unassigned": "atanmamış", "releaseNotes": "Sürüm Notları", "showReleaseNotes": "Sürüm Notlarını Göster", - "downloadNow": "Şimdi İndir", "read the release notes": "{0} v{1} uygulamasına hoş geldiniz! Sürüm Notları'nı okumak ister misiniz?", "licenseChanged": "Lisans koşullarımız değişti, lütfen inceleyin.", "license": "Lisansı Oku", @@ -19,20 +17,24 @@ "64bitisavailable": "64-bit Windows için {0} şu an mevcut!", "learn more": "Daha Fazla Bilgi Edin", "updateIsReady": "Yeni {0} güncellemesi var.", - "thereIsUpdateAvailable": "Bir güncelleştirme var.", - "updateAvailable": "{0} yeniden başlatıldıktan sonra güncellenecektir.", "noUpdatesAvailable": "Şu anda mevcut herhangi bir güncelleme yok.", + "download now": "Şimdi İndir", + "thereIsUpdateAvailable": "Bir güncelleştirme var.", + "installUpdate": "Güncelleştirmeyi Yükle", + "updateAvailable": "Bir güncelleştirme var: {0} {1}", + "updateInstalling": "{0} {1} arka planda yükleniyor, bittiğinde bilgi vereceğiz.", + "updateNow": "Şimdi Güncelle", + "updateAvailableAfterRestart": "{0} yeniden başlatıldıktan sonra güncellenecektir.", "commandPalette": "Komut Paleti...", "settings": "Ayarlar", "keyboardShortcuts": "Klavye Kısayolları", "userSnippets": "Kullanıcı Parçacıkları", "selectTheme.label": "Renk Teması", "themes.selectIconTheme.label": "Dosya Simgesi Teması", - "not available": "Güncelleştirme Yok", + "checkForUpdates": "Güncelleştirmeleri Denetle...", "checkingForUpdates": "Güncelleştirmeler Denetleniyor...", - "DownloadUpdate": "Mevcut Güncelleştirmeyi İndir", "DownloadingUpdate": "Güncelleştirme İndiriliyor...", - "InstallingUpdate": "Güncelleştirme Yükleniyor...", - "restartToUpdate": "Güncelleştirmek için Yeniden Başlatın...", - "checkForUpdates": "Güncelleştirmeleri Denetle..." + "installUpdate...": "Güncelleştirmeyi Yükle...", + "installingUpdate": "Güncelleştirme Yükleniyor...", + "restartToUpdate": "Güncelleştirmek için Yeniden Başlatın..." } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json b/i18n/trk/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json index b6574e6f1ae..f7f50d5fde3 100644 --- a/i18n/trk/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json +++ b/i18n/trk/src/vs/workbench/services/configuration/common/configurationExtensionPoint.i18n.json @@ -21,6 +21,7 @@ "workspaceConfig.name.description": "Klasör için isteğe bağlı bir ad.", "workspaceConfig.uri.description": "Klasörün URI'si", "workspaceConfig.settings.description": "Çalışma alanı ayarları", + "workspaceConfig.launch.description": "Çalışma alanı başlatma yapılandırmaları", "workspaceConfig.extensions.description": "Çalışma alanı eklentileri", "unknownWorkspaceProperty": "Bilinmeyen çalışma alanı yapılandırması özelliği" } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json b/i18n/trk/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json index 6eb3f06cb05..8a25b192f20 100644 --- a/i18n/trk/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json +++ b/i18n/trk/src/vs/workbench/services/extensions/electron-browser/extensionPoints.i18n.json @@ -8,6 +8,6 @@ ], "jsonParseFail": "{0} ayrıştırılamadı: {1}.", "fileReadFail": "{0} dosyası okunamadı: {1}.", - "jsonsParseFail": "{0} veya {1} ayrıştırılamadı: {2}.", + "jsonsParseReportErrors": "{0} ayrıştırılamadı: {1}.", "missingNLSKey": "{0} anahtarı için mesaj bulunamadı." } \ No newline at end of file diff --git a/i18n/trk/src/vs/workbench/services/files/node/fileService.i18n.json b/i18n/trk/src/vs/workbench/services/files/node/fileService.i18n.json index 713e51c6993..0032045d6c1 100644 --- a/i18n/trk/src/vs/workbench/services/files/node/fileService.i18n.json +++ b/i18n/trk/src/vs/workbench/services/files/node/fileService.i18n.json @@ -12,6 +12,7 @@ "fileTooLargeError": "Dosya, açmak için çok büyük", "fileNotFoundError": "Dosya bulunamadı ({0})", "fileBinaryError": "Dosya ikili olarak görünüyor ve metin olarak açılamıyor", + "filePermission": "Dosya için yazma izni reddedildi ({0})", "fileExists": "Oluşturulacak dosya zaten mevcut ({0})", "fileMoveConflict": "Taşıma/kopyalama yapılamadı. Dosya, hedefte zaten mevcut.", "unableToMoveCopyError": "Taşıma/kopyalama yapılamadı. Dosya, içinde bulunduğu klasörü değiştiriyor.", diff --git a/i18n/trk/src/vs/workbench/services/keybinding/electron-browser/keybindingService.i18n.json b/i18n/trk/src/vs/workbench/services/keybinding/electron-browser/keybindingService.i18n.json index 7aa08ad66cc..a7322862329 100644 --- a/i18n/trk/src/vs/workbench/services/keybinding/electron-browser/keybindingService.i18n.json +++ b/i18n/trk/src/vs/workbench/services/keybinding/electron-browser/keybindingService.i18n.json @@ -24,5 +24,6 @@ "keybindings.json.when": "Tuşun aktif olacağı koşul", "keybindings.json.args": "Yürütülecek komuta iletilecek argümanlar.", "keyboardConfigurationTitle": "Klavye", - "dispatch": "Tuş basımlarının ya `code` (önerilen) ya da `keyCode` kullanarak gönderilmesini denetler." + "dispatch": "Tuş basımlarının ya `code` (önerilen) ya da `keyCode` kullanarak gönderilmesini denetler.", + "touchbar.enabled": "Varsa macOS dokunmatik çubuk düğmelerini etkinleştirir." } \ No newline at end of file diff --git a/package.json b/package.json index 3025beb449d..a31d663e45f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-oss-dev", "version": "1.20.0", - "distro": "d41bd1b8193403ffe9849b49fc37153e3d5b5a49", + "distro": "4043249e7a0ad8b60b7ad1cae7c80234f32e3b01", "author": { "name": "Microsoft Corporation" }, @@ -46,7 +46,7 @@ "vscode-debugprotocol": "1.25.0", "vscode-ripgrep": "^0.7.1-patch.0", "vscode-textmate": "^3.2.0", - "vscode-xterm": "3.1.0-beta13", + "vscode-xterm": "3.1.0-beta15", "yauzl": "2.8.0" }, "devDependencies": { @@ -55,7 +55,9 @@ "@types/minimist": "1.2.0", "@types/mocha": "2.2.39", "@types/sinon": "1.16.34", + "asar": "^0.14.0", "azure-storage": "^0.3.1", + "chromium-pickle-js": "^0.2.0", "clean-css": "3.4.6", "coveralls": "^2.11.11", "cson-parser": "^1.3.3", @@ -116,7 +118,7 @@ "vinyl": "^0.4.5", "vinyl-fs": "^2.4.3", "vsce": "1.33.2", - "vscode-nls-dev": "3.0.6" + "vscode-nls-dev": "3.0.7" }, "repository": { "type": "git", @@ -130,4 +132,4 @@ "windows-mutex": "^0.2.0", "windows-process-tree": "0.1.6" } -} +} \ No newline at end of file diff --git a/product.json b/product.json index cbb7fbae771..e1ff870df9f 100644 --- a/product.json +++ b/product.json @@ -15,5 +15,9 @@ "win32ShellNameShort": "C&ode - OSS", "darwinBundleIdentifier": "com.visualstudio.code.oss", "reportIssueUrl": "https://github.com/Microsoft/vscode/issues/new", - "urlProtocol": "code-oss" + "urlProtocol": "code-oss", + "extensionAllowedProposedApi": [ + "ms-vscode.node-debug", + "ms-vscode.node-debug2" + ] } \ No newline at end of file diff --git a/resources/linux/snap/electron-launch b/resources/linux/snap/electron-launch index aa403d5e072..65c91d6fc1b 100644 --- a/resources/linux/snap/electron-launch +++ b/resources/linux/snap/electron-launch @@ -1,30 +1,3 @@ #!/bin/sh -if test "$1" = "classic"; then - shift - case $SNAP_ARCH in - amd64) - TRIPLET="x86_64-linux-gnu" - ;; - armhf) - TRIPLET="arm-linux-gnueabihf" - ;; - arm64) - TRIPLET="aarch64-linux-gnu" - ;; - *) - TRIPLET="$(uname -p)-linux-gnu" - ;; - esac - - # TODO: Swap LD lib paths whenever processes are launched - export LD_LIBRARY_PATH_OLD=$LD_LIBRARY_PATH - export LD_LIBRARY_PATH=$SNAP/usr/lib:$SNAP/usr/lib/$TRIPLET:$LD_LIBRARY_PATH - export LD_LIBRARY_PATH=$SNAP/lib:$SNAP/lib/$TRIPLET:$LD_LIBRARY_PATH -fi - -# Correct the TMPDIR path for Chromium Framework/Electron to ensure -# libappindicator has readable resources. -export TMPDIR=$XDG_RUNTIME_DIR - -exec ${SNAP}/bin/desktop-launch $@ +exec "$@" --executed-from="$(pwd)" --pid=$$ diff --git a/resources/linux/snap/snapcraft.yaml b/resources/linux/snap/snapcraft.yaml index 3b5daa2a8c5..e8a5d48fdf1 100644 --- a/resources/linux/snap/snapcraft.yaml +++ b/resources/linux/snap/snapcraft.yaml @@ -13,17 +13,21 @@ parts: code: plugin: dump source: . - after: - - desktop-gtk2 stage-packages: - - gconf2 - libasound2 + - libgconf2-4 - libnotify4 - libnspr4 - libnss3 + - libpcre3 - libpulse0 - libxss1 - libxtst6 + # desktop-gtk2 deps below + - libxkbcommon0 + - libgtk2.0-0 + # - unity-gtk2-module + - libappindicator1 prime: - -usr/share/dh-python electron-launch: @@ -31,12 +35,8 @@ parts: source: . organize: electron-launch: bin/electron-launch - prime: - - -monitor.sh - - -OLD_VERSION - - -*.bz2 apps: @@NAME@@: - command: bin/electron-launch classic ${SNAP}/usr/share/@@NAME@@/bin/@@NAME@@ + command: bin/electron-launch ${SNAP}/usr/share/@@NAME@@/bin/@@NAME@@ desktop: usr/share/applications/@@NAME@@.desktop \ No newline at end of file diff --git a/scripts/code.bat b/scripts/code.bat index 018577357d7..05d482c6176 100644 --- a/scripts/code.bat +++ b/scripts/code.bat @@ -17,6 +17,9 @@ set CODE=".build\electron\%NAMESHORT%" node build\lib\electron.js if %errorlevel% neq 0 node .\node_modules\gulp\bin\gulp.js electron +:: Manage build-in extensions +if "%1"=="--builtin" goto builtin + :: Sync built-in extensions node build\lib\builtInExtensions.js @@ -37,6 +40,13 @@ set ELECTRON_ENABLE_STACK_DUMPING=1 :: %CODE% --js-flags="--trace-hydrogen --trace-phase=Z --trace-deopt --code-comments --hydrogen-track-positions --redirect-code-traces" . %* %CODE% . %* +goto end + +:builtin +%CODE% build/builtin + +:end + popd -endlocal +endlocal \ No newline at end of file diff --git a/scripts/code.sh b/scripts/code.sh index 0d9402a6eec..f6d103ceda5 100755 --- a/scripts/code.sh +++ b/scripts/code.sh @@ -24,6 +24,12 @@ function code() { # Get electron node build/lib/electron.js || ./node_modules/.bin/gulp electron + # Manage built-in extensions + if [[ "$1" == "--builtin" ]]; then + exec "$CODE" build/builtin + return + fi + # Sync built-in extensions node build/lib/builtInExtensions.js diff --git a/src/bootstrap.js b/src/bootstrap.js index af713da7509..5d7c3bf61f5 100644 --- a/src/bootstrap.js +++ b/src/bootstrap.js @@ -3,10 +3,29 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -// disable electron's asar support early on because bootstrap.js is used in forked processes -// where the environment is purely node based. this will instruct electron to not treat files -// with *.asar ending any special from normal files. -process.noAsar = true; +//#region Add support for using node_modules.asar +(function () { + const path = require('path'); + const Module = require('module'); + const NODE_MODULES_PATH = path.join(__dirname, '../node_modules'); + const NODE_MODULES_ASAR_PATH = NODE_MODULES_PATH + '.asar'; + + const originalResolveLookupPaths = Module._resolveLookupPaths; + Module._resolveLookupPaths = function (request, parent) { + const result = originalResolveLookupPaths(request, parent); + + const paths = result[1]; + for (let i = 0, len = paths.length; i < len; i++) { + if (paths[i] === NODE_MODULES_PATH) { + paths.splice(i, 0, NODE_MODULES_ASAR_PATH); + break; + } + } + + return result; + }; +})(); +//#endregion // Will be defined if we got forked from another node process // In that case we override console.log/warn/error to be able diff --git a/src/cli.js b/src/cli.js index d63ebfae045..a73ad05e861 100644 --- a/src/cli.js +++ b/src/cli.js @@ -3,4 +3,28 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +//#region Add support for using node_modules.asar +(function () { + const path = require('path'); + const Module = require('module'); + const NODE_MODULES_PATH = path.join(__dirname, '../node_modules'); + const NODE_MODULES_ASAR_PATH = NODE_MODULES_PATH + '.asar'; + + const originalResolveLookupPaths = Module._resolveLookupPaths; + Module._resolveLookupPaths = function (request, parent) { + const result = originalResolveLookupPaths(request, parent); + + const paths = result[1]; + for (let i = 0, len = paths.length; i < len; i++) { + if (paths[i] === NODE_MODULES_PATH) { + paths.splice(i, 0, NODE_MODULES_ASAR_PATH); + break; + } + } + + return result; + }; +})(); +//#endregion + require('./bootstrap-amd').bootstrap('vs/code/node/cli'); \ No newline at end of file diff --git a/src/main.js b/src/main.js index 127e6500797..d458afd8dad 100644 --- a/src/main.js +++ b/src/main.js @@ -10,6 +10,30 @@ perf.mark('main:started'); // Perf measurements global.perfStartTime = Date.now(); +//#region Add support for using node_modules.asar +(function () { + const path = require('path'); + const Module = require('module'); + const NODE_MODULES_PATH = path.join(__dirname, '../node_modules'); + const NODE_MODULES_ASAR_PATH = NODE_MODULES_PATH + '.asar'; + + const originalResolveLookupPaths = Module._resolveLookupPaths; + Module._resolveLookupPaths = function (request, parent) { + const result = originalResolveLookupPaths(request, parent); + + const paths = result[1]; + for (let i = 0, len = paths.length; i < len; i++) { + if (paths[i] === NODE_MODULES_PATH) { + paths.splice(i, 0, NODE_MODULES_ASAR_PATH); + break; + } + } + + return result; + }; +})(); +//#endregion + let app = require('electron').app; let fs = require('fs'); let path = require('path'); @@ -62,6 +86,7 @@ function getCommit() { } catch (exp) { _commit = null; } + return _commit || undefined; } function mkdirp(dir) { @@ -267,28 +292,24 @@ function getNLSConfiguration(locale) { if (!locale) { return defaultResult(); } - let packConfigs = configs[locale]; - if (!packConfigs || !Array.isArray(packConfigs) || packConfigs.length === 0) { + let packConfig = configs[locale]; + let mainPack; + if (!packConfig || typeof packConfig.hash !== 'string' || !packConfig.translations || typeof (mainPack = packConfig.translations['vscode']) !== 'string') { return defaultResult(); } - // We take the first install language pack. No idea what to do if we have more - // than one :-) - let packConfig = packConfigs[0]; - if (typeof packConfig.translations !== 'string' || typeof packConfig.version !== 'string' || packConfig.version.match(/\d+\.\d+\.\d+/) === null) { - return defaultResult(); - } - return exists(packConfig.translations).then((fileExists) => { + return exists(mainPack).then((fileExists) => { if (!fileExists) { return defaultResult(); } - let packId = packConfig.extensionIdentifier.id + '-' + packConfig.version; + let packId = packConfig.hash + '.' + locale; let cacheRoot = path.join(userData, 'clp', packId); let coreLocation = path.join(cacheRoot, commit); + let translationsConfigFile = path.join(cacheRoot, 'tcf.json'); let result = { locale: initialLocale, availableLanguages: { '*': locale }, _languagePackId: packId, - _languagePackLocation: packConfig.translations, + _translationsConfigFile: translationsConfigFile, _cacheRoot: cacheRoot, _resolvedLanguagePackCoreLocation: coreLocation }; @@ -300,7 +321,7 @@ function getNLSConfiguration(locale) { return result; } return mkdirp(coreLocation).then(() => { - return Promise.all([readFile(path.join(__dirname, 'nls.metadata.json')), readFile(path.join(packConfig.translations, 'main.i18n.json'))]); + return Promise.all([readFile(path.join(__dirname, 'nls.metadata.json')), readFile(mainPack)]); }).then((values) => { let metadata = JSON.parse(values[0]); let packData = JSON.parse(values[1]).contents; @@ -332,6 +353,7 @@ function getNLSConfiguration(locale) { } writes.push(writeFile(path.join(coreLocation, bundle.replace(/\//g,'!') + '.nls.json'), JSON.stringify(target))); } + writes.push(writeFile(translationsConfigFile, JSON.stringify(packConfig.translations))); return Promise.all(writes); }).then(() => { perf.mark('nlsGeneration:end'); @@ -462,7 +484,7 @@ app.once('ready', function () { boot({ locale: 'en', availableLanguages: {} }); } else { // See above the comment about the loader and case sensitiviness - appLocale.toLowerCase(); + appLocale = appLocale.toLowerCase(); getNLSConfiguration(appLocale).then((nlsConfig) => { if (!nlsConfig) { nlsConfig = { locale: appLocale, availableLanguages: {} }; diff --git a/src/typings/iconv-lite.d.ts b/src/typings/iconv-lite.d.ts index 5ad19bb95b7..2b66468d456 100644 --- a/src/typings/iconv-lite.d.ts +++ b/src/typings/iconv-lite.d.ts @@ -8,7 +8,7 @@ declare module 'iconv-lite' { export function decode(buffer: NodeBuffer, encoding: string): string; - export function encode(content: string, encoding: string, options?: { addBOM?: boolean }): NodeBuffer; + export function encode(content: string | NodeBuffer, encoding: string, options?: { addBOM?: boolean }): NodeBuffer; export function encodingExists(encoding: string): boolean; diff --git a/src/typings/vscode-xterm.d.ts b/src/typings/vscode-xterm.d.ts index 877af9e1f0f..5add50ae237 100644 --- a/src/typings/vscode-xterm.d.ts +++ b/src/typings/vscode-xterm.d.ts @@ -197,6 +197,14 @@ declare module 'vscode-xterm' { * default value is 0. */ priority?: number; + + /** + * A callback that fires when the mousedown and click events occur that + * determines whether a link will be activated upon click. This enables + * only activating a link when a certain modifier is held down, if not the + * mouse event will continue propagation (eg. double click to select word). + */ + willLinkActivate?: (event: MouseEvent, uri: string) => boolean; } export interface IEventEmitter { diff --git a/src/vs/base/browser/ui/dropdown/dropdown.ts b/src/vs/base/browser/ui/dropdown/dropdown.ts index 599725ee6ad..b484ad53139 100644 --- a/src/vs/base/browser/ui/dropdown/dropdown.ts +++ b/src/vs/base/browser/ui/dropdown/dropdown.ts @@ -53,6 +53,10 @@ export class BaseDropdown extends ActionRunner { this.$label.on([EventType.CLICK, EventType.MOUSE_DOWN, GestureEventType.Tap], (e: Event) => { EventHelper.stop(e, true); // prevent default click behaviour to trigger }).on([EventType.MOUSE_DOWN, GestureEventType.Tap], (e: Event) => { + if (e instanceof MouseEvent && e.detail > 1) { + return; // prevent multiple clicks to open multiple context menus (https://github.com/Microsoft/vscode/issues/41363) + } + this.show(); }).appendTo(this.$el); diff --git a/src/vs/base/common/arrays.ts b/src/vs/base/common/arrays.ts index c97ceda2b22..bb304be3def 100644 --- a/src/vs/base/common/arrays.ts +++ b/src/vs/base/common/arrays.ts @@ -438,3 +438,20 @@ export function arrayInsert(target: T[], insertIndex: number, insertArr: T[]) const after = target.slice(insertIndex); return before.concat(insertArr, after); } + +/** + * Uses Fisher-Yates shuffle to shuffle the given array + * @param array + */ +export function shuffle(array: T[]): void { + var i = 0 + , j = 0 + , temp = null; + + for (i = array.length - 1; i > 0; i -= 1) { + j = Math.floor(Math.random() * (i + 1)); + temp = array[i]; + array[i] = array[j]; + array[j] = temp; + } +} \ No newline at end of file diff --git a/src/vs/base/common/platform.ts b/src/vs/base/common/platform.ts index a5148ec7769..0306de78a92 100644 --- a/src/vs/base/common/platform.ts +++ b/src/vs/base/common/platform.ts @@ -14,10 +14,12 @@ let _isNative = false; let _isWeb = false; let _locale: string = undefined; let _language: string = undefined; +let _translationsConfigFile: string = undefined; interface NLSConfig { locale: string; availableLanguages: { [key: string]: string; }; + _translationsConfigFile: string; } export interface IProcessEnvironment { @@ -55,6 +57,7 @@ if (typeof process === 'object') { _locale = nlsConfig.locale; // VSCode's default language is 'en' _language = resolved ? resolved : LANGUAGE_DEFAULT; + _translationsConfigFile = nlsConfig._translationsConfigFile; } catch (e) { } } @@ -109,6 +112,11 @@ export const language = _language; */ export const locale = _locale; +/** + * The translatios that are available through language packs. + */ +export const translationsConfigFile = _translationsConfigFile; + export interface TimeoutToken { } diff --git a/src/vs/base/node/encoding.ts b/src/vs/base/node/encoding.ts index 1d134c65767..12018bf0138 100644 --- a/src/vs/base/node/encoding.ts +++ b/src/vs/base/node/encoding.ts @@ -32,7 +32,7 @@ export function decode(buffer: NodeBuffer, encoding: string): string { return iconv.decode(buffer, toNodeEncoding(encoding)); } -export function encode(content: string, encoding: string, options?: { addBOM?: boolean }): NodeBuffer { +export function encode(content: string | NodeBuffer, encoding: string, options?: { addBOM?: boolean }): NodeBuffer { return iconv.encode(content, toNodeEncoding(encoding), options); } diff --git a/src/vs/base/node/extfs.ts b/src/vs/base/node/extfs.ts index 963a9a3905e..3b1e301967f 100644 --- a/src/vs/base/node/extfs.ts +++ b/src/vs/base/node/extfs.ts @@ -9,11 +9,11 @@ import * as uuid from 'vs/base/common/uuid'; import * as strings from 'vs/base/common/strings'; import * as platform from 'vs/base/common/platform'; import * as flow from 'vs/base/node/flow'; - import * as fs from 'fs'; import * as paths from 'path'; import { TPromise } from 'vs/base/common/winjs.base'; import { nfcall } from 'vs/base/common/async'; +import { encode, encodeStream } from 'vs/base/node/encoding'; const loop = flow.loop; @@ -319,8 +319,17 @@ export function mv(source: string, target: string, callback: (error: Error) => v }); } +export interface IWriteFileOptions { + mode?: number; + flag?: string; + encoding?: { + charset: string; + addBOM: boolean; + }; +} + let canFlush = true; -export function writeFileAndFlush(path: string, data: string | NodeBuffer | NodeJS.ReadableStream, options: { mode?: number; flag?: string; }, callback: (error?: Error) => void): void { +export function writeFileAndFlush(path: string, data: string | NodeBuffer | NodeJS.ReadableStream, options: IWriteFileOptions, callback: (error?: Error) => void): void { options = ensureOptions(options); if (typeof data === 'string' || Buffer.isBuffer(data)) { @@ -330,7 +339,7 @@ export function writeFileAndFlush(path: string, data: string | NodeBuffer | Node } } -function doWriteFileStreamAndFlush(path: string, reader: NodeJS.ReadableStream, options: { mode?: number; flag?: string; }, callback: (error?: Error) => void): void { +function doWriteFileStreamAndFlush(path: string, reader: NodeJS.ReadableStream, options: IWriteFileOptions, callback: (error?: Error) => void): void { // finish only once let finished = false; @@ -361,13 +370,24 @@ function doWriteFileStreamAndFlush(path: string, reader: NodeJS.ReadableStream, const writer = fs.createWriteStream(path, { mode: options.mode, flags: options.flag, autoClose: false }); // Event: 'open' - // Purpose: save the fd for later use + // Purpose: save the fd for later use and start piping // Notes: will not be called when there is an error opening the file descriptor! let fd: number; let isOpen: boolean; writer.once('open', descriptor => { fd = descriptor; isOpen = true; + + // if an encoding is provided, we need to pipe the stream through + // an encoder stream and forward the encoding related options + if (options.encoding) { + reader = reader.pipe(encodeStream(options.encoding.charset, { addBOM: options.encoding.addBOM })); + } + + // start data piping only when we got a successful open. this ensures that we do + // not consume the stream when an error happens and helps to fix this issue: + // https://github.com/Microsoft/vscode/issues/42542 + reader.pipe(writer); }); // Event: 'error' @@ -403,9 +423,6 @@ function doWriteFileStreamAndFlush(path: string, reader: NodeJS.ReadableStream, // Purpose: signal we are done to the outside // Notes: event is called when the writer's filedescriptor is closed writer.once('close', () => finish()); - - // start data piping - reader.pipe(writer); } // Calls fs.writeFile() followed by a fs.sync() call to flush the changes to disk @@ -413,9 +430,13 @@ function doWriteFileStreamAndFlush(path: string, reader: NodeJS.ReadableStream, // not in some cache. // // See https://github.com/nodejs/node/blob/v5.10.0/lib/fs.js#L1194 -function doWriteFileAndFlush(path: string, data: string | NodeBuffer, options: { mode?: number; flag?: string; }, callback: (error?: Error) => void): void { +function doWriteFileAndFlush(path: string, data: string | NodeBuffer, options: IWriteFileOptions, callback: (error?: Error) => void): void { + if (options.encoding) { + data = encode(data, options.encoding.charset, { addBOM: options.encoding.addBOM }); + } + if (!canFlush) { - return fs.writeFile(path, data, options, callback); + return fs.writeFile(path, data, { mode: options.mode, flag: options.flag }, callback); } // Open the file with same flags and mode as fs.writeFile() @@ -446,11 +467,15 @@ function doWriteFileAndFlush(path: string, data: string | NodeBuffer, options: { }); } -export function writeFileAndFlushSync(path: string, data: string | NodeBuffer, options?: { mode?: number; flag?: string; }): void { +export function writeFileAndFlushSync(path: string, data: string | NodeBuffer, options?: IWriteFileOptions): void { options = ensureOptions(options); + if (options.encoding) { + data = encode(data, options.encoding.charset, { addBOM: options.encoding.addBOM }); + } + if (!canFlush) { - return fs.writeFileSync(path, data, options); + return fs.writeFileSync(path, data, { mode: options.mode, flag: options.flag }); } // Open the file with same flags and mode as fs.writeFile() @@ -473,12 +498,12 @@ export function writeFileAndFlushSync(path: string, data: string | NodeBuffer, o } } -function ensureOptions(options?: { mode?: number; flag?: string; }): { mode: number, flag: string } { +function ensureOptions(options?: IWriteFileOptions): IWriteFileOptions { if (!options) { return { mode: 0o666, flag: 'w' }; } - const ensuredOptions = { mode: options.mode, flag: options.flag }; + const ensuredOptions: IWriteFileOptions = { mode: options.mode, flag: options.flag, encoding: options.encoding }; if (typeof ensuredOptions.mode !== 'number') { ensuredOptions.mode = 0o666; diff --git a/src/vs/base/node/pfs.ts b/src/vs/base/node/pfs.ts index 9ebc819fd02..5fdb5cb0264 100644 --- a/src/vs/base/node/pfs.ts +++ b/src/vs/base/node/pfs.ts @@ -99,11 +99,11 @@ export function readFile(path: string, encoding?: string): TPromise } = Object.create(null); -export function writeFile(path: string, data: string, options?: { mode?: number; flag?: string; }): TPromise; -export function writeFile(path: string, data: NodeBuffer, options?: { mode?: number; flag?: string; }): TPromise; -export function writeFile(path: string, data: NodeJS.ReadableStream, options?: { mode?: number; flag?: string; }): TPromise; -export function writeFile(path: string, data: any, options?: { mode?: number; flag?: string; }): TPromise { - let queueKey = toQueueKey(path); +export function writeFile(path: string, data: string, options?: extfs.IWriteFileOptions): TPromise; +export function writeFile(path: string, data: NodeBuffer, options?: extfs.IWriteFileOptions): TPromise; +export function writeFile(path: string, data: NodeJS.ReadableStream, options?: extfs.IWriteFileOptions): TPromise; +export function writeFile(path: string, data: any, options?: extfs.IWriteFileOptions): TPromise { + const queueKey = toQueueKey(path); return ensureWriteFileQueue(queueKey).queue(() => nfcall(extfs.writeFileAndFlush, path, data, options)); } diff --git a/src/vs/base/node/request.ts b/src/vs/base/node/request.ts index d50506cc21a..49c9cd6998f 100644 --- a/src/vs/base/node/request.ts +++ b/src/vs/base/node/request.ts @@ -165,13 +165,15 @@ export function asJson(context: IRequestContext): TPromise { return c(null); } - if (!/application\/json/.test(context.res.headers['content-type'])) { - return e('Response doesn\'t appear to be JSON'); - } - const buffer: string[] = []; context.stream.on('data', (d: string) => buffer.push(d)); - context.stream.on('end', () => c(JSON.parse(buffer.join('')))); + context.stream.on('end', () => { + try { + c(JSON.parse(buffer.join(''))); + } catch (err) { + e(err); + } + }); context.stream.on('error', e); }); } diff --git a/src/vs/base/node/stdFork.ts b/src/vs/base/node/stdFork.ts index 83dc15268ab..1bdcd138309 100644 --- a/src/vs/base/node/stdFork.ts +++ b/src/vs/base/node/stdFork.ts @@ -50,7 +50,6 @@ function generatePatchedEnv(env: any, stdInPipeName: string, stdOutPipeName: str newEnv['STDOUT_PIPE_NAME'] = stdOutPipeName; newEnv['STDERR_PIPE_NAME'] = stdErrPipeName; newEnv['ELECTRON_RUN_AS_NODE'] = '1'; - newEnv['ELECTRON_NO_ASAR'] = '1'; return newEnv; } @@ -138,4 +137,4 @@ export function fork(modulePath: string, args: string[], options: IForkOpts, cal // On vscode exit still close server #7758 process.once('exit', closeServer); -} \ No newline at end of file +} diff --git a/src/vs/base/test/node/extfs/extfs.test.ts b/src/vs/base/test/node/extfs/extfs.test.ts index f521abbfd01..d56c1bdff9d 100644 --- a/src/vs/base/test/node/extfs/extfs.test.ts +++ b/src/vs/base/test/node/extfs/extfs.test.ts @@ -344,11 +344,15 @@ suite('Extfs', () => { fs.mkdirSync(testFile); // this will trigger an error because testFile is now a directory! - extfs.writeFileAndFlush(testFile, toReadable('Hello World'), null, error => { + const readable = toReadable('Hello World'); + extfs.writeFileAndFlush(testFile, readable, null, error => { if (!error || (error).code !== 'EISDIR') { return onError(new Error('Expected EISDIR error for writing to folder but got: ' + (error ? (error).code : 'no error')), done); } + // verify that the stream is still consumable (for https://github.com/Microsoft/vscode/issues/42542) + assert.equal(readable.read(), 'Hello World'); + extfs.del(parentDir, os.tmpdir(), done, ignore); }); }); diff --git a/src/vs/code/electron-browser/issue/issueReporter.js b/src/vs/code/electron-browser/issue/issueReporter.js index 06cbab83f42..07e8b8663d7 100644 --- a/src/vs/code/electron-browser/issue/issueReporter.js +++ b/src/vs/code/electron-browser/issue/issueReporter.js @@ -53,6 +53,34 @@ function main() { const args = parseURLQueryArgs(); const configuration = JSON.parse(args['config'] || '{}') || {}; + //#region Add support for using node_modules.asar + (function () { + const path = require('path'); + const Module = require('module'); + let NODE_MODULES_PATH = path.join(configuration.appRoot, 'node_modules'); + if (/[a-z]\:/.test(NODE_MODULES_PATH)) { + // Make drive letter uppercase + NODE_MODULES_PATH = NODE_MODULES_PATH.charAt(0).toUpperCase() + NODE_MODULES_PATH.substr(1); + } + const NODE_MODULES_ASAR_PATH = NODE_MODULES_PATH + '.asar'; + + const originalResolveLookupPaths = Module._resolveLookupPaths; + Module._resolveLookupPaths = function (request, parent) { + const result = originalResolveLookupPaths(request, parent); + + const paths = result[1]; + for (let i = 0, len = paths.length; i < len; i++) { + if (paths[i] === NODE_MODULES_PATH) { + paths.splice(i, 0, NODE_MODULES_ASAR_PATH); + break; + } + } + + return result; + }; + })(); + //#endregion + const extractKey = function (e) { return [ e.ctrlKey ? 'ctrl-' : '', diff --git a/src/vs/code/electron-browser/issue/issueReporterMain.ts b/src/vs/code/electron-browser/issue/issueReporterMain.ts index db9d07052d2..400b8610977 100644 --- a/src/vs/code/electron-browser/issue/issueReporterMain.ts +++ b/src/vs/code/electron-browser/issue/issueReporterMain.ts @@ -29,8 +29,8 @@ import { InstantiationService } from 'vs/platform/instantiation/common/instantia import { resolveCommonProperties } from 'vs/platform/telemetry/node/commonProperties'; import { WindowsChannelClient } from 'vs/platform/windows/common/windowsIpc'; import { EnvironmentService } from 'vs/platform/environment/node/environmentService'; -import { IssueReporterModel, IssueType } from 'vs/code/electron-browser/issue/issueReporterModel'; -import { IssueReporterData, IssueReporterStyles } from 'vs/platform/issue/common/issue'; +import { IssueReporterModel } from 'vs/code/electron-browser/issue/issueReporterModel'; +import { IssueReporterData, IssueReporterStyles, IssueType } from 'vs/platform/issue/common/issue'; import BaseHtml from 'vs/code/electron-browser/issue/issueReporterPage'; import { ILocalExtension } from 'vs/platform/extensionManagement/common/extensionManagement'; import { debounce } from 'vs/base/common/decorators'; @@ -51,6 +51,7 @@ export class IssueReporter extends Disposable { private environmentService: IEnvironmentService; private telemetryService: ITelemetryService; private issueReporterModel: IssueReporterModel; + private shouldQueueSearch = true; constructor(configuration: IssueReporterConfiguration) { super(); @@ -58,7 +59,7 @@ export class IssueReporter extends Disposable { this.initServices(configuration); this.issueReporterModel = new IssueReporterModel({ - issueType: IssueType.Bug, + issueType: configuration.data.issueType || IssueType.Bug, includeSystemInfo: true, includeWorkspaceInfo: true, includeProcessInfo: true, @@ -68,7 +69,7 @@ export class IssueReporter extends Disposable { os: `${os.type()} ${os.arch()} ${os.release()}` }, extensionsDisabled: this.environmentService.disableExtensions, - reprosWithoutExtensions: true + reprosWithoutExtensions: false }); ipcRenderer.on('issueInfoResponse', (event, info) => { @@ -94,6 +95,7 @@ export class IssueReporter extends Disposable { } render(): void { + (document.getElementById('issue-type')).value = this.issueReporterModel.getData().issueType.toString(); this.renderBlocks(); } @@ -111,22 +113,22 @@ export class IssueReporter extends Disposable { const content: string[] = []; if (styles.inputBackground) { - content.push(`input, textarea, select { background-color: ${styles.inputBackground}; }`); + content.push(`input[type="text"], textarea, select { background-color: ${styles.inputBackground}; }`); } if (styles.inputBorder) { - content.push(`input, textarea, select { border: 1px solid ${styles.inputBorder}; }`); + content.push(`input[type="text"], textarea, select { border: 1px solid ${styles.inputBorder}; }`); } else { - content.push(`input, textarea, select { border: 1px solid transparent; }`); + content.push(`input[type="text"], textarea, select { border: 1px solid transparent; }`); } if (styles.inputForeground) { - content.push(`input, textarea, select { color: ${styles.inputForeground}; }`); + content.push(`input[type="text"], textarea, select { color: ${styles.inputForeground}; }`); } if (styles.inputErrorBorder) { content.push(`.invalid-input, .invalid-input:focus { border: 1px solid ${styles.inputErrorBorder} !important; }`); - content.push(`.validation-error { color: ${styles.inputErrorBorder}; }`); + content.push(`.validation-error, .required-input { color: ${styles.inputErrorBorder}; }`); } if (styles.inputActiveBorder) { @@ -171,6 +173,8 @@ export class IssueReporter extends Disposable { if (this.environmentService.disableExtensions || extensions.length === 0) { (document.getElementById('disableExtensions')).disabled = true; + (document.getElementById('reproducesWithoutExtensions')).checked = true; + this.issueReporterModel.update({ reprosWithoutExtensions: true }); } } @@ -208,18 +212,26 @@ export class IssueReporter extends Disposable { this.render(); }); - ['includeSystemInfo', 'includeProcessInfo', 'includeWorkspaceInfo', 'includeExtensions', 'reprosWithoutExtensions'].forEach(elementId => { + ['includeSystemInfo', 'includeProcessInfo', 'includeWorkspaceInfo', 'includeExtensions'].forEach(elementId => { document.getElementById(elementId).addEventListener('click', (event: Event) => { event.stopPropagation(); this.issueReporterModel.update({ [elementId]: !this.issueReporterModel.getData()[elementId] }); }); }); + document.getElementById('reproducesWithoutExtensions').addEventListener('click', (e) => { + this.issueReporterModel.update({ reprosWithoutExtensions: true }); + }); + + document.getElementById('reproducesWithExtensions').addEventListener('click', (e) => { + this.issueReporterModel.update({ reprosWithoutExtensions: false }); + }); + document.getElementById('description').addEventListener('blur', (event: Event) => { this.issueReporterModel.update({ issueDescription: (event.target).value }); }); - document.getElementById('issue-title').addEventListener('input', this.searchGitHub); + document.getElementById('issue-title').addEventListener('input', (e) => { this.searchGitHub(e); }); document.getElementById('github-submit-btn').addEventListener('click', () => this.createIssue()); @@ -256,7 +268,7 @@ export class IssueReporter extends Disposable { } @debounce(300) - private searchGitHub(event: Event) { + private searchGitHub(event: Event): void { const title = (event.target).value; const similarIssues = document.getElementById('similar-issues'); if (title) { @@ -274,9 +286,8 @@ export class IssueReporter extends Disposable { for (let i = 0; i < numResultsToDisplay; i++) { const link = $('a', { href: items[i].html_url }); link.textContent = items[i].title; - link.addEventListener('click', (event) => { - shell.openExternal((event.target).href); - }); + link.addEventListener('click', openLink); + link.addEventListener('auxclick', openLink); const item = $('li', {}, link); issues.appendChild(item); @@ -284,23 +295,49 @@ export class IssueReporter extends Disposable { similarIssues.appendChild(issuesText); similarIssues.appendChild(issues); + } else if (result && result.items) { + const message = $('div.list-title'); + message.textContent = localize('noResults', "No results found"); + similarIssues.appendChild(message); + } else { + const message = $('div.list-title'); + message.textContent = localize('rateLimited', "GitHub query limit exceeded. Please wait."); + similarIssues.appendChild(message); + + const resetTime = response.headers.get('X-RateLimit-Reset'); + const timeToWait = parseInt(resetTime) - Math.floor(Date.now() / 1000); + if (this.shouldQueueSearch) { + this.shouldQueueSearch = false; + setTimeout(() => { + this.searchGitHub(event); + this.shouldQueueSearch = true; + }, timeToWait * 1000); + } + + throw new Error(result.message); } + }).catch((error) => { + this.logSearchError(error); }); }).catch((error) => { - // TODO: Use LogService here. - console.log(error); - /* __GDPR__ - "issueReporterSearchError" : { - "message" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } - } - */ - this.telemetryService.publicLog('issueReporterSearchError', { message: error.message }); + this.logSearchError(error); }); } else { similarIssues.innerHTML = ''; } } + private logSearchError(error: Error) { + // TODO: Use LogService here. + console.log(error); + /* __GDPR__ + "issueReporterSearchError" : { + "message" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } + } + */ + this.telemetryService.publicLog('issueReporterSearchError', { message: error.message }); + } + private renderBlocks(): void { // Depending on Issue Type, we render different blocks and text const { issueType } = this.issueReporterModel.getData(); @@ -308,6 +345,7 @@ export class IssueReporter extends Disposable { const processBlock = document.querySelector('.block-process'); const workspaceBlock = document.querySelector('.block-workspace'); const extensionsBlock = document.querySelector('.block-extensions'); + const disabledExtensions = document.getElementById('disabledExtensions'); const descriptionTitle = document.getElementById('issue-description-label'); const descriptionSubtitle = document.getElementById('issue-description-subtitle'); @@ -317,15 +355,17 @@ export class IssueReporter extends Disposable { hide(processBlock); hide(workspaceBlock); show(extensionsBlock); + show(disabledExtensions); descriptionTitle.innerHTML = `${localize('stepsToReproduce', "Steps to Reproduce")} *`; show(descriptionSubtitle); - descriptionSubtitle.innerHTML = localize('bugDescription', "How did you encounter this problem? Please provide clear steps to reproduce the problem during our investigation. What did you expect to happen and what actually did happen?"); + descriptionSubtitle.innerHTML = localize('bugDescription', "How did you encounter this problem? What steps do you need to perform to reliably reproduce the problem? What did you expect to happen and what actually did happen?"); } else if (issueType === IssueType.PerformanceIssue) { show(systemBlock); show(processBlock); show(workspaceBlock); show(extensionsBlock); + show(disabledExtensions); descriptionTitle.innerHTML = `${localize('stepsToReproduce', "Steps to Reproduce")} *`; show(descriptionSubtitle); @@ -335,6 +375,7 @@ export class IssueReporter extends Disposable { hide(processBlock); hide(workspaceBlock); hide(extensionsBlock); + hide(disabledExtensions); descriptionTitle.innerHTML = `${localize('description', "Description")} *`; hide(descriptionSubtitle); @@ -391,9 +432,21 @@ export class IssueReporter extends Disposable { } const issueTitle = (document.getElementById('issue-title')).value; - const baseUrl = `https://github.com/microsoft/vscode/issues/new?title=${issueTitle}&body=`; + const queryStringPrefix = product.reportIssueUrl.indexOf('?') === -1 ? '?' : '&'; + const baseUrl = `${product.reportIssueUrl}${queryStringPrefix}title=${issueTitle}&body=`; const issueBody = this.issueReporterModel.serialize(); - shell.openExternal(baseUrl + encodeURIComponent(issueBody)); + const url = baseUrl + encodeURIComponent(issueBody); + + const lengthValidationElement = document.getElementById('url-length-validation-error'); + if (url.length > 2081) { + lengthValidationElement.textContent = localize('urlLengthError', "The data exceeds the length limit of 2081. The data is length {0}.", url.length); + show(lengthValidationElement); + return false; + } else { + hide(lengthValidationElement); + } + + shell.openExternal(url); return true; } @@ -492,3 +545,12 @@ function hide(el) { function show(el) { el.classList.remove('hidden'); } + +function openLink(event: MouseEvent) { + event.preventDefault(); + event.stopPropagation(); + // Exclude right click + if (event.which < 3) { + shell.openExternal((event.target).href); + } +} diff --git a/src/vs/code/electron-browser/issue/issueReporterModel.ts b/src/vs/code/electron-browser/issue/issueReporterModel.ts index 454fa9deee7..e9590c15068 100644 --- a/src/vs/code/electron-browser/issue/issueReporterModel.ts +++ b/src/vs/code/electron-browser/issue/issueReporterModel.ts @@ -7,12 +7,7 @@ import { assign } from 'vs/base/common/objects'; import { ILocalExtension } from 'vs/platform/extensionManagement/common/extensionManagement'; - -export enum IssueType { - Bug, - PerformanceIssue, - FeatureRequest -} +import { IssueType } from 'vs/platform/issue/common/issue'; export interface IssueReporterData { issueType?: IssueType; @@ -63,10 +58,7 @@ ${this._data.issueDescription} VS Code version: ${this._data.versionInfo && this._data.versionInfo.vscodeVersion} OS version: ${this._data.versionInfo && this._data.versionInfo.os} -${this.getInfos()} - - -`; +${this.getInfos()}`; } private getIssueTypeTitle(): string { @@ -82,8 +74,10 @@ ${this.getInfos()} private getInfos(): string { let info = ''; - if (this._data.includeSystemInfo) { - info += this.generateSystemInfoMd(); + if (this._data.issueType === IssueType.Bug || this._data.issueType === IssueType.PerformanceIssue) { + if (this._data.includeSystemInfo) { + info += this.generateSystemInfoMd(); + } } if (this._data.issueType === IssueType.PerformanceIssue) { @@ -171,20 +165,12 @@ ${this._data.workspaceInfo}; return `${e.manifest.name}|${e.manifest.publisher.substr(0, 3)}|${e.manifest.version}`; }).join('\n'); - const extensionTable = `
Extensions (${this._data.enabledNonThemeExtesions.length}) + return `
Extensions (${this._data.enabledNonThemeExtesions.length}) ${tableHeader} ${table} ${themeExclusionStr}
`; - - // 2000 chars is browsers de-facto limit for URLs, 400 chars are allowed for other string parts of the issue URL - // http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers - if (encodeURIComponent(extensionTable).length > 1600) { - return 'the listing length exceeds browsers\' URL characters limit'; - } - - return extensionTable; } } \ No newline at end of file diff --git a/src/vs/code/electron-browser/issue/issueReporterPage.ts b/src/vs/code/electron-browser/issue/issueReporterPage.ts index 247637a770d..86d5a0afc34 100644 --- a/src/vs/code/electron-browser/issue/issueReporterPage.ts +++ b/src/vs/code/electron-browser/issue/issueReporterPage.ts @@ -13,91 +13,105 @@ export default (): string => `
-
- - -
- -
- - - - - - -
- -
-
- - +
+
+ +
-
- - + +
+ + + + + +
-
-
-
- ${escape(localize('systemInfo', "My System Info"))} - - - - -
- -
-
-
-
-
- ${escape(localize('processes', "Currently Running Processes"))} - - - - -
- -
-
-
-
-
- ${escape(localize('workspaceStats', "My Workspace Stats"))} - - - - -
-					
-						
-					
-				
-
-
-
-
- ${escape(localize('extensions', "My Extensions"))} - - - - -
- -
-
-
- - - - +
+
+
+ +
+
+ + +
+
+ +
+
+
+ ${escape(localize('systemInfo', "My System Info"))} + + + + +
+ +
+
+
+
+
+ ${escape(localize('processes', "Currently Running Processes"))} + + + + +
+ +
+
+
+
+
+ ${escape(localize('workspaceStats', "My Workspace Stats"))} + + + + +
+						
+							
+						
+					
+
+
+
+
+ ${escape(localize('extensions', "My Extensions"))} + + + + +
+ +
+
+
+
+
+ +
+
+ +
+ + +
+
+ + +
+
Try to reproduce the problem after .
+
If you suspect it's an extension issue, .
@@ -105,15 +119,18 @@ export default (): string => ` - +
- +
- ${escape(localize('githubMarkdown', "We support GitHub-flavored Markdown. You will still be able to edit your issue and add screenshots when we preview it on GitHub."))} - +
${escape(localize('githubMarkdown', "We support GitHub-flavored Markdown. You will be able to edit your issue and add screenshots when we preview it on GitHub."))}
+
+
`; \ No newline at end of file diff --git a/src/vs/code/electron-browser/issue/media/issueReporter.css b/src/vs/code/electron-browser/issue/media/issueReporter.css index 653df87e38f..b0da6839f0e 100644 --- a/src/vs/code/electron-browser/issue/media/issueReporter.css +++ b/src/vs/code/electron-browser/issue/media/issueReporter.css @@ -30,14 +30,17 @@ td { border-top: 1px solid #e9ecef; } +.section { + margin-bottom: 2em; +} + /** * Forms */ -input, textarea { +input[type="text"], textarea { display: block; width: 100%; padding: .375rem .75rem; - margin: 0; font-size: 1rem; line-height: 1.5; color: #495057; @@ -49,13 +52,6 @@ textarea { overflow: auto; resize: vertical; } -small { - color: #868e96; - display: block; - margin-top: .25rem; - font-size: 80%; - font-weight: 400; -} /** * Button @@ -131,7 +127,7 @@ button:disabled { } #issue-reporter { - max-width: 80vw; + max-width: 85vw; margin-left: auto; margin-right: auto; margin-top: 2em; @@ -156,6 +152,19 @@ button:disabled { margin-bottom: 1em; } +.choice { + display: inline-block; + margin: 0 5px; +} + +.choice > label, .choice > input { + cursor: pointer; +} + +.system-info { + margin-bottom: 1.25em; +} + select, input, textarea { border: 1px solid transparent; margin-top: 10px; @@ -179,9 +188,11 @@ summary { height: 18px; } -input[type="checkbox"] { +.sendData { margin-left: 1em; - height: 18px; +} + +input[type="checkbox"] { width: auto; display: inline-block; margin-top: 0; @@ -197,8 +208,14 @@ input:disabled { margin-left: 1em; } +.instructions { + font-size: 12px; + margin-left: 1em; + margin-top: .5em; +} + .workbenchCommand { - display: block; + padding: 0; font-size: 12px; background: transparent; } diff --git a/src/vs/code/electron-browser/issue/test/testReporterModel.test.ts b/src/vs/code/electron-browser/issue/test/testReporterModel.test.ts index 16c41488e74..2b7caaf6254 100644 --- a/src/vs/code/electron-browser/issue/test/testReporterModel.test.ts +++ b/src/vs/code/electron-browser/issue/test/testReporterModel.test.ts @@ -26,9 +26,6 @@ undefined VS Code version: undefined OS version: undefined - - - `); }); }); diff --git a/src/vs/code/electron-browser/sharedProcess/contrib/contributions.ts b/src/vs/code/electron-browser/sharedProcess/contrib/contributions.ts index 593d731262f..50ec33a43c9 100644 --- a/src/vs/code/electron-browser/sharedProcess/contrib/contributions.ts +++ b/src/vs/code/electron-browser/sharedProcess/contrib/contributions.ts @@ -7,12 +7,12 @@ import { NodeCachedDataCleaner } from 'vs/code/electron-browser/sharedProcess/contrib/nodeCachedDataCleaner'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import { LanguagePackExtensions } from 'vs/code/electron-browser/sharedProcess/contrib/languagePackExtensions'; import { IDisposable, combinedDisposable } from 'vs/base/common/lifecycle'; +import { LanguagePacksCache } from 'vs/platform/localizations/node/localizations'; export function createSharedProcessContributions(service: IInstantiationService): IDisposable { return combinedDisposable([ service.createInstance(NodeCachedDataCleaner), - service.createInstance(LanguagePackExtensions) + service.createInstance(LanguagePacksCache) ]); } diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcess.js b/src/vs/code/electron-browser/sharedProcess/sharedProcess.js index 94481666801..b4e968d7990 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcess.js +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcess.js @@ -57,6 +57,34 @@ function main() { const args = parseURLQueryArgs(); const configuration = JSON.parse(args['config'] || '{}') || {}; + //#region Add support for using node_modules.asar + (function () { + const path = require('path'); + const Module = require('module'); + let NODE_MODULES_PATH = path.join(configuration.appRoot, 'node_modules'); + if (/[a-z]\:/.test(NODE_MODULES_PATH)) { + // Make drive letter uppercase + NODE_MODULES_PATH = NODE_MODULES_PATH.charAt(0).toUpperCase() + NODE_MODULES_PATH.substr(1); + } + const NODE_MODULES_ASAR_PATH = NODE_MODULES_PATH + '.asar'; + + const originalResolveLookupPaths = Module._resolveLookupPaths; + Module._resolveLookupPaths = function (request, parent) { + const result = originalResolveLookupPaths(request, parent); + + const paths = result[1]; + for (let i = 0, len = paths.length; i < len; i++) { + if (paths[i] === NODE_MODULES_PATH) { + paths.splice(i, 0, NODE_MODULES_ASAR_PATH); + break; + } + } + + return result; + }; + })(); + //#endregion + // Correctly inherit the parent's environment assign(process.env, configuration.userEnv); @@ -84,7 +112,7 @@ function main() { bundles[bundle] = json; cb(undefined, json); }) - .catch(cb); + .catch(cb); }; } diff --git a/src/vs/code/electron-main/logUploader.ts b/src/vs/code/electron-main/logUploader.ts index ce74d852eed..87425685c5b 100644 --- a/src/vs/code/electron-main/logUploader.ts +++ b/src/vs/code/electron-main/logUploader.ts @@ -9,7 +9,6 @@ import * as os from 'os'; import * as cp from 'child_process'; import * as fs from 'fs'; import * as path from 'path'; -import * as readline from 'readline'; import { localize } from 'vs/nls'; import { ILaunchChannel } from 'vs/code/electron-main/launch'; @@ -17,6 +16,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import product from 'vs/platform/node/product'; import { IRequestService } from 'vs/platform/request/node/request'; import { IRequestContext } from 'vs/base/node/request'; +import { IEnvironmentService } from 'vs/platform/environment/common/environment'; interface PostResult { readonly blob_id: string; @@ -35,7 +35,8 @@ class Endpoint { export async function uploadLogs( channel: ILaunchChannel, - requestService: IRequestService + requestService: IRequestService, + environmentService: IEnvironmentService ): TPromise { const endpoint = Endpoint.getFromProduct(); if (!endpoint) { @@ -45,35 +46,29 @@ export async function uploadLogs( const logsPath = await channel.call('get-logs-path', null); - if (await promptUserToConfirmLogUpload(logsPath)) { + if (await promptUserToConfirmLogUpload(logsPath, environmentService)) { console.log(localize('beginUploading', 'Uploading...')); const outZip = await zipLogs(logsPath); const result = await postLogs(endpoint, outZip, requestService); - console.log(localize('didUploadLogs', 'Uploaded logs ID: {0}', result.blob_id)); - } else { - console.log(localize('userDeniedUpload', 'Canceled upload')); + console.log(localize('didUploadLogs', 'Upload successful! Log file ID: {0}', result.blob_id)); } } -async function promptUserToConfirmLogUpload( +function promptUserToConfirmLogUpload( logsPath: string, -): Promise { - const message = localize('logUploadPromptHeader', 'Upload session logs to secure endpoint?') - + '\n\n' + localize('logUploadPromptBody', 'Please review your log files here: \'{0}\'', logsPath) - + '\n\n' + localize('logUploadPromptBodyDetails', 'Logs may contain personal information such as full paths and file contents.') - + '\n\n' + localize('logUploadPromptKey', 'I have reviewed my logs (enter \'y\' to confirm upload)'); - - const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout - }); - - return new TPromise(resolve => - rl.question(message, - (answer: string) => { - rl.close(); - resolve(answer && answer.trim()[0].toLowerCase() === 'y'); - })); + environmentService: IEnvironmentService +): boolean { + const confirmKey = 'iConfirmLogsUpload'; + if ((environmentService.args['upload-logs'] || '').toLowerCase() === confirmKey.toLowerCase()) { + return true; + } else { + const message = localize('logUploadPromptHeader', 'You are about to upload your session logs to a secure Microsoft endpoint that only Microsoft\'s members of the VS Code team can access.') + + '\n\n' + localize('logUploadPromptBody', 'Session logs may contain personal information such as full paths or file contents. Please review and redact your session log files here: \'{0}\'', logsPath) + + '\n\n' + localize('logUploadPromptBodyDetails', 'By continuing you confirm that you have reviewed and redacted your session log files and that you agree to Microsoft using them to debug VS Code.') + + '\n\n' + localize('logUploadPromptAcceptInstructions', 'Please run code with \'--upload-logs={0}\' to proceed with upload', confirmKey); + console.log(message); + return false; + } } async function postLogs( @@ -81,6 +76,7 @@ async function postLogs( outZip: string, requestService: IRequestService ): TPromise { + const dotter = setInterval(() => console.log('.'), 5000); let result: IRequestContext; try { result = await requestService.request({ @@ -92,6 +88,7 @@ async function postLogs( } }); } catch (e) { + clearInterval(dotter); console.log(localize('postError', 'Error posting logs: {0}', e)); throw e; } @@ -103,12 +100,13 @@ async function postLogs( }); result.stream.on('end', () => { + clearInterval(dotter); try { const response = Buffer.concat(parts).toString('utf-8'); if (result.res.statusCode === 200) { res(JSON.parse(response)); } else { - const errorMessage = localize('responseError', 'Error posting logs. Got {0}', result.res.statusCode); + const errorMessage = localize('responseError', 'Error posting logs. Got {0} — {1}', result.res.statusCode, response); console.log(errorMessage); reject(new Error(errorMessage)); } diff --git a/src/vs/code/electron-main/main.ts b/src/vs/code/electron-main/main.ts index 8dd60aec8a2..db4b9f3c9b8 100644 --- a/src/vs/code/electron-main/main.ts +++ b/src/vs/code/electron-main/main.ts @@ -139,7 +139,7 @@ function setupIPC(accessor: ServicesAccessor): TPromise { } // Log uploader usage info - if (environmentService.args['upload-logs']) { + if (typeof environmentService.args['upload-logs'] !== 'undefined') { logService.warn('Warning: The --upload-logs argument can only be used if Code is already running. Please run it again after Code has started.'); throw new ExpectedError('Terminating...'); } @@ -201,8 +201,8 @@ function setupIPC(accessor: ServicesAccessor): TPromise { } // Log uploader - if (environmentService.args['upload-logs']) { - return uploadLogs(channel, requestService) + if (typeof environmentService.args['upload-logs'] !== 'undefined') { + return uploadLogs(channel, requestService, environmentService) .then(() => TPromise.wrapError(new ExpectedError())); } diff --git a/src/vs/code/node/cli.ts b/src/vs/code/node/cli.ts index ca0c7cdb8ab..61bb55cf91e 100644 --- a/src/vs/code/node/cli.ts +++ b/src/vs/code/node/cli.ts @@ -123,7 +123,7 @@ export async function main(argv: string[]): TPromise { const processCallbacks: ((child: ChildProcess) => Thenable)[] = []; - const verbose = args.verbose || args.status || args['upload-logs']; + const verbose = args.verbose || args.status || typeof args['upload-logs'] !== 'undefined'; if (verbose) { env['ELECTRON_ENABLE_LOGGING'] = '1'; @@ -311,8 +311,8 @@ export async function main(argv: string[]): TPromise { env }; - if (args['upload-logs']) { - options['stdio'] = [process.stdin, 'pipe', 'pipe']; + if (typeof args['upload-logs'] !== undefined) { + options['stdio'] = ['pipe', 'pipe', 'pipe']; } else if (!verbose) { options['stdio'] = 'ignore'; } diff --git a/src/vs/editor/common/config/commonEditorConfig.ts b/src/vs/editor/common/config/commonEditorConfig.ts index 11be0847a25..73339f9d245 100644 --- a/src/vs/editor/common/config/commonEditorConfig.ts +++ b/src/vs/editor/common/config/commonEditorConfig.ts @@ -468,16 +468,16 @@ const editorConfiguration: IConfigurationNode = { 'default': EDITOR_DEFAULTS.contribInfo.wordBasedSuggestions, 'description': nls.localize('wordBasedSuggestions', "Controls whether completions should be computed based on words in the document.") }, - 'editor.selectSuggestions': { + 'editor.suggestSelection': { 'type': 'string', - 'enum': ['never', 'byRecency', 'byPrefix'], + 'enum': ['first', 'recentlyUsed', 'recentlyUsedByPrefix'], 'enumDescriptions': [ - nls.localize('selectSuggestions.never', "Do not remember suggestions and always select the first."), - nls.localize('selectSuggestions.byRecency', "Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log`"), - nls.localize('selectSuggestions.byPrefix', "Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`"), + nls.localize('suggestSelection.first', "Always select the first suggestion."), + nls.localize('suggestSelection.recentlyUsed', "Select recent suggestions unless further typing selects one, e.g. `console.| -> console.log` because `log` has been completed recently."), + nls.localize('suggestSelection.recentlyUsedByPrefix', "Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`."), ], - 'default': 'byRecency', - 'description': nls.localize('selectSuggestions', "Controls if accepting suggestions changes how future suggestions are pre-selected.") + 'default': 'recentlyUsed', + 'description': nls.localize('suggestSelection', "Controls how suggestions are pre-selected when showing the suggest list.") }, 'editor.suggestFontSize': { 'type': 'integer', diff --git a/src/vs/editor/common/config/editorOptions.ts b/src/vs/editor/common/config/editorOptions.ts index 79a0e9e1070..f92847452e1 100644 --- a/src/vs/editor/common/config/editorOptions.ts +++ b/src/vs/editor/common/config/editorOptions.ts @@ -460,7 +460,7 @@ export interface IEditorOptions { /** * The history mode for suggestions. */ - selectSuggestions?: string; + suggestSelection?: string; /** * The font size for the suggest widget. * Defaults to the editor font size. @@ -831,7 +831,7 @@ export interface EditorContribOptions { readonly acceptSuggestionOnCommitCharacter: boolean; readonly snippetSuggestions: 'top' | 'bottom' | 'inline' | 'none'; readonly wordBasedSuggestions: boolean; - readonly selectSuggestions: 'never' | 'byRecency' | 'byPrefix'; + readonly suggestSelection: 'first' | 'byRecency' | 'byPrefix'; readonly suggestFontSize: number; readonly suggestLineHeight: number; readonly selectionHighlight: boolean; @@ -1181,7 +1181,7 @@ export class InternalEditorOptions { && a.acceptSuggestionOnCommitCharacter === b.acceptSuggestionOnCommitCharacter && a.snippetSuggestions === b.snippetSuggestions && a.wordBasedSuggestions === b.wordBasedSuggestions - && a.selectSuggestions === b.selectSuggestions + && a.suggestSelection === b.suggestSelection && a.suggestFontSize === b.suggestFontSize && a.suggestLineHeight === b.suggestLineHeight && a.selectionHighlight === b.selectionHighlight @@ -1712,7 +1712,7 @@ export class EditorOptionsValidator { acceptSuggestionOnCommitCharacter: _boolean(opts.acceptSuggestionOnCommitCharacter, defaults.acceptSuggestionOnCommitCharacter), snippetSuggestions: _stringSet<'top' | 'bottom' | 'inline' | 'none'>(opts.snippetSuggestions, defaults.snippetSuggestions, ['top', 'bottom', 'inline', 'none']), wordBasedSuggestions: _boolean(opts.wordBasedSuggestions, defaults.wordBasedSuggestions), - selectSuggestions: _stringSet<'never' | 'byRecency' | 'byPrefix'>(opts.selectSuggestions, defaults.selectSuggestions, ['never', 'byRecency', 'byPrefix']), + suggestSelection: _stringSet<'first' | 'byRecency' | 'byPrefix'>(opts.suggestSelection, defaults.suggestSelection, ['first', 'byRecency', 'byPrefix']), suggestFontSize: _clampedInt(opts.suggestFontSize, defaults.suggestFontSize, 0, 1000), suggestLineHeight: _clampedInt(opts.suggestLineHeight, defaults.suggestLineHeight, 0, 1000), selectionHighlight: _boolean(opts.selectionHighlight, defaults.selectionHighlight), @@ -1813,7 +1813,7 @@ export class InternalEditorOptionsFactory { acceptSuggestionOnCommitCharacter: opts.contribInfo.acceptSuggestionOnCommitCharacter, snippetSuggestions: opts.contribInfo.snippetSuggestions, wordBasedSuggestions: opts.contribInfo.wordBasedSuggestions, - selectSuggestions: opts.contribInfo.selectSuggestions, + suggestSelection: opts.contribInfo.suggestSelection, suggestFontSize: opts.contribInfo.suggestFontSize, suggestLineHeight: opts.contribInfo.suggestLineHeight, selectionHighlight: (accessibilityIsOn ? false : opts.contribInfo.selectionHighlight), // DISABLED WHEN SCREEN READER IS ATTACHED @@ -2268,7 +2268,7 @@ export const EDITOR_DEFAULTS: IValidatedEditorOptions = { acceptSuggestionOnCommitCharacter: true, snippetSuggestions: 'inline', wordBasedSuggestions: true, - selectSuggestions: 'byRecency', + suggestSelection: 'byRecency', suggestFontSize: 0, suggestLineHeight: 0, selectionHighlight: true, diff --git a/src/vs/editor/common/model/textModel.ts b/src/vs/editor/common/model/textModel.ts index d64c382f47e..f9f3edbe92e 100644 --- a/src/vs/editor/common/model/textModel.ts +++ b/src/vs/editor/common/model/textModel.ts @@ -37,15 +37,21 @@ import { LinesTextBufferBuilder } from 'vs/editor/common/model/linesTextBuffer/l import { PieceTreeTextBufferBuilder } from 'vs/editor/common/model/pieceTreeTextBuffer/pieceTreeTextBufferBuilder'; import { ChunksTextBufferBuilder } from 'vs/editor/common/model/chunksTextBuffer/chunksTextBufferBuilder'; +export enum TextBufferType { + LinesArray, + PieceTree, + Chunks +} // Here is the master switch for the text buffer implementation: -const USE_PIECE_TREE_IMPLEMENTATION = true; -const USE_CHUNKS_TEXT_BUFFER = false; +export const OPTIONS = { + TEXT_BUFFER_IMPLEMENTATION: TextBufferType.LinesArray +}; function createTextBufferBuilder() { - if (USE_PIECE_TREE_IMPLEMENTATION) { + if (OPTIONS.TEXT_BUFFER_IMPLEMENTATION === TextBufferType.PieceTree) { return new PieceTreeTextBufferBuilder(); } - if (USE_CHUNKS_TEXT_BUFFER) { + if (OPTIONS.TEXT_BUFFER_IMPLEMENTATION === TextBufferType.Chunks) { return new ChunksTextBufferBuilder(); } return new LinesTextBufferBuilder(); diff --git a/src/vs/editor/common/view/editorColorRegistry.ts b/src/vs/editor/common/view/editorColorRegistry.ts index 939a99c1d13..4960109a2ea 100644 --- a/src/vs/editor/common/view/editorColorRegistry.ts +++ b/src/vs/editor/common/view/editorColorRegistry.ts @@ -30,10 +30,10 @@ export const editorOverviewRulerBorder = registerColor('editorOverviewRuler.bord export const editorGutter = registerColor('editorGutter.background', { dark: editorBackground, light: editorBackground, hc: editorBackground }, nls.localize('editorGutter', 'Background color of the editor gutter. The gutter contains the glyph margins and the line numbers.')); -export const editorErrorForeground = registerColor('editorError.foreground', { dark: '#FF0000', light: '#FF0000', hc: null }, nls.localize('errorForeground', 'Foreground color of error squigglies in the editor.')); +export const editorErrorForeground = registerColor('editorError.foreground', { dark: '#ea4646', light: '#d60a0a', hc: null }, nls.localize('errorForeground', 'Foreground color of error squigglies in the editor.')); export const editorErrorBorder = registerColor('editorError.border', { dark: null, light: null, hc: Color.fromHex('#E47777').transparent(0.8) }, nls.localize('errorBorder', 'Border color of error squigglies in the editor.')); -export const editorWarningForeground = registerColor('editorWarning.foreground', { dark: '#008000', light: '#008000', hc: null }, nls.localize('warningForeground', 'Foreground color of warning squigglies in the editor.')); +export const editorWarningForeground = registerColor('editorWarning.foreground', { dark: '#4d9e4d', light: '#117711', hc: null }, nls.localize('warningForeground', 'Foreground color of warning squigglies in the editor.')); export const editorWarningBorder = registerColor('editorWarning.border', { dark: null, light: null, hc: Color.fromHex('#71B771').transparent(0.8) }, nls.localize('warningBorder', 'Border color of warning squigglies in the editor.')); export const editorInfoForeground = registerColor('editorInfo.foreground', { dark: '#008000', light: '#008000', hc: null }, nls.localize('infoForeground', 'Foreground color of info squigglies in the editor.')); diff --git a/src/vs/editor/contrib/multicursor/multicursor.ts b/src/vs/editor/contrib/multicursor/multicursor.ts index 81aee654394..cfe4432d479 100644 --- a/src/vs/editor/contrib/multicursor/multicursor.ts +++ b/src/vs/editor/contrib/multicursor/multicursor.ts @@ -810,6 +810,11 @@ export class SelectionHighlighter extends Disposable implements IEditorContribut } const model = this.editor.getModel(); + if (model.isTooLargeForTokenization()) { + // the file is too large, so searching word under cursor in the whole document takes is blocking the UI. + return; + } + const hasFindOccurrences = DocumentHighlightProviderRegistry.has(model); let allMatches = model.findMatches(this.state.searchText, true, false, this.state.matchCase, this.state.wordSeparators, false).map(m => m.range); diff --git a/src/vs/editor/contrib/quickFix/quickFixCommands.ts b/src/vs/editor/contrib/quickFix/quickFixCommands.ts index 61f424520f6..6368abcb287 100644 --- a/src/vs/editor/contrib/quickFix/quickFixCommands.ts +++ b/src/vs/editor/contrib/quickFix/quickFixCommands.ts @@ -230,7 +230,11 @@ export class RefactorAction extends EditorAction { id: RefactorAction.Id, label: nls.localize('refactor.label', "Refactor"), alias: 'Refactor', - precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider) + precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.hasCodeActionsProvider), + kbOpts: { + kbExpr: EditorContextKeys.textFocus, + primary: KeyMod.WinCtrl | KeyMod.Shift | KeyCode.KEY_R + } }); } diff --git a/src/vs/editor/contrib/referenceSearch/referencesWidget.ts b/src/vs/editor/contrib/referenceSearch/referencesWidget.ts index e5fff92bdae..47ea71b6a66 100644 --- a/src/vs/editor/contrib/referenceSearch/referencesWidget.ts +++ b/src/vs/editor/contrib/referenceSearch/referencesWidget.ts @@ -253,7 +253,8 @@ class Controller extends WorkbenchTreeController { } var result = super.onClick(tree, element, event); - if (event.ctrlKey || event.metaKey || event.altKey) { + var openToSide = event.ctrlKey || event.metaKey || event.altKey; + if (openToSide && (isDoubleClick || this.openOnSingleClick)) { this._onDidOpenToSide.fire(element); } else if (isDoubleClick) { this._onDidSelect.fire(element); diff --git a/src/vs/editor/contrib/snippet/test/snippetParser.test.ts b/src/vs/editor/contrib/snippet/test/snippetParser.test.ts index 4ed94f7f584..20d5d3c96af 100644 --- a/src/vs/editor/contrib/snippet/test/snippetParser.test.ts +++ b/src/vs/editor/contrib/snippet/test/snippetParser.test.ts @@ -624,4 +624,10 @@ suite('SnippetParser', () => { const clone = transform.clone(); assert.equal(clone.resolve('my-file-name'), 'MyFileName'); }); + + test('problem with snippets regex #40570', function () { + + const snippet = new SnippetParser().parse('${TM_DIRECTORY/.*src[\\/](.*)/$1/}'); + assertMarker(snippet, Variable); + }); }); diff --git a/src/vs/editor/contrib/suggest/suggestController.ts b/src/vs/editor/contrib/suggest/suggestController.ts index b3a73b17cd9..b800056c46c 100644 --- a/src/vs/editor/contrib/suggest/suggestController.ts +++ b/src/vs/editor/contrib/suggest/suggestController.ts @@ -95,7 +95,7 @@ export class SuggestController implements IEditorContribution { @IInstantiationService private _instantiationService: IInstantiationService, ) { this._model = new SuggestModel(this._editor); - this._memory = _instantiationService.createInstance(SuggestMemories, this._editor.getConfiguration().contribInfo.selectSuggestions); + this._memory = _instantiationService.createInstance(SuggestMemories, this._editor.getConfiguration().contribInfo.suggestSelection); this._toDispose.push(this._model.onDidTrigger(e => { if (!this._widget) { @@ -116,9 +116,9 @@ export class SuggestController implements IEditorContribution { // Manage the acceptSuggestionsOnEnter context key let acceptSuggestionsOnEnter = SuggestContext.AcceptSuggestionsOnEnter.bindTo(_contextKeyService); let updateFromConfig = () => { - const { acceptSuggestionOnEnter, selectSuggestions } = this._editor.getConfiguration().contribInfo; + const { acceptSuggestionOnEnter, suggestSelection } = this._editor.getConfiguration().contribInfo; acceptSuggestionsOnEnter.set(acceptSuggestionOnEnter === 'on' || acceptSuggestionOnEnter === 'smart'); - this._memory.setMode(selectSuggestions); + this._memory.setMode(suggestSelection); }; this._toDispose.push(this._editor.onDidChangeConfiguration((e) => updateFromConfig())); updateFromConfig(); diff --git a/src/vs/editor/contrib/suggest/suggestMemory.ts b/src/vs/editor/contrib/suggest/suggestMemory.ts index e434231cf0e..3fdcc99d6be 100644 --- a/src/vs/editor/contrib/suggest/suggestMemory.ts +++ b/src/vs/editor/contrib/suggest/suggestMemory.ts @@ -165,7 +165,7 @@ export class PrefixMemory extends Memory { } } -export type MemMode = 'never' | 'byRecency' | 'byPrefix'; +export type MemMode = 'first' | 'byRecency' | 'byPrefix'; export class SuggestMemories { diff --git a/src/vs/monaco.d.ts b/src/vs/monaco.d.ts index cb54609197a..ee095d5b1fe 100644 --- a/src/vs/monaco.d.ts +++ b/src/vs/monaco.d.ts @@ -2745,7 +2745,7 @@ declare module monaco.editor { /** * The history mode for suggestions. */ - selectSuggestions?: string; + suggestSelection?: string; /** * The font size for the suggest widget. * Defaults to the editor font size. @@ -3052,7 +3052,7 @@ declare module monaco.editor { readonly acceptSuggestionOnCommitCharacter: boolean; readonly snippetSuggestions: 'top' | 'bottom' | 'inline' | 'none'; readonly wordBasedSuggestions: boolean; - readonly selectSuggestions: 'never' | 'byRecency' | 'byPrefix'; + readonly suggestSelection: 'first' | 'byRecency' | 'byPrefix'; readonly suggestFontSize: number; readonly suggestLineHeight: number; readonly selectionHighlight: boolean; diff --git a/src/vs/platform/actions/browser/menuItemActionItem.ts b/src/vs/platform/actions/browser/menuItemActionItem.ts index 2ce14fddef7..9f8e5bda400 100644 --- a/src/vs/platform/actions/browser/menuItemActionItem.ts +++ b/src/vs/platform/actions/browser/menuItemActionItem.ts @@ -237,3 +237,17 @@ export class MenuItemActionItem extends ActionItem { super.dispose(); } } + +// Need to subclass MenuItemActionItem in order to respect +// the action context coming from any action bar, without breaking +// existing users +export class ContextAwareMenuItemActionItem extends MenuItemActionItem { + + onClick(event: MouseEvent): void { + event.preventDefault(); + event.stopPropagation(); + + this.actionRunner.run(this._commandAction, this._context) + .done(undefined, err => this._messageService.show(Severity.Error, err)); + } +} \ No newline at end of file diff --git a/src/vs/platform/contextkey/common/contextkey.ts b/src/vs/platform/contextkey/common/contextkey.ts index f40bd669a54..208cfa184bf 100644 --- a/src/vs/platform/contextkey/common/contextkey.ts +++ b/src/vs/platform/contextkey/common/contextkey.ts @@ -400,7 +400,7 @@ export class ContextKeyRegexExpr implements ContextKeyExpr { } public serialize(): string { - return `${this.keys} =~ /${this.regexp ? this.regexp.source : ''}/`; + return `${this.key} =~ /${this.regexp ? this.regexp.source : ''}/`; } public keys(): string[] { diff --git a/src/vs/platform/credentials/test/node/keytar.test.ts b/src/vs/platform/credentials/test/node/keytar.test.ts index 5ae212f9b83..68e724bbccb 100644 --- a/src/vs/platform/credentials/test/node/keytar.test.ts +++ b/src/vs/platform/credentials/test/node/keytar.test.ts @@ -17,10 +17,20 @@ suite('Keytar', () => { } (async () => { const keytar = await import('keytar'); - await keytar.setPassword('VSCode Test', 'foo', 'bar'); - assert.equal(await keytar.getPassword('VSCode Test', 'foo'), 'bar'); - await keytar.deletePassword('VSCode Test', 'foo'); - assert.equal(await keytar.getPassword('VSCode Test', 'foo'), undefined); + const name = `VSCode Test ${Math.floor(Math.random() * 1e9)}`; + try { + await keytar.setPassword(name, 'foo', 'bar'); + assert.equal(await keytar.getPassword(name, 'foo'), 'bar'); + await keytar.deletePassword(name, 'foo'); + assert.equal(await keytar.getPassword(name, 'foo'), undefined); + } catch (err) { + // try to clean up + try { + await keytar.deletePassword(name, 'foo'); + } finally { + throw err; + } + } })().then(done, done); }); }); \ No newline at end of file diff --git a/src/vs/platform/environment/common/environment.ts b/src/vs/platform/environment/common/environment.ts index 7af1337322a..ea31afddd32 100644 --- a/src/vs/platform/environment/common/environment.ts +++ b/src/vs/platform/environment/common/environment.ts @@ -55,7 +55,7 @@ export interface ParsedArgs { 'skip-add-to-recently-opened'?: boolean; 'file-write'?: boolean; 'file-chmod'?: boolean; - 'upload-logs'?: boolean; + 'upload-logs'?: string; } export const IEnvironmentService = createDecorator('environmentService'); diff --git a/src/vs/platform/environment/node/argv.ts b/src/vs/platform/environment/node/argv.ts index 967ad4ab533..bea31250516 100644 --- a/src/vs/platform/environment/node/argv.ts +++ b/src/vs/platform/environment/node/argv.ts @@ -28,7 +28,8 @@ const options: minimist.Opts = { 'debugBrkSearch', 'enable-proposed-api', 'export-default-configuration', - 'install-source' + 'install-source', + 'upload-logs' ], boolean: [ 'help', @@ -60,8 +61,7 @@ const options: minimist.Opts = { 'skip-add-to-recently-opened', 'status', 'file-write', - 'file-chmod', - 'upload-logs' + 'file-chmod' ], alias: { add: 'a', @@ -138,11 +138,11 @@ const optionsHelp: { [name: string]: string; } = { '-d, --diff ': localize('diff', "Compare two files with each other."), '-a, --add ': localize('add', "Add folder(s) to the last active window."), '-g, --goto ': localize('goto', "Open a file at the path on the specified line and character position."), - '-n, --new-window': localize('newWindow', "Force a new instance of Code."), - '-r, --reuse-window': localize('reuseWindow', "Force opening a file or folder in the last active window."), + '-n, --new-window': localize('newWindow', "Force to open a new window."), + '-r, --reuse-window': localize('reuseWindow', "Force to open a file or folder in the last active window."), '-w, --wait': localize('wait', "Wait for the files to be closed before returning."), '--locale ': localize('locale', "The locale to use (e.g. en-US or zh-TW)."), - '--user-data-dir ': localize('userDataDir', "Specifies the directory that user data is kept in, useful when running as root."), + '--user-data-dir ': localize('userDataDir', "Specifies the directory that user data is kept in. Can be used to open multiple distinct instances of Code."), '-v, --version': localize('version', "Print version."), '-h, --help': localize('help', "Print usage.") }; diff --git a/src/vs/platform/extensionManagement/common/extensionManagement.ts b/src/vs/platform/extensionManagement/common/extensionManagement.ts index 5eb1cb408ab..026353790fd 100644 --- a/src/vs/platform/extensionManagement/common/extensionManagement.ts +++ b/src/vs/platform/extensionManagement/common/extensionManagement.ts @@ -10,6 +10,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import Event from 'vs/base/common/event'; import { IPager } from 'vs/base/common/paging'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; +import { ILocalization } from 'vs/platform/localizations/common/localizations'; export const EXTENSION_IDENTIFIER_PATTERN = '^([a-z0-9A-Z][a-z0-9\-A-Z]*)\\.([a-z0-9A-Z][a-z0-9\-A-Z]*)$'; export const EXTENSION_IDENTIFIER_REGEX = new RegExp(EXTENSION_IDENTIFIER_PATTERN); @@ -85,12 +86,6 @@ export interface IColor { defaults: { light: string, dark: string, highContrast: string }; } -export interface ILocalization { - languageId: string; - languageName?: string; - translations: string; -} - export interface IExtensionContributions { commands?: ICommand[]; configuration?: IConfiguration; @@ -345,7 +340,7 @@ export const IExtensionTipsService = createDecorator('ext export interface IExtensionTipsService { _serviceBrand: any; - getAllRecommendationsWithReason(): { [id: string]: string; }; + getAllRecommendationsWithReason(): { [id: string]: { reasonId: ExtensionRecommendationReason, reasonText: string }; }; getFileBasedRecommendations(): string[]; getOtherRecommendations(): string[]; getWorkspaceRecommendations(): TPromise; @@ -354,6 +349,13 @@ export interface IExtensionTipsService { getRecommendationsForExtension(extension: string): string[]; } +export enum ExtensionRecommendationReason { + Workspace, + File, + Executable, + DynamicWorkspace +} + export const ExtensionsLabel = localize('extensions', "Extensions"); export const ExtensionsChannelId = 'extensions'; export const PreferencesLabel = localize('preferences', "Preferences"); diff --git a/src/vs/platform/extensionManagement/common/extensionManagementUtil.ts b/src/vs/platform/extensionManagement/common/extensionManagementUtil.ts index 73519179b53..2199b43bebe 100644 --- a/src/vs/platform/extensionManagement/common/extensionManagementUtil.ts +++ b/src/vs/platform/extensionManagement/common/extensionManagementUtil.ts @@ -39,6 +39,10 @@ export function adoptToGalleryExtensionId(id: string): string { return id.replace(EXTENSION_IDENTIFIER_REGEX, (match, publisher: string, name: string) => getGalleryExtensionId(publisher, name)); } +export function getLocalExtensionId(id: string, version: string): string { + return `${id}-${version}`; +} + export function groupByExtension(extensions: T[], getExtensionIdentifier: (t: T) => IExtensionIdentifier): T[][] { const byExtension: T[][] = []; const findGroup = extension => { diff --git a/src/vs/platform/extensionManagement/node/extensionGalleryService.ts b/src/vs/platform/extensionManagement/node/extensionGalleryService.ts index 81b8e3cc744..6cef891ca00 100644 --- a/src/vs/platform/extensionManagement/node/extensionGalleryService.ts +++ b/src/vs/platform/extensionManagement/node/extensionGalleryService.ts @@ -230,6 +230,13 @@ function getVersionAsset(version: IRawGalleryExtensionVersion, type: string): IG return { uri, fallbackUri: uri }; } + if (type === AssetType.Repository) { + return { + uri: null, + fallbackUri: null + }; + } + return null; } diff --git a/src/vs/platform/extensionManagement/node/extensionManagementService.ts b/src/vs/platform/extensionManagement/node/extensionManagementService.ts index 33fe4d5af2c..fb57f83221d 100644 --- a/src/vs/platform/extensionManagement/node/extensionManagementService.ts +++ b/src/vs/platform/extensionManagement/node/extensionManagementService.ts @@ -11,7 +11,7 @@ import * as pfs from 'vs/base/node/pfs'; import * as errors from 'vs/base/common/errors'; import { assign } from 'vs/base/common/objects'; import { IDisposable, dispose, toDisposable } from 'vs/base/common/lifecycle'; -import { flatten, distinct } from 'vs/base/common/arrays'; +import { flatten, distinct, coalesce } from 'vs/base/common/arrays'; import { extract, buffer } from 'vs/base/node/zip'; import { TPromise } from 'vs/base/common/winjs.base'; import { @@ -22,7 +22,7 @@ import { IExtensionIdentifier, IReportedExtension } from 'vs/platform/extensionManagement/common/extensionManagement'; -import { getGalleryExtensionIdFromLocal, adoptToGalleryExtensionId, areSameExtensions, getGalleryExtensionId, groupByExtension, getMaliciousExtensionsSet } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; +import { getGalleryExtensionIdFromLocal, adoptToGalleryExtensionId, areSameExtensions, getGalleryExtensionId, groupByExtension, getMaliciousExtensionsSet, getLocalExtensionId } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; import { localizeManifest } from '../common/extensionNls'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { Limiter } from 'vs/base/common/async'; @@ -291,7 +291,6 @@ export class ExtensionManagementService implements IExtensionManagementService { } private downloadInstallableExtension(extension: IGalleryExtension): TPromise { - const id = getLocalExtensionIdFromGallery(extension, extension.version); const metadata = { id: extension.identifier.uuid, publisherId: extension.publisherId, @@ -309,7 +308,7 @@ export class ExtensionManagementService implements IExtensionManagementService { this.logService.info('Downloaded extension:', extension.name); return validateLocalExtension(zipPath) .then( - () => ({ zipPath, id, metadata }), + manifest => ({ zipPath, id: getLocalExtensionIdFromManifest(manifest), metadata }), error => TPromise.wrapError(new ExtensionManagementError(this.joinErrors(error).message, INSTALL_ERROR_VALIDATING)) ); }, @@ -381,8 +380,6 @@ export class ExtensionManagementService implements IExtensionManagementService { } private installExtension(installableExtension: InstallableExtension): TPromise { - // BLOCK REPORTED EXTENSIONS HERE? - return this.unsetUninstalledAndGetLocal(installableExtension.id) .then( local => { @@ -683,66 +680,62 @@ export class ExtensionManagementService implements IExtensionManagementService { private scanUserExtensions(excludeOutdated: boolean): TPromise { this.logService.trace('Started scanning user extensions'); - return this.scanExtensions(this.extensionsPath, LocalExtensionType.User) - .then(extensions => { - this.logService.info('Scanned user extensions:', extensions.length); + return TPromise.join([this.getUninstalledExtensions(), this.scanExtensions(this.extensionsPath, LocalExtensionType.User)]) + .then(([uninstalled, extensions]) => { + extensions = extensions.filter(e => !uninstalled[e.identifier.id]); if (excludeOutdated) { const byExtension: ILocalExtension[][] = groupByExtension(extensions, e => ({ id: getGalleryExtensionIdFromLocal(e), uuid: e.identifier.uuid })); - return byExtension.map(p => p.sort((a, b) => semver.rcompare(a.manifest.version, b.manifest.version))[0]); + extensions = byExtension.map(p => p.sort((a, b) => semver.rcompare(a.manifest.version, b.manifest.version))[0]); } + this.logService.info('Scanned user extensions:', extensions.length); return extensions; }); } private scanExtensions(root: string, type: LocalExtensionType): TPromise { const limiter = new Limiter(10); + return pfs.readdir(root) + .then(extensionsFolders => TPromise.join(extensionsFolders.map(extensionFolder => limiter.queue(() => this.scanExtension(extensionFolder, root, type))))) + .then(extensions => coalesce(extensions)); + } - return this.scanExtensionFolders(root) - .then(extensionIds => TPromise.join(extensionIds.map(id => { - const extensionPath = path.join(root, id); - - const each = () => pfs.readdir(extensionPath).then(children => { + private scanExtension(folderName: string, root: string, type: LocalExtensionType): TPromise { + const extensionPath = path.join(root, folderName); + return pfs.readdir(extensionPath) + .then(children => readManifest(extensionPath) + .then(({ manifest, metadata }) => { const readme = children.filter(child => /^readme(\.txt|\.md|)$/i.test(child))[0]; const readmeUrl = readme ? URI.file(path.join(extensionPath, readme)).toString() : null; const changelog = children.filter(child => /^changelog(\.txt|\.md|)$/i.test(child))[0]; const changelogUrl = changelog ? URI.file(path.join(extensionPath, changelog)).toString() : null; - - return readManifest(extensionPath) - .then(({ manifest, metadata }) => { - if (manifest.extensionDependencies) { - manifest.extensionDependencies = manifest.extensionDependencies.map(id => adoptToGalleryExtensionId(id)); - } - const identifier = { id: type === LocalExtensionType.System ? id : getLocalExtensionIdFromManifest(manifest), uuid: metadata ? metadata.id : null }; - return { type, identifier, manifest, metadata, path: extensionPath, readmeUrl, changelogUrl }; - }); - }).then(null, () => null); - - return limiter.queue(each); - }))) - .then(result => result.filter(a => !!a)); - } - - private scanExtensionFolders(root: string): TPromise { - return this.getUninstalledExtensions() - .then(uninstalled => pfs.readdir(root).then(extensions => extensions.filter(id => !uninstalled[id]))); + if (manifest.extensionDependencies) { + manifest.extensionDependencies = manifest.extensionDependencies.map(id => adoptToGalleryExtensionId(id)); + } + const identifier = { id: type === LocalExtensionType.System ? folderName : getLocalExtensionIdFromManifest(manifest), uuid: metadata ? metadata.id : null }; + return { type, identifier, manifest, metadata, path: extensionPath, readmeUrl, changelogUrl }; + })) + .then(null, () => null); } removeDeprecatedExtensions(): TPromise { return this.getUninstalledExtensions() - .then(uninstalled => { - const unInstalledExtensionIds = Object.keys(uninstalled); - return this.scanUserExtensions(false) - .then(extensions => { - const byExtension: ILocalExtension[][] = groupByExtension(extensions, e => ({ id: getGalleryExtensionIdFromLocal(e), uuid: e.identifier.uuid })); - const outDatedExtensionIds = flatten(byExtension.map(p => p.sort((a, b) => semver.rcompare(a.manifest.version, b.manifest.version)).slice(1))) - .map(a => a.identifier.id); + .then(uninstalled => this.scanExtensions(this.extensionsPath, LocalExtensionType.User) // All user extensions + .then(extensions => { + const toRemove: { path: string, id: string }[] = []; + // Uninstalled extensions + toRemove.push(...extensions.filter(e => uninstalled[e.identifier.id]).map(e => ({ path: e.path, id: e.identifier.id }))); - return TPromise.join([...unInstalledExtensionIds, ...outDatedExtensionIds].map(id => { - return pfs.rimraf(path.join(this.extensionsPath, id)) - .then(() => this.withUninstalledExtensions(uninstalled => delete uninstalled[id])); - })); - }); - }); + // Outdated extensions + const byExtension: ILocalExtension[][] = groupByExtension(extensions, e => ({ id: getGalleryExtensionIdFromLocal(e), uuid: e.identifier.uuid })); + toRemove.push(...flatten(byExtension.map(p => p.sort((a, b) => semver.rcompare(a.manifest.version, b.manifest.version)).slice(1))) + .map(e => ({ path: e.path, id: e.identifier.id }))); + + return TPromise.join(distinct(toRemove, e => e.path).map(({ path, id }) => { + return pfs.rimraf(path) + .then(() => this.withUninstalledExtensions(uninstalled => delete uninstalled[id])); + })); + }) + ); } private isUninstalled(id: string): TPromise { @@ -827,8 +820,4 @@ export function getLocalExtensionIdFromGallery(extension: IGalleryExtension, ver export function getLocalExtensionIdFromManifest(manifest: IExtensionManifest): string { return getLocalExtensionId(getGalleryExtensionId(manifest.publisher, manifest.name), manifest.version); -} - -function getLocalExtensionId(id: string, version: string): string { - return `${id}-${version}`; -} +} \ No newline at end of file diff --git a/src/vs/platform/extensionManagement/test/common/extensionEnablementService.test.ts b/src/vs/platform/extensionManagement/test/common/extensionEnablementService.test.ts index 63d92406632..8113bdd0f14 100644 --- a/src/vs/platform/extensionManagement/test/common/extensionEnablementService.test.ts +++ b/src/vs/platform/extensionManagement/test/common/extensionEnablementService.test.ts @@ -326,7 +326,7 @@ suite('ExtensionEnablementService Test', () => { }); test('test canChangeEnablement return false for language packs', () => { - assert.equal(testObject.canChangeEnablement(aLocalExtension('pub.a', { localizations: [{ languageId: 'gr', translations: 'somepath' }] })), false); + assert.equal(testObject.canChangeEnablement(aLocalExtension('pub.a', { localizations: [{ languageId: 'gr', translations: [{ id: 'vscode', path: 'path' }] }] })), false); }); }); diff --git a/src/vs/platform/files/common/files.ts b/src/vs/platform/files/common/files.ts index 0fe4bf63718..1cccbb587e0 100644 --- a/src/vs/platform/files/common/files.ts +++ b/src/vs/platform/files/common/files.ts @@ -15,6 +15,7 @@ import { beginsWithIgnoreCase } from 'vs/base/common/strings'; import { IProgress } from 'vs/platform/progress/common/progress'; import { IDisposable } from 'vs/base/common/lifecycle'; import { isEqualOrParent, isEqual } from 'vs/base/common/resources'; +import { isUndefinedOrNull } from 'vs/base/common/types'; export const IFileService = createDecorator('fileService'); @@ -587,6 +588,10 @@ export class FileOperationError extends Error { constructor(message: string, public fileOperationResult: FileOperationResult, public options?: IResolveContentOptions & IUpdateContentOptions & ICreateFileOptions) { super(message); } + + static isFileOperationError(obj: any): obj is FileOperationError { + return obj instanceof Error && !isUndefinedOrNull((obj as FileOperationError).fileOperationResult); + } } export enum FileOperationResult { diff --git a/src/vs/platform/issue/common/issue.ts b/src/vs/platform/issue/common/issue.ts index 1f80ba156b7..4ad6df21df9 100644 --- a/src/vs/platform/issue/common/issue.ts +++ b/src/vs/platform/issue/common/issue.ts @@ -12,6 +12,12 @@ import { ILocalExtension } from 'vs/platform/extensionManagement/common/extensio export const ID = 'issueService'; export const IIssueService = createDecorator(ID); +export enum IssueType { + Bug, + PerformanceIssue, + FeatureRequest +} + export interface IssueReporterStyles { backgroundColor: string; color: string; @@ -30,6 +36,7 @@ export interface IssueReporterData { styles: IssueReporterStyles; zoomLevel: number; enabledExtensions: ILocalExtension[]; + issueType?: IssueType; } export interface IIssueService { diff --git a/src/vs/platform/issue/electron-main/issueService.ts b/src/vs/platform/issue/electron-main/issueService.ts index 0152abba74f..02ed4c69862 100644 --- a/src/vs/platform/issue/electron-main/issueService.ts +++ b/src/vs/platform/issue/electron-main/issueService.ts @@ -39,7 +39,7 @@ export class IssueService implements IIssueService { }); this._issueWindow = new BrowserWindow({ - width: 800, + width: 750, height: 1100, title: localize('issueReporter', "Issue Reporter"), parent: BrowserWindow.getFocusedWindow(), diff --git a/src/vs/platform/list/browser/listService.ts b/src/vs/platform/list/browser/listService.ts index 87f6116a063..e003a1378af 100644 --- a/src/vs/platform/list/browser/listService.ts +++ b/src/vs/platform/list/browser/listService.ts @@ -6,7 +6,7 @@ import { ITree, ITreeConfiguration, ITreeOptions } from 'vs/base/parts/tree/browser/tree'; import { List, IListOptions, isSelectionRangeChangeEvent, isSelectionSingleChangeEvent, IMultipleSelectionController, IOpenController } from 'vs/base/browser/ui/list/listWidget'; -import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; +import { createDecorator, IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IDisposable, toDisposable, combinedDisposable, dispose, Disposable } from 'vs/base/common/lifecycle'; import { IContextKeyService, IContextKey, RawContextKey, ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; import { PagedList, IPagedRenderer } from 'vs/base/browser/ui/list/listPaging'; @@ -20,7 +20,7 @@ import { mixin } from 'vs/base/common/objects'; import { localize } from 'vs/nls'; import { Registry } from 'vs/platform/registry/common/platform'; import { Extensions as ConfigurationExtensions, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry'; -import { DefaultController, IControllerOptions, OpenMode } from 'vs/base/parts/tree/browser/treeDefaults'; +import { DefaultController, IControllerOptions, OpenMode, ClickBehavior } from 'vs/base/parts/tree/browser/treeDefaults'; import { isUndefinedOrNull } from 'vs/base/common/types'; import { IEditorOptions } from 'vs/platform/editor/common/editor'; import Event, { Emitter } from 'vs/base/common/event'; @@ -141,7 +141,7 @@ class OpenController implements IOpenController { } function handleListControllers(options: IListOptions, configurationService: IConfigurationService): IListOptions { - if (options.multipleSelectionSupport === true && !options.multipleSelectionController) { + if (options.multipleSelectionSupport !== false && !options.multipleSelectionController) { options.multipleSelectionController = new MultipleSelectionController(configurationService); } @@ -150,6 +150,14 @@ function handleListControllers(options: IListOptions, configurationService return options; } +function handleTreeController(configuration: ITreeConfiguration, instantiationService: IInstantiationService): ITreeConfiguration { + if (!configuration.controller) { + configuration.controller = instantiationService.createInstance(WorkbenchTreeController, { clickBehavior: ClickBehavior.ON_MOUSE_UP }); + } + + return configuration; +} + export class WorkbenchList extends List { readonly contextKeyService: IContextKeyService; @@ -266,9 +274,10 @@ export class WorkbenchTree extends Tree { @IContextKeyService contextKeyService: IContextKeyService, @IListService listService: IListService, @IThemeService themeService: IThemeService, + @IInstantiationService instantiationService: IInstantiationService, @IConfigurationService private configurationService: IConfigurationService ) { - super(container, configuration, mixin(options, { keyboardSupport: false } as ITreeOptions, false)); + super(container, handleTreeController(configuration, instantiationService), mixin(options, { keyboardSupport: false } as ITreeOptions, false)); this.contextKeyService = createScopedContextKeyService(contextKeyService, this); this.listDoubleSelection = WorkbenchListDoubleSelection.bindTo(this.contextKeyService); @@ -454,7 +463,7 @@ configurationRegistry.registerConfiguration({ '- `ctrlCmd` refers to a value the setting can take and should not be localized.', '- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized.' ] - }, "The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (if supported). `ctrlCmd` maps to `Control` on Windows and Linux and to `Command` on macOS. The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.") + }, "The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). `ctrlCmd` maps to `Control` on Windows and Linux and to `Command` on macOS. The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.") }, 'workbench.list.openMode': { 'type': 'string', @@ -467,7 +476,7 @@ configurationRegistry.registerConfiguration({ 'description': localize({ key: 'openModeModifier', comment: ['`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized.'] - }, "Controls how to open items in trees and lists using the mouse (if supported). Set to `singleClick` to open items with a single mouse click and `doubleClick` to only open via mouse double click. For parents with children in trees, this setting will control if a single click expands the parent or a double click. Note that some trees and lists might chose to ignore this setting if it is not applicable. ") + }, "Controls how to open items in trees and lists using the mouse (if supported). Set to `singleClick` to open items with a single mouse click and `doubleClick` to only open via mouse double click. For parents with children in trees, this setting will control if a single click expands the parent or a double click. Note that some trees and lists might choose to ignore this setting if it is not applicable. ") } } -}); \ No newline at end of file +}); diff --git a/src/vs/platform/localizations/common/localizations.ts b/src/vs/platform/localizations/common/localizations.ts new file mode 100644 index 00000000000..bf11d96da2e --- /dev/null +++ b/src/vs/platform/localizations/common/localizations.ts @@ -0,0 +1,92 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ +'use strict'; + +import { localize } from 'vs/nls'; +import { ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; +import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; + +export interface ILocalization { + languageId: string; + languageName?: string; + languageNameLocalized?: string; + translations: ITranslation[]; +} + +export interface ITranslation { + id: string; + path: string; +} + +export const ILocalizationsService = createDecorator('localizationsService'); +export interface ILocalizationsService { + _serviceBrand: any; +} + +export function isValidLocalization(localization: ILocalization): boolean { + if (typeof localization.languageId !== 'string') { + return false; + } + if (!Array.isArray(localization.translations) || localization.translations.length === 0) { + return false; + } + for (const translation of localization.translations) { + if (typeof translation.id !== 'string') { + return false; + } + if (typeof translation.path !== 'string') { + return false; + } + } + if (localization.languageName && typeof localization.languageName !== 'string') { + return false; + } + if (localization.languageNameLocalized && typeof localization.languageNameLocalized !== 'string') { + return false; + } + return true; +} + +ExtensionsRegistry.registerExtensionPoint('localizations', [], { + description: localize('vscode.extension.contributes.localizations', "Contributes localizations to the editor"), + type: 'array', + items: { + type: 'object', + properties: { + languageId: { + description: localize('vscode.extension.contributes.localizations.languageId', 'Id of the language into which the display strings are translated.'), + type: 'string' + }, + languageName: { + description: localize('vscode.extension.contributes.localizations.languageName', 'Name of the language in English.'), + type: 'string' + }, + languageNameLocalized: { + description: localize('vscode.extension.contributes.localizations.languageNameLocalized', 'Name of the language in contributed language.'), + type: 'string' + }, + translations: { + description: localize('vscode.extension.contributes.localizations.translations', 'List of translations associated to the language.'), + type: 'array', + default: [], + items: { + type: 'object', + properties: { + id: { + type: 'string', + description: localize('vscode.extension.contributes.localizations.translations.id', "Id of VS Code or Extension for which this translation is contributed to. Id of VS Code is always `vscode` and of extension should be in format `publisherId.extensionName`."), + pattern: '^((vscode)|([a-z0-9A-Z][a-z0-9\-A-Z]*)\\.([a-z0-9A-Z][a-z0-9\-A-Z]*))$', + patternErrorMessage: localize('vscode.extension.contributes.localizations.translations.id.pattern', "Id should be `vscode` or in format `publisherId.extensionName` for translating VS code or an extension respectively.") + }, + path: { + type: 'string', + description: localize('vscode.extension.contributes.localizations.translations.path', "A relative path to a file containing translations for the language.") + } + } + } + } + } + } +}); \ No newline at end of file diff --git a/src/vs/code/electron-browser/sharedProcess/contrib/languagePackExtensions.ts b/src/vs/platform/localizations/node/localizations.ts similarity index 51% rename from src/vs/code/electron-browser/sharedProcess/contrib/languagePackExtensions.ts rename to src/vs/platform/localizations/node/localizations.ts index 824a6c2ee62..0e8fb3a98e4 100644 --- a/src/vs/code/electron-browser/sharedProcess/contrib/languagePackExtensions.ts +++ b/src/vs/platform/localizations/node/localizations.ts @@ -4,22 +4,27 @@ *--------------------------------------------------------------------------------------------*/ import * as pfs from 'vs/base/node/pfs'; +import { createHash } from 'crypto'; import { IExtensionManagementService, ILocalExtension, IExtensionIdentifier } from 'vs/platform/extensionManagement/common/extensionManagement'; import { Disposable } from 'vs/base/common/lifecycle'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { join } from 'vs/base/common/paths'; import { TPromise } from 'vs/base/common/winjs.base'; import { Limiter } from 'vs/base/common/async'; -import { areSameExtensions, getGalleryExtensionIdFromLocal, getIdFromLocalExtensionId } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; +import { areSameExtensions, getGalleryExtensionIdFromLocal } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; import { ILogService } from 'vs/platform/log/common/log'; +import { isValidLocalization } from 'vs/platform/localizations/common/localizations'; -interface ILanguageSource { - extensionIdentifier: IExtensionIdentifier; - version: string; - translations: string; +interface ILanguagePack { + hash: string; + extensions: { + extensionIdentifier: IExtensionIdentifier; + version: string; + }[]; + translations: { [id: string]: string }; } -export class LanguagePackExtensions extends Disposable { +export class LanguagePacksCache extends Disposable { private languagePacksFilePath: string; private languagePacksFileLimiter: Limiter; @@ -39,64 +44,81 @@ export class LanguagePackExtensions extends Disposable { this.reset(); } - private reset(): void { - this.extensionManagementService.getInstalled() - .then(installed => { - this.withLanguagePacks(languagePacks => { - for (const language of Object.keys(languagePacks)) { - languagePacks[language] = []; - } - this.addLanguagePacksFromExtensions(languagePacks, ...installed); - }); - }); - } - private onDidInstallExtension(extension: ILocalExtension): void { if (extension && extension.manifest && extension.manifest.contributes && extension.manifest.contributes.localizations && extension.manifest.contributes.localizations.length) { this.logService.debug('Adding language packs from the extension', extension.identifier.id); - this.withLanguagePacks(languagePacks => { - this.removeLanguagePacksFromExtensions(languagePacks, { id: getGalleryExtensionIdFromLocal(extension), uuid: extension.identifier.uuid }); - this.addLanguagePacksFromExtensions(languagePacks, extension); - }); + this.reset(); } } private onDidUninstallExtension(identifier: IExtensionIdentifier): void { - this.logService.debug('Removing language packs from the extension', identifier.id); - this.withLanguagePacks(languagePacks => this.removeLanguagePacksFromExtensions(languagePacks, { id: getIdFromLocalExtensionId(identifier.id), uuid: identifier.uuid })); + if (this.withLanguagePacks(languagePacks => Object.keys(languagePacks).some(language => languagePacks[language] && languagePacks[language].extensions.some(e => areSameExtensions(e.extensionIdentifier, identifier))))) { + this.logService.debug('Removing language packs from the extension', identifier.id); + this.reset(); + } } - private addLanguagePacksFromExtensions(languagePacks: { [language: string]: ILanguageSource[] }, ...extensions: ILocalExtension[]): void { + private reset(): void { + this.extensionManagementService.getInstalled() + .then(installed => { + this.withLanguagePacks(languagePacks => { + Object.keys(languagePacks).forEach(language => languagePacks[language] = undefined); + this.createLanguagePacksFromExtensions(languagePacks, ...installed); + }); + }); + } + + private createLanguagePacksFromExtensions(languagePacks: { [language: string]: ILanguagePack }, ...extensions: ILocalExtension[]): void { for (const extension of extensions) { if (extension && extension.manifest && extension.manifest.contributes && extension.manifest.contributes.localizations && extension.manifest.contributes.localizations.length) { - const extensionIdentifier = { id: getGalleryExtensionIdFromLocal(extension), uuid: extension.identifier.uuid }; - for (const localizationContribution of extension.manifest.contributes.localizations) { - if (localizationContribution.languageId && localizationContribution.translations) { - const languageSources = languagePacks[localizationContribution.languageId] || []; - languageSources.splice(0, 0, { extensionIdentifier, translations: join(extension.path, localizationContribution.translations), version: extension.manifest.version }); - languagePacks[localizationContribution.languageId] = languageSources; - } + this.createLanguagePacksFromExtension(languagePacks, extension); + } + } + Object.keys(languagePacks).forEach(languageId => this.updateHash(languagePacks[languageId])); + } + + private createLanguagePacksFromExtension(languagePacks: { [language: string]: ILanguagePack }, extension: ILocalExtension): void { + const extensionIdentifier = { id: getGalleryExtensionIdFromLocal(extension), uuid: extension.identifier.uuid }; + for (const localizationContribution of extension.manifest.contributes.localizations) { + if (isValidLocalization(localizationContribution)) { + let languagePack = languagePacks[localizationContribution.languageId]; + if (!languagePack) { + languagePack = { hash: '', extensions: [], translations: {} }; + languagePacks[localizationContribution.languageId] = languagePack; + } + let extensionInLanguagePack = languagePack.extensions.filter(e => areSameExtensions(e.extensionIdentifier, extensionIdentifier))[0]; + if (extensionInLanguagePack) { + extensionInLanguagePack.version = extension.manifest.version; + } else { + languagePack.extensions.push({ extensionIdentifier, version: extension.manifest.version }); + } + for (const translation of localizationContribution.translations) { + languagePack.translations[translation.id] = join(extension.path, translation.path); } } } } - private removeLanguagePacksFromExtensions(languagePacks: { [language: string]: ILanguageSource[] }, ...extensionIdentifiers: IExtensionIdentifier[]): void { - for (const language of Object.keys(languagePacks)) { - languagePacks[language] = languagePacks[language].filter(languageSource => !extensionIdentifiers.some(extensionIdentifier => areSameExtensions(extensionIdentifier, languageSource.extensionIdentifier))); + private updateHash(languagePack: ILanguagePack): void { + if (languagePack) { + const md5 = createHash('md5'); + for (const extension of languagePack.extensions) { + md5.update(extension.extensionIdentifier.uuid || extension.extensionIdentifier.id).update(extension.version); + } + languagePack.hash = md5.digest('hex'); } } - private withLanguagePacks(fn: (languagePacks: { [language: string]: ILanguageSource[] }) => T): TPromise { + private withLanguagePacks(fn: (languagePacks: { [language: string]: ILanguagePack }) => T): TPromise { return this.languagePacksFileLimiter.queue(() => { let result: T = null; return pfs.readFile(this.languagePacksFilePath, 'utf8') .then(null, err => err.code === 'ENOENT' ? TPromise.as('{}') : TPromise.wrapError(err)) - .then<{ [language: string]: ILanguageSource[] }>(raw => { try { return JSON.parse(raw); } catch (e) { return {}; } }) + .then<{ [language: string]: ILanguagePack }>(raw => { try { return JSON.parse(raw); } catch (e) { return {}; } }) .then(languagePacks => { result = fn(languagePacks); return languagePacks; }) .then(languagePacks => { for (const language of Object.keys(languagePacks)) { - if (!(languagePacks[language] && languagePacks[language].length)) { + if (!languagePacks[language]) { delete languagePacks[language]; } } diff --git a/src/vs/platform/log/node/spdlogService.ts b/src/vs/platform/log/node/spdlogService.ts index 4f096a1c70c..84d7417db5e 100644 --- a/src/vs/platform/log/node/spdlogService.ts +++ b/src/vs/platform/log/node/spdlogService.ts @@ -80,7 +80,6 @@ class SpdLogService extends AbstractLogService implements ILogService { } dispose(): void { - this.logger.flush(); this.logger.drop(); } diff --git a/src/vs/platform/node/product.ts b/src/vs/platform/node/product.ts index ebd1d8e22a4..0e902be82db 100644 --- a/src/vs/platform/node/product.ts +++ b/src/vs/platform/node/product.ts @@ -26,6 +26,7 @@ export interface IProductConfiguration { serviceUrl: string; itemUrl: string; controlUrl: string; + recommendationsUrl: string; }; extensionTips: { [id: string]: string; }; extensionImportantTips: { [id: string]: { name: string; pattern: string; }; }; diff --git a/src/vs/platform/search/common/search.ts b/src/vs/platform/search/common/search.ts index 7fb3992feb1..889b3cac493 100644 --- a/src/vs/platform/search/common/search.ts +++ b/src/vs/platform/search/common/search.ts @@ -177,6 +177,7 @@ export interface ISearchConfigurationProperties { useIgnoreFiles: boolean; followSymlinks: boolean; smartCase: boolean; + globalFindClipboard: boolean; } export interface ISearchConfiguration extends IFilesConfiguration { diff --git a/src/vs/platform/telemetry/common/telemetryUtils.ts b/src/vs/platform/telemetry/common/telemetryUtils.ts index 73b4bcf93cb..a5b2fb56bec 100644 --- a/src/vs/platform/telemetry/common/telemetryUtils.ts +++ b/src/vs/platform/telemetry/common/telemetryUtils.ts @@ -98,7 +98,7 @@ const configurationValueWhitelist = [ 'editor.snippetSuggestions', 'editor.emptySelectionClipboard', 'editor.wordBasedSuggestions', - 'editor.selectSuggestions', + 'editor.suggestSelection', 'editor.suggestFontSize', 'editor.suggestLineHeight', 'editor.selectionHighlight', diff --git a/src/vs/platform/telemetry/node/commonProperties.ts b/src/vs/platform/telemetry/node/commonProperties.ts index 8b7726b168d..ba097b617ff 100644 --- a/src/vs/platform/telemetry/node/commonProperties.ts +++ b/src/vs/platform/telemetry/node/commonProperties.ts @@ -21,7 +21,7 @@ export function resolveCommonProperties(commit: string, version: string, machine result['version'] = version; // __GDPR__COMMON__ "common.platformVersion" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } result['common.platformVersion'] = (os.release() || '').replace(/^(\d+)(\.\d+)?(\.\d+)?(.*)/, '$1$2$3'); - // __GDPR__COMMON__ "common.osVersion" : { "classification": "CustomerContent", "purpose": "FeatureInsight" } + // __GDPR__COMMON__ "common.osVersion" : { "classification": "EndUserPseudonymizedInformation", "purpose": "FeatureInsight" } result['common.osVersion'] = result['common.platformVersion']; // TODO: Drop this after the move to Nova // __GDPR__COMMON__ "common.platform" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } result['common.platform'] = Platform.Platform[Platform.platform]; diff --git a/src/vs/vscode.d.ts b/src/vs/vscode.d.ts index 8c6a5442b8e..cfcb69a2975 100644 --- a/src/vs/vscode.d.ts +++ b/src/vs/vscode.d.ts @@ -1917,6 +1917,8 @@ declare module 'vscode' { /** * A code action represents a change that can be performed in code, e.g. to fix a problem or * to refactor code. + * + * A CodeAction must set either [`edit`](CodeAction#edit) and/or a [`command`](CodeAction#command). If both are supplied, the `edit` is applied first, then the command is executed. */ export class CodeAction { @@ -1926,26 +1928,22 @@ declare module 'vscode' { title: string; /** - * A workspace edit this code action performs. - * - * *Note* that either an [`edit`](CodeAction#edit) or a [`command`](CodeAction#command) must be supplied. + * A [workspace edit](#WorkspaceEdit) this code action performs. */ edit?: WorkspaceEdit; /** - * Diagnostics that this code action resolves. + * [Diagnostics](#Diagnostic) that this code action resolves. */ diagnostics?: Diagnostic[]; /** - * A command this code action performs. - * - * *Note* that either an [`edit`](CodeAction#edit) or a [`command`](CodeAction#command) must be supplied. + * A [command](#Command) this code action executes. */ command?: Command; /** - * Kind of the code action. + * [Kind](#CodeActionKind) of the code action. * * Used to filter code actions. */ @@ -1954,7 +1952,7 @@ declare module 'vscode' { /** * Creates a new code action. * - * A code action must have at least a [title](#CodeAction.title) and either [edits](#CodeAction.edits) + * A code action must have at least a [title](#CodeAction.title) and either [edits](#CodeAction.edit) * or a [command](#CodeAction.command). * * @param title The title of the code action. @@ -2584,46 +2582,6 @@ declare module 'vscode' { * @return A shallow copy of `[Uri, TextEdit[]]`-tuples. */ entries(): [Uri, TextEdit[]][]; - - /** - * Renames a given resource in the workspace. - * - * @param from Uri of current resource. - * @param to Uri of renamed resource. - */ - renameResource(from: Uri, to: Uri): void; - - /** - * Create a new resource in the workspace. - * - * @param uri Uri of resource to create. - */ - createResource(uri: Uri): void; - - /** - * Delete a given resource in the workspace. - * - * @param uri Uri of resource to delete. - */ - deleteResource(uri: Uri): void; - - /** - * Get the resource edits for this workspace edit. - * - * @returns A shallow copy of uri-tuples in which a rename-edit - * is represented as `[from, to]`, a delete-operation as `[from, null]`, - * and a create-operation as `[null, to]`; - */ - resourceEdits(): [Uri, Uri][]; - - /** - * Get all edits, textual changes and file changes. The order is the order - * in which edits have been added to this workspace edits. Textuals edits - * are grouped and the first textual edit for a resource matters. - * - * @returns A shallow copy of all changes. - */ - allEntries(): ([Uri, TextEdit[]] | [Uri, Uri])[]; } /** @@ -3854,7 +3812,7 @@ declare module 'vscode' { * An output channel is a container for readonly textual information. * * To get an instance of an `OutputChannel` use - * [createOutputChannel](#window.createOutputChannel). + * [ createOutputChannel](#window.createOutputChannel). */ export interface OutputChannel { @@ -5083,6 +5041,7 @@ declare module 'vscode' { export interface TreeDataProvider { /** * An optional event to signal that an element or root has changed. + * This will trigger the view to update the changed element/root and its children recursively (if shown). * To signal that root has changed, do not pass any argument or pass `undefined` or `null`. */ onDidChangeTreeData?: Event; @@ -5585,7 +5544,7 @@ declare module 'vscode' { * An event that is emitted when a [text document](#TextDocument) is opened. * * To add an event listener when a visible text document is opened, use the [TextEditor](#TextEditor) events in the - * [window](#_window) namespace. Note that: + * [window](#window) namespace. Note that: * * - The event is emitted before the [document](#TextDocument) is updated in the * [active text editor](#window.activeTextEditor) @@ -5598,7 +5557,7 @@ declare module 'vscode' { * An event that is emitted when a [text document](#TextDocument) is disposed. * * To add an event listener when a visible text document is closed, use the [TextEditor](#TextEditor) events in the - * [window](#_window) namespace. Note that this event is not emitted when a [TextEditor](#TextEditor) is closed + * [window](#window) namespace. Note that this event is not emitted when a [TextEditor](#TextEditor) is closed * but the document remains open in another [visible text editor](#window.visibleTextEditors). */ export const onDidCloseTextDocument: Event; @@ -5643,7 +5602,7 @@ declare module 'vscode' { * @param resource A resource for which the configuration is asked for * @return The full configuration or a subset. */ - export function getConfiguration(section?: string, resource?: Uri): WorkspaceConfiguration; + export function getConfiguration(section?: string, resource?: Uri | null): WorkspaceConfiguration; /** * An event that is emitted when the [configuration](#WorkspaceConfiguration) changed. @@ -6025,11 +5984,6 @@ declare module 'vscode' { * A string to show as place holder in the input box to guide the user. */ placeholder: string; - - /** - * The warning threshold for lines in the input box. - */ - lineWarningLength: number | undefined; } interface QuickDiffProvider { diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index 92abf31ae24..757a2d14339 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -159,9 +159,16 @@ declare module 'vscode' { export function registerFileSystemProvider(scheme: string, provider: FileSystemProvider): Disposable; /** - * Updates the [workspace folders](#workspace.workspaceFolders) of the currently opened workspace. This method allows to add, remove - * and change workspace folders a the same time. Use the [onDidChangeWorkspaceFolders()](#onDidChangeWorkspaceFolders) - * event to get notified when the workspace folders have been updated. + * This method replaces `deleteCount` [workspace folders](#workspace.workspaceFolders) starting at index `start` + * by an optional set of `workspaceFoldersToAdd` on the `vscode.workspace.workspaceFolders` array. This "splice" + * behavior can be used to add, remove and change workspace folders in a single operation. + * + * If the first workspace folder is added, removed or changed, the currently executing extensions (including the + * one that called this method) will be terminated and restarted so that the (deprecated) `rootPath` property is + * updated to point to the first workspace folder. + * + * Use the [`onDidChangeWorkspaceFolders()`](#onDidChangeWorkspaceFolders) event to get notified when the + * workspace folders have been updated. * * **Example:** adding a new workspace folder at the end of workspace folders * ```typescript @@ -181,12 +188,8 @@ declare module 'vscode' { * It is valid to remove an existing workspace folder and add it again with a different name * to rename that folder. * - * **Note:** if the first workspace folder is added, removed or changed, all extensions will be restarted - * so that the (deprecated) `rootPath` property is updated to point to the first workspace - * folder. - * * **Note:** it is not valid to call [updateWorkspaceFolders()](#updateWorkspaceFolders) multiple times - * without waiting for the [onDidChangeWorkspaceFolders()](#onDidChangeWorkspaceFolders) to fire. + * without waiting for the [`onDidChangeWorkspaceFolders()`](#onDidChangeWorkspaceFolders) to fire. * * @param start the zero-based location in the list of currently opened [workspace folders](#WorkspaceFolder) * from which to start deleting workspace folders. @@ -359,6 +362,39 @@ declare module 'vscode' { constructor(functionName: string, enabled?: boolean, condition?: string, hitCondition?: string); } + /** + * Represents a debug adapter executable and optional arguments passed to it. + */ + export class DebugAdapterExecutable { + /** + * The command path of the debug adapter executable. + * A command must be either an absolute path or the name of an executable looked up via the PATH environment variable. + * The special value 'node' will be mapped to VS Code's built-in node runtime. + */ + readonly command: string; + + /** + * Optional arguments passed to the debug adapter executable. + */ + readonly args: string[]; + + /** + * Create a new debug adapter specification. + */ + constructor(command: string, args?: string[]); + } + + export interface DebugConfigurationProvider { + /** + * This optional method is called just before a debug adapter is started to determine its excutable path and arguments. + * Registering more than one debugAdapterExecutable for a type results in an error. + * @param folder The workspace folder from which the configuration originates from or undefined for a folderless setup. + * @param token A cancellation token. + * @return a [debug adapter's executable and optional arguments](#DebugAdapterExecutable) or undefined. + */ + debugAdapterExecutable?(folder: WorkspaceFolder | undefined, token?: CancellationToken): ProviderResult; + } + /** * The severity level of a log message */ @@ -406,4 +442,50 @@ declare module 'vscode' { resolveInitialRenameValue?(document: TextDocument, position: Position, token: CancellationToken): ProviderResult; } } + + /** + * Represents the validation type of the Source Control input. + */ + export enum SourceControlInputBoxValidationType { + + /** + * Something not allowed by the rules of a language or other means. + */ + Error = 0, + + /** + * Something suspicious but allowed. + */ + Warning = 1, + + /** + * Something to inform about but not a problem. + */ + Information = 2 + } + + export interface SourceControlInputBoxValidation { + + /** + * The validation message to display. + */ + readonly message: string; + + /** + * The validation type. + */ + readonly type: SourceControlInputBoxValidationType; + } + + /** + * Represents the input box in the Source Control viewlet. + */ + export interface SourceControlInputBox { + + /** + * A validation function for the input box. It's possible to change + * the validation provider simply by setting this property to a different function. + */ + validateInput?(value: string, cursorPosition: number): ProviderResult; + } } diff --git a/src/vs/workbench/api/browser/localizationsExtensionPoint.ts b/src/vs/workbench/api/browser/localizationsExtensionPoint.ts deleted file mode 100644 index cd92ed0e803..00000000000 --- a/src/vs/workbench/api/browser/localizationsExtensionPoint.ts +++ /dev/null @@ -1,70 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -'use strict'; - -import { localize } from 'vs/nls'; -import { IJSONSchema } from 'vs/base/common/jsonSchema'; -import { ExtensionMessageCollector, ExtensionsRegistry } from 'vs/platform/extensions/common/extensionsRegistry'; - -namespace schema { - - // --localizations contribution point - - export interface ILocalizationDescriptor { - languageId: string; - languageName: string; - translations: string; - } - - export function validateLocalizationDescriptors(localizationDescriptors: ILocalizationDescriptor[], collector: ExtensionMessageCollector): boolean { - if (!Array.isArray(localizationDescriptors)) { - collector.error(localize('requirearray', "localizations must be an array")); - return false; - } - - for (let descriptor of localizationDescriptors) { - if (typeof descriptor.languageId !== 'string') { - collector.error(localize('requirestring', "property `{0}` is mandatory and must be of type `string`", 'languageId')); - return false; - } - if (typeof descriptor.languageName !== 'string') { - collector.error(localize('optstring', "property `{0}` can be omitted or must be of type `string`", 'languageName')); - return false; - } - if (descriptor.translations && typeof descriptor.translations !== 'string') { - collector.error(localize('requirestring', "property `{0}` is mandatory and must be of type `string`", 'translations')); - return false; - } - } - - return true; - } - - export const localizationsContribution: IJSONSchema = { - description: localize('vscode.extension.contributes.localizations', "Contributes localizations to the editor"), - type: 'array', - items: { - type: 'object', - properties: { - id: { - description: localize('vscode.extension.contributes.localizations.languageId', 'Id of the language into which the display strings are translated.'), - type: 'string' - }, - name: { - description: localize('vscode.extension.contributes.localizations.languageName', 'Name of the language into which the display strings are translated.'), - type: 'string' - }, - translations: { - description: localize('vscode.extension.contributes.localizations.translations', 'A relative path to the folder containing all translation files for the contributed language.'), - type: 'string', - default: 'translations' - } - } - } - }; -} - -ExtensionsRegistry.registerExtensionPoint('localizations', [], schema.localizationsContribution) - .setHandler((extensions) => extensions.forEach(extension => schema.validateLocalizationDescriptors(extension.value, extension.collector))); \ No newline at end of file diff --git a/src/vs/workbench/api/electron-browser/mainThreadDebugService.ts b/src/vs/workbench/api/electron-browser/mainThreadDebugService.ts index 46140b8f54b..5ddc7b3162f 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadDebugService.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadDebugService.ts @@ -148,7 +148,7 @@ export class MainThreadDebugService implements MainThreadDebugServiceShape { }); } - public $registerDebugConfigurationProvider(debugType: string, hasProvide: boolean, hasResolve: boolean, handle: number): TPromise { + public $registerDebugConfigurationProvider(debugType: string, hasProvide: boolean, hasResolve: boolean, hasDebugAdapterExecutable: boolean, handle: number): TPromise { const provider = { type: debugType @@ -163,6 +163,11 @@ export class MainThreadDebugService implements MainThreadDebugServiceShape { return this._proxy.$resolveDebugConfiguration(handle, folder, debugConfiguration); }; } + if (hasDebugAdapterExecutable) { + provider.debugAdapterExecutable = (folder) => { + return this._proxy.$debugAdapterExecutable(handle, folder); + }; + } this.debugService.getConfigurationManager().registerDebugConfigurationProvider(handle, provider); return TPromise.wrap(undefined); diff --git a/src/vs/workbench/api/electron-browser/mainThreadSCM.ts b/src/vs/workbench/api/electron-browser/mainThreadSCM.ts index 31e0348e305..8b8cec71781 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadSCM.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadSCM.ts @@ -10,7 +10,7 @@ import URI from 'vs/base/common/uri'; import Event, { Emitter } from 'vs/base/common/event'; import { assign } from 'vs/base/common/objects'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; -import { ISCMService, ISCMRepository, ISCMProvider, ISCMResource, ISCMResourceGroup, ISCMResourceDecorations } from 'vs/workbench/services/scm/common/scm'; +import { ISCMService, ISCMRepository, ISCMProvider, ISCMResource, ISCMResourceGroup, ISCMResourceDecorations, IInputValidation } from 'vs/workbench/services/scm/common/scm'; import { ExtHostContext, MainThreadSCMShape, ExtHostSCMShape, SCMProviderFeatures, SCMRawResourceSplices, SCMGroupFeatures, MainContext, IExtHostContext } from '../node/extHost.protocol'; import { Command } from 'vs/editor/common/modes'; import { extHostNamedCustomer } from 'vs/workbench/api/electron-browser/extHostCustomers'; @@ -393,13 +393,28 @@ export class MainThreadSCM implements MainThreadSCMShape { repository.input.placeholder = placeholder; } - $setLineWarningLength(sourceControlHandle: number, lineWarningLength: number): void { + $setValidationProviderIsEnabled(sourceControlHandle: number, enabled: boolean): void { const repository = this._repositories[sourceControlHandle]; if (!repository) { return; } - repository.input.lineWarningLength = lineWarningLength; + if (enabled) { + repository.input.validateInput = async (value, pos): TPromise => { + const result = await this._proxy.$validateInput(sourceControlHandle, value, pos); + + if (!result) { + return undefined; + } + + return { + message: result[0], + type: result[1] + }; + }; + } else { + repository.input.validateInput = () => TPromise.as(undefined); + } } } diff --git a/src/vs/workbench/api/electron-browser/mainThreadSaveParticipant.ts b/src/vs/workbench/api/electron-browser/mainThreadSaveParticipant.ts index 8bd469c9f82..83ec60aedcf 100644 --- a/src/vs/workbench/api/electron-browser/mainThreadSaveParticipant.ts +++ b/src/vs/workbench/api/electron-browser/mainThreadSaveParticipant.ts @@ -258,6 +258,13 @@ class ExtHostSaveParticipant implements ISaveParticipantParticipant { } participate(editorModel: ITextFileEditorModel, env: { reason: SaveReason }): Promise { + + if (editorModel.textEditorModel.isTooLargeForHavingARichMode()) { + // the model never made it to the extension + // host meaning we cannot participate in its save + return undefined; + } + return new Promise((resolve, reject) => { setTimeout(reject, 1750); this._proxy.$participateInSave(editorModel.getResource(), env.reason).then(values => { diff --git a/src/vs/workbench/api/node/extHost.api.impl.ts b/src/vs/workbench/api/node/extHost.api.impl.ts index 7f82fdd7579..78644e0eded 100644 --- a/src/vs/workbench/api/node/extHost.api.impl.ts +++ b/src/vs/workbench/api/node/extHost.api.impl.ts @@ -576,6 +576,7 @@ export function createApiFactory( CompletionItemKind: extHostTypes.CompletionItemKind, CompletionList: extHostTypes.CompletionList, CompletionTriggerKind: extHostTypes.CompletionTriggerKind, + DebugAdapterExecutable: extHostTypes.DebugAdapterExecutable, Diagnostic: extHostTypes.Diagnostic, DiagnosticSeverity: extHostTypes.DiagnosticSeverity, Disposable: extHostTypes.Disposable, @@ -601,6 +602,7 @@ export function createApiFactory( StatusBarAlignment: extHostTypes.StatusBarAlignment, SymbolInformation: extHostTypes.SymbolInformation, SymbolKind: extHostTypes.SymbolKind, + SourceControlInputBoxValidationType: extHostTypes.SourceControlInputBoxValidationType, TextDocumentSaveReason: extHostTypes.TextDocumentSaveReason, TextEdit: extHostTypes.TextEdit, TextEditorCursorStyle: TextEditorCursorStyle, diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index cd5e404db14..13bafd04499 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -24,7 +24,7 @@ import * as editorCommon from 'vs/editor/common/editorCommon'; import * as modes from 'vs/editor/common/modes'; import { IConfigurationData, ConfigurationTarget, IConfigurationModel } from 'vs/platform/configuration/common/configuration'; -import { IConfig } from 'vs/workbench/parts/debug/common/debug'; +import { IConfig, IAdapterExecutable } from 'vs/workbench/parts/debug/common/debug'; import { IPickOpenEntry, IPickOptions } from 'vs/platform/quickOpen/common/quickOpen'; import { SaveReason } from 'vs/workbench/services/textfile/common/textfiles'; @@ -431,13 +431,13 @@ export interface MainThreadSCMShape extends IDisposable { $setInputBoxValue(sourceControlHandle: number, value: string): void; $setInputBoxPlaceholder(sourceControlHandle: number, placeholder: string): void; - $setLineWarningLength(sourceControlHandle: number, lineWarningLength: number): void; + $setValidationProviderIsEnabled(sourceControlHandle: number, enabled: boolean): void; } export type DebugSessionUUID = string; export interface MainThreadDebugServiceShape extends IDisposable { - $registerDebugConfigurationProvider(type: string, hasProvideMethod: boolean, hasResolveMethod: boolean, handle: number): TPromise; + $registerDebugConfigurationProvider(type: string, hasProvideMethod: boolean, hasResolveMethod: boolean, hasDebugAdapterExecutable: boolean, handle: number): TPromise; $unregisterDebugConfigurationProvider(handle: number): TPromise; $startDebugging(folder: UriComponents | undefined, nameOrConfig: string | vscode.DebugConfiguration): TPromise; $customDebugAdapterRequest(id: DebugSessionUUID, command: string, args: any): TPromise; @@ -694,6 +694,7 @@ export interface ExtHostSCMShape { $provideOriginalResource(sourceControlHandle: number, uri: string): TPromise; $onInputBoxValueChange(sourceControlHandle: number, value: string): TPromise; $executeResourceCommand(sourceControlHandle: number, groupHandle: number, handle: number): TPromise; + $validateInput(sourceControlHandle: number, value: string, cursorPosition: number): TPromise<[string, number] | undefined>; } export interface ExtHostTaskShape { @@ -742,6 +743,7 @@ export interface ISourceMultiBreakpointDto { export interface ExtHostDebugServiceShape { $resolveDebugConfiguration(handle: number, folder: UriComponents | undefined, debugConfiguration: IConfig): TPromise; $provideDebugConfigurations(handle: number, folder: UriComponents | undefined): TPromise; + $debugAdapterExecutable(handle: number, folder: UriComponents | undefined): TPromise; $acceptDebugSessionStarted(id: DebugSessionUUID, type: string, name: string): void; $acceptDebugSessionTerminated(id: DebugSessionUUID, type: string, name: string): void; $acceptDebugSessionActiveChanged(id: DebugSessionUUID | undefined, type?: string, name?: string): void; diff --git a/src/vs/workbench/api/node/extHostApiCommands.ts b/src/vs/workbench/api/node/extHostApiCommands.ts index 17a987c549f..010286e9672 100644 --- a/src/vs/workbench/api/node/extHostApiCommands.ts +++ b/src/vs/workbench/api/node/extHostApiCommands.ts @@ -189,10 +189,10 @@ export class ExtHostApiCommands { return this._commands.executeCommand('_files.windowOpen', [uri.fsPath], forceNewWindow); }, { - description: 'Open a folder in the current window or new window depending on the newWindow argument. Note that opening in the same window will shutdown the current extension host process and start a new one on the given folder unless the newWindow parameter is set to true.', + description: 'Open a folder or workspace in the current window or new window depending on the newWindow argument. Note that opening in the same window will shutdown the current extension host process and start a new one on the given folder/workspace unless the newWindow parameter is set to true.', args: [ - { name: 'uri', description: '(optional) Uri of the folder to open. If not provided, a native dialog will ask the user for the folder', constraint: value => value === void 0 || value instanceof URI }, - { name: 'newWindow', description: '(optional) Whether to open the folder in a new window or the same. Defaults to opening in the same window.', constraint: value => value === void 0 || typeof value === 'boolean' } + { name: 'uri', description: '(optional) Uri of the folder or workspace file to open. If not provided, a native dialog will ask the user for the folder', constraint: value => value === void 0 || value instanceof URI }, + { name: 'newWindow', description: '(optional) Whether to open the folder/workspace in a new window or the same. Defaults to opening in the same window.', constraint: value => value === void 0 || typeof value === 'boolean' } ] }); diff --git a/src/vs/workbench/api/node/extHostDebugService.ts b/src/vs/workbench/api/node/extHostDebugService.ts index 7b1cba6a42c..8e837928e5f 100644 --- a/src/vs/workbench/api/node/extHostDebugService.ts +++ b/src/vs/workbench/api/node/extHostDebugService.ts @@ -263,7 +263,10 @@ export class ExtHostDebugService implements ExtHostDebugServiceShape { let handle = this.nextHandle(); this._handlers.set(handle, provider); - this._debugServiceProxy.$registerDebugConfigurationProvider(type, !!provider.provideDebugConfigurations, !!provider.resolveDebugConfiguration, handle); + this._debugServiceProxy.$registerDebugConfigurationProvider(type, + !!provider.provideDebugConfigurations, + !!provider.resolveDebugConfiguration, + !!provider.debugAdapterExecutable, handle); return new Disposable(() => { this._handlers.delete(handle); @@ -293,6 +296,17 @@ export class ExtHostDebugService implements ExtHostDebugServiceShape { return asWinJsPromise(token => handler.resolveDebugConfiguration(this.getFolder(folderUri), debugConfiguration, token)); } + public $debugAdapterExecutable(handle: number, folderUri: UriComponents | undefined): TPromise { + let handler = this._handlers.get(handle); + if (!handler) { + return TPromise.wrapError(new Error('no handler found')); + } + if (!handler.debugAdapterExecutable) { + return TPromise.wrapError(new Error('handler has no method debugAdapterExecutable')); + } + return asWinJsPromise(token => handler.debugAdapterExecutable(this.getFolder(folderUri), token)); + } + public startDebugging(folder: vscode.WorkspaceFolder | undefined, nameOrConfig: string | vscode.DebugConfiguration): TPromise { return this._debugServiceProxy.$startDebugging(folder ? folder.uri : undefined, nameOrConfig); } diff --git a/src/vs/workbench/api/node/extHostLogService.ts b/src/vs/workbench/api/node/extHostLogService.ts index fbc0c9d308c..b97406cd376 100644 --- a/src/vs/workbench/api/node/extHostLogService.ts +++ b/src/vs/workbench/api/node/extHostLogService.ts @@ -22,11 +22,11 @@ export class ExtHostLogService extends DelegatedLogService implements ILogServic private _loggers: Map = new Map(); constructor( - windowId: number, + private _windowId: number, logLevel: LogLevel, private _environmentService: IEnvironmentService ) { - super(createSpdLogService(`exthost${windowId}`, logLevel, _environmentService.logsPath)); + super(createSpdLogService(`exthost${_windowId}`, logLevel, _environmentService.logsPath)); } $setLevel(level: LogLevel): void { @@ -43,7 +43,7 @@ export class ExtHostLogService extends DelegatedLogService implements ILogServic } private createLogger(extensionID: string): ExtHostLogger { - const logsDirPath = join(this._environmentService.logsPath, extensionID); + const logsDirPath = join(this._environmentService.logsPath, `${extensionID}_${this._windowId}`); const logService = createSpdLogService(extensionID, this.getLevel(), logsDirPath); this._register(this.onDidChangeLogLevel(level => logService.setLevel(level))); return new ExtHostLogger(logService, logsDirPath); diff --git a/src/vs/workbench/api/node/extHostSCM.ts b/src/vs/workbench/api/node/extHostSCM.ts index 0487a50e966..596aa1ead50 100644 --- a/src/vs/workbench/api/node/extHostSCM.ts +++ b/src/vs/workbench/api/node/extHostSCM.ts @@ -110,6 +110,10 @@ function compareResourceStates(a: vscode.SourceControlResourceState, b: vscode.S return result; } +export interface IValidateInput { + (value: string, cursorPosition: number): vscode.ProviderResult; +} + export class ExtHostSCMInputBox implements vscode.SourceControlInputBox { private _value: string = ''; @@ -140,18 +144,31 @@ export class ExtHostSCMInputBox implements vscode.SourceControlInputBox { this._placeholder = placeholder; } - private _lineWarningLength: number | undefined; + private _validateInput: IValidateInput; - get lineWarningLength(): number | undefined { - return this._lineWarningLength; + get validateInput(): IValidateInput { + if (!this._extension.enableProposedApi) { + throw new Error(`[${this._extension.id}]: Proposed API is only available when running out of dev or with the following command line switch: --enable-proposed-api ${this._extension.id}`); + } + + return this._validateInput; } - set lineWarningLength(lineWarningLength: number) { - this._proxy.$setLineWarningLength(this._sourceControlHandle, lineWarningLength); - this._lineWarningLength = lineWarningLength; + set validateInput(fn: IValidateInput) { + if (!this._extension.enableProposedApi) { + throw new Error(`[${this._extension.id}]: Proposed API is only available when running out of dev or with the following command line switch: --enable-proposed-api ${this._extension.id}`); + } + + if (fn && typeof fn !== 'function') { + console.warn('Invalid SCM input box validation function'); + return; + } + + this._validateInput = fn; + this._proxy.$setValidationProviderIsEnabled(this._sourceControlHandle, !!fn); } - constructor(private _proxy: MainThreadSCMShape, private _sourceControlHandle: number) { + constructor(private _extension: IExtensionDescription, private _proxy: MainThreadSCMShape, private _sourceControlHandle: number) { // noop } @@ -381,13 +398,14 @@ class ExtHostSourceControl implements vscode.SourceControl { private handle: number = ExtHostSourceControl._handlePool++; constructor( + _extension: IExtensionDescription, private _proxy: MainThreadSCMShape, private _commands: ExtHostCommands, private _id: string, private _label: string, private _rootUri?: vscode.Uri ) { - this._inputBox = new ExtHostSCMInputBox(this._proxy, this.handle); + this._inputBox = new ExtHostSCMInputBox(_extension, this._proxy, this.handle); this._proxy.$registerSourceControl(this.handle, _id, _label, _rootUri && _rootUri.toString()); } @@ -503,7 +521,7 @@ export class ExtHostSCM implements ExtHostSCMShape { this.logService.trace('ExtHostSCM#createSourceControl', extension.id, id, label, rootUri); const handle = ExtHostSCM._handlePool++; - const sourceControl = new ExtHostSourceControl(this._proxy, this._commands, id, label, rootUri); + const sourceControl = new ExtHostSourceControl(extension, this._proxy, this._commands, id, label, rootUri); this._sourceControls.set(handle, sourceControl); const sourceControls = this._sourceControlsByExtension.get(extension.id) || []; @@ -567,4 +585,26 @@ export class ExtHostSCM implements ExtHostSCMShape { await group.$executeResourceCommand(handle); } + + async $validateInput(sourceControlHandle: number, value: string, cursorPosition: number): TPromise<[string, number] | undefined> { + this.logService.trace('ExtHostSCM#$validateInput', sourceControlHandle); + + const sourceControl = this._sourceControls.get(sourceControlHandle); + + if (!sourceControl) { + return TPromise.as(undefined); + } + + if (!sourceControl.inputBox.validateInput) { + return TPromise.as(undefined); + } + + const result = await sourceControl.inputBox.validateInput(value, cursorPosition); + + if (!result) { + return TPromise.as(undefined); + } + + return [result.message, result.type]; + } } diff --git a/src/vs/workbench/api/node/extHostTextEditors.ts b/src/vs/workbench/api/node/extHostTextEditors.ts index ea973d68b22..c64f6c085f1 100644 --- a/src/vs/workbench/api/node/extHostTextEditors.ts +++ b/src/vs/workbench/api/node/extHostTextEditors.ts @@ -94,7 +94,7 @@ export class ExtHostEditors implements ExtHostEditorsShape { const dto: WorkspaceEditDto = { edits: [] }; - for (let entry of edit.allEntries()) { + for (let entry of edit.entries()) { let [uri, uriOrEdits] = entry; if (Array.isArray(uriOrEdits)) { let doc = this._extHostDocumentsAndEditors.getDocument(uri.toString()); @@ -103,8 +103,8 @@ export class ExtHostEditors implements ExtHostEditorsShape { modelVersionId: doc && doc.version, edits: uriOrEdits.map(TypeConverters.TextEdit.from) }); - } else { - dto.edits.push({ oldUri: uri, newUri: uriOrEdits }); + // } else { + // dto.edits.push({ oldUri: uri, newUri: uriOrEdits }); } } diff --git a/src/vs/workbench/api/node/extHostTypeConverters.ts b/src/vs/workbench/api/node/extHostTypeConverters.ts index 366a64d45f4..428d05ab635 100644 --- a/src/vs/workbench/api/node/extHostTypeConverters.ts +++ b/src/vs/workbench/api/node/extHostTypeConverters.ts @@ -20,7 +20,7 @@ import { ISelection } from 'vs/editor/common/core/selection'; import * as htmlContent from 'vs/base/common/htmlContent'; import { IRelativePattern } from 'vs/base/common/glob'; import { LanguageSelector, LanguageFilter } from 'vs/editor/common/modes/languageSelector'; -import { WorkspaceEditDto, ResourceTextEditDto, ResourceFileEditDto } from 'vs/workbench/api/node/extHost.protocol'; +import { WorkspaceEditDto, ResourceTextEditDto } from 'vs/workbench/api/node/extHost.protocol'; export interface PositionLike { line: number; @@ -232,7 +232,7 @@ export namespace WorkspaceEdit { const result: modes.WorkspaceEdit = { edits: [] }; - for (const entry of value.allEntries()) { + for (const entry of value.entries()) { const [uri, uriOrEdits] = entry; if (Array.isArray(uriOrEdits)) { // text edits @@ -253,11 +253,11 @@ export namespace WorkspaceEdit { URI.revive((edit).resource), (edit).edits.map(TextEdit.to) ); - } else { - result.renameResource( - URI.revive((edit).oldUri), - URI.revive((edit).newUri) - ); + // } else { + // result.renameResource( + // URI.revive((edit).oldUri), + // URI.revive((edit).newUri) + // ); } } return result; diff --git a/src/vs/workbench/api/node/extHostTypes.ts b/src/vs/workbench/api/node/extHostTypes.ts index ce9749e81fc..3c5942a4c45 100644 --- a/src/vs/workbench/api/node/extHostTypes.ts +++ b/src/vs/workbench/api/node/extHostTypes.ts @@ -499,21 +499,21 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit { private _resourceEdits: { seq: number, from: URI, to: URI }[] = []; private _textEdits = new Map(); - createResource(uri: vscode.Uri): void { - this.renameResource(undefined, uri); - } + // createResource(uri: vscode.Uri): void { + // this.renameResource(undefined, uri); + // } - deleteResource(uri: vscode.Uri): void { - this.renameResource(uri, undefined); - } + // deleteResource(uri: vscode.Uri): void { + // this.renameResource(uri, undefined); + // } - renameResource(from: vscode.Uri, to: vscode.Uri): void { - this._resourceEdits.push({ seq: this._seqPool++, from, to }); - } + // renameResource(from: vscode.Uri, to: vscode.Uri): void { + // this._resourceEdits.push({ seq: this._seqPool++, from, to }); + // } - resourceEdits(): [vscode.Uri, vscode.Uri][] { - return this._resourceEdits.map(({ from, to }) => (<[vscode.Uri, vscode.Uri]>[from, to])); - } + // resourceEdits(): [vscode.Uri, vscode.Uri][] { + // return this._resourceEdits.map(({ from, to }) => (<[vscode.Uri, vscode.Uri]>[from, to])); + // } replace(uri: URI, range: Range, newText: string): void { let edit = new TextEdit(range, newText); @@ -566,19 +566,20 @@ export class WorkspaceEdit implements vscode.WorkspaceEdit { } allEntries(): ([URI, TextEdit[]] | [URI, URI])[] { - // use the 'seq' the we have assigned when inserting - // the operation and use that order in the resulting - // array - const res: ([URI, TextEdit[]] | [URI, URI])[] = []; - this._textEdits.forEach(value => { - const { seq, uri, edits } = value; - res[seq] = [uri, edits]; - }); - this._resourceEdits.forEach(value => { - const { seq, from, to } = value; - res[seq] = [from, to]; - }); - return res; + return this.entries(); + // // use the 'seq' the we have assigned when inserting + // // the operation and use that order in the resulting + // // array + // const res: ([URI, TextEdit[]] | [URI, URI])[] = []; + // this._textEdits.forEach(value => { + // const { seq, uri, edits } = value; + // res[seq] = [uri, edits]; + // }); + // this._resourceEdits.forEach(value => { + // const { seq, from, to } = value; + // res[seq] = [from, to]; + // }); + // return res; } get size(): number { @@ -1200,6 +1201,12 @@ export enum ColorFormat { HSL = 2 } +export enum SourceControlInputBoxValidationType { + Error = 0, + Warning = 1, + Information = 2 +} + export enum TaskRevealKind { Always = 1, @@ -1597,6 +1604,9 @@ export class SourceBreakpoint extends Breakpoint { constructor(location: Location, enabled?: boolean, condition?: string, hitCondition?: string) { super(enabled, condition, hitCondition); + if (location === null) { + throw illegalArgument('location'); + } this.location = location; } } @@ -1606,10 +1616,23 @@ export class FunctionBreakpoint extends Breakpoint { constructor(functionName: string, enabled?: boolean, condition?: string, hitCondition?: string) { super(enabled, condition, hitCondition); + if (!functionName) { + throw illegalArgument('functionName'); + } this.functionName = functionName; } } +export class DebugAdapterExecutable implements vscode.DebugAdapterExecutable { + readonly command: string; + readonly args: string[]; + + constructor(command: string, args?: string[]) { + this.command = command; + this.args = args; + } +} + export enum LogLevel { Trace = 1, Debug = 2, diff --git a/src/vs/workbench/browser/parts/editor/editorActions.ts b/src/vs/workbench/browser/parts/editor/editorActions.ts index ae87fa3a82a..1541403b482 100644 --- a/src/vs/workbench/browser/parts/editor/editorActions.ts +++ b/src/vs/workbench/browser/parts/editor/editorActions.ts @@ -538,7 +538,7 @@ export class CloseEditorAction extends Action { super(id, label, 'close-editor-action'); } - public run(context?: IEditorIdentifier): TPromise { + public run(context?: IEditorCommandsContext): TPromise { return this.commandService.executeCommand(CLOSE_EDITOR_COMMAND_ID, void 0, context); } } diff --git a/src/vs/workbench/browser/parts/editor/editorCommands.ts b/src/vs/workbench/browser/parts/editor/editorCommands.ts index 87d86c88bee..de93ac69de4 100644 --- a/src/vs/workbench/browser/parts/editor/editorCommands.ts +++ b/src/vs/workbench/browser/parts/editor/editorCommands.ts @@ -275,6 +275,10 @@ function registerEditorCommands() { const model = editorGroupService.getStacksModel(); const editorService = accessor.get(IWorkbenchEditorService); const contexts = getMultiSelectedEditorContexts(context, accessor.get(IListService)); + if (contexts.length === 0 && model.activeGroup) { + // If command is triggered from the command palette use the active group + contexts.push({ groupId: model.activeGroup.id }); + } let positionOne: { unmodifiedOnly: boolean } = void 0; let positionTwo: { unmodifiedOnly: boolean } = void 0; @@ -335,23 +339,17 @@ function registerEditorCommands() { const group = model.getGroup(groupId); const position = model.positionOfGroup(group); if (position >= 0) { - editorsToClose.set(position, contexts.map(c => { - if (c && groupId === c.groupId) { - let input = group.getEditor(c.editorIndex); - if (!input) { - - // Get Top Editor at Position - const visibleEditors = editorService.getVisibleEditors(); - if (visibleEditors[position]) { - input = visibleEditors[position].input; - } - } - - return input; + const inputs = contexts.map(c => { + if (c && groupId === c.groupId && types.isNumber(c.editorIndex)) { + return group.getEditor(c.editorIndex); } - return void 0; - }).filter(input => !!input)); + return undefined; + }).filter(input => !!input); + + if (inputs.length) { + editorsToClose.set(position, inputs); + } } }); @@ -380,14 +378,23 @@ function registerEditorCommands() { const editorGroupService = accessor.get(IEditorGroupService); const editorService = accessor.get(IWorkbenchEditorService); const contexts = getMultiSelectedEditorContexts(context, accessor.get(IListService)); - const groupIds = distinct(contexts.map(context => context.groupId)); - const editorsToClose = new Map(); const model = editorGroupService.getStacksModel(); + if (contexts.length === 0) { + // Cover the case when run from command palette + const activeGroup = model.activeGroup; + const activeEditor = editorService.getActiveEditorInput(); + if (activeGroup && activeEditor) { + contexts.push({ groupId: activeGroup.id, editorIndex: activeGroup.indexOf(activeEditor) }); + } + } + + const groupIds = distinct(contexts.map(context => context.groupId)); + const editorsToClose = new Map(); groupIds.forEach(groupId => { const group = model.getGroup(groupId); const inputsToSkip = contexts.map(c => { - if (c.groupId === groupId) { + if (c.groupId === groupId && types.isNumber(c.editorIndex)) { return group.getEditor(c.editorIndex); } @@ -500,7 +507,7 @@ function positionAndInput(editorGroupService: IEditorGroupService, editorService const model = editorGroupService.getStacksModel(); const group = context ? model.getGroup(context.groupId) : undefined; let position = group ? model.positionOfGroup(group) : undefined; - let input = group ? group.getEditor(context.editorIndex) : undefined; + let input = group && types.isNumber(context.editorIndex) ? group.getEditor(context.editorIndex) : undefined; // If position or input are not passed in take the position and input of the active editor. const active = editorService.getActiveEditor(); @@ -513,18 +520,19 @@ function positionAndInput(editorGroupService: IEditorGroupService, editorService } export function getMultiSelectedEditorContexts(editorContext: IEditorCommandsContext, listService: IListService): IEditorCommandsContext[] { - const elementToContext = (element: IEditorIdentifier | EditorGroup) => - element instanceof EditorGroup ? { groupId: element.id, editorIndex: undefined } : { groupId: element.group.id, editorIndex: element.group.indexOf(element.editor) }; - // First check for a focused list to return the selected items from const list = listService.lastFocusedList; if (list instanceof List && list.isDOMFocused()) { - const focusedElements: (IEditorIdentifier | EditorGroup)[] = list.getFocusedElements(); + const elementToContext = (element: IEditorIdentifier | EditorGroup) => + element instanceof EditorGroup ? { groupId: element.id, editorIndex: undefined } : { groupId: element.group.id, editorIndex: element.group.indexOf(element.editor) }; + const onlyEditorGroupAndEditor = (e) => e instanceof EditorGroup || ('editor' in e && 'group' in e); + + const focusedElements: (IEditorIdentifier | EditorGroup)[] = list.getFocusedElements().filter(onlyEditorGroupAndEditor); // need to take into account when editor context is { group: group } const focus = editorContext ? editorContext : focusedElements.length ? focusedElements.map(elementToContext)[0] : undefined; if (focus) { - const selection: (IEditorIdentifier | EditorGroup)[] = list.getSelectedElements(); + const selection: (IEditorIdentifier | EditorGroup)[] = list.getSelectedElements().filter(onlyEditorGroupAndEditor); // Only respect selection if it contains focused element if (selection && selection.some(s => s instanceof EditorGroup ? s.id === focus.groupId : s.group.id === focus.groupId && s.group.indexOf(s.editor) === focus.editorIndex)) { return selection.map(elementToContext); diff --git a/src/vs/workbench/browser/parts/editor/editorPart.ts b/src/vs/workbench/browser/parts/editor/editorPart.ts index b477666f086..085f10d2e41 100644 --- a/src/vs/workbench/browser/parts/editor/editorPart.ts +++ b/src/vs/workbench/browser/parts/editor/editorPart.ts @@ -957,6 +957,16 @@ export class EditorPart extends Part implements IEditorPart, IEditorGroupService // Switch to editor that we want to handle return this.openEditor(identifier.editor, null, this.stacks.positionOfGroup(identifier.group)).then(() => { return editor.confirmSave().then(res => { + + // It could be that the editor saved meanwhile, so we check again + // to see if anything needs to happen before closing for good. + // This can happen for example if autoSave: onFocusChange is configured + // so that the save happens when the dialog opens. + if (!editor.isDirty()) { + return res === ConfirmResult.CANCEL ? true : false; + } + + // Otherwise, handle accordingly switch (res) { case ConfirmResult.SAVE: return editor.save().then(ok => !ok); diff --git a/src/vs/workbench/browser/parts/editor/noTabsTitleControl.ts b/src/vs/workbench/browser/parts/editor/noTabsTitleControl.ts index 8d0c4ef497f..7a36e4d1930 100644 --- a/src/vs/workbench/browser/parts/editor/noTabsTitleControl.ts +++ b/src/vs/workbench/browser/parts/editor/noTabsTitleControl.ts @@ -81,7 +81,7 @@ export class NoTabsTitleControl extends TitleControl { // Close editor on middle mouse click if (e instanceof MouseEvent && e.button === 1 /* Middle Button */) { - this.closeEditorAction.run({ group, editor: group.activeEditor }).done(null, errors.onUnexpectedError); + this.closeEditorAction.run({ groupId: group.id, editorIndex: group.indexOf(group.activeEditor) }).done(null, errors.onUnexpectedError); } // Focus editor group unless: diff --git a/src/vs/workbench/browser/parts/editor/resourceViewer.ts b/src/vs/workbench/browser/parts/editor/resourceViewer.ts index 4e3d9571b6d..6ccfa4c8786 100644 --- a/src/vs/workbench/browser/parts/editor/resourceViewer.ts +++ b/src/vs/workbench/browser/parts/editor/resourceViewer.ts @@ -27,6 +27,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { Action } from 'vs/base/common/actions'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; import { memoize } from 'vs/base/common/decorators'; +import * as platform from 'vs/base/common/platform'; interface MapExtToMediaMimes { [index: string]: string; @@ -213,7 +214,7 @@ class LargeImageView { const imageContainer = $(container) .empty() .p({ - text: nls.localize('largeImageError', "The image is too large to display in the editor. ") + text: nls.localize('largeImageError', "The file size of the image is too large (>1MB) to display in the editor. ") }); if (descriptor.resource.scheme !== Schemas.data) { @@ -307,7 +308,7 @@ class ZoomStatusbarItem extends Themable implements IStatusbarItem { @memoize private get zoomActions(): Action[] { - const scales: Scale[] = [10, 5, 2, 1, 0.5, 0.25, 'fit']; + const scales: Scale[] = [10, 5, 2, 1, 0.5, 0.2, 'fit']; return scales.map(scale => new Action('zoom.' + scale, ZoomStatusbarItem.zoomLabel(scale), undefined, undefined, () => { if (this.onSelectScale) { @@ -320,7 +321,7 @@ class ZoomStatusbarItem extends Themable implements IStatusbarItem { private static zoomLabel(scale: Scale): string { return scale === 'fit' ? nls.localize('zoom.action.fit.label', 'Whole Image') - : `${+(scale * 100).toFixed(2)}%`; + : `${Math.round(scale * 100)}%`; } } @@ -335,11 +336,31 @@ interface ImageState { } class InlineImageView { - private static readonly SCALE_PINCH_FACTOR = 0.05; - private static readonly SCALE_FACTOR = 1.5; + private static readonly SCALE_PINCH_FACTOR = 0.075; private static readonly MAX_SCALE = 20; private static readonly MIN_SCALE = 0.1; + private static readonly zoomLevels: Scale[] = [ + 0.1, + 0.2, + 0.3, + 0.4, + 0.5, + 0.6, + 0.7, + 0.8, + 0.9, + 1, + 1.5, + 2, + 3, + 5, + 7, + 10, + 15, + 20 + ]; + /** * Enable image-rendering: pixelated for images scaled by more than this. */ @@ -435,7 +456,7 @@ class InlineImageView { return; } - if (e.altKey) { + if (platform.isMacintosh ? e.altKey : e.ctrlKey) { scaleDirection = ScaleDirection.OUT; c.removeClass('zoom-in').addClass('zoom-out'); } @@ -445,7 +466,7 @@ class InlineImageView { return; } - if (!e.altKey) { + if (!(platform.isMacintosh ? e.altKey : e.ctrlKey)) { scaleDirection = ScaleDirection.IN; c.removeClass('zoom-out').addClass('zoom-in'); } @@ -464,10 +485,23 @@ class InlineImageView { firstZoom(); } - const scaleMultiplier = scaleDirection === ScaleDirection.IN - ? InlineImageView.SCALE_FACTOR - : 1 / InlineImageView.SCALE_FACTOR; - updateScale(scale as number * scaleMultiplier); + if (scaleDirection === ScaleDirection.IN) { + let i = 0; + for (; i < InlineImageView.zoomLevels.length; ++i) { + if (InlineImageView.zoomLevels[i] > scale) { + break; + } + } + updateScale(InlineImageView.zoomLevels[i] || InlineImageView.MAX_SCALE); + } else { + let i = InlineImageView.zoomLevels.length - 1; + for (; i >= 0; --i) { + if (InlineImageView.zoomLevels[i] < scale) { + break; + } + } + updateScale(InlineImageView.zoomLevels[i] || InlineImageView.MIN_SCALE); + } }) .on(DOM.EventType.WHEEL, (e: WheelEvent) => { if (!img) { @@ -477,13 +511,17 @@ class InlineImageView { if (!e.ctrlKey) { return; } + + e.preventDefault(); + e.stopPropagation(); + if (scale === 'fit') { firstZoom(); } // scrolling up, pinching out should increase the scale - const delta = -e.deltaY; - updateScale(scale as number + delta * InlineImageView.SCALE_PINCH_FACTOR); + const delta = e.deltaY < 0 ? 1 : -1; + updateScale(scale as number * (1 - delta * InlineImageView.SCALE_PINCH_FACTOR)); }) .on(DOM.EventType.SCROLL, () => { if (!imgElement || !imgElement.parentElement || scale === 'fit') { diff --git a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts index 721af303155..425dd7e5828 100644 --- a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts +++ b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts @@ -668,7 +668,7 @@ export class TabsTitleControl extends TitleControl { tab.blur(); if (e.button === 1 /* Middle Button*/ && !this.isTabActionBar((e.target || e.srcElement) as HTMLElement)) { - this.closeEditorAction.run(this.getGroupPositionAndEditor(index)).done(null, errors.onUnexpectedError); + this.closeEditorAction.run({ groupId: this.context.id, editorIndex: index }).done(null, errors.onUnexpectedError); } })); diff --git a/src/vs/workbench/browser/parts/views/media/views.css b/src/vs/workbench/browser/parts/views/media/views.css index 3cda0e9caf6..f017fb80c94 100644 --- a/src/vs/workbench/browser/parts/views/media/views.css +++ b/src/vs/workbench/browser/parts/views/media/views.css @@ -20,17 +20,6 @@ content: ' '; } -.file-icon-themable-tree.align-icons-and-twisties .monaco-tree-row:not(.has-children) .content::before, -.file-icon-themable-tree.hide-arrows .monaco-tree-row .content::before { - display: none; -} - -/** Show the twistie content if the parent has opt in icon **/ -.tree-explorer-viewlet-tree-view.file-icon-themable-tree.align-icons-and-twisties .monaco-tree-row:not(.has-children) .content.parent-has-icon::before, -.tree-explorer-viewlet-tree-view.file-icon-themable-tree.hide-arrows .monaco-tree-row .content.parent-has-icon::before { - display: inline-block; -} - .file-icon-themable-tree .monaco-tree-row.has-children.expanded .content::before { background-image: url("expanded.svg"); } @@ -56,6 +45,16 @@ background-image: url("collapsed-hc.svg"); } +.file-icon-themable-tree.align-icons-and-twisties .monaco-tree-row:not(.has-children) .content::before, +.file-icon-themable-tree.hide-arrows .monaco-tree-row .content::before { + display: none; +} + +.tree-explorer-viewlet-tree-view.file-icon-themable-tree.align-icons-and-twisties .monaco-tree-row:not(.has-children) .content:not(.align-with-twisty)::before, +.tree-explorer-viewlet-tree-view.file-icon-themable-tree.hide-arrows .monaco-tree-row .content::before { + display: inline-block; +} + .tree-explorer-viewlet-tree-view .monaco-tree .monaco-tree-row .custom-view-tree-node-item { display: flex; height: 22px; @@ -85,6 +84,7 @@ .tree-explorer-viewlet-tree-view .monaco-tree .monaco-tree-row .custom-view-tree-node-item > .actions { display: none; + padding-right: 6px; } .tree-explorer-viewlet-tree-view .monaco-tree .monaco-tree-row:hover .custom-view-tree-node-item > .actions, diff --git a/src/vs/workbench/browser/parts/views/treeView.ts b/src/vs/workbench/browser/parts/views/treeView.ts index 9a2137363ef..b3b5dfc4973 100644 --- a/src/vs/workbench/browser/parts/views/treeView.ts +++ b/src/vs/workbench/browser/parts/views/treeView.ts @@ -5,7 +5,7 @@ import 'vs/css!./media/views'; import Event, { Emitter } from 'vs/base/common/event'; -import { IDisposable, dispose, empty as EmptyDisposable, toDisposable } from 'vs/base/common/lifecycle'; +import { IDisposable, dispose, empty as EmptyDisposable, toDisposable, Disposable } from 'vs/base/common/lifecycle'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { TPromise } from 'vs/base/common/winjs.base'; import * as DOM from 'vs/base/browser/dom'; @@ -17,11 +17,11 @@ import { IContextMenuService } from 'vs/platform/contextview/browser/contextView import { ClickBehavior } from 'vs/base/parts/tree/browser/treeDefaults'; import { IMenuService, MenuId, MenuItemAction } from 'vs/platform/actions/common/actions'; import { IThemeService, LIGHT } from 'vs/platform/theme/common/themeService'; -import { createActionItem, fillInActions } from 'vs/platform/actions/browser/menuItemActionItem'; +import { fillInActions, ContextAwareMenuItemActionItem } from 'vs/platform/actions/browser/menuItemActionItem'; import { IProgressService } from 'vs/platform/progress/common/progress'; import { ITree, IDataSource, IRenderer, ContextMenuEvent } from 'vs/base/parts/tree/browser/tree'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; -import { ActionItem, ActionBar } from 'vs/base/browser/ui/actionbar/actionbar'; +import { ActionItem, ActionBar, IActionItemProvider } from 'vs/base/browser/ui/actionbar/actionbar'; import { ViewsRegistry, TreeItemCollapsibleState, ITreeItem, ITreeViewDataProvider, TreeViewItemHandleArg } from 'vs/workbench/common/views'; import { IExtensionService } from 'vs/platform/extensions/common/extensions'; import { IViewletViewOptions, IViewOptions, TreeViewsViewletPanel, FileIconThemableWorkbenchTree } from 'vs/workbench/browser/parts/views/viewsViewlet'; @@ -87,8 +87,9 @@ export class TreeView extends TreeViewsViewletPanel { } public createViewer(container: Builder): WorkbenchTree { + const actionItemProvider = (action: IAction) => this.getActionItem(action); const dataSource = this.instantiationService.createInstance(TreeDataSource, this.id); - const renderer = this.instantiationService.createInstance(TreeRenderer, this.id, this.menus); + const renderer = this.instantiationService.createInstance(TreeRenderer, this.id, this.menus, actionItemProvider); const controller = this.instantiationService.createInstance(TreeController, this.id, this.menus); const tree = this.instantiationService.createInstance(FileIconThemableWorkbenchTree, container.getHTMLElement(), @@ -111,7 +112,10 @@ export class TreeView extends TreeViewsViewletPanel { } getActionItem(action: IAction): IActionItem { - return createActionItem(action, this.keybindingService, this.messageService, this.contextMenuService); + if (!(action instanceof MenuItemAction)) { + return undefined; + } + return new ContextAwareMenuItemActionItem(action, this.keybindingService, this.messageService, this.contextMenuService); } private setInput(): TPromise { @@ -270,11 +274,11 @@ class TreeDataSource implements IDataSource { } interface ITreeExplorerTemplateData { - container: HTMLElement; label: HTMLElement; resourceLabel: ResourceLabel; icon: HTMLElement; actionBar: ActionBar; + aligner: Aligner; } class TreeRenderer implements IRenderer { @@ -285,8 +289,9 @@ class TreeRenderer implements IRenderer { constructor( private treeViewId: string, private menus: Menus, + private actionItemProvider: IActionItemProvider, @IInstantiationService private instantiationService: IInstantiationService, - @IThemeService private themeService: IThemeService + @IWorkbenchThemeService private themeService: IWorkbenchThemeService ) { } @@ -306,10 +311,11 @@ class TreeRenderer implements IRenderer { const resourceLabel = this.instantiationService.createInstance(ResourceLabel, el, {}); const actionsContainer = DOM.append(el, DOM.$('.actions')); const actionBar = new ActionBar(actionsContainer, { + actionItemProvider: this.actionItemProvider, actionRunner: new MultipleSelectionActionRunner(() => tree.getSelection()) }); - return { container, label, resourceLabel, icon, actionBar }; + return { label, resourceLabel, icon, actionBar, aligner: new Aligner(container, tree, this.themeService) }; } public renderElement(tree: ITree, node: ITreeItem, templateId: string, templateData: ITreeExplorerTemplateData): void { @@ -340,17 +346,67 @@ class TreeRenderer implements IRenderer { templateData.actionBar.context = ({ $treeViewId: this.treeViewId, $treeItemHandle: node.handle }); templateData.actionBar.push(this.menus.getResourceActions(node), { icon: true, label: false }); - // Fix when the theme do not show folder icons but parent has opt in icon. - DOM.toggleClass(templateData.container, 'parent-has-icon', this.hasParentHasOptInIcon(node, tree)); - } - - private hasParentHasOptInIcon(node: ITreeItem, tree: ITree): boolean { - const parent: ITreeItem = tree.getNavigator(node).parent(); - return parent ? !!(this.themeService.getTheme().type === LIGHT ? parent.icon : parent.iconDark) : false; + templateData.aligner.align(node); } public disposeTemplate(tree: ITree, templateId: string, templateData: ITreeExplorerTemplateData): void { templateData.resourceLabel.dispose(); + templateData.aligner.dispose(); + } +} + +class Aligner extends Disposable { + + private node: ITreeItem; + + constructor( + private container: HTMLElement, + private tree: ITree, + private themeService: IWorkbenchThemeService + ) { + super(); + this._register(this.themeService.onDidFileIconThemeChange(() => this.alignByTheme())); + } + + align(treeItem: ITreeItem): void { + this.node = treeItem; + this.alignByTheme(); + } + + private alignByTheme(): void { + if (this.node) { + DOM.toggleClass(this.container, 'align-with-twisty', this.hasToAlignWithTwisty()); + } + } + + private hasToAlignWithTwisty(): boolean { + const fileIconTheme = this.themeService.getFileIconTheme(); + if (!(fileIconTheme.hasFileIcons && !fileIconTheme.hasFolderIcons)) { + return false; + } + if (this.node.collapsibleState !== TreeItemCollapsibleState.None) { + return false; + } + const icon = this.themeService.getTheme().type === LIGHT ? this.node.icon : this.node.iconDark; + const hasIcon = !!icon || !!this.node.resourceUri; + if (!hasIcon) { + return false; + } + + const siblingsWithChildren = this.getSiblings().filter(s => s.collapsibleState !== TreeItemCollapsibleState.None); + for (const s of siblingsWithChildren) { + const icon = this.themeService.getTheme().type === LIGHT ? s.icon : s.iconDark; + if (icon) { + return false; + } + } + + return true; + } + + private getSiblings(): ITreeItem[] { + const parent: ITreeItem = this.tree.getNavigator(this.node).parent() || this.tree.getInput(); + return parent.children; } } diff --git a/src/vs/workbench/browser/parts/views/viewsViewlet.ts b/src/vs/workbench/browser/parts/views/viewsViewlet.ts index 0e90dbc8772..8e22161b5bb 100644 --- a/src/vs/workbench/browser/parts/views/viewsViewlet.ts +++ b/src/vs/workbench/browser/parts/views/viewsViewlet.ts @@ -773,9 +773,10 @@ export class FileIconThemableWorkbenchTree extends WorkbenchTree { @IContextKeyService contextKeyService: IContextKeyService, @IListService listService: IListService, @IThemeService themeService: IWorkbenchThemeService, - @IConfigurationService configurationService: IConfigurationService + @IConfigurationService configurationService: IConfigurationService, + @IInstantiationService instantiationService: IInstantiationService ) { - super(container, configuration, { ...options, ...{ showTwistie: false, twistiePixels: 12 } }, contextKeyService, listService, themeService, configurationService); + super(container, configuration, { ...options, ...{ showTwistie: false, twistiePixels: 12 } }, contextKeyService, listService, themeService, instantiationService, configurationService); DOM.addClass(container, 'file-icon-themable-tree'); DOM.addClass(container, 'show-file-icons'); diff --git a/src/vs/workbench/electron-browser/actions.ts b/src/vs/workbench/electron-browser/actions.ts index 94d13e96a34..7c4a15e8e7b 100644 --- a/src/vs/workbench/electron-browser/actions.ts +++ b/src/vs/workbench/electron-browser/actions.ts @@ -8,7 +8,6 @@ import 'vs/css!./media/actions'; import URI from 'vs/base/common/uri'; -import * as collections from 'vs/base/common/collections'; import { TPromise } from 'vs/base/common/winjs.base'; import { Action } from 'vs/base/common/actions'; import { IWindowService, IWindowsService, MenuBarVisibility } from 'vs/platform/windows/common/windows'; @@ -21,7 +20,7 @@ import { IMessageService, Severity } from 'vs/platform/message/common/message'; import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configuration/common/configuration'; -import { IExtensionManagementService, LocalExtensionType, ILocalExtension, IExtensionEnablementService } from 'vs/platform/extensionManagement/common/extensionManagement'; +import { IExtensionManagementService, LocalExtensionType, IExtensionEnablementService } from 'vs/platform/extensionManagement/common/extensionManagement'; import { IWorkspaceConfigurationService } from 'vs/workbench/services/configuration/common/configuration'; import paths = require('vs/base/common/paths'); import { isMacintosh, isLinux, language } from 'vs/base/common/platform'; @@ -46,8 +45,8 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { IExtensionService, ActivationTimes } from 'vs/platform/extensions/common/extensions'; import { getEntries } from 'vs/base/common/performance'; import { IEditor } from 'vs/platform/editor/common/editor'; -import { IIssueService } from 'vs/platform/issue/common/issue'; -import { IThemeService } from 'vs/platform/theme/common/themeService'; +import { IIssueService, IssueReporterData, IssueType, IssueReporterStyles } from 'vs/platform/issue/common/issue'; +import { IThemeService, ITheme } from 'vs/platform/theme/common/themeService'; import { textLinkForeground, inputBackground, inputBorder, inputForeground, buttonBackground, buttonHoverBackground, buttonForeground, inputValidationErrorBorder, foreground, inputActiveOptionBorder } from 'vs/platform/theme/common/colorRegistry'; import { SIDE_BAR_BACKGROUND } from 'vs/workbench/common/theme'; @@ -328,6 +327,14 @@ export class ShowStartupPerformance extends Action { (console).table(this.getStartupMetricsTable(nodeModuleLoadTime)); + if (this.environmentService.performance) { + const data = this.analyzeLoaderStats(); + for (let type in data) { + (console).groupCollapsed(`Loader: ${type}`); + (console).table(data[type]); + (console).groupEnd(); + } + } (console).groupEnd(); @@ -419,6 +426,114 @@ export class ShowStartupPerformance extends Action { return { table: result, duration: Math.round(total) }; } + + private analyzeLoaderStats(): { [type: string]: any[] } { + const stats = (require).getStats().slice(0).sort((a: ILoaderEvent, b: ILoaderEvent) => { + if (a.detail < b.detail) { + return -1; + } else if (a.detail > b.detail) { + return 1; + } else if (a.type < b.type) { + return -1; + } else if (a.type > b.type) { + return 1; + } else { + return 0; + } + }); + + class Tick { + + public readonly duration: number; + public readonly detail: string; + + constructor(public readonly start: ILoaderEvent, public readonly end: ILoaderEvent) { + console.assert(start.detail === end.detail); + + this.duration = this.end.timestamp - this.start.timestamp; + this.detail = start.detail; + } + + toTableObject() { + return { + ['Path']: this.start.detail, + ['Took (ms)']: this.duration.toFixed(2), + // ['Start (ms)']: this.start.timestamp, + // ['End (ms)']: this.end.timestamp + }; + } + + static compareUsingStartTimestamp(a: Tick, b: Tick): number { + if (a.start.timestamp < b.start.timestamp) { + return -1; + } else if (a.start.timestamp > b.start.timestamp) { + return 1; + } else { + return 0; + } + } + } + + const ticks: { [type: number]: Tick[] } = { + [LoaderEventType.BeginLoadingScript]: [], + [LoaderEventType.BeginInvokeFactory]: [], + [LoaderEventType.NodeBeginEvaluatingScript]: [], + [LoaderEventType.NodeBeginNativeRequire]: [], + }; + + for (let i = 1; i < stats.length - 1; i++) { + const stat = stats[i]; + const nextStat = stats[i + 1]; + + if (nextStat.type - stat.type > 2) { + //bad?! + break; + } + + i += 1; + ticks[stat.type].push(new Tick(stat, nextStat)); + } + + ticks[LoaderEventType.BeginInvokeFactory].sort(Tick.compareUsingStartTimestamp); + ticks[LoaderEventType.BeginInvokeFactory].sort(Tick.compareUsingStartTimestamp); + ticks[LoaderEventType.NodeBeginEvaluatingScript].sort(Tick.compareUsingStartTimestamp); + ticks[LoaderEventType.NodeBeginNativeRequire].sort(Tick.compareUsingStartTimestamp); + + const ret = { + 'Load Script': ticks[LoaderEventType.BeginLoadingScript].map(t => t.toTableObject()), + '(Node) Load Script': ticks[LoaderEventType.NodeBeginNativeRequire].map(t => t.toTableObject()), + 'Eval Script': ticks[LoaderEventType.BeginInvokeFactory].map(t => t.toTableObject()), + '(Node) Eval Script': ticks[LoaderEventType.NodeBeginEvaluatingScript].map(t => t.toTableObject()), + }; + + function total(ticks: Tick[]): number { + let sum = 0; + for (const tick of ticks) { + sum += tick.duration; + } + return sum; + } + + // totals + ret['Load Script'].push({ + ['Path']: 'TOTAL TIME', + ['Took (ms)']: total(ticks[LoaderEventType.BeginLoadingScript]).toFixed(2) + }); + ret['Eval Script'].push({ + ['Path']: 'TOTAL TIME', + ['Took (ms)']: total(ticks[LoaderEventType.BeginInvokeFactory]).toFixed(2) + }); + ret['(Node) Load Script'].push({ + ['Path']: 'TOTAL TIME', + ['Took (ms)']: total(ticks[LoaderEventType.NodeBeginNativeRequire]).toFixed(2) + }); + ret['(Node) Eval Script'].push({ + ['Path']: 'TOTAL TIME', + ['Took (ms)']: total(ticks[LoaderEventType.NodeBeginEvaluatingScript]).toFixed(2) + }); + + return ret; + } } export class ReloadWindowAction extends Action { @@ -748,9 +863,25 @@ export class CloseMessagesAction extends Action { } } +export function getIssueReporterStyles(theme: ITheme): IssueReporterStyles { + return { + backgroundColor: theme.getColor(SIDE_BAR_BACKGROUND) && theme.getColor(SIDE_BAR_BACKGROUND).toString(), + color: theme.getColor(foreground).toString(), + textLinkColor: theme.getColor(textLinkForeground) && theme.getColor(textLinkForeground).toString(), + inputBackground: theme.getColor(inputBackground) && theme.getColor(inputBackground).toString(), + inputForeground: theme.getColor(inputForeground) && theme.getColor(inputForeground).toString(), + inputBorder: theme.getColor(inputBorder) && theme.getColor(inputBorder).toString(), + inputActiveBorder: theme.getColor(inputActiveOptionBorder) && theme.getColor(inputActiveOptionBorder).toString(), + inputErrorBorder: theme.getColor(inputValidationErrorBorder) && theme.getColor(inputValidationErrorBorder).toString(), + buttonBackground: theme.getColor(buttonBackground) && theme.getColor(buttonBackground).toString(), + buttonForeground: theme.getColor(buttonForeground) && theme.getColor(buttonForeground).toString(), + buttonHoverBackground: theme.getColor(buttonHoverBackground) && theme.getColor(buttonHoverBackground).toString() + }; +} + export class OpenIssueReporterAction extends Action { public static readonly ID = 'workbench.action.openIssueReporter'; - public static readonly LABEL = nls.localize('openIssueReporter', "Open Issue Reporter"); + public static readonly LABEL = nls.localize({ key: 'reportIssueInEnglish', comment: ['Translate this to "Report Issue in English" in all languages please!'] }, "Report Issue"); constructor( id: string, @@ -767,23 +898,8 @@ export class OpenIssueReporterAction extends Action { return this.extensionManagementService.getInstalled(LocalExtensionType.User).then(extensions => { const enabledExtensions = extensions.filter(extension => this.extensionEnablementService.isEnabled(extension.identifier)); const theme = this.themeService.getTheme(); - const styles = { - backgroundColor: theme.getColor(SIDE_BAR_BACKGROUND) && theme.getColor(SIDE_BAR_BACKGROUND).toString(), - color: theme.getColor(foreground).toString(), - textLinkColor: theme.getColor(textLinkForeground) && theme.getColor(textLinkForeground).toString(), - inputBackground: theme.getColor(inputBackground) && theme.getColor(inputBackground).toString(), - inputForeground: theme.getColor(inputForeground) && theme.getColor(inputForeground).toString(), - inputBorder: theme.getColor(inputBorder) && theme.getColor(inputBorder).toString(), - inputActiveBorder: theme.getColor(inputActiveOptionBorder) && theme.getColor(inputActiveOptionBorder).toString(), - inputErrorBorder: theme.getColor(inputValidationErrorBorder) && theme.getColor(inputValidationErrorBorder).toString(), - buttonBackground: theme.getColor(buttonBackground) && theme.getColor(buttonBackground).toString(), - buttonForeground: theme.getColor(buttonForeground) && theme.getColor(buttonForeground).toString(), - buttonHoverBackground: theme.getColor(buttonHoverBackground) && theme.getColor(buttonHoverBackground).toString(), - zoomLevel: webFrame.getZoomLevel(), - extensions - }; - const issueReporterData = { - styles, + const issueReporterData: IssueReporterData = { + styles: getIssueReporterStyles(theme), zoomLevel: webFrame.getZoomLevel(), enabledExtensions }; @@ -795,109 +911,41 @@ export class OpenIssueReporterAction extends Action { } } -export class ReportIssueAction extends Action { - - public static readonly ID = 'workbench.action.reportIssues'; - public static readonly LABEL = nls.localize({ key: 'reportIssueInEnglish', comment: ['Translate this to "Report Issue in English" in all languages please!'] }, "Report Issue"); +export class ReportPerformanceIssueUsingReporterAction extends Action { + public static readonly ID = 'workbench.action.reportPerformanceIssueUsingReporter'; + public static readonly LABEL = nls.localize('reportPerformanceIssue', "Report Performance Issue"); constructor( id: string, label: string, - @IIntegrityService private integrityService: IIntegrityService, + @IIssueService private issueService: IIssueService, + @IThemeService private themeService: IThemeService, @IExtensionManagementService private extensionManagementService: IExtensionManagementService, - @IExtensionEnablementService private extensionEnablementService: IExtensionEnablementService, - @IEnvironmentService private environmentService: IEnvironmentService + @IExtensionEnablementService private extensionEnablementService: IExtensionEnablementService ) { super(id, label); } - private _optimisticIsPure(): TPromise { - let isPure = true; - let integrityPromise = this.integrityService.isPure().then(res => { - isPure = res.isPure; - }); - - return TPromise.any([TPromise.timeout(100), integrityPromise]).then(() => { - return isPure; - }); - } - public run(): TPromise { - return this._optimisticIsPure().then(isPure => { - return this.extensionManagementService.getInstalled(LocalExtensionType.User).then(extensions => { - extensions = extensions.filter(extension => this.extensionEnablementService.isEnabled(extension.identifier)); - const issueUrl = this.generateNewIssueUrl(product.reportIssueUrl, pkg.name, pkg.version, product.commit, product.date, isPure, extensions, this.environmentService.disableExtensions); - - window.open(issueUrl); + return this.extensionManagementService.getInstalled(LocalExtensionType.User).then(extensions => { + const enabledExtensions = extensions.filter(extension => this.extensionEnablementService.isEnabled(extension.identifier)); + const theme = this.themeService.getTheme(); + const issueReporterData: IssueReporterData = { + styles: getIssueReporterStyles(theme), + zoomLevel: webFrame.getZoomLevel(), + enabledExtensions, + issueType: IssueType.PerformanceIssue + }; + // TODO: Reporter should send timings table as well + return this.issueService.openReporter(issueReporterData).then(() => { return TPromise.as(true); }); }); } - - private generateNewIssueUrl(baseUrl: string, name: string, version: string, commit: string, date: string, isPure: boolean, extensions: ILocalExtension[], areExtensionsDisabled: boolean): string { - // Avoid backticks, these can trigger XSS detectors. (https://github.com/Microsoft/vscode/issues/13098) - const osVersion = `${os.type()} ${os.arch()} ${os.release()}`; - const queryStringPrefix = baseUrl.indexOf('?') === -1 ? '?' : '&'; - const body = encodeURIComponent( - `
    -
  • VSCode Version: ${name} ${version}${isPure ? '' : ' **[Unsupported]**'} (${product.commit || 'Commit unknown'}, ${product.date || 'Date unknown'})
  • -
  • OS Version: ${osVersion}
  • -
  • ${areExtensionsDisabled ? 'Extensions: Extensions are disabled' : this.generateExtensionTable(extensions)}
  • -
- ---- - -Steps to Reproduce: - -1. -2.` + (extensions.length ? ` - - -Reproduces without extensions: Yes/No` : '') - ); - - return `${baseUrl}${queryStringPrefix}body=${body}`; - } - - private generateExtensionTable(extensions: ILocalExtension[]): string { - const { nonThemes, themes } = collections.groupBy(extensions, ext => { - const manifestKeys = ext.manifest.contributes ? Object.keys(ext.manifest.contributes) : []; - const onlyTheme = !ext.manifest.activationEvents && manifestKeys.length === 1 && manifestKeys[0] === 'themes'; - return onlyTheme ? 'themes' : 'nonThemes'; - }); - - const themeExclusionStr = (themes && themes.length) ? `\n(${themes.length} theme extensions excluded)` : ''; - extensions = nonThemes || []; - - if (!extensions.length) { - return 'Extensions: none' + themeExclusionStr; - } - - let tableHeader = `Extension|Author (truncated)|Version ----|---|---`; - const table = extensions.map(e => { - return `${e.manifest.name}|${e.manifest.publisher.substr(0, 3)}|${e.manifest.version}`; - }).join('\n'); - - const extensionTable = `
Extensions (${extensions.length}) - -${tableHeader} -${table} -${themeExclusionStr} - -
`; - - // 2000 chars is browsers de-facto limit for URLs, 400 chars are allowed for other string parts of the issue URL - // http://stackoverflow.com/questions/417142/what-is-the-maximum-length-of-a-url-in-different-browsers - if (encodeURIComponent(extensionTable).length > 1600) { - return 'the listing length exceeds browsers\' URL characters limit'; - } - - return extensionTable; - } } +// NOTE: This is still used when running --prof-startup, which already opens a dialog, so the reporter is not used. export class ReportPerformanceIssueAction extends Action { public static readonly ID = 'workbench.action.reportPerformanceIssue'; diff --git a/src/vs/workbench/electron-browser/bootstrap/index.js b/src/vs/workbench/electron-browser/bootstrap/index.js index 558e8df307e..a933a9fc4c2 100644 --- a/src/vs/workbench/electron-browser/bootstrap/index.js +++ b/src/vs/workbench/electron-browser/bootstrap/index.js @@ -123,6 +123,34 @@ function main() { const args = parseURLQueryArgs(); const configuration = JSON.parse(args['config'] || '{}') || {}; + //#region Add support for using node_modules.asar + (function () { + const path = require('path'); + const Module = require('module'); + let NODE_MODULES_PATH = path.join(configuration.appRoot, 'node_modules'); + if (/[a-z]\:/.test(NODE_MODULES_PATH)) { + // Make drive letter uppercase + NODE_MODULES_PATH = NODE_MODULES_PATH.charAt(0).toUpperCase() + NODE_MODULES_PATH.substr(1); + } + const NODE_MODULES_ASAR_PATH = NODE_MODULES_PATH + '.asar'; + + const originalResolveLookupPaths = Module._resolveLookupPaths; + Module._resolveLookupPaths = function (request, parent) { + const result = originalResolveLookupPaths(request, parent); + + const paths = result[1]; + for (let i = 0, len = paths.length; i < len; i++) { + if (paths[i] === NODE_MODULES_PATH) { + paths.splice(i, 0, NODE_MODULES_ASAR_PATH); + break; + } + } + + return result; + }; + })(); + //#endregion + // Correctly inherit the parent's environment assign(process.env, configuration.userEnv); perf.importEntries(configuration.perfEntries); diff --git a/src/vs/workbench/electron-browser/main.contribution.ts b/src/vs/workbench/electron-browser/main.contribution.ts index d72fb4e04e6..d8057f6cf75 100644 --- a/src/vs/workbench/electron-browser/main.contribution.ts +++ b/src/vs/workbench/electron-browser/main.contribution.ts @@ -14,7 +14,7 @@ import { IConfigurationRegistry, Extensions as ConfigurationExtensions } from 'v import { IWorkbenchActionRegistry, Extensions } from 'vs/workbench/common/actions'; import { KeyMod, KeyChord, KeyCode } from 'vs/base/common/keyCodes'; import { isWindows, isLinux, isMacintosh } from 'vs/base/common/platform'; -import { KeybindingsReferenceAction, OpenDocumentationUrlAction, OpenIntroductoryVideosUrlAction, OpenTipsAndTricksUrlAction, OpenIssueReporterAction, ReportIssueAction, ReportPerformanceIssueAction, ZoomResetAction, ZoomOutAction, ZoomInAction, ToggleFullScreenAction, ToggleMenuBarAction, CloseWorkspaceAction, CloseCurrentWindowAction, SwitchWindow, NewWindowAction, CloseMessagesAction, NavigateUpAction, NavigateDownAction, NavigateLeftAction, NavigateRightAction, IncreaseViewSizeAction, DecreaseViewSizeAction, ShowStartupPerformance, ToggleSharedProcessAction, QuickSwitchWindow, QuickOpenRecentAction, inRecentFilesPickerContextKey, ConfigureLocaleAction } from 'vs/workbench/electron-browser/actions'; +import { KeybindingsReferenceAction, OpenDocumentationUrlAction, OpenIntroductoryVideosUrlAction, OpenTipsAndTricksUrlAction, OpenIssueReporterAction, ReportPerformanceIssueUsingReporterAction, ZoomResetAction, ZoomOutAction, ZoomInAction, ToggleFullScreenAction, ToggleMenuBarAction, CloseWorkspaceAction, CloseCurrentWindowAction, SwitchWindow, NewWindowAction, CloseMessagesAction, NavigateUpAction, NavigateDownAction, NavigateLeftAction, NavigateRightAction, IncreaseViewSizeAction, DecreaseViewSizeAction, ShowStartupPerformance, ToggleSharedProcessAction, QuickSwitchWindow, QuickOpenRecentAction, inRecentFilesPickerContextKey, ConfigureLocaleAction } from 'vs/workbench/electron-browser/actions'; import { MessagesVisibleContext } from 'vs/workbench/electron-browser/workbench'; import { IJSONSchema } from 'vs/base/common/jsonSchema'; import { registerCommands } from 'vs/workbench/electron-browser/commands'; @@ -46,10 +46,9 @@ if (isMacintosh) { } workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(CloseWorkspaceAction, CloseWorkspaceAction.ID, CloseWorkspaceAction.LABEL, { primary: KeyChord(KeyMod.CtrlCmd | KeyCode.KEY_K, KeyCode.KEY_F) }), 'File: Close Workspace', fileCategory); -workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(OpenIssueReporterAction, OpenIssueReporterAction.ID, OpenIssueReporterAction.LABEL), 'Help: Open Issue Reporter', helpCategory); if (!!product.reportIssueUrl) { - workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(ReportIssueAction, ReportIssueAction.ID, ReportIssueAction.LABEL), 'Help: Report Issues', helpCategory); - workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(ReportPerformanceIssueAction, ReportPerformanceIssueAction.ID, ReportPerformanceIssueAction.LABEL), 'Help: Report Performance Issue', helpCategory); + workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(OpenIssueReporterAction, OpenIssueReporterAction.ID, OpenIssueReporterAction.LABEL), 'Help: Open Issue Reporter', helpCategory); + workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(ReportPerformanceIssueUsingReporterAction, ReportPerformanceIssueUsingReporterAction.ID, ReportPerformanceIssueUsingReporterAction.LABEL), 'Help: Report Performance Issue', helpCategory); } if (KeybindingsReferenceAction.AVAILABLE) { @@ -271,8 +270,7 @@ configurationRegistry.registerConfiguration({ 'workbench.settings.enableNaturalLanguageSearch': { 'type': 'boolean', 'description': nls.localize('enableNaturalLanguageSettingsSearch', "Controls whether to enable the natural language search mode for settings."), - 'default': true, - 'included': product.quality !== 'stable' + 'default': true } } }); diff --git a/src/vs/workbench/electron-browser/shell.ts b/src/vs/workbench/electron-browser/shell.ts index cc86097415f..60ab815b7bc 100644 --- a/src/vs/workbench/electron-browser/shell.ts +++ b/src/vs/workbench/electron-browser/shell.ts @@ -51,7 +51,7 @@ import { IInstantiationService } from 'vs/platform/instantiation/common/instanti import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { InstantiationService } from 'vs/platform/instantiation/common/instantiationService'; import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; -import { ILifecycleService, LifecyclePhase, ShutdownReason } from 'vs/platform/lifecycle/common/lifecycle'; +import { ILifecycleService, LifecyclePhase, ShutdownReason, StartupKind } from 'vs/platform/lifecycle/common/lifecycle'; import { IMarkerService } from 'vs/platform/markers/common/markers'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { IMessageService, IChoiceService, Severity } from 'vs/platform/message/common/message'; @@ -282,16 +282,27 @@ export class WorkbenchShell { } private logLocalStorageMetrics(): void { - perf.mark('willReadLocalStorage'); - if (!this.storageService.getBoolean('localStorageMetricsSent')) { - perf.mark('didReadLocalStorage'); + if (this.lifecycleService.startupKind === StartupKind.ReloadedWindow || this.lifecycleService.startupKind === StartupKind.ReopenedWindow) { + return; // avoid logging localStorage metrics for reload/reopen, we prefer cold startup numbers + } + perf.mark('willReadLocalStorage'); + const readyToSend = this.storageService.getBoolean('localStorageMetricsReadyToSend'); + perf.mark('didReadLocalStorage'); + + if (!readyToSend) { + this.storageService.store('localStorageMetricsReadyToSend', true); + return; // avoid logging localStorage metrics directly after the update, we prefer cold startup numbers + } + + if (!this.storageService.getBoolean('localStorageMetricsSent')) { perf.mark('willWriteLocalStorage'); this.storageService.store('localStorageMetricsSent', true); + perf.mark('didWriteLocalStorage'); stat(join(this.environmentService.userDataPath, 'Local Storage', 'file__0.localstorage'), (error, stat) => { /* __GDPR__ - "localStorageMetrics" : { + "localStorageTimers" : { "accessTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, "firstReadTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, "subsequentReadTime" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, @@ -300,11 +311,11 @@ export class WorkbenchShell { "size": { "classification": "SystemMetaData", "purpose": "FeatureInsight" } } */ - this.telemetryService.publicLog('localStorageMetrics', { + this.telemetryService.publicLog('localStorageTimers', { 'accessTime': perf.getDuration('willAccessLocalStorage', 'didAccessLocalStorage'), 'firstReadTime': perf.getDuration('willReadWorkspaceIdentifier', 'didReadWorkspaceIdentifier'), 'subsequentReadTime': perf.getDuration('willReadLocalStorage', 'didReadLocalStorage'), - 'writeTime': perf.getDuration('willWriteLocalStorage', 'willComputeLocalStorageSize'), + 'writeTime': perf.getDuration('willWriteLocalStorage', 'didWriteLocalStorage'), 'keys': window.localStorage.length, 'size': stat ? stat.size : -1 }); diff --git a/src/vs/workbench/parts/codeEditor/codeEditor.contribution.ts b/src/vs/workbench/parts/codeEditor/codeEditor.contribution.ts index c8a7d860be5..42d312d8c7e 100644 --- a/src/vs/workbench/parts/codeEditor/codeEditor.contribution.ts +++ b/src/vs/workbench/parts/codeEditor/codeEditor.contribution.ts @@ -13,4 +13,10 @@ import './electron-browser/toggleMultiCursorModifier'; import './electron-browser/toggleRenderControlCharacter'; import './electron-browser/toggleRenderWhitespace'; import './electron-browser/toggleWordWrap'; -import './electron-browser/wordWrapMigration'; +import { OPTIONS, TextBufferType } from 'vs/editor/common/model/textModel'; + +// Configure text buffer implementation +if (process.env['VSCODE_PIECE_TREE']) { + console.log(`Using TextBufferType.PieceTree (env variable VSCODE_PIECE_TREE)`); + OPTIONS.TEXT_BUFFER_IMPLEMENTATION = TextBufferType.PieceTree; +} diff --git a/src/vs/workbench/parts/codeEditor/electron-browser/wordWrapMigration.ts b/src/vs/workbench/parts/codeEditor/electron-browser/wordWrapMigration.ts deleted file mode 100644 index 48b4ecdae9c..00000000000 --- a/src/vs/workbench/parts/codeEditor/electron-browser/wordWrapMigration.ts +++ /dev/null @@ -1,143 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -'use strict'; - -import * as nls from 'vs/nls'; -import { Disposable } from 'vs/base/common/lifecycle'; -import { TPromise } from 'vs/base/common/winjs.base'; -import { IEditorContribution } from 'vs/editor/common/editorCommon'; -import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; -import { registerEditorContribution } from 'vs/editor/browser/editorExtensions'; -import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; -import { IMessageService } from 'vs/platform/message/common/message'; -import { IPreferencesService } from 'vs/workbench/parts/preferences/common/preferences'; -import { Action } from 'vs/base/common/actions'; -import Severity from 'vs/base/common/severity'; - -interface IStorageData { - dontShowPrompt: boolean; -} - -class WordWrapMigrationStorage { - private static readonly KEY = 'wordWrapMigration'; - - private _storageService: IStorageService; - private _value: IStorageData; - - constructor(storageService: IStorageService) { - this._storageService = storageService; - this._value = this._read(); - } - - private _read(): IStorageData { - let jsonValue = this._storageService.get(WordWrapMigrationStorage.KEY, StorageScope.GLOBAL); - if (!jsonValue) { - return null; - } - try { - return JSON.parse(jsonValue); - } catch (err) { - return null; - } - } - - public get(): IStorageData { - return this._value; - } - - public set(data: IStorageData): void { - this._value = data; - this._storageService.store(WordWrapMigrationStorage.KEY, JSON.stringify(this._value), StorageScope.GLOBAL); - } -} - -class WordWrapMigrationController extends Disposable implements IEditorContribution { - - private static readonly ID = 'editor.contrib.wordWrapMigrationController'; - private static _checked = false; - - constructor( - editor: ICodeEditor, - @IConfigurationService private configurationService: IConfigurationService, - @IMessageService private messageService: IMessageService, - @IStorageService private storageService: IStorageService, - @IPreferencesService private preferencesService: IPreferencesService - ) { - super(); - - this._promptIfNecessary(); - } - - public getId(): string { - return WordWrapMigrationController.ID; - } - - private _promptIfNecessary(): void { - if (WordWrapMigrationController._checked) { - // Already checked - return; - } - WordWrapMigrationController._checked = true; - - let result = this.configurationService.inspect('editor.wrappingColumn'); - if (typeof result.value === 'undefined') { - // Setting is not used - return; - } - - const storage = new WordWrapMigrationStorage(this.storageService); - const storedData = storage.get(); - if (storedData && storedData.dontShowPrompt) { - // Do not prompt stored - return; - } - - let isUserSetting = (typeof result.user !== 'undefined'); - this._prompt(storage, isUserSetting); - } - - private _prompt(storage: WordWrapMigrationStorage, userSettings: boolean): void { - const okAction = new Action( - 'wordWrapMigration.ok', - nls.localize('wordWrapMigration.ok', "OK"), - null, - true, - () => TPromise.as(true) - ); - const dontShowAgainAction = new Action( - 'wordWrapMigration.dontShowAgain', - nls.localize('wordWrapMigration.dontShowAgain', "Don't Show Again"), - null, - true, - () => { - storage.set({ - dontShowPrompt: true - }); - return TPromise.as(true); - } - ); - const openSettings = new Action( - 'wordWrapMigration.openSettings', - nls.localize('wordWrapMigration.openSettings', "Open Settings"), - null, - true, - () => { - if (userSettings) { - this.preferencesService.openGlobalSettings(); - } else { - this.preferencesService.openWorkspaceSettings(); - } - return TPromise.as(true); - } - ); - this.messageService.show(Severity.Info, { - message: nls.localize('wordWrapMigration.prompt', "The setting `editor.wrappingColumn` has been deprecated in favor of `editor.wordWrap`."), - actions: [okAction, openSettings, dontShowAgainAction] - }); - } -} - -registerEditorContribution(WordWrapMigrationController); diff --git a/src/vs/workbench/parts/debug/browser/debugActionItems.ts b/src/vs/workbench/parts/debug/browser/debugActionItems.ts index 2f8e4a05dfa..526d46c3640 100644 --- a/src/vs/workbench/parts/debug/browser/debugActionItems.ts +++ b/src/vs/workbench/parts/debug/browser/debugActionItems.ts @@ -20,6 +20,7 @@ import { attachSelectBoxStyler, attachStylerCallback } from 'vs/platform/theme/c import { SIDE_BAR_BACKGROUND } from 'vs/workbench/common/theme'; import { selectBorder } from 'vs/platform/theme/common/colorRegistry'; import { IContextViewService } from 'vs/platform/contextview/browser/contextView'; +import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; const $ = dom.$; @@ -42,6 +43,7 @@ export class StartDebugActionItem implements IActionItem { @IThemeService private themeService: IThemeService, @IConfigurationService private configurationService: IConfigurationService, @ICommandService private commandService: ICommandService, + @IWorkspaceContextService private contextService: IWorkspaceContextService, @IContextViewService contextViewService: IContextViewService, ) { this.toDispose = []; @@ -153,12 +155,13 @@ export class StartDebugActionItem implements IActionItem { this.options = []; const manager = this.debugService.getConfigurationManager(); const launches = manager.getLaunches(); + const inWorkspace = this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE; manager.getLaunches().forEach(launch => launch.getConfigurationNames().forEach(name => { if (name === manager.selectedName && launch === manager.selectedLaunch) { this.selected = this.options.length; } - const label = launches.length > 1 ? `${name} (${launch.name})` : name; + const label = inWorkspace ? `${name} (${launch.name})` : name; this.options.push({ label, handler: () => { manager.selectConfiguration(launch, name); return true; } }); })); @@ -168,8 +171,8 @@ export class StartDebugActionItem implements IActionItem { this.options.push({ label: StartDebugActionItem.SEPARATOR, handler: undefined }); const disabledIdx = this.options.length - 1; - launches.forEach(l => { - const label = launches.length > 1 ? nls.localize("addConfigTo", "Add Config ({0})...", l.name) : nls.localize('addConfiguration', "Add Configuration..."); + launches.filter(l => !l.hidden).forEach(l => { + const label = inWorkspace ? nls.localize("addConfigTo", "Add Config ({0})...", l.name) : nls.localize('addConfiguration', "Add Configuration..."); this.options.push({ label, handler: () => { this.commandService.executeCommand('debug.addConfiguration', l.uri.toString()).done(undefined, errors.onUnexpectedError); diff --git a/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts b/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts index 19fc90661c0..8ff1397423b 100644 --- a/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts +++ b/src/vs/workbench/parts/debug/browser/debugEditorModelManager.ts @@ -263,17 +263,23 @@ export class DebugEditorModelManager implements IWorkbenchContribution { } private createBreakpointDecorations(model: ITextModel, breakpoints: IBreakpoint[]): { range: Range; options: IModelDecorationOptions; }[] { - return breakpoints.map((breakpoint) => { - const column = model.getLineFirstNonWhitespaceColumn(breakpoint.lineNumber); - const range = model.validateRange( - breakpoint.column ? new Range(breakpoint.lineNumber, breakpoint.column, breakpoint.lineNumber, breakpoint.column + 1) - : new Range(breakpoint.lineNumber, column, breakpoint.lineNumber, column + 1) // Decoration has to have a width #20688 - ); - return { - options: this.getBreakpointDecorationOptions(breakpoint), - range - }; + const result: { range: Range; options: IModelDecorationOptions; }[] = []; + breakpoints.forEach((breakpoint) => { + if (breakpoint.lineNumber <= model.getLineCount()) { + const column = model.getLineFirstNonWhitespaceColumn(breakpoint.lineNumber); + const range = model.validateRange( + breakpoint.column ? new Range(breakpoint.lineNumber, breakpoint.column, breakpoint.lineNumber, breakpoint.column + 1) + : new Range(breakpoint.lineNumber, column, breakpoint.lineNumber, column + 1) // Decoration has to have a width #20688 + ); + + result.push({ + options: this.getBreakpointDecorationOptions(breakpoint), + range + }); + } }); + + return result; } private getBreakpointDecorationOptions(breakpoint: IBreakpoint): IModelDecorationOptions { diff --git a/src/vs/workbench/parts/debug/browser/debugQuickOpen.ts b/src/vs/workbench/parts/debug/browser/debugQuickOpen.ts index 4b93cc51109..909b65532b8 100644 --- a/src/vs/workbench/parts/debug/browser/debugQuickOpen.ts +++ b/src/vs/workbench/parts/debug/browser/debugQuickOpen.ts @@ -109,8 +109,9 @@ export class DebugQuickOpenHandler extends Quickopen.QuickOpenHandler { configurations.push(new StartDebugEntry(this.debugService, this.contextService, this.messageService, launch, config, highlights)); }); } - launches.forEach((l, index) => { - const label = launches.length > 1 ? nls.localize("addConfigTo", "Add Config ({0})...", l.name) : nls.localize('addConfiguration', "Add Configuration..."); + launches.filter(l => !l.hidden).forEach((l, index) => { + + const label = this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE ? nls.localize("addConfigTo", "Add Config ({0})...", l.name) : nls.localize('addConfiguration', "Add Configuration..."); const entry = new AddConfigEntry(label, l, this.commandService, this.contextService, Filters.matchesContiguousSubString(input, label)); if (index === 0) { configurations.push(new QuickOpenEntryGroup(entry, undefined, true)); diff --git a/src/vs/workbench/parts/debug/common/debug.ts b/src/vs/workbench/parts/debug/common/debug.ts index 7c951a07014..a1e04b14335 100644 --- a/src/vs/workbench/parts/debug/common/debug.ts +++ b/src/vs/workbench/parts/debug/common/debug.ts @@ -402,6 +402,7 @@ export interface IDebugConfigurationProvider { handle: number; resolveDebugConfiguration?(folderUri: uri | undefined, debugConfiguration: IConfig): TPromise; provideDebugConfigurations?(folderUri: uri | undefined): TPromise; + debugAdapterExecutable(folderUri: uri | undefined): TPromise; } export interface IConfigurationManager { @@ -428,7 +429,9 @@ export interface IConfigurationManager { registerDebugConfigurationProvider(handle: number, debugConfigurationProvider: IDebugConfigurationProvider): void; unregisterDebugConfigurationProvider(handle: number): void; + resolveConfigurationByProviders(folderUri: uri | undefined, type: string | undefined, debugConfiguration: any): TPromise; + debugAdapterExecutable(folderUri: uri | undefined, type: string): TPromise; } export interface ILaunch { @@ -443,8 +446,16 @@ export interface ILaunch { */ name: string; + /** + * Workspace of the launch. Can be null. + */ workspace: IWorkspaceFolder; + /** + * Should this launch be shown in the debug dropdown. + */ + hidden: boolean; + /** * Returns a configuration with the specified name. * Returns null if there is no configuration with the specified name. diff --git a/src/vs/workbench/parts/debug/common/debugModel.ts b/src/vs/workbench/parts/debug/common/debugModel.ts index 4b4295d0fa8..4e95270d430 100644 --- a/src/vs/workbench/parts/debug/common/debugModel.ts +++ b/src/vs/workbench/parts/debug/common/debugModel.ts @@ -24,6 +24,7 @@ import { } from 'vs/workbench/parts/debug/common/debug'; import { Source } from 'vs/workbench/parts/debug/common/debugSource'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; +import { mixin } from 'vs/base/common/objects'; const MAX_REPL_LENGTH = 10000; @@ -560,7 +561,7 @@ export class Process implements IProcess { let source = new Source(raw, this.getId()); if (this.sources.has(source.uri.toString())) { source = this.sources.get(source.uri.toString()); - source.raw = raw; + source.raw = mixin(source.raw, raw); } else { this.sources.set(source.uri.toString(), source); } diff --git a/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts b/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts index 6fe509caccb..f06096a0ece 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugConfigurationManager.ts @@ -27,13 +27,14 @@ import { IFileService } from 'vs/platform/files/common/files'; import { IWorkspaceContextService, IWorkspaceFolder, WorkbenchState } from 'vs/platform/workspace/common/workspace'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { ICommandService } from 'vs/platform/commands/common/commands'; -import { IDebugConfigurationProvider, IRawAdapter, ICompound, IDebugConfiguration, IConfig, IEnvConfig, IGlobalConfig, IConfigurationManager, ILaunch } from 'vs/workbench/parts/debug/common/debug'; +import { IDebugConfigurationProvider, IRawAdapter, ICompound, IDebugConfiguration, IConfig, IEnvConfig, IGlobalConfig, IConfigurationManager, ILaunch, IAdapterExecutable } from 'vs/workbench/parts/debug/common/debug'; import { Adapter } from 'vs/workbench/parts/debug/node/debugAdapter'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IQuickOpenService } from 'vs/platform/quickOpen/common/quickOpen'; import { IConfigurationResolverService } from 'vs/workbench/services/configurationResolver/common/configurationResolver'; import { isCodeEditor } from 'vs/editor/browser/editorBrowser'; import { launchSchemaId } from 'vs/workbench/services/configuration/common/configuration'; +import { IPreferencesService } from 'vs/workbench/parts/preferences/common/preferences'; // debuggers extension point export const debuggersExtPoint = extensionsRegistry.ExtensionsRegistry.registerExtensionPoint('debuggers', [], { @@ -291,6 +292,14 @@ export class ConfigurationManager implements IConfigurationManager { .then(results => results.reduce((first, second) => first.concat(second), [])); } + public debugAdapterExecutable(folderUri: uri | undefined, type: string): TPromise { + const providers = this.providers.filter(p => p.type === type && p.debugAdapterExecutable); + if (providers.length === 1) { + return providers[0].debugAdapterExecutable(folderUri); + } + return TPromise.as(undefined); + } + private registerListeners(lifecycleService: ILifecycleService): void { debuggersExtPoint.setHandler((extensions) => { extensions.forEach(extension => { @@ -308,7 +317,7 @@ export class ConfigurationManager implements IConfigurationManager { if (duplicate) { duplicate.merge(rawAdapter, extension.description); } else { - this.adapters.push(new Adapter(rawAdapter, extension.description, this.configurationService, this.commandService)); + this.adapters.push(new Adapter(this, rawAdapter, extension.description, this.configurationService, this.commandService)); } }); }); @@ -354,6 +363,7 @@ export class ConfigurationManager implements IConfigurationManager { private initLaunches(): void { this.launches = this.contextService.getWorkspace().folders.map(folder => this.instantiationService.createInstance(Launch, this, folder)); + this.launches.push(this.instantiationService.createInstance(UserLaunch, this)); if (this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE) { this.launches.push(this.instantiationService.createInstance(WorkspaceLaunch, this)); } @@ -512,8 +522,12 @@ class Launch implements ILaunch { return this.workspace.name; } + public get hidden(): boolean { + return false; + } + protected getConfig(): IGlobalConfig { - return this.configurationService.getValue('launch', { resource: this.workspace.uri }); + return this.configurationService.inspect('launch', { resource: this.workspace.uri }).workspaceFolder; } public getCompound(name: string): ICompound { @@ -531,7 +545,7 @@ class Launch implements ILaunch { return []; } else { const names = config.configurations.filter(cfg => cfg && typeof cfg.name === 'string').map(cfg => cfg.name); - if (includeCompounds && names.length > 0 && config.compounds) { + if (includeCompounds && config.compounds) { if (config.compounds) { names.push(...config.compounds.filter(compound => typeof compound.name === 'string' && compound.configurations && compound.configurations.length) .map(compound => compound.name)); @@ -543,7 +557,8 @@ class Launch implements ILaunch { } public getConfiguration(name: string): IConfig { - const config = this.getConfig(); + // We need to clone the configuration in order to be able to make changes to it #42198 + const config = objects.deepClone(this.getConfig()); if (!config || !config.configurations) { return null; } @@ -659,3 +674,37 @@ class WorkspaceLaunch extends Launch implements ILaunch { return this.editorService.openEditor({ resource: this.workspaceContextService.getWorkspace().configuration }); } } + +class UserLaunch extends Launch implements ILaunch { + + constructor( + configurationManager: ConfigurationManager, + @IFileService fileService: IFileService, + @IWorkbenchEditorService editorService: IWorkbenchEditorService, + @IConfigurationService configurationService: IConfigurationService, + @IConfigurationResolverService configurationResolverService: IConfigurationResolverService, + @IPreferencesService private preferencesService: IPreferencesService + ) { + super(configurationManager, undefined, fileService, editorService, configurationService, configurationResolverService); + } + + get uri(): uri { + return this.preferencesService.userSettingsResource; + } + + get name(): string { + return nls.localize('user settings', "user settings"); + } + + public get hidden(): boolean { + return true; + } + + protected getConfig(): IGlobalConfig { + return this.configurationService.inspect('launch').user; + } + + openConfigFile(sideBySide: boolean, type?: string): TPromise { + return this.preferencesService.openGlobalSettings(); + } +} diff --git a/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts b/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts index 5db4e4a3828..321cbc4f93b 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugEditorContribution.ts @@ -580,6 +580,10 @@ export class DebugEditorContribution implements IDebugEditorContribution { if (!this.wordToLineNumbersMap) { this.wordToLineNumbersMap = new Map(); const model = this.editor.getModel(); + if (!model) { + return this.wordToLineNumbersMap; + } + // For every word in every line, map its ranges for fast lookup for (let lineNumber = 1, len = model.getLineCount(); lineNumber <= len; ++lineNumber) { const lineContent = model.getLineContent(lineNumber); diff --git a/src/vs/workbench/parts/debug/electron-browser/debugService.ts b/src/vs/workbench/parts/debug/electron-browser/debugService.ts index 5afd2c0b374..5220266e488 100644 --- a/src/vs/workbench/parts/debug/electron-browser/debugService.ts +++ b/src/vs/workbench/parts/debug/electron-browser/debugService.ts @@ -768,8 +768,9 @@ export class DebugService implements debug.IDebugService { } private createProcess(root: IWorkspaceFolder, config: debug.IConfig, sessionId: string): TPromise { + const launch = root ? this.configurationManager.getLaunches().filter(l => l.workspace && l.workspace.uri.toString() === root.uri.toString()).pop() : this.configurationManager.selectedLaunch; return this.textFileService.saveAll().then(() => - (this.configurationManager.selectedLaunch ? this.configurationManager.selectedLaunch.resolveConfiguration(config) : TPromise.as(config)).then(resolvedConfig => { + (launch ? launch.resolveConfiguration(config) : TPromise.as(config)).then(resolvedConfig => { if (!resolvedConfig) { // User canceled resolving of interactive variables, silently return return undefined; @@ -819,7 +820,7 @@ export class DebugService implements debug.IDebugService { case 0: return this.doCreateProcess(root, resolvedConfig, sessionId); case 1: - return this.configurationManager.selectedLaunch.openConfigFile(false); + return launch && launch.openConfigFile(false); case 2: return this.taskService.configureAction().run(); default: @@ -833,7 +834,7 @@ export class DebugService implements debug.IDebugService { return undefined; } - return this.configurationManager.selectedLaunch.openConfigFile(false).then(editor => void 0); + return launch && launch.openConfigFile(false).then(editor => void 0); }) ); } diff --git a/src/vs/workbench/parts/debug/electron-browser/watchExpressionsView.ts b/src/vs/workbench/parts/debug/electron-browser/watchExpressionsView.ts index 23b519b6472..e353cc434f8 100644 --- a/src/vs/workbench/parts/debug/electron-browser/watchExpressionsView.ts +++ b/src/vs/workbench/parts/debug/electron-browser/watchExpressionsView.ts @@ -213,7 +213,8 @@ class WatchExpressionsDataSource implements IDataSource { public getChildren(tree: ITree, element: any): TPromise { if (element instanceof Model) { const viewModel = this.debugService.getViewModel(); - return TPromise.join(element.getWatchExpressions().map(we => we.evaluate(viewModel.focusedProcess, viewModel.focusedStackFrame, 'watch').then(() => we))); + return TPromise.join(element.getWatchExpressions().map(we => + we.name ? we.evaluate(viewModel.focusedProcess, viewModel.focusedStackFrame, 'watch').then(() => we) : TPromise.as(we))); } let expression = element; diff --git a/src/vs/workbench/parts/debug/node/debugAdapter.ts b/src/vs/workbench/parts/debug/node/debugAdapter.ts index 39e277acd4c..6b168d250c6 100644 --- a/src/vs/workbench/parts/debug/node/debugAdapter.ts +++ b/src/vs/workbench/parts/debug/node/debugAdapter.ts @@ -13,14 +13,14 @@ import * as paths from 'vs/base/common/paths'; import * as platform from 'vs/base/common/platform'; import { IJSONSchema, IJSONSchemaSnippet } from 'vs/base/common/jsonSchema'; import { IWorkspaceFolder } from 'vs/platform/workspace/common/workspace'; -import { IConfig, IRawAdapter, IAdapterExecutable, INTERNAL_CONSOLE_OPTIONS_SCHEMA } from 'vs/workbench/parts/debug/common/debug'; +import { IConfig, IRawAdapter, IAdapterExecutable, INTERNAL_CONSOLE_OPTIONS_SCHEMA, IConfigurationManager } from 'vs/workbench/parts/debug/common/debug'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { ICommandService } from 'vs/platform/commands/common/commands'; export class Adapter { - constructor(private rawAdapter: IRawAdapter, public extensionDescription: IExtensionDescription, + constructor(private configurationManager: IConfigurationManager, private rawAdapter: IRawAdapter, public extensionDescription: IExtensionDescription, @IConfigurationService private configurationService: IConfigurationService, @ICommandService private commandService: ICommandService ) { @@ -33,23 +33,32 @@ export class Adapter { public getAdapterExecutable(root: IWorkspaceFolder, verifyAgainstFS = true): TPromise { - if (this.rawAdapter.adapterExecutableCommand && root) { - return this.commandService.executeCommand(this.rawAdapter.adapterExecutableCommand, root.uri.toString()).then(ad => { - return this.verifyAdapterDetails(ad, verifyAgainstFS); - }); - } + return this.configurationManager.debugAdapterExecutable(root ? root.uri : undefined, this.rawAdapter.type).then(adapterExecutable => { - const adapterExecutable = { - command: this.getProgram(), - args: this.getAttributeBasedOnPlatform('args') - }; - const runtime = this.getRuntime(); - if (runtime) { - const runtimeArgs = this.getAttributeBasedOnPlatform('runtimeArgs'); - adapterExecutable.args = (runtimeArgs || []).concat([adapterExecutable.command]).concat(adapterExecutable.args || []); - adapterExecutable.command = runtime; - } - return this.verifyAdapterDetails(adapterExecutable, verifyAgainstFS); + if (adapterExecutable) { + return this.verifyAdapterDetails(adapterExecutable, verifyAgainstFS); + } + + // try deprecated command based extension API + if (this.rawAdapter.adapterExecutableCommand && root) { + return this.commandService.executeCommand(this.rawAdapter.adapterExecutableCommand, root.uri.toString()).then(ad => { + return this.verifyAdapterDetails(ad, verifyAgainstFS); + }); + } + + // fallback: executable contribution specified in package.json + adapterExecutable = { + command: this.getProgram(), + args: this.getAttributeBasedOnPlatform('args') + }; + const runtime = this.getRuntime(); + if (runtime) { + const runtimeArgs = this.getAttributeBasedOnPlatform('runtimeArgs'); + adapterExecutable.args = (runtimeArgs || []).concat([adapterExecutable.command]).concat(adapterExecutable.args || []); + adapterExecutable.command = runtime; + } + return this.verifyAdapterDetails(adapterExecutable, verifyAgainstFS); + }); } private verifyAdapterDetails(details: IAdapterExecutable, verifyAgainstFS: boolean): TPromise { diff --git a/src/vs/workbench/parts/debug/test/node/debugAdapter.test.ts b/src/vs/workbench/parts/debug/test/node/debugAdapter.test.ts index 9e626d4be69..fadc7c6c5fd 100644 --- a/src/vs/workbench/parts/debug/test/node/debugAdapter.test.ts +++ b/src/vs/workbench/parts/debug/test/node/debugAdapter.test.ts @@ -6,9 +6,12 @@ import * as assert from 'assert'; import * as paths from 'vs/base/common/paths'; import * as platform from 'vs/base/common/platform'; -import { IRawAdapter } from 'vs/workbench/parts/debug/common/debug'; +import { IRawAdapter, IAdapterExecutable, IConfigurationManager } from 'vs/workbench/parts/debug/common/debug'; import { Adapter } from 'vs/workbench/parts/debug/node/debugAdapter'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; +import uri from 'vs/base/common/uri'; +import { TPromise } from 'vs/base/common/winjs.base'; + suite('Debug - Adapter', () => { let adapter: Adapter; @@ -41,9 +44,14 @@ suite('Debug - Adapter', () => { } ] }; + const configurationManager = { + debugAdapterExecutable(folderUri: uri | undefined, type: string): TPromise { + return TPromise.as(undefined); + } + }; setup(() => { - adapter = new Adapter(rawAdapter, { extensionFolderPath, id: 'adapter', name: 'myAdapter', version: '1.0.0', publisher: 'vscode', isBuiltin: false, engines: null }, + adapter = new Adapter(configurationManager, rawAdapter, { extensionFolderPath, id: 'adapter', name: 'myAdapter', version: '1.0.0', publisher: 'vscode', isBuiltin: false, engines: null }, new TestConfigurationService(), null); }); diff --git a/src/vs/workbench/parts/execution/electron-browser/execution.contribution.ts b/src/vs/workbench/parts/execution/electron-browser/execution.contribution.ts index 30be861e92f..093557504c7 100644 --- a/src/vs/workbench/parts/execution/electron-browser/execution.contribution.ts +++ b/src/vs/workbench/parts/execution/electron-browser/execution.contribution.ts @@ -112,7 +112,9 @@ KeybindingsRegistry.registerCommandAndKeybindingRule({ const historyService = accessor.get(IHistoryService); const terminalService = accessor.get(ITerminalService); const root = historyService.getLastActiveWorkspaceRoot('file'); - terminalService.openTerminal(root.fsPath); + if (root) { + terminalService.openTerminal(root.fsPath); + } } }); diff --git a/src/vs/workbench/parts/extensions/browser/extensionEditor.ts b/src/vs/workbench/parts/extensions/browser/extensionEditor.ts index 8e6b31e1f55..20d38a211f6 100644 --- a/src/vs/workbench/parts/extensions/browser/extensionEditor.ts +++ b/src/vs/workbench/parts/extensions/browser/extensionEditor.ts @@ -53,6 +53,7 @@ import { KeybindingsRegistry } from 'vs/platform/keybinding/common/keybindingsRe import { Color } from 'vs/base/common/color'; import { WorkbenchTree } from 'vs/platform/list/browser/listService'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; +import { assign } from 'vs/base/common/objects'; /** A context key that is set when an extension editor webview has focus. */ export const KEYBINDING_CONTEXT_EXTENSIONEDITOR_WEBVIEW_FOCUS = new RawContextKey('extensionEditorWebviewFocus', undefined); @@ -273,15 +274,6 @@ export class ExtensionEditor extends BaseEditor { this.transientDisposables = dispose(this.transientDisposables); - /* __GDPR__ - "extensionGallery:openExtension" : { - "${include}": [ - "${GalleryExtensionTelemetryData}" - ] - } - */ - this.telemetryService.publicLog('extensionGallery:openExtension', extension.telemetryData); - this.extensionReadme = new Cache(() => extension.getReadme()); this.extensionChangelog = new Cache(() => extension.getChangelog()); this.extensionManifest = new Cache(() => extension.getManifest()); @@ -303,13 +295,26 @@ export class ExtensionEditor extends BaseEditor { this.description.textContent = extension.description; const extRecommendations = this.extensionTipsService.getAllRecommendationsWithReason(); - this.recommendation.textContent = extRecommendations[extension.id.toLowerCase()]; + let recommendationsData = {}; if (extRecommendations[extension.id.toLowerCase()]) { addClass(this.header, 'recommended'); + this.recommendation.textContent = extRecommendations[extension.id.toLowerCase()].reasonText; + recommendationsData = { recommendationReason: extRecommendations[extension.id.toLowerCase()].reasonId }; } else { removeClass(this.header, 'recommended'); + this.recommendation.textContent = ''; } + /* __GDPR__ + "extensionGallery:openExtension" : { + "recommendationReason": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "${include}": [ + "${GalleryExtensionTelemetryData}" + ] + } + */ + this.telemetryService.publicLog('extensionGallery:openExtension', assign(extension.telemetryData, recommendationsData)); + if (extension.url) { this.name.onclick = finalHandler(() => window.open(extension.url)); this.rating.onclick = finalHandler(() => window.open(`${extension.url}#review-details`)); @@ -634,8 +639,8 @@ export class ExtensionEditor extends BaseEditor { const details = $('details', { open: true, ontoggle: onDetailsToggle }, $('summary', null, localize('localizations', "Localizations ({0})", localizations.length)), $('table', null, - $('tr', null, $('th', null, localize('localizations language id', "Language Id")), $('th', null, localize('localizations language name', "Langauge Name")), $('th', null, localize('translations location', "Translations Location"))), - ...localizations.map(localization => $('tr', null, $('td', null, localization.languageId), $('td', null, localization.languageName), $('td', null, localization.translations))) + $('tr', null, $('th', null, localize('localizations language id', "Language Id")), $('th', null, localize('localizations language name', "Langauge Name")), $('th', null, localize('localizations localized language name', "Langauge Name (Localized)"))), + ...localizations.map(localization => $('tr', null, $('td', null, localization.languageId), $('td', null, localization.languageName), $('td', null, localization.languageNameLocalized))) ) ); diff --git a/src/vs/workbench/parts/extensions/browser/extensionsList.ts b/src/vs/workbench/parts/extensions/browser/extensionsList.ts index fbe2e45ff31..6bcb78be8ec 100644 --- a/src/vs/workbench/parts/extensions/browser/extensionsList.ts +++ b/src/vs/workbench/parts/extensions/browser/extensionsList.ts @@ -167,7 +167,7 @@ export class Renderer implements IPagedRenderer { if (extRecommendations[extension.id.toLowerCase()]) { data.root.setAttribute('aria-label', extension.displayName + '. ' + extRecommendations[extension.id]); addClass(data.root, 'recommended'); - data.root.title = extRecommendations[extension.id.toLowerCase()]; + data.root.title = extRecommendations[extension.id.toLowerCase()].reasonText; } data.name.textContent = extension.displayName; diff --git a/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts b/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts index c8521511393..3fdfe03c4e3 100644 --- a/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts +++ b/src/vs/workbench/parts/extensions/electron-browser/extensionTipsService.ts @@ -10,7 +10,7 @@ import { forEach } from 'vs/base/common/collections'; import { IDisposable, dispose, Disposable } from 'vs/base/common/lifecycle'; import { match } from 'vs/base/common/glob'; import * as json from 'vs/base/common/json'; -import { IExtensionManagementService, IExtensionGalleryService, IExtensionTipsService, LocalExtensionType, EXTENSION_IDENTIFIER_PATTERN } from 'vs/platform/extensionManagement/common/extensionManagement'; +import { IExtensionManagementService, IExtensionGalleryService, IExtensionTipsService, ExtensionRecommendationReason, LocalExtensionType, EXTENSION_IDENTIFIER_PATTERN } from 'vs/platform/extensionManagement/common/extensionManagement'; import { IModelService } from 'vs/editor/common/services/modelService'; import { ITextModel } from 'vs/editor/common/model'; import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; @@ -19,7 +19,7 @@ import { IChoiceService, IMessageService } from 'vs/platform/message/common/mess import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { ShowRecommendedExtensionsAction, InstallWorkspaceRecommendedExtensionsAction, InstallRecommendedExtensionAction } from 'vs/workbench/parts/extensions/browser/extensionsActions'; import Severity from 'vs/base/common/severity'; -import { IWorkspaceContextService, IWorkspaceFolder, IWorkspace, IWorkspaceFoldersChangeEvent } from 'vs/platform/workspace/common/workspace'; +import { IWorkspaceContextService, IWorkspaceFolder, IWorkspace, IWorkspaceFoldersChangeEvent, WorkbenchState } from 'vs/platform/workspace/common/workspace'; import { Schemas } from 'vs/base/common/network'; import { IFileService } from 'vs/platform/files/common/files'; import { IExtensionsConfiguration, ConfigurationKey } from 'vs/workbench/parts/extensions/common/extensions'; @@ -27,11 +27,15 @@ import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configur import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import * as pfs from 'vs/base/node/pfs'; import * as os from 'os'; -import { flatten, distinct } from 'vs/base/common/arrays'; +import { flatten, distinct, shuffle } from 'vs/base/common/arrays'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { guessMimeTypes, MIME_UNKNOWN } from 'vs/base/common/mime'; import { ShowLanguageExtensionsAction } from 'vs/workbench/browser/parts/editor/editorStatus'; import { IExtensionService } from 'vs/platform/extensions/common/extensions'; +import { getHashedRemotesFromUri } from 'vs/workbench/parts/stats/node/workspaceStats'; +import { IRequestService } from 'vs/platform/request/node/request'; +import { asJson } from 'vs/base/node/request'; +import { isNumber } from 'vs/base/common/types'; interface IExtensionsContent { recommendations: string[]; @@ -42,6 +46,11 @@ const milliSecondsInADay = 1000 * 60 * 60 * 24; const choiceNever = localize('neverShowAgain', "Don't show again"); const choiceClose = localize('close', "Close"); +interface IDynamicWorkspaceRecommendations { + remoteSet: string[]; + recommendations: string[]; +} + export class ExtensionTipsService extends Disposable implements IExtensionTipsService { _serviceBrand: any; @@ -49,9 +58,10 @@ export class ExtensionTipsService extends Disposable implements IExtensionTipsSe private _fileBasedRecommendations: { [id: string]: number; } = Object.create(null); private _exeBasedRecommendations: { [id: string]: string; } = Object.create(null); private _availableRecommendations: { [pattern: string]: string[] } = Object.create(null); - private _disposables: IDisposable[] = []; - private _allWorkspaceRecommendedExtensions: string[] = []; + private _dynamicWorkspaceRecommendations: string[] = []; + private _extensionsRecommendationsUrl: string; + private _disposables: IDisposable[] = []; public promptWorkspaceRecommendationsPromise: TPromise; constructor( @@ -67,7 +77,8 @@ export class ExtensionTipsService extends Disposable implements IExtensionTipsSe @IMessageService private messageService: IMessageService, @ITelemetryService private telemetryService: ITelemetryService, @IEnvironmentService private environmentService: IEnvironmentService, - @IExtensionService private extensionService: IExtensionService + @IExtensionService private extensionService: IExtensionService, + @IRequestService private requestService: IRequestService ) { super(); @@ -75,6 +86,10 @@ export class ExtensionTipsService extends Disposable implements IExtensionTipsSe return; } + if (product.extensionsGallery && product.extensionsGallery.recommendationsUrl) { + this._extensionsRecommendationsUrl = product.extensionsGallery.recommendationsUrl; + } + this.getDynamicWorkspaceRecommendations(); this._suggestFileBasedRecommendations(); this.promptWorkspaceRecommendationsPromise = this._suggestWorkspaceRecommendations(); @@ -89,11 +104,32 @@ export class ExtensionTipsService extends Disposable implements IExtensionTipsSe return this._galleryService.isEnabled() && !this.environmentService.extensionDevelopmentPath; } - getAllRecommendationsWithReason(): { [id: string]: string; } { - let output: { [id: string]: string; } = Object.create(null); - this._allWorkspaceRecommendedExtensions.forEach(x => output[x.toLowerCase()] = localize('workspaceRecommendation', "This extension is recommended by users of the current workspace.")); - Object.keys(this._fileBasedRecommendations).forEach(x => output[x.toLowerCase()] = output[x.toLowerCase()] || localize('fileBasedRecommendation', "This extension is recommended based on the files you recently opened.")); - forEach(this._exeBasedRecommendations, entry => output[entry.key.toLowerCase()] = output[entry.key.toLowerCase()] || localize('exeBasedRecommendation', "This extension is recommended because you have {0} installed.", entry.value)); + getAllRecommendationsWithReason(): { [id: string]: { reasonId: ExtensionRecommendationReason, reasonText: string }; } { + let output: { [id: string]: { reasonId: ExtensionRecommendationReason, reasonText: string }; } = Object.create(null); + + if (this.contextService.getWorkspace().folders && this.contextService.getWorkspace().folders.length === 1) { + const currentRepo = this.contextService.getWorkspace().folders[0].name; + this._dynamicWorkspaceRecommendations.forEach(x => output[x.toLowerCase()] = { + reasonId: ExtensionRecommendationReason.DynamicWorkspace, + reasonText: localize('dynamicWorkspaceRecommendation', "This extension may interest you because it's popular among users of the {0} repository.", currentRepo) + }); + } + + forEach(this._exeBasedRecommendations, entry => output[entry.key.toLowerCase()] = { + reasonId: ExtensionRecommendationReason.Executable, + reasonText: localize('exeBasedRecommendation', "This extension is recommended because you have {0} installed.", entry.value) + }); + + Object.keys(this._fileBasedRecommendations).forEach(x => output[x.toLowerCase()] = { + reasonId: ExtensionRecommendationReason.File, + reasonText: localize('fileBasedRecommendation', "This extension is recommended based on the files you recently opened.") + }); + + this._allWorkspaceRecommendedExtensions.forEach(x => output[x.toLowerCase()] = { + reasonId: ExtensionRecommendationReason.Workspace, + reasonText: localize('workspaceRecommendation', "This extension is recommended by users of the current workspace.") + }); + return output; } @@ -183,6 +219,7 @@ export class ExtensionTipsService extends Disposable implements IExtensionTipsSe } }); } + this._dynamicWorkspaceRecommendations = []; } getFileBasedRecommendations(): string[] { @@ -202,7 +239,9 @@ export class ExtensionTipsService extends Disposable implements IExtensionTipsSe } getOtherRecommendations(): string[] { - return Object.keys(this._exeBasedRecommendations); + const others = distinct([...Object.keys(this._exeBasedRecommendations), ...this._dynamicWorkspaceRecommendations]); + shuffle(others); + return others; } getKeymapRecommendations(): string[] { @@ -620,6 +659,86 @@ export class ExtensionTipsService extends Disposable implements IExtensionTipsSe } } + private getDynamicWorkspaceRecommendations(): TPromise { + if (this.contextService.getWorkbenchState() !== WorkbenchState.FOLDER) { + return TPromise.as(null); + } + + const storageKey = 'extensionsAssistant/dynamicWorkspaceRecommendations'; + let storedRecommendationsJson = {}; + try { + storedRecommendationsJson = JSON.parse(this.storageService.get(storageKey, StorageScope.WORKSPACE, '{}')); + } catch (e) { + this.storageService.remove(storageKey, StorageScope.WORKSPACE); + } + + if (Array.isArray(storedRecommendationsJson['recommendations']) + && isNumber(storedRecommendationsJson['timestamp']) + && storedRecommendationsJson['timestamp'] > 0 + && (Date.now() - storedRecommendationsJson['timestamp']) / milliSecondsInADay < 14) { + this._dynamicWorkspaceRecommendations = storedRecommendationsJson['recommendations']; + /* __GDPR__ + "dynamicWorkspaceRecommendations" : { + "count" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } + "cache" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } + } + */ + this.telemetryService.publicLog('dynamicWorkspaceRecommendations', { count: this._dynamicWorkspaceRecommendations.length, cache: 1 }); + return TPromise.as(null); + } + + if (!this._extensionsRecommendationsUrl) { + return TPromise.as(null); + } + + const workspaceUri = this.contextService.getWorkspace().folders[0].uri; + return TPromise.join([getHashedRemotesFromUri(workspaceUri, this.fileService, false), getHashedRemotesFromUri(workspaceUri, this.fileService, true)]).then(([hashedRemotes1, hashedRemotes2]) => { + const hashedRemotes = (hashedRemotes1 || []).concat(hashedRemotes2 || []); + if (!hashedRemotes.length) { + return null; + } + + return new TPromise((c, e) => { + setTimeout(() => { + this.requestService.request({ type: 'GET', url: this._extensionsRecommendationsUrl }).then(context => { + if (context.res.statusCode !== 200) { + return c(null); + } + return asJson(context).then((result) => { + const allRecommendations: IDynamicWorkspaceRecommendations[] = Array.isArray(result['workspaceRecommendations']) ? result['workspaceRecommendations'] : []; + if (!allRecommendations.length) { + return c(null); + } + + let foundRemote = false; + for (let i = 0; i < hashedRemotes.length && !foundRemote; i++) { + for (let j = 0; j < allRecommendations.length && !foundRemote; j++) { + if (Array.isArray(allRecommendations[j].remoteSet) && allRecommendations[j].remoteSet.indexOf(hashedRemotes[i]) > -1) { + foundRemote = true; + this._dynamicWorkspaceRecommendations = allRecommendations[j].recommendations || []; + this.storageService.store(storageKey, JSON.stringify({ + recommendations: this._dynamicWorkspaceRecommendations, + timestamp: Date.now() + }), StorageScope.WORKSPACE); + /* __GDPR__ + "dynamicWorkspaceRecommendations" : { + "count" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } + "cache" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } + } + */ + this.telemetryService.publicLog('dynamicWorkspaceRecommendations', { count: this._dynamicWorkspaceRecommendations.length, cache: 0 }); + } + } + } + + return c(null); + }); + }); + }, 10000); + }); + }); + } + getKeywordsForExtension(extension: string): string[] { const keywords = product.extensionKeywords || {}; return keywords[extension] || []; diff --git a/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts b/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts index 5faf66742fe..a8da68f6fe6 100644 --- a/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts +++ b/src/vs/workbench/parts/extensions/node/extensionsWorkbenchService.ts @@ -20,7 +20,7 @@ import { IPager, mapPager, singlePagePager } from 'vs/base/common/paging'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { IExtensionManagementService, IExtensionGalleryService, ILocalExtension, IGalleryExtension, IQueryOptions, IExtensionManifest, - InstallExtensionEvent, DidInstallExtensionEvent, LocalExtensionType, DidUninstallExtensionEvent, IExtensionEnablementService, IExtensionIdentifier, EnablementState + InstallExtensionEvent, DidInstallExtensionEvent, LocalExtensionType, DidUninstallExtensionEvent, IExtensionEnablementService, IExtensionIdentifier, EnablementState, IExtensionTipsService } from 'vs/platform/extensionManagement/common/extensionManagement'; import { getGalleryExtensionIdFromLocal, getGalleryExtensionTelemetryData, getLocalExtensionTelemetryData, areSameExtensions, getMaliciousExtensionsSet } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; @@ -349,7 +349,8 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { @IExtensionEnablementService private extensionEnablementService: IExtensionEnablementService, @IWindowService private windowService: IWindowService, @ILogService private logService: ILogService, - @IProgressService2 private progressService: IProgressService2 + @IProgressService2 private progressService: IProgressService2, + @IExtensionTipsService private extensionTipsService: IExtensionTipsService ) { this.stateProvider = ext => this.getExtensionState(ext); @@ -876,12 +877,14 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { const data = active.extension.telemetryData; const duration = new Date().getTime() - active.start.getTime(); const eventName = toTelemetryEventName(active.operation); - + const extRecommendations = this.extensionTipsService.getAllRecommendationsWithReason() || {}; + const recommendationsData = extRecommendations[active.extension.id.toLowerCase()] ? { recommendationReason: extRecommendations[active.extension.id.toLowerCase()].reasonId } : {}; /* __GDPR__ "extensionGallery:install" : { "success": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, "duration" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, "errorcode": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, + "recommendationReason": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, "${include}": [ "${GalleryExtensionTelemetryData}" ] @@ -892,6 +895,7 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { "success": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, "duration" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, "errorcode": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, + "recommendationReason": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, "${include}": [ "${GalleryExtensionTelemetryData}" ] @@ -902,12 +906,13 @@ export class ExtensionsWorkbenchService implements IExtensionsWorkbenchService { "success": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, "duration" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, "errorcode": { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" }, + "recommendationReason": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, "${include}": [ "${GalleryExtensionTelemetryData}" ] } */ - this.telemetryService.publicLog(eventName, assign(data, { success: !errorcode, duration, errorcode })); + this.telemetryService.publicLog(eventName, assign(data, { success: !errorcode, duration, errorcode }, recommendationsData)); } private onError(err: any): void { diff --git a/src/vs/workbench/parts/feedback/electron-browser/feedback.ts b/src/vs/workbench/parts/feedback/electron-browser/feedback.ts index 8fd4bf78233..20013c5caa2 100644 --- a/src/vs/workbench/parts/feedback/electron-browser/feedback.ts +++ b/src/vs/workbench/parts/feedback/electron-browser/feedback.ts @@ -293,7 +293,7 @@ export class FeedbackDropdown extends Dropdown { this.autoHideTimeout = null; } - if (!this.hideButton.checked) { + if (this.hideButton && !this.hideButton.checked) { this.configurationService.updateValue(FEEDBACK_VISIBLE_CONFIG, false).done(null, errors.onUnexpectedError); } diff --git a/src/vs/workbench/parts/files/electron-browser/fileActions.contribution.ts b/src/vs/workbench/parts/files/electron-browser/fileActions.contribution.ts index f365329c68a..743441bf0a1 100644 --- a/src/vs/workbench/parts/files/electron-browser/fileActions.contribution.ts +++ b/src/vs/workbench/parts/files/electron-browser/fileActions.contribution.ts @@ -259,7 +259,7 @@ MenuRegistry.appendMenuItem(MenuId.OpenEditorsContext, { group: '3_compare', order: 20, command: compareResourceCommand, - when: ContextKeyExpr.and(ResourceContextKey.IsFile, ResourceSelectedForCompareContext, WorkbenchListDoubleSelection.toNegated()) + when: ContextKeyExpr.and(ResourceContextKey.HasResource, ResourceSelectedForCompareContext, WorkbenchListDoubleSelection.toNegated()) }); const selectForCompareCommand = { @@ -270,7 +270,7 @@ MenuRegistry.appendMenuItem(MenuId.OpenEditorsContext, { group: '3_compare', order: 30, command: selectForCompareCommand, - when: ContextKeyExpr.and(ResourceContextKey.IsFile, WorkbenchListDoubleSelection.toNegated()) + when: ContextKeyExpr.and(ResourceContextKey.HasResource, WorkbenchListDoubleSelection.toNegated()) }); const compareSelectedCommand = { @@ -281,7 +281,7 @@ MenuRegistry.appendMenuItem(MenuId.OpenEditorsContext, { group: '3_compare', order: 30, command: compareSelectedCommand, - when: ContextKeyExpr.and(ResourceContextKey.IsFile, WorkbenchListDoubleSelection) + when: ContextKeyExpr.and(ResourceContextKey.HasResource, WorkbenchListDoubleSelection) }); MenuRegistry.appendMenuItem(MenuId.OpenEditorsContext, { diff --git a/src/vs/workbench/parts/files/electron-browser/fileCommands.ts b/src/vs/workbench/parts/files/electron-browser/fileCommands.ts index 5da55c98057..6e4bf7992f5 100644 --- a/src/vs/workbench/parts/files/electron-browser/fileCommands.ts +++ b/src/vs/workbench/parts/files/electron-browser/fileCommands.ts @@ -265,9 +265,13 @@ KeybindingsRegistry.registerCommandAndKeybindingRule({ }, id: OPEN_TO_SIDE_COMMAND_ID, handler: (accessor, resource: URI) => { const editorService = accessor.get(IWorkbenchEditorService); + const editorGroupService = accessor.get(IEditorGroupService); const listService = accessor.get(IListService); + const fileService = accessor.get(IFileService); const tree = listService.lastFocusedList; const resources = getMultiSelectedResources(resource, listService, editorService); + const stacks = editorGroupService.getStacksModel(); + const activeGroup = stacks.activeGroup; // Remove highlight if (tree instanceof Tree) { @@ -276,14 +280,20 @@ KeybindingsRegistry.registerCommandAndKeybindingRule({ // Set side input if (resources.length) { - return editorService.openEditors(resources.map(resource => { - return { + return fileService.resolveFiles(resources.map(resource => ({ resource }))).then(resolved => { + const editors = resolved.filter(r => r.success && !r.stat.isDirectory).map(r => ({ input: { - resource, + resource: r.stat.resource, options: { preserveFocus: false } } - }; - }), true); + })); + + return editorService.openEditors(editors, true).then(() => { + if (activeGroup) { + editorGroupService.focusGroup(stacks.positionOfGroup(activeGroup) + 1); + } + }); + }); } return TPromise.as(true); @@ -346,10 +356,14 @@ CommandsRegistry.registerCommand({ const editorService = accessor.get(IWorkbenchEditorService); const resources = getMultiSelectedResources(resource, accessor.get(IListService), editorService); - return editorService.openEditor({ - leftResource: resources[0], - rightResource: resources[1] - }); + if (resources.length === 2) { + return editorService.openEditor({ + leftResource: resources[0], + rightResource: resources[1] + }); + } + + return TPromise.as(true); } }); @@ -404,7 +418,8 @@ const copyPathHandler = (accessor, resource: URI) => { const resources = getMultiSelectedResources(resource, accessor.get(IListService), accessor.get(IWorkbenchEditorService)); if (resources.length) { const clipboardService = accessor.get(IClipboardService); - const text = resources.map(r => r.scheme === 'file' ? labels.getPathLabel(r) : r.toString()).join('\n'); + const lineDelimiter = isWindows ? '\r\n' : '\n'; + const text = resources.map(r => r.scheme === 'file' ? labels.getPathLabel(r) : r.toString()).join(lineDelimiter); clipboardService.writeText(text); } else { const messageService = accessor.get(IMessageService); diff --git a/src/vs/workbench/parts/files/electron-browser/views/explorerView.ts b/src/vs/workbench/parts/files/electron-browser/views/explorerView.ts index d60b9e72bcb..3c8aa206404 100644 --- a/src/vs/workbench/parts/files/electron-browser/views/explorerView.ts +++ b/src/vs/workbench/parts/files/electron-browser/views/explorerView.ts @@ -215,7 +215,7 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView // Select file if input is inside workspace if (this.isVisible() && this.contextService.isInsideWorkspace(activeFile)) { - const selection = this.hasSelection(activeFile); + const selection = this.hasSingleSelection(activeFile); if (!selection) { this.select(activeFile).done(null, errors.onUnexpectedError); } @@ -779,7 +779,7 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView const setInputAndExpand = (input: FileStat | Model, statsToExpand: FileStat[]) => { // Make sure to expand all folders that where expanded in the previous session // Special case: we are switching to multi workspace view, thus expand all the roots (they might just be added) - if (input === this.model && statsToExpand.every(fs => !fs.isRoot)) { + if (input === this.model && statsToExpand.every(fs => fs && !fs.isRoot)) { statsToExpand = this.model.roots.concat(statsToExpand); } @@ -798,7 +798,11 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView return errorFileStat(targetsToResolve[index].resource, targetsToResolve[index].root); }); // Subsequent refresh: Merge stat into our local model and refresh tree - modelStats.forEach((modelStat, index) => FileStat.mergeLocalWithDisk(modelStat, this.model.roots[index])); + modelStats.forEach((modelStat, index) => { + if (index < this.model.roots.length) { + FileStat.mergeLocalWithDisk(modelStat, this.model.roots[index]); + } + }); const statsToExpand: FileStat[] = this.explorerViewer.getExpandedElements().concat(targetsToExpand.map(expand => this.model.findClosest(expand))); if (input === this.explorerViewer.getInput()) { @@ -817,7 +821,9 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView .then(result => FileStat.create(result, target.root, target.options.resolveTo), err => errorFileStat(target.resource, target.root)) .then(modelStat => { // Subsequent refresh: Merge stat into our local model and refresh tree - FileStat.mergeLocalWithDisk(modelStat, this.model.roots[index]); + if (index < this.model.roots.length) { + FileStat.mergeLocalWithDisk(modelStat, this.model.roots[index]); + } let toExpand: FileStat[] = this.explorerViewer.getExpandedElements().concat(targetsToExpand.map(target => this.model.findClosest(target))); if (input === this.explorerViewer.getInput()) { @@ -875,7 +881,7 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView } // If path already selected, just reveal and return - const selection = this.hasSelection(resource); + const selection = this.hasSingleSelection(resource); if (selection) { return reveal ? this.reveal(selection, 0.5) : TPromise.as(null); } @@ -908,16 +914,11 @@ export class ExplorerView extends TreeViewsViewletPanel implements IExplorerView }, e => { this.messageService.show(Severity.Error, e); }); } - private hasSelection(resource: URI): FileStat { + private hasSingleSelection(resource: URI): FileStat { const currentSelection: FileStat[] = this.explorerViewer.getSelection(); - - for (let i = 0; i < currentSelection.length; i++) { - if (currentSelection[i].resource.toString() === resource.toString()) { - return currentSelection[i]; - } - } - - return null; + return currentSelection.length === 1 && currentSelection[0].resource.toString() === resource.toString() + ? currentSelection[0] + : undefined; } private doSelect(fileStat: FileStat, reveal: boolean): TPromise { diff --git a/src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts b/src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts index 92fea9e8412..45eb47b14df 100644 --- a/src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts +++ b/src/vs/workbench/parts/files/electron-browser/views/openEditorsView.ts @@ -337,6 +337,7 @@ export class OpenEditorsView extends ViewsViewletPanel { if (this.model.activeGroup && this.model.activeGroup.activeEditor /* could be empty */) { const index = this.getIndex(this.model.activeGroup, this.model.activeGroup.activeEditor); this.list.setFocus([index]); + this.list.setSelection([index]); this.list.reveal(index); } } @@ -539,7 +540,7 @@ class OpenEditorRenderer implements IRenderer document.body.removeChild(dragImage), 0); - const dragged = this.getSelectedElements().filter(e => e instanceof OpenEditor); + const dragged = this.getSelectedElements().filter(e => e instanceof OpenEditor && !!e.getResource()); OpenEditorRenderer.DRAGGED_OPEN_EDITORS = dragged; if (editorTemplate.openEditor && editorTemplate.openEditor.editor) { diff --git a/src/vs/workbench/parts/logs/electron-browser/logs.contribution.ts b/src/vs/workbench/parts/logs/electron-browser/logs.contribution.ts index c17d0c7e669..b398c257ee6 100644 --- a/src/vs/workbench/parts/logs/electron-browser/logs.contribution.ts +++ b/src/vs/workbench/parts/logs/electron-browser/logs.contribution.ts @@ -19,6 +19,7 @@ import { IWorkbenchActionRegistry, Extensions as WorkbenchActionExtensions } fro import { SyncActionDescriptor } from 'vs/platform/actions/common/actions'; import { ShowLogsAction, OpenLogsFolderAction, SetLogLevelAction, OpenLogFileAction } from 'vs/workbench/parts/logs/electron-browser/logsActions'; + class LogOutputChannels extends Disposable implements IWorkbenchContribution { constructor( @@ -32,14 +33,14 @@ class LogOutputChannels extends Disposable implements IWorkbenchContribution { outputChannelRegistry.registerChannel(Constants.sharedLogChannelId, nls.localize('sharedLog', "Log (Shared)"), URI.file(join(this.environmentService.logsPath, `sharedprocess.log`))); outputChannelRegistry.registerChannel(Constants.rendererLogChannelId, nls.localize('rendererLog', "Log (Window)"), URI.file(join(this.environmentService.logsPath, `renderer${this.windowService.getCurrentWindowId()}.log`))); outputChannelRegistry.registerChannel(Constants.extHostLogChannelId, nls.localize('extensionsLog', "Log (Extension Host)"), URI.file(join(this.environmentService.logsPath, `extHost${this.windowService.getCurrentWindowId()}.log`))); + + const workbenchActionsRegistry = Registry.as(WorkbenchActionExtensions.WorkbenchActions); + const devCategory = nls.localize('developer', "Developer"); + workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(OpenLogsFolderAction, OpenLogsFolderAction.ID, OpenLogsFolderAction.LABEL), 'Developer: Open Log Folder', devCategory); + workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(SetLogLevelAction, SetLogLevelAction.ID, SetLogLevelAction.LABEL), 'Developer: Set Log Level', devCategory); + workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(ShowLogsAction, ShowLogsAction.ID, ShowLogsAction.LABEL), 'Developer: Show Logs...', devCategory); + workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(OpenLogFileAction, OpenLogFileAction.ID, OpenLogFileAction.LABEL), 'Developer: Open Log File...', devCategory); } } -Registry.as(WorkbenchExtensions.Workbench).registerWorkbenchContribution(LogOutputChannels, LifecyclePhase.Running); - -const workbenchActionsRegistry = Registry.as(WorkbenchActionExtensions.WorkbenchActions); -const devCategory = nls.localize('developer', "Developer"); -workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(ShowLogsAction, ShowLogsAction.ID, ShowLogsAction.LABEL), 'Developer: Show Logs...', devCategory); -workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(OpenLogFileAction, OpenLogFileAction.ID, OpenLogFileAction.LABEL), 'Developer: Open Log File...', devCategory); -workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(OpenLogsFolderAction, OpenLogsFolderAction.ID, OpenLogsFolderAction.LABEL), 'Developer: Open Log Folder', devCategory); -workbenchActionsRegistry.registerWorkbenchAction(new SyncActionDescriptor(SetLogLevelAction, SetLogLevelAction.ID, SetLogLevelAction.LABEL), 'Developer: Set Log Level', devCategory); \ No newline at end of file +Registry.as(WorkbenchExtensions.Workbench).registerWorkbenchContribution(LogOutputChannels, LifecyclePhase.Eventually); \ No newline at end of file diff --git a/src/vs/workbench/parts/logs/electron-browser/logsActions.ts b/src/vs/workbench/parts/logs/electron-browser/logsActions.ts index 3807db0519a..3e8c16aa6e4 100644 --- a/src/vs/workbench/parts/logs/electron-browser/logsActions.ts +++ b/src/vs/workbench/parts/logs/electron-browser/logsActions.ts @@ -15,6 +15,7 @@ import { IOutputService, COMMAND_OPEN_LOG_VIEWER } from 'vs/workbench/parts/outp import * as Constants from 'vs/workbench/parts/logs/common/logConstants'; import { ICommandService } from 'vs/platform/commands/common/commands'; import URI from 'vs/base/common/uri'; +import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; export class OpenLogsFolderAction extends Action { @@ -40,20 +41,21 @@ export class ShowLogsAction extends Action { constructor(id: string, label: string, @IQuickOpenService private quickOpenService: IQuickOpenService, - @IOutputService private outputService: IOutputService + @IOutputService private outputService: IOutputService, + @IWorkspaceContextService private contextService: IWorkspaceContextService ) { super(id, label); } run(): TPromise { const entries: IPickOpenEntry[] = [ - { id: Constants.mainLogChannelId, label: nls.localize('mainProcess', "Main") }, + { id: Constants.rendererLogChannelId, label: this.contextService.getWorkspace().name ? nls.localize('rendererProcess', "Window ({0})", this.contextService.getWorkspace().name) : nls.localize('emptyWindow', "Window") }, + { id: Constants.extHostLogChannelId, label: nls.localize('extensionHost', "Extension Host") }, { id: Constants.sharedLogChannelId, label: nls.localize('sharedProcess', "Shared") }, - { id: Constants.rendererLogChannelId, label: nls.localize('rendererProcess', "Window") }, - { id: Constants.extHostLogChannelId, label: nls.localize('extensionHost', "Extension Host") } + { id: Constants.mainLogChannelId, label: nls.localize('mainProcess', "Main") } ]; - return this.quickOpenService.pick(entries, { placeHolder: nls.localize('selectProcess', "Select process") }) + return this.quickOpenService.pick(entries, { placeHolder: nls.localize('selectProcess', "Select Log for Process") }) .then(entry => { if (entry) { return this.outputService.showChannel(entry.id); @@ -72,20 +74,21 @@ export class OpenLogFileAction extends Action { @IQuickOpenService private quickOpenService: IQuickOpenService, @IEnvironmentService private environmentService: IEnvironmentService, @ICommandService private commandService: ICommandService, - @IWindowService private windowService: IWindowService + @IWindowService private windowService: IWindowService, + @IWorkspaceContextService private contextService: IWorkspaceContextService ) { super(id, label); } run(): TPromise { const entries: IPickOpenEntry[] = [ - { id: URI.file(paths.join(this.environmentService.logsPath, `main.log`)).fsPath, label: nls.localize('mainProcess', "Main") }, + { id: URI.file(paths.join(this.environmentService.logsPath, `renderer${this.windowService.getCurrentWindowId()}.log`)).fsPath, label: this.contextService.getWorkspace().name ? nls.localize('rendererProcess', "Window ({0})", this.contextService.getWorkspace().name) : nls.localize('emptyWindow', "Window") }, + { id: URI.file(paths.join(this.environmentService.logsPath, `extHost${this.windowService.getCurrentWindowId()}.log`)).fsPath, label: nls.localize('extensionHost', "Extension Host") }, { id: URI.file(paths.join(this.environmentService.logsPath, `sharedprocess.log`)).fsPath, label: nls.localize('sharedProcess', "Shared") }, - { id: URI.file(paths.join(this.environmentService.logsPath, `renderer${this.windowService.getCurrentWindowId()}.log`)).fsPath, label: nls.localize('rendererProcess', "Window") }, - { id: URI.file(paths.join(this.environmentService.logsPath, `extHost${this.windowService.getCurrentWindowId()}.log`)).fsPath, label: nls.localize('extensionHost', "Extension Host") } + { id: URI.file(paths.join(this.environmentService.logsPath, `main.log`)).fsPath, label: nls.localize('mainProcess', "Main") } ]; - return this.quickOpenService.pick(entries, { placeHolder: nls.localize('selectProcess', "Select process") }) + return this.quickOpenService.pick(entries, { placeHolder: nls.localize('selectProcess', "Select Log for Process") }) .then(entry => { if (entry) { return this.commandService.executeCommand(COMMAND_OPEN_LOG_VIEWER, URI.file(entry.id)); diff --git a/src/vs/workbench/parts/output/electron-browser/outputServices.ts b/src/vs/workbench/parts/output/electron-browser/outputServices.ts index 3fdc76fcf9f..ed19a1dd716 100644 --- a/src/vs/workbench/parts/output/electron-browser/outputServices.ts +++ b/src/vs/workbench/parts/output/electron-browser/outputServices.ts @@ -40,7 +40,6 @@ import { binarySearch } from 'vs/base/common/arrays'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { Schemas } from 'vs/base/common/network'; import { ILifecycleService } from 'vs/platform/lifecycle/common/lifecycle'; -import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; const OUTPUT_ACTIVE_CHANNEL_KEY = 'output.activechannel'; @@ -130,7 +129,7 @@ abstract class AbstractFileOutputChannel extends Disposable { protected model: ITextModel; readonly file: URI; - private startOffset: number = 0; + protected startOffset: number = 0; protected endOffset: number = 0; constructor( @@ -164,38 +163,20 @@ abstract class AbstractFileOutputChannel extends Disposable { this.startOffset = this.endOffset; } - loadModel(): TPromise { - return this.fileService.resolveContent(this.file, { position: this.startOffset }) - .then(content => { - if (this.model) { - this.model.setValue(content.value); - } else { - this.model = this.createModel(content.value); - } - this.endOffset = this.startOffset + new Buffer(this.model.getValueLength()).byteLength; - return this.model; - }); - } - - resetModel(): TPromise { - this.startOffset = 0; - this.endOffset = 0; + protected createModel(content: string): ITextModel { if (this.model) { - return this.loadModel() as TPromise; + this.model.setValue(content); + } else { + this.model = this.modelService.createModel(content, this.modeService.getOrCreateMode(OUTPUT_MIME), this.modelUri); + this.onModelCreated(this.model); + const disposables: IDisposable[] = []; + disposables.push(this.model.onWillDispose(() => { + this.onModelWillDispose(this.model); + this.model = null; + dispose(disposables); + })); } - return TPromise.as(null); - } - - private createModel(content: string): ITextModel { - const model = this.modelService.createModel(content, this.modeService.getOrCreateMode(OUTPUT_MIME), this.modelUri); - this.onModelCreated(model); - const disposables: IDisposable[] = []; - disposables.push(model.onWillDispose(() => { - this.onModelWillDispose(model); - this.model = null; - dispose(disposables); - })); - return model; + return this.model; } appendToModel(content: string): void { @@ -235,14 +216,12 @@ class OutputChannelBackedByFile extends AbstractFileOutputChannel implements Out @IFileService fileService: IFileService, @IModelService modelService: IModelService, @IModeService modeService: IModeService, - @ILogService logService: ILogService, - @IConfigurationService configurationService: IConfigurationService + @ILogService logService: ILogService ) { super({ ...outputChannelIdentifier, file: URI.file(paths.join(outputDir, `${outputChannelIdentifier.id}.log`)) }, modelUri, fileService, modelService, modeService); // Use one rotating file to check for main file reset - const threshold = configurationService.getValue('output.threshold'); - this.outputWriter = new RotatingLogger(this.id, this.file.fsPath, threshold && typeof threshold === 'number' ? threshold : 1024 * 1024 * 30, 1); + this.outputWriter = new RotatingLogger(this.id, this.file.fsPath, 1024 * 1024 * 30, 1); this.outputWriter.clearFormatters(); this.rotatingFilePath = `${outputChannelIdentifier.id}.1.log`; this._register(watchOutputDirectory(paths.dirname(this.file.fsPath), logService, (eventType, file) => this.onFileChangedInOutputDirector(eventType, file))); @@ -256,7 +235,7 @@ class OutputChannelBackedByFile extends AbstractFileOutputChannel implements Out if (this.loadingFromFileInProgress) { this.appendedMessage += message; } else { - this.outputWriter.critical(message); + this.write(message); if (this.model) { this.appendedMessage += message; if (!this.modelUpdater.isScheduled()) { @@ -272,14 +251,45 @@ class OutputChannelBackedByFile extends AbstractFileOutputChannel implements Out } loadModel(): TPromise { - this.startLoadingFromFile(); - return super.loadModel() - .then(model => { - this.finishedLoadingFromFile(); - return model; + this.loadingFromFileInProgress = true; + if (this.modelUpdater.isScheduled()) { + this.modelUpdater.cancel(); + } + this.appendedMessage = ''; + return this.loadFile() + .then(content => { + if (this.endOffset !== this.startOffset + new Buffer(content).byteLength) { + // Queue content is not written into the file + // Flush it and load file again + this.flush(); + return this.loadFile(); + } + return content; + }) + .then(content => { + if (this.appendedMessage) { + this.write(this.appendedMessage); + this.appendedMessage = ''; + } + this.loadingFromFileInProgress = false; + return this.createModel(content); }); } + private resetModel(): TPromise { + this.startOffset = 0; + this.endOffset = 0; + if (this.model) { + return this.loadModel() as TPromise; + } + return TPromise.as(null); + } + + private loadFile(): TPromise { + return this.fileService.resolveContent(this.file, { position: this.startOffset }) + .then(content => this.appendedMessage ? content.value + this.appendedMessage : content.value); + } + protected updateModel(): void { if (this.model && this.appendedMessage) { this.appendToModel(this.appendedMessage); @@ -287,30 +297,20 @@ class OutputChannelBackedByFile extends AbstractFileOutputChannel implements Out } } - private startLoadingFromFile(): void { - this.loadingFromFileInProgress = true; - this.outputWriter.flush(); - if (this.modelUpdater.isScheduled()) { - this.modelUpdater.cancel(); - } - this.appendedMessage = ''; - } - - private finishedLoadingFromFile(): void { - if (this.appendedMessage) { - this.outputWriter.critical(this.appendedMessage); - this.appendToModel(this.appendedMessage); - this.appendedMessage = ''; - } - this.loadingFromFileInProgress = false; - } - private onFileChangedInOutputDirector(eventType: string, fileName: string): void { // Check if rotating file has changed. It changes only when the main file exceeds its limit. if (this.rotatingFilePath === fileName) { this.resettingDelayer.trigger(() => this.resetModel()); } } + + private write(content: string): void { + this.outputWriter.critical(content); + } + + private flush(): void { + this.outputWriter.flush(); + } } class OutputFileListener extends Disposable { @@ -371,6 +371,14 @@ class FileOutputChannel extends AbstractFileOutputChannel implements OutputChann this._register(toDisposable(() => this.fileHandler.unwatch())); } + loadModel(): TPromise { + return this.fileService.resolveContent(this.file, { position: this.startOffset }) + .then(content => { + this.endOffset = this.startOffset + new Buffer(content.value).byteLength; + return this.createModel(content.value); + }); + } + append(message: string): void { throw new Error('Not supported'); } diff --git a/src/vs/workbench/parts/performance/electron-browser/stats.ts b/src/vs/workbench/parts/performance/electron-browser/stats.ts index 397935d4179..252eab924dc 100644 --- a/src/vs/workbench/parts/performance/electron-browser/stats.ts +++ b/src/vs/workbench/parts/performance/electron-browser/stats.ts @@ -7,7 +7,6 @@ import { CommandsRegistry } from 'vs/platform/commands/common/commands'; import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; -import { IEnvironmentService } from 'vs/platform/environment/common/environment'; interface IRequire { @@ -110,12 +109,6 @@ function getStats(): Map { CommandsRegistry.registerCommand('dev.stats.loader', accessor => { const clipboard = accessor.get(IClipboardService); - const env = accessor.get(IEnvironmentService); - - if (!env.performance) { - console.warn('no loader stats, start with `--performance`'); - return; - } let value = `Name\tDuration\n`; for (let tick of getStats().get(LoaderEventType.BeginInvokeFactory)) { diff --git a/src/vs/workbench/parts/preferences/browser/keybindingsEditor.ts b/src/vs/workbench/parts/preferences/browser/keybindingsEditor.ts index 3fd4c0eac5e..930c3457765 100644 --- a/src/vs/workbench/parts/preferences/browser/keybindingsEditor.ts +++ b/src/vs/workbench/parts/preferences/browser/keybindingsEditor.ts @@ -26,7 +26,7 @@ import { SearchWidget } from 'vs/workbench/parts/preferences/browser/preferences import { DefineKeybindingWidget } from 'vs/workbench/parts/preferences/browser/keybindingWidgets'; import { IPreferencesService, IKeybindingsEditor, CONTEXT_KEYBINDING_FOCUS, CONTEXT_KEYBINDINGS_EDITOR, CONTEXT_KEYBINDINGS_SEARCH_FOCUS, KEYBINDINGS_EDITOR_COMMAND_REMOVE, KEYBINDINGS_EDITOR_COMMAND_COPY, - KEYBINDINGS_EDITOR_COMMAND_RESET, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND, KEYBINDINGS_EDITOR_COMMAND_DEFINE, KEYBINDINGS_EDITOR_COMMAND_SHOW_CONFLICTS + KEYBINDINGS_EDITOR_COMMAND_RESET, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND, KEYBINDINGS_EDITOR_COMMAND_DEFINE, KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR } from 'vs/workbench/parts/preferences/common/preferences'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; import { IKeybindingEditingService } from 'vs/workbench/services/keybinding/common/keybindingEditing'; @@ -259,7 +259,7 @@ export class KeybindingsEditor extends BaseEditor implements IKeybindingsEditor this.searchWidget.clear(); } - showConflicts(keybindingEntry: IKeybindingItemEntry): TPromise { + showSimilarKeybindings(keybindingEntry: IKeybindingItemEntry): TPromise { const value = `"${keybindingEntry.keybindingItem.keybinding.getAriaLabel()}"`; if (value !== this.searchWidget.getValue()) { this.searchWidget.setValue(value); @@ -517,10 +517,10 @@ export class KeybindingsEditor extends BaseEditor implements IKeybindingsEditor private createShowConflictsAction(keybindingItem: IKeybindingItemEntry): IAction { return { - label: localize('showConflictsLabel', "Show Conflicts"), + label: localize('showSameKeybindings', "Show Same Keybindings"), enabled: !!keybindingItem.keybindingItem.keybinding, - id: KEYBINDINGS_EDITOR_COMMAND_SHOW_CONFLICTS, - run: () => this.showConflicts(keybindingItem) + id: KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR, + run: () => this.showSimilarKeybindings(keybindingItem) }; } diff --git a/src/vs/workbench/parts/preferences/browser/keybindingsEditorContribution.ts b/src/vs/workbench/parts/preferences/browser/keybindingsEditorContribution.ts index 03d8525e13d..b1bf80c1496 100644 --- a/src/vs/workbench/parts/preferences/browser/keybindingsEditorContribution.ts +++ b/src/vs/workbench/parts/preferences/browser/keybindingsEditorContribution.ts @@ -362,7 +362,7 @@ class DefineKeybindingCommand extends EditorCommand { constructor() { super({ id: DefineKeybindingCommand.ID, - precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.languageId.isEqualTo('json')), + precondition: ContextKeyExpr.and(EditorContextKeys.writable, EditorContextKeys.languageId.isEqualTo('jsonc')), kbOpts: { kbExpr: EditorContextKeys.textFocus, primary: KeyChord(KeyMod.CtrlCmd | KeyCode.KEY_K, KeyMod.CtrlCmd | KeyCode.KEY_K) diff --git a/src/vs/workbench/parts/preferences/browser/preferencesEditor.ts b/src/vs/workbench/parts/preferences/browser/preferencesEditor.ts index be140e433e1..73bdf48cc59 100644 --- a/src/vs/workbench/parts/preferences/browser/preferencesEditor.ts +++ b/src/vs/workbench/parts/preferences/browser/preferencesEditor.ts @@ -6,6 +6,7 @@ import { TPromise } from 'vs/base/common/winjs.base'; import * as nls from 'vs/nls'; import URI from 'vs/base/common/uri'; +import * as strings from 'vs/base/common/strings'; import { onUnexpectedError, isPromiseCanceledError, getErrorMessage } from 'vs/base/common/errors'; import * as DOM from 'vs/base/browser/dom'; import { Delayer, ThrottledDelayer } from 'vs/base/common/async'; @@ -25,7 +26,7 @@ import { CodeEditor } from 'vs/editor/browser/codeEditor'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { IPreferencesService, ISettingsGroup, ISetting, IFilterResult, IPreferencesSearchService, - CONTEXT_SETTINGS_EDITOR, CONTEXT_SETTINGS_SEARCH_FOCUS, SETTINGS_EDITOR_COMMAND_SEARCH, SETTINGS_EDITOR_COMMAND_FOCUS_FILE, ISettingsEditorModel, SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, SETTINGS_EDITOR_COMMAND_FOCUS_NEXT_SETTING, SETTINGS_EDITOR_COMMAND_FOCUS_PREVIOUS_SETTING, IFilterMetadata, ISearchProvider, ISearchResult, SETTINGS_EDITOR_COMMAND_EDIT_FOCUSED_SETTING + CONTEXT_SETTINGS_EDITOR, CONTEXT_SETTINGS_SEARCH_FOCUS, SETTINGS_EDITOR_COMMAND_SEARCH, SETTINGS_EDITOR_COMMAND_FOCUS_FILE, ISettingsEditorModel, SETTINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS, SETTINGS_EDITOR_COMMAND_FOCUS_NEXT_SETTING, SETTINGS_EDITOR_COMMAND_FOCUS_PREVIOUS_SETTING, ISearchProvider, ISearchResult, SETTINGS_EDITOR_COMMAND_EDIT_FOCUSED_SETTING } from 'vs/workbench/parts/preferences/common/preferences'; import { SettingsEditorModel, DefaultSettingsEditorModel } from 'vs/workbench/parts/preferences/common/preferencesModels'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; @@ -113,6 +114,7 @@ export class PreferencesEditor extends BaseEditor { private preferencesRenderers: PreferencesRenderersController; private delayedFilterLogging: Delayer; + private localSearchDelayer: Delayer; private remoteSearchThrottle: ThrottledDelayer; private _lastReportedFilter: string; @@ -131,6 +133,7 @@ export class PreferencesEditor extends BaseEditor { this.defaultSettingsEditorContextKey = CONTEXT_SETTINGS_EDITOR.bindTo(this.contextKeyService); this.focusSettingsContextKey = CONTEXT_SETTINGS_SEARCH_FOCUS.bindTo(this.contextKeyService); this.delayedFilterLogging = new Delayer(1000); + this.localSearchDelayer = new Delayer(100); this.remoteSearchThrottle = new ThrottledDelayer(200); } @@ -247,25 +250,28 @@ export class PreferencesEditor extends BaseEditor { private onInputChanged(): void { const query = this.searchWidget.getValue().trim(); this.delayedFilterLogging.cancel(); - this.progressService.showWhile(TPromise.join([ - this.preferencesRenderers.localFilterPreferences(query), - this.triggerThrottledSearch(query) - ]), 250).then(() => { - const result = this.preferencesRenderers.lastFilterResult; - if (result) { - this.delayedFilterLogging.trigger(() => this.reportFilteringUsed( - query, - result.defaultSettingsGroupCounts, - result.metadata)); - } - }); + this.triggerSearch(query) + .then(() => { + const result = this.preferencesRenderers.lastFilterResult; + if (result) { + this.delayedFilterLogging.trigger(() => this.reportFilteringUsed( + query, + this.preferencesRenderers.lastFilterResult)); + } + }); } - private triggerThrottledSearch(query: string): TPromise { + private triggerSearch(query: string): TPromise { if (query) { - return this.remoteSearchThrottle.trigger(() => this.preferencesRenderers.remoteSearchPreferences(query)); + return TPromise.join([ + this.localSearchDelayer.trigger(() => this.preferencesRenderers.localFilterPreferences(query)), + this.remoteSearchThrottle.trigger(() => this.progressService.showWhile(this.preferencesRenderers.remoteSearchPreferences(query), 500)) + ]) as TPromise; } else { // When clearing the input, update immediately to clear it + this.localSearchDelayer.cancel(); + this.preferencesRenderers.localFilterPreferences(query); + this.remoteSearchThrottle.cancel(); return this.preferencesRenderers.remoteSearchPreferences(query); } @@ -276,7 +282,7 @@ export class PreferencesEditor extends BaseEditor { if (this.editorService.getActiveEditor() !== this) { this.focus(); } - const promise = this.input.isDirty() ? this.input.save() : TPromise.as(true); + const promise = this.input && this.input.isDirty() ? this.input.save() : TPromise.as(true); promise.done(value => { if (target === ConfigurationTarget.USER) { this.preferencesService.switchSettings(ConfigurationTarget.USER, this.preferencesService.userSettingsResource); @@ -305,8 +311,26 @@ export class PreferencesEditor extends BaseEditor { } } - private reportFilteringUsed(filter: string, counts: IStringDictionary, metadata?: IStringDictionary): void { + private _countById(settingsGroups: ISettingsGroup[]): IStringDictionary { + const result = {}; + + for (const group of settingsGroups) { + let i = 0; + for (const section of group.sections) { + i += section.settings.length; + } + + result[group.id] = i; + } + + return result; + } + + private reportFilteringUsed(filter: string, filterResult: IFilterResult): void { if (filter && filter !== this._lastReportedFilter) { + const metadata = filterResult && filterResult.metadata; + const counts = filterResult && this._countById(filterResult.filteredGroups); + let durations: any; if (metadata) { durations = Object.create(null); @@ -349,11 +373,6 @@ class SettingsNavigator extends ArrayNavigator { } } -interface IFilterOrSearchResult { - defaultSettingsGroupCounts: IStringDictionary; - metadata: IStringDictionary; -} - interface IPreferencesCount { target?: SettingsTarget; count: number; @@ -374,7 +393,7 @@ class PreferencesRenderersController extends Disposable { private _currentLocalSearchProvider: ISearchProvider; private _currentRemoteSearchProvider: ISearchProvider; private _lastQuery: string; - private _lastFilterResult: IFilterOrSearchResult; + private _lastFilterResult: IFilterResult; private _onDidFilterResultsCountChange: Emitter = this._register(new Emitter()); public onDidFilterResultsCountChange: Event = this._onDidFilterResultsCountChange.event; @@ -388,7 +407,7 @@ class PreferencesRenderersController extends Disposable { super(); } - get lastFilterResult(): IFilterOrSearchResult { + get lastFilterResult(): IFilterResult { return this._lastFilterResult; } @@ -407,7 +426,10 @@ class PreferencesRenderersController extends Disposable { this._defaultPreferencesRendererDisposables = dispose(this._defaultPreferencesRendererDisposables); if (this._defaultPreferencesRenderer) { - this._defaultPreferencesRenderer.onUpdatePreference(({ key, value, source }) => this._updatePreference(key, value, source, this._editablePreferencesRenderer), this, this._defaultPreferencesRendererDisposables); + this._defaultPreferencesRenderer.onUpdatePreference(({ key, value, source }) => { + this._editablePreferencesRenderer.updatePreference(key, value, source); + this._updatePreference(key, value, source); + }, this, this._defaultPreferencesRendererDisposables); this._defaultPreferencesRenderer.onFocusPreference(preference => this._focusPreference(preference, this._editablePreferencesRenderer), this, this._defaultPreferencesRendererDisposables); this._defaultPreferencesRenderer.onClearFocusPreference(preference => this._clearFocus(preference, this._editablePreferencesRenderer), this, this._defaultPreferencesRendererDisposables); } @@ -421,6 +443,8 @@ class PreferencesRenderersController extends Disposable { if (this._editablePreferencesRenderer) { (this._editablePreferencesRenderer.preferencesModel) .onDidChangeGroups(this._onEditableContentDidChange, this, this._editablePreferencesRendererDisposables); + + this._editablePreferencesRenderer.onUpdatePreference(({ key, value, source }) => this._updatePreference(key, value, source, true), this, this._defaultPreferencesRendererDisposables); } } } @@ -468,25 +492,21 @@ class PreferencesRenderersController extends Disposable { private filterOrSearchPreferences(query: string, searchProvider: ISearchProvider, groupId: string, groupLabel: string, groupOrder: number, editableContentOnly?: boolean): TPromise { this._lastQuery = query; - const filterPs = []; + const filterPs: TPromise[] = [this._filterOrSearchPreferences(query, this.editablePreferencesRenderer, searchProvider, groupId, groupLabel, groupOrder)]; if (!editableContentOnly) { filterPs.push( this._filterOrSearchPreferences(query, this.defaultPreferencesRenderer, searchProvider, groupId, groupLabel, groupOrder)); } - filterPs.push(this._filterOrSearchPreferences(query, this.editablePreferencesRenderer, searchProvider, groupId, groupLabel, groupOrder), - this.searchAllSettingsTargets(query, searchProvider, groupId, groupLabel, groupOrder)); + filterPs.push(this.searchAllSettingsTargets(query, searchProvider, groupId, groupLabel, groupOrder)); return TPromise.join(filterPs).then(results => { - const [defaultFilterResult, editableFilterResult] = results; + const [editableFilterResult, defaultFilterResult] = results; this.consolidateAndUpdate(defaultFilterResult, editableFilterResult); - const result = { - metadata: defaultFilterResult && defaultFilterResult.metadata, - defaultSettingsGroupCounts: defaultFilterResult && this._countById(defaultFilterResult.filteredGroups) - }; - - this._lastFilterResult = result; + if (defaultFilterResult) { + this._lastFilterResult = defaultFilterResult; + } }); } @@ -526,11 +546,15 @@ class PreferencesRenderersController extends Disposable { }); } - private async getPreferencesEditorModel(target: SettingsTarget): TPromise { + private async getPreferencesEditorModel(target: SettingsTarget): TPromise { const resource = target === ConfigurationTarget.USER ? this.preferencesService.userSettingsResource : target === ConfigurationTarget.WORKSPACE ? this.preferencesService.workspaceSettingsResource : target; + if (!resource) { + return null; + } + const targetKey = resource.toString(); if (!this._prefsModelsForSearch.has(targetKey)) { try { @@ -588,13 +612,14 @@ class PreferencesRenderersController extends Disposable { } else { /* __GDPR__ "defaultSettings.searchError" : { - "message": { "classification": "SystemMetaData", "purpose": "FeatureInsight" } + "message": { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "filter": { "classification": "SystemMetaData", "purpose": "FeatureInsight" } } */ const message = getErrorMessage(err).trim(); if (message) { // Empty message = any generic network error - this.telemetryService.publicLog('defaultSettings.searchError', { message }); + this.telemetryService.publicLog('defaultSettings.searchError', { message, filter }); } return null; } @@ -658,10 +683,58 @@ class PreferencesRenderersController extends Disposable { } } - private _updatePreference(key: string, value: any, source: ISetting, preferencesRenderer: IPreferencesRenderer): void { - if (preferencesRenderer) { - preferencesRenderer.updatePreference(key, value, source); + private _updatePreference(key: string, value: any, source: ISetting, fromEditableSettings?: boolean): void { + const data = { + userConfigurationKeys: [key] + }; + + if (this.lastFilterResult) { + data['query'] = this.lastFilterResult.query; + data['editableSide'] = !!fromEditableSettings; + + const nlpMetadata = this.lastFilterResult.metadata && this.lastFilterResult.metadata['nlpResult']; + if (nlpMetadata) { + const sortedKeys = Object.keys(nlpMetadata.scoredResults).sort((a, b) => nlpMetadata.scoredResults[b].score - nlpMetadata.scoredResults[a].score); + const suffix = '##' + key; + data['nlpIndex'] = arrays.firstIndex(sortedKeys, key => strings.endsWith(key, suffix)); + } + + const settingLocation = this._findSetting(this.lastFilterResult, key); + if (settingLocation) { + data['groupId'] = this.lastFilterResult.filteredGroups[settingLocation.groupIdx].id; + data['displayIdx'] = settingLocation.overallSettingIdx; + } } + + /* __GDPR__ + "defaultSettingsActions.copySetting" : { + "userConfigurationKeys" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "query" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "nlpIndex" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "groupId" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "displayIdx" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, + "editableSide" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } + } + */ + this.telemetryService.publicLog('defaultSettingsActions.copySetting', data); + } + + private _findSetting(filterResult: IFilterResult, key: string): { groupIdx: number, settingIdx: number, overallSettingIdx: number } { + let overallSettingIdx = 0; + + for (let groupIdx = 0; groupIdx < filterResult.filteredGroups.length; groupIdx++) { + const group = filterResult.filteredGroups[groupIdx]; + for (let settingIdx = 0; settingIdx < group.sections[0].settings.length; settingIdx++) { + const setting = group.sections[0].settings[settingIdx]; + if (key === setting.key) { + return { groupIdx, settingIdx, overallSettingIdx }; + } + + overallSettingIdx++; + } + } + + return null; } private _consolidateSettings(editableSettingsGroups: ISettingsGroup[], defaultSettingsGroups: ISettingsGroup[]): ISetting[] { @@ -681,21 +754,6 @@ class PreferencesRenderersController extends Disposable { return settings; } - private _countById(settingsGroups: ISettingsGroup[]): IStringDictionary { - const result = {}; - - for (const group of settingsGroups) { - let i = 0; - for (const section of group.sections) { - i += section.settings.length; - } - - result[group.id] = i; - } - - return result; - } - public dispose(): void { dispose(this._defaultPreferencesRendererDisposables); dispose(this._editablePreferencesRendererDisposables); @@ -1038,8 +1096,7 @@ abstract class AbstractSettingsEditorContribution extends Disposable implements private _hasAssociatedPreferencesModelChanged(associatedPreferencesModelUri: URI): TPromise { return this.preferencesRendererCreationPromise.then(preferencesRenderer => { - const associatedPreferencesModel = preferencesRenderer.getAssociatedPreferencesModel(); - return !(preferencesRenderer && associatedPreferencesModel && associatedPreferencesModel.uri.toString() === associatedPreferencesModelUri.toString()); + return !(preferencesRenderer && preferencesRenderer.getAssociatedPreferencesModel() && preferencesRenderer.getAssociatedPreferencesModel().uri.toString() === associatedPreferencesModelUri.toString()); }); } diff --git a/src/vs/workbench/parts/preferences/browser/preferencesRenderers.ts b/src/vs/workbench/parts/preferences/browser/preferencesRenderers.ts index f44c285dc31..85cb33132aa 100644 --- a/src/vs/workbench/parts/preferences/browser/preferencesRenderers.ts +++ b/src/vs/workbench/parts/preferences/browser/preferencesRenderers.ts @@ -71,11 +71,13 @@ export class UserSettingsRenderer extends Disposable implements IPreferencesRend private _onClearFocusPreference: Emitter = new Emitter(); public readonly onClearFocusPreference: Event = this._onClearFocusPreference.event; + private _onUpdatePreference: Emitter<{ key: string, value: any, source: IIndexedSetting }> = new Emitter<{ key: string, value: any, source: IIndexedSetting }>(); + public readonly onUpdatePreference: Event<{ key: string, value: any, source: IIndexedSetting }> = this._onUpdatePreference.event; + private filterResult: IFilterResult; constructor(protected editor: ICodeEditor, public readonly preferencesModel: SettingsEditorModel, @IPreferencesService protected preferencesService: IPreferencesService, - @ITelemetryService private telemetryService: ITelemetryService, @IConfigurationService private configurationService: IConfigurationService, @IInstantiationService protected instantiationService: IInstantiationService ) { @@ -83,7 +85,7 @@ export class UserSettingsRenderer extends Disposable implements IPreferencesRend this.settingHighlighter = this._register(instantiationService.createInstance(SettingHighlighter, editor, this._onFocusPreference, this._onClearFocusPreference)); this.highlightMatchesRenderer = this._register(instantiationService.createInstance(HighlightMatchesRenderer, editor)); this.editSettingActionRenderer = this._register(this.instantiationService.createInstance(EditSettingRenderer, this.editor, this.preferencesModel, this.settingHighlighter)); - this._register(this.editSettingActionRenderer.onUpdateSetting(({ key, value, source }) => this.updatePreference(key, value, source, true))); + this._register(this.editSettingActionRenderer.onUpdateSetting(({ key, value, source }) => this._updatePreference(key, value, source))); this._register(this.editor.getModel().onDidChangeContent(() => this.modelChangeDelayer.trigger(() => this.onModelChanged()))); this.createHeader(); @@ -109,28 +111,12 @@ export class UserSettingsRenderer extends Disposable implements IPreferencesRend } } - public updatePreference(key: string, value: any, source: IIndexedSetting, fromEditableSettings?: boolean): void { - const data = { - userConfigurationKeys: [key] - }; + private _updatePreference(key: string, value: any, source: IIndexedSetting): void { + this._onUpdatePreference.fire({ key, value, source }); + this.updatePreference(key, value, source); + } - if (this.filterResult) { - data['query'] = this.filterResult.query; - data['index'] = source.index; - data['groupId'] = source.groupId; - data['editableSide'] = !!fromEditableSettings; - } - - /* __GDPR__ - "defaultSettingsActions.copySetting" : { - "userConfigurationKeys" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - "query" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - "index" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - "groupId" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" }, - "editableSide" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } - } - */ - this.telemetryService.publicLog('defaultSettingsActions.copySetting', data); + public updatePreference(key: string, value: any, source: IIndexedSetting): void { const overrideIdentifier = source.overrideOf ? overrideIdentifierFromKey(source.overrideOf.key) : null; const resource = this.preferencesModel.uri; this.configurationService.updateValue(key, value, { overrideIdentifier, resource }, this.preferencesModel.configurationTarget) @@ -191,7 +177,8 @@ export class UserSettingsRenderer extends Disposable implements IPreferencesRend } public editPreference(setting: ISetting): boolean { - return this.editSettingActionRenderer.activateOnSetting(setting); + const editableSetting = this.getSetting(setting); + return editableSetting && this.editSettingActionRenderer.activateOnSetting(editableSetting); } } @@ -206,7 +193,7 @@ export class WorkspaceSettingsRenderer extends UserSettingsRenderer implements I @IConfigurationService configurationService: IConfigurationService, @IInstantiationService instantiationService: IInstantiationService ) { - super(editor, preferencesModel, preferencesService, telemetryService, configurationService, instantiationService); + super(editor, preferencesModel, preferencesService, configurationService, instantiationService); this.unsupportedSettingsRenderer = this._register(instantiationService.createInstance(UnsupportedSettingsRenderer, editor, preferencesModel)); this.workspaceConfigurationRenderer = this._register(instantiationService.createInstance(WorkspaceConfigurationRenderer, editor, preferencesModel)); } @@ -237,7 +224,7 @@ export class FolderSettingsRenderer extends UserSettingsRenderer implements IPre @IConfigurationService configurationService: IConfigurationService, @IInstantiationService instantiationService: IInstantiationService ) { - super(editor, preferencesModel, preferencesService, telemetryService, configurationService, instantiationService); + super(editor, preferencesModel, preferencesService, configurationService, instantiationService); this.unsupportedSettingsRenderer = this._register(instantiationService.createInstance(UnsupportedSettingsRenderer, editor, preferencesModel)); } diff --git a/src/vs/workbench/parts/preferences/common/preferences.ts b/src/vs/workbench/parts/preferences/common/preferences.ts index 75536fd7145..54ee6366022 100644 --- a/src/vs/workbench/parts/preferences/common/preferences.ts +++ b/src/vs/workbench/parts/preferences/common/preferences.ts @@ -171,7 +171,7 @@ export interface IKeybindingsEditor extends IEditor { resetKeybinding(keybindingEntry: IKeybindingItemEntry): TPromise; copyKeybinding(keybindingEntry: IKeybindingItemEntry): TPromise; copyKeybindingCommand(keybindingEntry: IKeybindingItemEntry): TPromise; - showConflicts(keybindingEntry: IKeybindingItemEntry): TPromise; + showSimilarKeybindings(keybindingEntry: IKeybindingItemEntry): TPromise; } export function getSettingsTargetName(target: ConfigurationTarget, resource: URI, workspaceContextService: IWorkspaceContextService): string { @@ -224,7 +224,7 @@ export const KEYBINDINGS_EDITOR_COMMAND_REMOVE = 'keybindings.editor.removeKeybi export const KEYBINDINGS_EDITOR_COMMAND_RESET = 'keybindings.editor.resetKeybinding'; export const KEYBINDINGS_EDITOR_COMMAND_COPY = 'keybindings.editor.copyKeybindingEntry'; export const KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND = 'keybindings.editor.copyCommandKeybindingEntry'; -export const KEYBINDINGS_EDITOR_COMMAND_SHOW_CONFLICTS = 'keybindings.editor.showConflicts'; +export const KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR = 'keybindings.editor.showConflicts'; export const KEYBINDINGS_EDITOR_COMMAND_FOCUS_KEYBINDINGS = 'keybindings.editor.focusKeybindings'; export const FOLDER_SETTINGS_PATH = join('.vscode', 'settings.json'); diff --git a/src/vs/workbench/parts/preferences/electron-browser/preferences.contribution.ts b/src/vs/workbench/parts/preferences/electron-browser/preferences.contribution.ts index 986c46a2e34..df56f2f288b 100644 --- a/src/vs/workbench/parts/preferences/electron-browser/preferences.contribution.ts +++ b/src/vs/workbench/parts/preferences/electron-browser/preferences.contribution.ts @@ -19,7 +19,7 @@ import { KeybindingsEditor, KeybindingsEditorInput } from 'vs/workbench/parts/pr import { OpenRawDefaultSettingsAction, OpenGlobalSettingsAction, OpenGlobalKeybindingsAction, OpenGlobalKeybindingsFileAction, OpenWorkspaceSettingsAction, OpenFolderSettingsAction, ConfigureLanguageBasedSettingsAction, OPEN_FOLDER_SETTINGS_COMMAND } from 'vs/workbench/parts/preferences/browser/preferencesActions'; import { IPreferencesService, IKeybindingsEditor, IPreferencesSearchService, CONTEXT_KEYBINDING_FOCUS, CONTEXT_KEYBINDINGS_EDITOR, CONTEXT_KEYBINDINGS_SEARCH_FOCUS, KEYBINDINGS_EDITOR_COMMAND_DEFINE, KEYBINDINGS_EDITOR_COMMAND_REMOVE, KEYBINDINGS_EDITOR_COMMAND_SEARCH, - KEYBINDINGS_EDITOR_COMMAND_COPY, KEYBINDINGS_EDITOR_COMMAND_RESET, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND, KEYBINDINGS_EDITOR_COMMAND_SHOW_CONFLICTS, KEYBINDINGS_EDITOR_COMMAND_FOCUS_KEYBINDINGS, KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS + KEYBINDINGS_EDITOR_COMMAND_COPY, KEYBINDINGS_EDITOR_COMMAND_RESET, KEYBINDINGS_EDITOR_COMMAND_COPY_COMMAND, KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR, KEYBINDINGS_EDITOR_COMMAND_FOCUS_KEYBINDINGS, KEYBINDINGS_EDITOR_COMMAND_CLEAR_SEARCH_RESULTS } from 'vs/workbench/parts/preferences/common/preferences'; import { PreferencesService } from 'vs/workbench/parts/preferences/browser/preferencesService'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; @@ -217,13 +217,13 @@ KeybindingsRegistry.registerCommandAndKeybindingRule({ }); KeybindingsRegistry.registerCommandAndKeybindingRule({ - id: KEYBINDINGS_EDITOR_COMMAND_SHOW_CONFLICTS, + id: KEYBINDINGS_EDITOR_COMMAND_SHOW_SIMILAR, weight: KeybindingsRegistry.WEIGHT.workbenchContrib(), when: ContextKeyExpr.and(CONTEXT_KEYBINDINGS_EDITOR, CONTEXT_KEYBINDING_FOCUS), primary: null, handler: (accessor, args: any) => { const editor = accessor.get(IWorkbenchEditorService).getActiveEditor() as IKeybindingsEditor; - editor.showConflicts(editor.activeKeybindingEntry); + editor.showSimilarKeybindings(editor.activeKeybindingEntry); } }); diff --git a/src/vs/workbench/parts/preferences/electron-browser/preferencesSearch.ts b/src/vs/workbench/parts/preferences/electron-browser/preferencesSearch.ts index 11a24572111..95dfdc1d9b6 100644 --- a/src/vs/workbench/parts/preferences/electron-browser/preferencesSearch.ts +++ b/src/vs/workbench/parts/preferences/electron-browser/preferencesSearch.ts @@ -48,10 +48,6 @@ export class PreferencesSearchService extends Disposable implements IPreferences } private get remoteSearchAllowed(): boolean { - if (this.environmentService.appQuality === 'stable') { - return false; - } - const workbenchSettings = this.configurationService.getValue().workbench.settings; if (!workbenchSettings.enableNaturalLanguageSearch) { return false; @@ -103,7 +99,7 @@ export class LocalSearchProvider implements ISearchProvider { let score = 1000; // Sort is not stable const settingMatcher = (setting: ISetting) => { - const matches = new SettingMatches(this._filter, setting, true, false, (filter, setting) => preferencesModel.findValueMatches(filter, setting)).matches; + const matches = new SettingMatches(this._filter, setting, true, true, (filter, setting) => preferencesModel.findValueMatches(filter, setting)).matches; return matches && matches.length ? { matches, @@ -304,15 +300,16 @@ class RemoteSearchProvider implements ISearchProvider { } private async prepareRequest(query: string, filterPage = 0): TPromise { + const verbatimQuery = query; query = escapeSpecialChars(query); const boost = 10; - const userQuery = `(${query})^${boost}`; + const boostedQuery = `(${query})^${boost}`; // Appending Fuzzy after each word. query = query.replace(/\ +/g, '~ ') + '~'; - const encodedQuery = encodeURIComponent(userQuery + ' || ' + query); - let url = `${this.options.endpoint.urlBase}?`; + const encodedQuery = encodeURIComponent(boostedQuery + ' || ' + query); + let url = `${this.options.endpoint.urlBase}`; if (this.options.endpoint.key) { url += `${API_VERSION}&${QUERY_TYPE}`; @@ -329,7 +326,8 @@ class RemoteSearchProvider implements ISearchProvider { const body = JSON.stringify({ query: encodedQuery, - filters: encodeURIComponent(filterStr) + filters: encodeURIComponent(filterStr), + rawQuery: encodeURIComponent(verbatimQuery) }); return { diff --git a/src/vs/workbench/parts/scm/electron-browser/scm.contribution.ts b/src/vs/workbench/parts/scm/electron-browser/scm.contribution.ts index c8079172f45..b451d5f00d4 100644 --- a/src/vs/workbench/parts/scm/electron-browser/scm.contribution.ts +++ b/src/vs/workbench/parts/scm/electron-browser/scm.contribution.ts @@ -79,12 +79,6 @@ Registry.as(ConfigurationExtensions.Configuration).regis enum: ['all', 'gutter', 'overview', 'none'], default: 'all', description: localize('diffDecorations', "Controls diff decorations in the editor.") - }, - 'scm.inputCounter': { - type: 'string', - enum: ['always', 'warn', 'off'], - default: 'warn', - description: localize('inputCounter', "Controls when to display the input counter.") } } }); \ No newline at end of file diff --git a/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts b/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts index 9cfcc4ed51b..6b3199a8177 100644 --- a/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts +++ b/src/vs/workbench/parts/scm/electron-browser/scmViewlet.ts @@ -22,7 +22,7 @@ import { IDelegate, IRenderer, IListContextMenuEvent, IListEvent } from 'vs/base import { VIEWLET_ID } from 'vs/workbench/parts/scm/common/scm'; import { FileLabel } from 'vs/workbench/browser/labels'; import { CountBadge } from 'vs/base/browser/ui/countBadge/countBadge'; -import { ISCMService, ISCMRepository, ISCMResourceGroup, ISCMResource } from 'vs/workbench/services/scm/common/scm'; +import { ISCMService, ISCMRepository, ISCMResourceGroup, ISCMResource, InputValidationType } from 'vs/workbench/services/scm/common/scm'; import { IEditorGroupService } from 'vs/workbench/services/group/common/groupService'; import { IWorkbenchEditorService } from 'vs/workbench/services/editor/common/editorService'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; @@ -33,19 +33,18 @@ import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { IMessageService } from 'vs/platform/message/common/message'; import { MenuItemAction, IMenuService, MenuId } from 'vs/platform/actions/common/actions'; import { IAction, Action, IActionItem, ActionRunner } from 'vs/base/common/actions'; -import { MenuItemActionItem, fillInActions } from 'vs/platform/actions/browser/menuItemActionItem'; +import { fillInActions, ContextAwareMenuItemActionItem } from 'vs/platform/actions/browser/menuItemActionItem'; import { SCMMenus } from './scmMenus'; import { ActionBar, IActionItemProvider, Separator, ActionItem } from 'vs/base/browser/ui/actionbar/actionbar'; import { IThemeService, LIGHT } from 'vs/platform/theme/common/themeService'; import { isSCMResource } from './scmUtil'; import { attachBadgeStyler, attachInputBoxStyler } from 'vs/platform/theme/common/styler'; -import Severity from 'vs/base/common/severity'; import { IExtensionService } from 'vs/platform/extensions/common/extensions'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { IStorageService } from 'vs/platform/storage/common/storage'; import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet'; import { IExtensionsViewlet, VIEWLET_ID as EXTENSIONS_VIEWLET_ID } from 'vs/workbench/parts/extensions/common/extensions'; -import { IMessage, InputBox, MessageType } from 'vs/base/browser/ui/inputbox/inputBox'; +import { InputBox, MessageType } from 'vs/base/browser/ui/inputbox/inputBox'; import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { KeyMod, KeyCode } from 'vs/base/common/keyCodes'; import { Command } from 'vs/editor/common/modes'; @@ -57,21 +56,7 @@ import { ISpliceable, ISequence, ISplice } from 'vs/base/common/sequence'; import { firstIndex } from 'vs/base/common/arrays'; import { WorkbenchList } from 'vs/platform/list/browser/listService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; - -// TODO@Joao -// Need to subclass MenuItemActionItem in order to respect -// the action context coming from any action bar, without breaking -// existing users -class SCMMenuItemActionItem extends MenuItemActionItem { - - onClick(event: MouseEvent): void { - event.preventDefault(); - event.stopPropagation(); - - this.actionRunner.run(this._commandAction, this._context) - .done(undefined, err => this._messageService.show(Severity.Error, err)); - } -} +import { ThrottledDelayer } from 'vs/base/common/async'; export interface ISpliceEvent { index: number; @@ -684,6 +669,14 @@ class ResourceGroupSplicer { } } +function convertValidationType(type: InputValidationType): MessageType { + switch (type) { + case InputValidationType.Information: return MessageType.INFO; + case InputValidationType.Warning: return MessageType.WARNING; + case InputValidationType.Error: return MessageType.ERROR; + } +} + export class RepositoryPanel extends ViewletPanel { private cachedHeight: number | undefined = undefined; @@ -764,62 +757,31 @@ export class RepositoryPanel extends ViewletPanel { this.inputBox.setPlaceHolder(placeholder); }; - const validation = (text: string): IMessage => { - const setting = this.configurationService.getValue<'always' | 'warn' | 'off'>('scm.inputCounter'); + const validationDelayer = new ThrottledDelayer(200); - if (setting === 'off') { - return null; - } + const validate = () => { + validationDelayer.trigger(async (): TPromise => { + const result = await this.repository.input.validateInput(this.inputBox.value, this.inputBox.inputElement.selectionStart); - let position = this.inputBox.inputElement.selectionStart; - let start = 0, end; - let match: RegExpExecArray; - const regex = /\r?\n/g; - - while ((match = regex.exec(text)) && position > match.index) { - start = match.index + match[0].length; - } - - end = match ? match.index : text.length; - - const line = text.substring(start, end); - - const lineWarningLength = this.repository.input.lineWarningLength; - - if (lineWarningLength === undefined) { - return { - content: localize('commitMessageInfo', "{0} characters in current line", text.length), - type: MessageType.INFO - }; - } - - if (line.length <= lineWarningLength) { - if (setting !== 'always') { - return null; + if (!result) { + this.inputBox.inputElement.removeAttribute('aria-invalid'); + this.inputBox.hideMessage(); + } else { + this.inputBox.inputElement.setAttribute('aria-invalid', 'true'); + this.inputBox.showMessage({ content: result.message, type: convertValidationType(result.type) }); } - - return { - content: localize('commitMessageCountdown', "{0} characters left in current line", lineWarningLength - line.length), - type: MessageType.INFO - }; - } else { - return { - content: localize('commitMessageWarning', "{0} characters over {1} in current line", line.length - lineWarningLength, lineWarningLength), - type: MessageType.WARNING - }; - } + }); }; - this.inputBox = new InputBox(this.inputBoxContainer, this.contextViewService, { - flexibleHeight: true, - validationOptions: { validation: validation } - }); + this.inputBox = new InputBox(this.inputBoxContainer, this.contextViewService, { flexibleHeight: true }); this.disposables.push(attachInputBoxStyler(this.inputBox, this.themeService)); this.disposables.push(this.inputBox); + this.inputBox.onDidChange(validate, null, this.disposables); + const onKeyUp = domEvent(this.inputBox.inputElement, 'keyup'); const onMouseUp = domEvent(this.inputBox.inputElement, 'mouseup'); - anyEvent(onKeyUp, onMouseUp)(() => this.inputBox.validate(), null, this.disposables); + anyEvent(onKeyUp, onMouseUp)(() => validate(), null, this.disposables); this.inputBox.value = this.repository.input.value; this.inputBox.onDidChange(value => this.repository.input.value = value, null, this.disposables); @@ -920,7 +882,7 @@ export class RepositoryPanel extends ViewletPanel { return undefined; } - return new SCMMenuItemActionItem(action, this.keybindingService, this.messageService, this.contextMenuService); + return new ContextAwareMenuItemActionItem(action, this.keybindingService, this.messageService, this.contextMenuService); } getActionsContext(): any { @@ -1012,6 +974,7 @@ export class SCMViewlet extends PanelViewlet implements IViewModel { private el: HTMLElement; private menus: SCMMenus; private mainPanel: MainPanel | null = null; + private cachedMainPanelHeight: number | undefined; private mainPanelDisposable: IDisposable = EmptyDisposable; private _repositories: ISCMRepository[] = []; private repositoryPanels: RepositoryPanel[] = []; @@ -1129,6 +1092,11 @@ export class SCMViewlet extends PanelViewlet implements IViewModel { setVisible(visible: boolean): TPromise { const result = super.setVisible(visible); + + if (!visible) { + this.cachedMainPanelHeight = this.getPanelSize(this.mainPanel); + } + this._onDidChangeVisibility.fire(visible); return result; } @@ -1185,7 +1153,7 @@ export class SCMViewlet extends PanelViewlet implements IViewModel { return undefined; } - return new SCMMenuItemActionItem(action, this.keybindingService, this.messageService, this.contextMenuService); + return new ContextAwareMenuItemActionItem(action, this.keybindingService, this.messageService, this.contextMenuService); } layout(dimension: Dimension): void { @@ -1217,6 +1185,12 @@ export class SCMViewlet extends PanelViewlet implements IViewModel { // Remove unselected panels panelsToRemove.forEach(panel => this.removePanel(panel)); + // Restore main panel height + if (this.isVisible() && typeof this.cachedMainPanelHeight === 'number') { + this.resizePanel(this.mainPanel, this.cachedMainPanelHeight); + this.cachedMainPanelHeight = undefined; + } + // Resize all panels equally const height = typeof this.height === 'number' ? this.height : 1000; const mainPanelHeight = this.getPanelSize(this.mainPanel); diff --git a/src/vs/workbench/parts/search/browser/searchWidget.ts b/src/vs/workbench/parts/search/browser/searchWidget.ts index 54a4fb2816c..efecc40aa67 100644 --- a/src/vs/workbench/parts/search/browser/searchWidget.ts +++ b/src/vs/workbench/parts/search/browser/searchWidget.ts @@ -31,7 +31,7 @@ import { SIDE_BAR_BACKGROUND } from 'vs/workbench/common/theme'; import { CONTEXT_FIND_WIDGET_NOT_VISIBLE } from 'vs/editor/contrib/find/findModel'; import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { IEditorOptions } from 'vs/editor/common/config/editorOptions'; +import { ISearchConfigurationProperties } from '../../../../platform/search/common/search'; export interface ISearchWidgetOptions { value?: string; @@ -253,10 +253,11 @@ export class SearchWidget extends Widget { this._register(this.searchInputFocusTracker.onDidFocus(() => { this.searchInputBoxFocused.set(true); - const useGlobalFindBuffer = this.configurationService.getValue('editor').find.globalFindClipboard; + const useGlobalFindBuffer = this.configurationService.getValue('search').globalFindClipboard; if (!this.ignoreGlobalFindBufferOnNextFocus && useGlobalFindBuffer) { const globalBufferText = this.clipboardServce.readFindText(); if (this.previousGlobalFindBufferValue !== globalBufferText) { + this.searchHistory.add(this.searchInput.getValue()); this.searchInput.setValue(globalBufferText); this.searchInput.select(); } @@ -379,8 +380,12 @@ export class SearchWidget extends Widget { private submitSearch(refresh: boolean = true): void { const value = this.searchInput.getValue(); + const useGlobalFindBuffer = this.configurationService.getValue('search').globalFindClipboard; if (value) { - this.clipboardServce.writeFindText(value); + if (useGlobalFindBuffer) { + this.clipboardServce.writeFindText(value); + } + this._onSearchSubmit.fire(refresh); } } diff --git a/src/vs/workbench/parts/search/electron-browser/search.contribution.ts b/src/vs/workbench/parts/search/electron-browser/search.contribution.ts index 8e6b0fe4bfe..6bbbe979990 100644 --- a/src/vs/workbench/parts/search/electron-browser/search.contribution.ts +++ b/src/vs/workbench/parts/search/electron-browser/search.contribution.ts @@ -14,6 +14,7 @@ import nls = require('vs/nls'); import { TPromise } from 'vs/base/common/winjs.base'; import { Action } from 'vs/base/common/actions'; import * as objects from 'vs/base/common/objects'; +import * as platform from 'vs/base/common/platform'; import { ExplorerFolderContext, ExplorerRootContext } from 'vs/workbench/parts/files/common/files'; import { SyncActionDescriptor, MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; import { IWorkbenchActionRegistry, Extensions as ActionExtensions } from 'vs/workbench/common/actions'; @@ -428,6 +429,12 @@ configurationRegistry.registerConfiguration({ 'type': 'boolean', 'description': nls.localize('search.smartCase', "Searches case-insensitively if the pattern is all lowercase, otherwise, searches case-sensitively"), 'default': false + }, + 'search.globalFindClipboard': { + 'type': 'boolean', + 'default': false, + 'description': nls.localize('search.globalFindClipboard', "Controls if the Search Viewlet should read or modify the shared find clipboard on macOS"), + 'included': platform.isMacintosh } } }); diff --git a/src/vs/workbench/parts/snippets/electron-browser/configureSnippets.ts b/src/vs/workbench/parts/snippets/electron-browser/configureSnippets.ts index 61b1ee57339..46cacc7d9aa 100644 --- a/src/vs/workbench/parts/snippets/electron-browser/configureSnippets.ts +++ b/src/vs/workbench/parts/snippets/electron-browser/configureSnippets.ts @@ -130,9 +130,10 @@ async function createGlobalSnippetFile(envService: IEnvironmentService, windowSe } await writeFile(path, [ '{', - '\t// Each snippet is defined under a snippet name and has a scope, prefix, body and ', - '\t// description. The scope defines in watch languages the snippet is applicable. The prefix is what is ', - '\t// used to trigger the snippet and the body will be expanded and inserted.Possible variables are: ', + '\t// Place your global snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and ', + '\t// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope ', + '\t// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is ', + '\t// used to trigger the snippet and the body will be expanded and inserted. Possible variables are: ', '\t// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. ', '\t// Placeholders with the same ids are connected.', '\t// Example:', diff --git a/src/vs/workbench/parts/snippets/electron-browser/snippetsFile.ts b/src/vs/workbench/parts/snippets/electron-browser/snippetsFile.ts index 88dee69e79a..909e624f6cf 100644 --- a/src/vs/workbench/parts/snippets/electron-browser/snippetsFile.ts +++ b/src/vs/workbench/parts/snippets/electron-browser/snippetsFile.ts @@ -232,18 +232,27 @@ export class SnippetFile { if (this.defaultScopes) { scopes = this.defaultScopes; } else if (typeof snippet.scope === 'string') { - scopes = snippet.scope.split(',').filter(s => !isFalsyOrWhitespace(s)); + scopes = snippet.scope.split(',').map(s => s.trim()).filter(s => !isFalsyOrWhitespace(s)); } else { scopes = []; } + let source: string; + if (this._extension) { + source = this._extension.displayName || this._extension.name; + } else if (this.isGlobalSnippets) { + source = localize('source.snippetGlobal', "Global User Snippet"); + } else { + source = localize('source.snippet', "User Snippet"); + } + bucket.push(new Snippet( scopes, name, prefix, description, body, - this._extension ? (this._extension.displayName || this._extension.name) : localize('source.snippet', "User Snippet"), + source, this._extension !== void 0 )); } diff --git a/src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts b/src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts index 3d28a54b1d4..00b48690743 100644 --- a/src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts +++ b/src/vs/workbench/parts/snippets/electron-browser/snippetsService.ts @@ -167,7 +167,7 @@ class SnippetsService implements ISnippetsService { this._files.get(contribution.path).defaultScopes.push(contribution.language); } else { - const file = new SnippetFile(contribution.path, [contribution.language], extension.description); + const file = new SnippetFile(contribution.path, contribution.language ? [contribution.language] : undefined, extension.description); this._files.set(file.filepath, file); if (this._environmentService.isExtensionDevelopment) { diff --git a/src/vs/workbench/parts/stats/node/workspaceStats.ts b/src/vs/workbench/parts/stats/node/workspaceStats.ts index 6ea817f0a70..02d88e1cdc5 100644 --- a/src/vs/workbench/parts/stats/node/workspaceStats.ts +++ b/src/vs/workbench/parts/stats/node/workspaceStats.ts @@ -15,6 +15,7 @@ import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/ import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { IWindowConfiguration, IWindowService } from 'vs/platform/windows/common/windows'; import { IWorkbenchContribution } from 'vs/workbench/common/contributions'; +import { endsWith } from 'vs/base/common/strings'; const SshProtocolMatcher = /^([^@:]+@)?([^:]+):/; const SshUrlMatcher = /^([^@:]+@)?([^:]+):(.+)$/; @@ -89,24 +90,27 @@ function stripPort(authority: string): string { return match ? match[2] : null; } -function normalizeRemote(host: string, path: string): string { +function normalizeRemote(host: string, path: string, stripEndingDotGit: boolean): string { if (host && path) { + if (stripEndingDotGit && endsWith(path, '.git')) { + path = path.substr(0, path.length - 4); + } return (path.indexOf('/') === 0) ? `${host}${path}` : `${host}/${path}`; } return null; } -function extractRemote(url: string): string { +function extractRemote(url: string, stripEndingDotGit: boolean): string { if (url.indexOf('://') === -1) { const match = url.match(SshUrlMatcher); if (match) { - return normalizeRemote(match[2], match[3]); + return normalizeRemote(match[2], match[3], stripEndingDotGit); } } try { const uri = URI.parse(url); if (uri.authority) { - return normalizeRemote(stripPort(uri.authority), uri.path); + return normalizeRemote(stripPort(uri.authority), uri.path, stripEndingDotGit); } } catch (e) { // ignore invalid URIs @@ -114,11 +118,11 @@ function extractRemote(url: string): string { return null; } -export function getRemotes(text: string): string[] { +export function getRemotes(text: string, stripEndingDotGit: boolean = false): string[] { const remotes: string[] = []; let match: RegExpExecArray; while (match = RemoteMatcher.exec(text)) { - const remote = extractRemote(match[1]); + const remote = extractRemote(match[1], stripEndingDotGit); if (remote) { remotes.push(remote); } @@ -126,12 +130,21 @@ export function getRemotes(text: string): string[] { return remotes; } -export function getHashedRemotes(text: string): string[] { - return getRemotes(text).map(r => { +export function getHashedRemotesFromConfig(text: string, stripEndingDotGit: boolean = false): string[] { + return getRemotes(text, stripEndingDotGit).map(r => { return crypto.createHash('sha1').update(r).digest('hex'); }); } +export function getHashedRemotesFromUri(workspaceUri: URI, fileService: IFileService, stripEndingDotGit: boolean = false): TPromise { + let path = workspaceUri.path; + let uri = workspaceUri.with({ path: `${path !== '/' ? path : ''}/.git/config` }); + return fileService.resolveContent(uri, { acceptTextOnly: true }).then( + content => getHashedRemotesFromConfig(content.value, stripEndingDotGit), + err => [] // ignore missing or binary file + ); +} + export class WorkspaceStats implements IWorkbenchContribution { constructor( @IFileService private fileService: IFileService, @@ -329,18 +342,13 @@ export class WorkspaceStats implements IWorkbenchContribution { private reportRemotes(workspaceUris: URI[]): void { TPromise.join(workspaceUris.map(workspaceUri => { - let path = workspaceUri.path; - let uri = workspaceUri.with({ path: `${path !== '/' ? path : ''}/.git/config` }); - return this.fileService.resolveContent(uri, { acceptTextOnly: true }).then( - content => getHashedRemotes(content.value), - err => [] // ignore missing or binary file - ); + return getHashedRemotesFromUri(workspaceUri, this.fileService, true); })).then(hashedRemotes => { /* __GDPR__ - "workspace.hashedRemotes" : { - "remotes" : { "classification": "CustomerContent", "purpose": "FeatureInsight" } - } - */ + "workspace.hashedRemotes" : { + "remotes" : { "classification": "CustomerContent", "purpose": "FeatureInsight" } + } + */ this.telemetryService.publicLog('workspace.hashedRemotes', { remotes: hashedRemotes }); }, onUnexpectedError); } diff --git a/src/vs/workbench/parts/stats/test/workspaceStats.test.ts b/src/vs/workbench/parts/stats/test/workspaceStats.test.ts index 3c2b03c1434..af37dbf7eb0 100644 --- a/src/vs/workbench/parts/stats/test/workspaceStats.test.ts +++ b/src/vs/workbench/parts/stats/test/workspaceStats.test.ts @@ -7,7 +7,7 @@ import * as assert from 'assert'; import * as crypto from 'crypto'; -import { getDomainsOfRemotes, getRemotes, getHashedRemotes } from 'vs/workbench/parts/stats/node/workspaceStats'; +import { getDomainsOfRemotes, getRemotes, getHashedRemotesFromConfig } from 'vs/workbench/parts/stats/node/workspaceStats'; function hash(value: string): string { return crypto.createHash('sha1').update(value.toString()).digest('hex'); @@ -67,16 +67,48 @@ suite('Telemetry - WorkspaceStats', () => { assert.deepStrictEqual(getRemotes(remote('https://username:password@github3.com/username/repository.git')), ['github3.com/username/repository.git']); assert.deepStrictEqual(getRemotes(remote('https://username:password@example2.com:1234/username/repository.git')), ['example2.com/username/repository.git']); assert.deepStrictEqual(getRemotes(remote('https://example3.com:1234/username/repository.git')), ['example3.com/username/repository.git']); + + // Strip .git + assert.deepStrictEqual(getRemotes(remote('https://github.com/Microsoft/vscode.git'), true), ['github.com/Microsoft/vscode']); + assert.deepStrictEqual(getRemotes(remote('https://git.example.com/gitproject.git'), true), ['git.example.com/gitproject']); + assert.deepStrictEqual(getRemotes(remote('https://username@github2.com/username/repository.git'), true), ['github2.com/username/repository']); + assert.deepStrictEqual(getRemotes(remote('https://username:password@github3.com/username/repository.git'), true), ['github3.com/username/repository']); + assert.deepStrictEqual(getRemotes(remote('https://username:password@example2.com:1234/username/repository.git'), true), ['example2.com/username/repository']); + assert.deepStrictEqual(getRemotes(remote('https://example3.com:1234/username/repository.git'), true), ['example3.com/username/repository']); + + // Compare Striped .git with no .git + assert.deepStrictEqual(getRemotes(remote('https://github.com/Microsoft/vscode.git'), true), getRemotes(remote('https://github.com/Microsoft/vscode'))); + assert.deepStrictEqual(getRemotes(remote('https://git.example.com/gitproject.git'), true), getRemotes(remote('https://git.example.com/gitproject'))); + assert.deepStrictEqual(getRemotes(remote('https://username@github2.com/username/repository.git'), true), getRemotes(remote('https://username@github2.com/username/repository'))); + assert.deepStrictEqual(getRemotes(remote('https://username:password@github3.com/username/repository.git'), true), getRemotes(remote('https://username:password@github3.com/username/repository'))); + assert.deepStrictEqual(getRemotes(remote('https://username:password@example2.com:1234/username/repository.git'), true), getRemotes(remote('https://username:password@example2.com:1234/username/repository'))); + assert.deepStrictEqual(getRemotes(remote('https://example3.com:1234/username/repository.git'), true), getRemotes(remote('https://example3.com:1234/username/repository'))); }); test('SSH remotes to be hashed', function () { assert.deepStrictEqual(getRemotes(remote('ssh://user@git.server.org/project.git')), ['git.server.org/project.git']); + + // Strip .git + assert.deepStrictEqual(getRemotes(remote('ssh://user@git.server.org/project.git'), true), ['git.server.org/project']); + + // Compare Striped .git with no .git + assert.deepStrictEqual(getRemotes(remote('ssh://user@git.server.org/project.git'), true), getRemotes(remote('ssh://user@git.server.org/project'))); }); test('SCP-like remotes to be hashed', function () { assert.deepStrictEqual(getRemotes(remote('git@github.com:Microsoft/vscode.git')), ['github.com/Microsoft/vscode.git']); assert.deepStrictEqual(getRemotes(remote('user@git.server.org:project.git')), ['git.server.org/project.git']); assert.deepStrictEqual(getRemotes(remote('git.server2.org:project.git')), ['git.server2.org/project.git']); + + // Strip .git + assert.deepStrictEqual(getRemotes(remote('git@github.com:Microsoft/vscode.git'), true), ['github.com/Microsoft/vscode']); + assert.deepStrictEqual(getRemotes(remote('user@git.server.org:project.git'), true), ['git.server.org/project']); + assert.deepStrictEqual(getRemotes(remote('git.server2.org:project.git'), true), ['git.server2.org/project']); + + // Compare Striped .git with no .git + assert.deepStrictEqual(getRemotes(remote('git@github.com:Microsoft/vscode.git'), true), getRemotes(remote('git@github.com:Microsoft/vscode'))); + assert.deepStrictEqual(getRemotes(remote('user@git.server.org:project.git'), true), getRemotes(remote('user@git.server.org:project'))); + assert.deepStrictEqual(getRemotes(remote('git.server2.org:project.git'), true), getRemotes(remote('git.server2.org:project'))); }); test('Local remotes to be hashed', function () { @@ -87,18 +119,44 @@ suite('Telemetry - WorkspaceStats', () => { test('Multiple remotes to be hashed', function () { const config = ['https://github.com/Microsoft/vscode.git', 'https://git.example.com/gitproject.git'].map(remote).join(' '); assert.deepStrictEqual(getRemotes(config), ['github.com/Microsoft/vscode.git', 'git.example.com/gitproject.git']); + + // Strip .git + assert.deepStrictEqual(getRemotes(config, true), ['github.com/Microsoft/vscode', 'git.example.com/gitproject']); + + // Compare Striped .git with no .git + const noDotGitConfig = ['https://github.com/Microsoft/vscode', 'https://git.example.com/gitproject'].map(remote).join(' '); + assert.deepStrictEqual(getRemotes(config, true), getRemotes(noDotGitConfig)); }); test('Single remote hashed', function () { - assert.deepStrictEqual(getHashedRemotes(remote('https://username:password@github3.com/username/repository.git')), [hash('github3.com/username/repository.git')]); - assert.deepStrictEqual(getHashedRemotes(remote('ssh://user@git.server.org/project.git')), [hash('git.server.org/project.git')]); - assert.deepStrictEqual(getHashedRemotes(remote('user@git.server.org:project.git')), [hash('git.server.org/project.git')]); - assert.deepStrictEqual(getHashedRemotes(remote('/opt/git/project.git')), []); + assert.deepStrictEqual(getHashedRemotesFromConfig(remote('https://username:password@github3.com/username/repository.git')), [hash('github3.com/username/repository.git')]); + assert.deepStrictEqual(getHashedRemotesFromConfig(remote('ssh://user@git.server.org/project.git')), [hash('git.server.org/project.git')]); + assert.deepStrictEqual(getHashedRemotesFromConfig(remote('user@git.server.org:project.git')), [hash('git.server.org/project.git')]); + assert.deepStrictEqual(getHashedRemotesFromConfig(remote('/opt/git/project.git')), []); + + // Strip .git + assert.deepStrictEqual(getHashedRemotesFromConfig(remote('https://username:password@github3.com/username/repository.git'), true), [hash('github3.com/username/repository')]); + assert.deepStrictEqual(getHashedRemotesFromConfig(remote('ssh://user@git.server.org/project.git'), true), [hash('git.server.org/project')]); + assert.deepStrictEqual(getHashedRemotesFromConfig(remote('user@git.server.org:project.git'), true), [hash('git.server.org/project')]); + assert.deepStrictEqual(getHashedRemotesFromConfig(remote('/opt/git/project.git'), true), []); + + // Compare Striped .git with no .git + assert.deepStrictEqual(getHashedRemotesFromConfig(remote('https://username:password@github3.com/username/repository.git'), true), getHashedRemotesFromConfig(remote('https://username:password@github3.com/username/repository'))); + assert.deepStrictEqual(getHashedRemotesFromConfig(remote('ssh://user@git.server.org/project.git'), true), getHashedRemotesFromConfig(remote('ssh://user@git.server.org/project'))); + assert.deepStrictEqual(getHashedRemotesFromConfig(remote('user@git.server.org:project.git'), true), [hash('git.server.org/project')]); + assert.deepStrictEqual(getHashedRemotesFromConfig(remote('/opt/git/project.git'), true), getHashedRemotesFromConfig(remote('/opt/git/project'))); }); test('Multiple remotes hashed', function () { const config = ['https://github.com/Microsoft/vscode.git', 'https://git.example.com/gitproject.git'].map(remote).join(' '); - assert.deepStrictEqual(getHashedRemotes(config), [hash('github.com/Microsoft/vscode.git'), hash('git.example.com/gitproject.git')]); + assert.deepStrictEqual(getHashedRemotesFromConfig(config), [hash('github.com/Microsoft/vscode.git'), hash('git.example.com/gitproject.git')]); + + // Strip .git + assert.deepStrictEqual(getHashedRemotesFromConfig(config, true), [hash('github.com/Microsoft/vscode'), hash('git.example.com/gitproject')]); + + // Compare Striped .git with no .git + const noDotGitConfig = ['https://github.com/Microsoft/vscode', 'https://git.example.com/gitproject'].map(remote).join(' '); + assert.deepStrictEqual(getHashedRemotesFromConfig(config, true), getHashedRemotesFromConfig(noDotGitConfig)); }); function remote(url: string): string { diff --git a/src/vs/workbench/parts/terminal/common/terminalService.ts b/src/vs/workbench/parts/terminal/common/terminalService.ts index 806e092c0a6..ff96db819ac 100644 --- a/src/vs/workbench/parts/terminal/common/terminalService.ts +++ b/src/vs/workbench/parts/terminal/common/terminalService.ts @@ -70,7 +70,7 @@ export abstract class TerminalService implements ITerminalService { public abstract selectDefaultWindowsShell(): TPromise; public abstract setContainers(panelContainer: HTMLElement, terminalContainer: HTMLElement): void; - private _onWillShutdown(): boolean { + private _onWillShutdown(): boolean | TPromise { if (this.terminalInstances.length === 0) { // No terminal instances, don't veto return false; @@ -78,9 +78,12 @@ export abstract class TerminalService implements ITerminalService { if (this.configHelper.config.confirmOnExit) { // veto if configured to show confirmation and the user choosed not to exit - if (this._showTerminalCloseConfirmation()) { - return true; - } + return this._showTerminalCloseConfirmation().then(veto => { + if (!veto) { + this._isShuttingDown = true; + } + return veto; + }); } this._isShuttingDown = true; diff --git a/src/vs/workbench/parts/terminal/electron-browser/terminalLinkHandler.ts b/src/vs/workbench/parts/terminal/electron-browser/terminalLinkHandler.ts index c8b79cc6291..75905551cd3 100644 --- a/src/vs/workbench/parts/terminal/electron-browser/terminalLinkHandler.ts +++ b/src/vs/workbench/parts/terminal/electron-browser/terminalLinkHandler.ts @@ -93,6 +93,7 @@ export class TerminalLinkHandler { validationCallback: (uri: string, callback: (isValid: boolean) => void) => validationCallback(uri, callback), tooltipCallback: (e: MouseEvent, u) => this._widgetManager.showMessage(e.offsetX, e.offsetY, this._getLinkHoverString()), leaveCallback: () => this._widgetManager.closeMessage(), + willLinkActivate: (e: MouseEvent) => this._isLinkActivationModifierDown(e), priority: CUSTOM_LINK_PRIORITY }); } @@ -106,6 +107,7 @@ export class TerminalLinkHandler { validationCallback: (uri: string, callback: (isValid: boolean) => void) => this._validateLocalLink(uri, callback), tooltipCallback: (e: MouseEvent, u) => this._widgetManager.showMessage(e.offsetX, e.offsetY, this._getLinkHoverString()), leaveCallback: () => this._widgetManager.closeMessage(), + willLinkActivate: (e: MouseEvent) => this._isLinkActivationModifierDown(e), priority: LOCAL_LINK_PRIORITY }); } diff --git a/src/vs/workbench/parts/update/electron-browser/update.contribution.ts b/src/vs/workbench/parts/update/electron-browser/update.contribution.ts index 6b6cc303dd5..b533e60a755 100644 --- a/src/vs/workbench/parts/update/electron-browser/update.contribution.ts +++ b/src/vs/workbench/parts/update/electron-browser/update.contribution.ts @@ -7,7 +7,6 @@ import * as nls from 'vs/nls'; import 'vs/css!./media/update.contribution'; -import product from 'vs/platform/node/product'; import { Registry } from 'vs/platform/registry/common/platform'; import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions } from 'vs/workbench/common/contributions'; import { ReleaseNotesEditor } from 'vs/workbench/parts/update/electron-browser/releaseNotesEditor'; @@ -61,7 +60,7 @@ configurationRegistry.registerConfiguration({ }, 'update.enableWindowsBackgroundUpdates': { 'type': 'boolean', - 'default': product.quality === 'insider', + 'default': false, 'description': nls.localize('enableWindowsBackgroundUpdates', "Enables Windows background updates.") } } diff --git a/src/vs/workbench/services/configurationResolver/electron-browser/configurationResolverService.ts b/src/vs/workbench/services/configurationResolver/electron-browser/configurationResolverService.ts index 99b29ec0e45..79af4c46715 100644 --- a/src/vs/workbench/services/configurationResolver/electron-browser/configurationResolverService.ts +++ b/src/vs/workbench/services/configurationResolver/electron-browser/configurationResolverService.ts @@ -19,6 +19,7 @@ import { DiffEditorInput } from 'vs/workbench/common/editor/diffEditorInput'; import { ICodeEditor } from 'vs/editor/browser/editorBrowser'; import { relative } from 'path'; import { IProcessEnvironment, isWindows } from 'vs/base/common/platform'; +import { normalizeDriveLetter } from 'vs/base/common/labels'; class VariableResolver { static VARIABLE_REGEXP = /\$\{(.*?)\}/g; @@ -85,9 +86,9 @@ class VariableResolver { switch (variable) { case 'workspaceRoot': case 'workspaceFolder': - return context ? context.uri.fsPath : match; + return context ? normalizeDriveLetter(context.uri.fsPath) : match; case 'cwd': - return context ? context.uri.fsPath : process.cwd(); + return context ? normalizeDriveLetter(context.uri.fsPath) : process.cwd(); case 'workspaceRootFolderName': case 'workspaceFolderBasename': return context ? paths.basename(context.uri.fsPath) : match; diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts index cb7cb3d37fd..8079fd1e198 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionHost.ts @@ -144,7 +144,6 @@ export class ExtensionHostProcessWorker { VSCODE_WINDOW_ID: String(this._windowService.getCurrentWindowId()), VSCODE_IPC_HOOK_EXTHOST: pipeName, VSCODE_HANDLES_UNCAUGHT_ERRORS: true, - ELECTRON_NO_ASAR: '1', VSCODE_LOG_STACK: !this._isExtensionDevTestFromCli && (this._isExtensionDevHost || !this._environmentService.isBuilt || product.quality !== 'stable' || this._environmentService.verbose) }), // We only detach the extension host on windows. Linux and Mac orphan by default diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionPoints.ts b/src/vs/workbench/services/extensions/electron-browser/extensionPoints.ts index d79f768e150..4154fae5f8f 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionPoints.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionPoints.ts @@ -16,14 +16,43 @@ import { isValidExtensionDescription } from 'vs/platform/extensions/node/extensi import * as semver from 'semver'; import { getIdAndVersionFromLocalExtensionId } from 'vs/platform/extensionManagement/node/extensionManagementUtil'; import { getParseErrorMessage } from 'vs/base/common/jsonErrorMessages'; -import { groupByExtension } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; +import { groupByExtension, getGalleryExtensionId, getLocalExtensionId } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; const MANIFEST_FILE = 'package.json'; +export interface Translations { + [id: string]: string; +} + +namespace Translations { + export function equals(a: Translations, b: Translations): boolean { + if (a === b) { + return true; + } + let aKeys = Object.keys(a); + let bKeys: Set = new Set(); + for (let key of Object.keys(b)) { + bKeys.add(key); + } + if (aKeys.length !== bKeys.size) { + return false; + } + + for (let key of aKeys) { + if (a[key] !== b[key]) { + return false; + } + bKeys.delete(key); + } + return bKeys.size === 0; + } +} + export interface NlsConfiguration { readonly devMode: boolean; readonly locale: string; readonly pseudo: boolean; + readonly translations: Translations; } export interface ILog { @@ -85,37 +114,90 @@ class ExtensionManifestNLSReplacer extends ExtensionManifestHandler { } public replaceNLS(extensionDescription: IExtensionDescription): TPromise { + interface MessageBag { + [key: string]: string; + } + + interface TranslationBundle { + contents: { + package: MessageBag; + }; + } + + interface LocalizedMessages { + values: MessageBag; + default: string; + } + + const reportErrors = (localized: string, errors: json.ParseError[]): void => { + errors.forEach((error) => { + this._log.error(this._absoluteFolderPath, nls.localize('jsonsParseReportErrors', "Failed to parse {0}: {1}.", localized, getParseErrorMessage(error.error))); + }); + }; + let extension = extname(this._absoluteManifestPath); let basename = this._absoluteManifestPath.substr(0, this._absoluteManifestPath.length - extension.length); - return pfs.fileExists(basename + '.nls' + extension).then(exists => { - if (!exists) { - return extensionDescription; - } - return ExtensionManifestNLSReplacer.findMessageBundles(this._nlsConfig, basename).then((messageBundle) => { - if (!messageBundle.localized) { - return extensionDescription; + const translationId = `${extensionDescription.publisher}.${extensionDescription.name}`; + let translationPath = this._nlsConfig.translations[translationId]; + let localizedMessages: TPromise; + if (translationPath) { + localizedMessages = pfs.readFile(translationPath, 'utf8').then((content) => { + let errors: json.ParseError[] = []; + let translationBundle: TranslationBundle = json.parse(content, errors); + if (errors.length > 0) { + reportErrors(translationPath, errors); + return { values: undefined, default: `${basename}.nls.json` }; + } else { + let values = translationBundle.contents ? translationBundle.contents.package : undefined; + return { values: values, default: `${basename}.nls.json` }; } - return pfs.readFile(messageBundle.localized).then(messageBundleContent => { - let errors: json.ParseError[] = []; - let messages: { [key: string]: string; } = json.parse(messageBundleContent.toString(), errors); - - return ExtensionManifestNLSReplacer.resolveOriginalMessageBundle(messageBundle.original, errors).then(originalMessages => { + }, (error) => { + return { values: undefined, default: `${basename}.nls.json` }; + }); + } else { + localizedMessages = pfs.fileExists(basename + '.nls' + extension).then(exists => { + if (!exists) { + return undefined; + } + return ExtensionManifestNLSReplacer.findMessageBundles(this._nlsConfig, basename).then((messageBundle) => { + if (!messageBundle.localized) { + return { values: undefined, default: messageBundle.original }; + } + return pfs.readFile(messageBundle.localized, 'utf8').then(messageBundleContent => { + let errors: json.ParseError[] = []; + let messages: MessageBag = json.parse(messageBundleContent, errors); if (errors.length > 0) { - errors.forEach((error) => { - this._log.error(this._absoluteFolderPath, nls.localize('jsonsParseFail', "Failed to parse {0} or {1}: {2}.", messageBundle.localized, messageBundle.original, getParseErrorMessage(error.error))); - }); - return extensionDescription; + reportErrors(messageBundle.localized, errors); + return { values: undefined, default: messageBundle.original }; } - - ExtensionManifestNLSReplacer._replaceNLStrings(this._nlsConfig, extensionDescription, messages, originalMessages, this._log, this._absoluteFolderPath); - return extensionDescription; + return { values: messages, default: messageBundle.original }; + }, (err) => { + return { values: undefined, default: messageBundle.original }; }); }, (err) => { - this._log.error(this._absoluteFolderPath, nls.localize('fileReadFail', "Cannot read file {0}: {1}.", messageBundle.localized, err.message)); - return null; + return undefined; }); }); + } + + return localizedMessages.then((localizedMessages) => { + if (localizedMessages === undefined) { + return extensionDescription; + } + let errors: json.ParseError[] = []; + // resolveOriginalMessageBundle returns null if localizedMessages.default === undefined; + return ExtensionManifestNLSReplacer.resolveOriginalMessageBundle(localizedMessages.default, errors).then((defaults) => { + if (errors.length > 0) { + reportErrors(localizedMessages.default, errors); + return extensionDescription; + } + const localized = localizedMessages.values || Object.create(null); + ExtensionManifestNLSReplacer._replaceNLStrings(this._nlsConfig, extensionDescription, localized, defaults, this._log, this._absoluteFolderPath); + return extensionDescription; + }); + }, (err) => { + return extensionDescription; }); } @@ -127,6 +209,8 @@ class ExtensionManifestNLSReplacer extends ExtensionManifestHandler { if (originalMessageBundle) { pfs.readFile(originalMessageBundle).then(originalBundleContent => { c(json.parse(originalBundleContent.toString(), errors)); + }, (err) => { + c(null); }); } else { c(null); @@ -176,6 +260,11 @@ class ExtensionManifestNLSReplacer extends ExtensionManifestHandler { if (length > 1 && str[0] === '%' && str[length - 1] === '%') { let messageKey = str.substr(1, length - 2); let message = messages[messageKey]; + // If the messages come from a language pack they might miss some keys + // Fill them from the original messages. + if (message === undefined && originalMessages) { + message = originalMessages[messageKey]; + } if (message) { if (nlsConfig.pseudo) { // FF3B and FF3D is the Unicode zenkaku representation for [ and ] @@ -263,7 +352,8 @@ export class ExtensionScannerInput { public readonly locale: string, public readonly devMode: boolean, public readonly absoluteFolderPath: string, - public readonly isBuiltin: boolean + public readonly isBuiltin: boolean, + public readonly tanslations: Translations ) { // Keep empty!! (JSON.parse) } @@ -272,7 +362,8 @@ export class ExtensionScannerInput { return { devMode: input.devMode, locale: input.locale, - pseudo: input.locale === 'pseudo' + pseudo: input.locale === 'pseudo', + translations: input.tanslations }; } @@ -285,6 +376,7 @@ export class ExtensionScannerInput { && a.absoluteFolderPath === b.absoluteFolderPath && a.isBuiltin === b.isBuiltin && a.mtime === b.mtime + && Translations.equals(a.tanslations, b.tanslations) ); } } @@ -367,25 +459,19 @@ export class ExtensionScanner { const gallery: IExtensionReference[] = []; refs.forEach(ref => { - if (obsolete[ref.name]) { - return; - } - const { id, version } = getIdAndVersionFromLocalExtensionId(ref.name); - if (!id || !version) { nonGallery.push(ref); } else { gallery.push(ref); } }); - refs = [...nonGallery, ...gallery]; } const nlsConfig = ExtensionScannerInput.createNLSConfig(input); let extensionDescriptions = await TPromise.join(refs.map(r => this.scanExtension(input.ourVersion, log, r.path, isBuiltin, nlsConfig))); - extensionDescriptions = extensionDescriptions.filter(item => item !== null); + extensionDescriptions = extensionDescriptions.filter(item => item !== null && !obsolete[getLocalExtensionId(getGalleryExtensionId(item.publisher, item.name), item.version)]); if (!isBuiltin) { // Filter out outdated extensions diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts index 020e3c73d30..e0d15b0ad05 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts @@ -11,6 +11,7 @@ import Severity from 'vs/base/common/severity'; import { TPromise } from 'vs/base/common/winjs.base'; import pkg from 'vs/platform/node/package'; import * as path from 'path'; +import * as os from 'os'; import * as pfs from 'vs/base/node/pfs'; import URI from 'vs/base/common/uri'; import * as platform from 'vs/base/common/platform'; @@ -19,7 +20,7 @@ import { IMessage, IExtensionDescription, IExtensionsStatus, IExtensionService, import { IExtensionEnablementService, IExtensionIdentifier, EnablementState } from 'vs/platform/extensionManagement/common/extensionManagement'; import { areSameExtensions, BetterMergeId, BetterMergeDisabledNowKey } from 'vs/platform/extensionManagement/common/extensionManagementUtil'; import { ExtensionsRegistry, ExtensionPoint, IExtensionPointUser, ExtensionMessageCollector, IExtensionPoint } from 'vs/platform/extensions/common/extensionsRegistry'; -import { ExtensionScanner, ILog, ExtensionScannerInput, IExtensionResolver, IExtensionReference } from 'vs/workbench/services/extensions/electron-browser/extensionPoints'; +import { ExtensionScanner, ILog, ExtensionScannerInput, IExtensionResolver, IExtensionReference, Translations } from 'vs/workbench/services/extensions/electron-browser/extensionPoints'; import { IMessageService, CloseAction } from 'vs/platform/message/common/message'; import { ProxyIdentifier } from 'vs/workbench/services/extensions/node/proxyIdentifier'; import { ExtHostContext, ExtHostExtensionServiceShape, IExtHostContext, MainContext } from 'vs/workbench/api/node/extHost.protocol'; @@ -651,86 +652,99 @@ export class ExtensionService extends Disposable implements IExtensionService { } private static _scanInstalledExtensions(instantiationService: IInstantiationService, messageService: IMessageService, environmentService: IEnvironmentService, log: ILog): TPromise<{ system: IExtensionDescription[], user: IExtensionDescription[], development: IExtensionDescription[] }> { - const version = pkg.version; - const commit = product.commit; - const devMode = !!process.env['VSCODE_DEV']; - const locale = platform.locale; - const builtinExtensions = this._scanExtensionsWithCache( - instantiationService, - messageService, - environmentService, - BUILTIN_MANIFEST_CACHE_FILE, - new ExtensionScannerInput(version, commit, locale, devMode, SystemExtensionsRoot, true), - log - ); - - let finalBuiltinExtensions: TPromise = builtinExtensions; - - if (devMode) { - const builtInExtensionsFilePath = path.normalize(path.join(URI.parse(require.toUrl('')).fsPath, '..', 'build', 'builtInExtensions.json')); - const builtInExtensions = pfs.readFile(builtInExtensionsFilePath, 'utf8') - .then(raw => JSON.parse(raw)); - - const controlFilePath = path.join(process.env['HOME'], '.vscode-oss-dev', 'extensions', 'control.json'); - const controlFile = pfs.readFile(controlFilePath, 'utf8') - .then(raw => JSON.parse(raw), () => ({} as any)); - - const input = new ExtensionScannerInput(version, commit, locale, devMode, ExtraDevSystemExtensionsRoot, true); - const extraBuiltinExtensions = TPromise.join([builtInExtensions, controlFile]) - .then(([builtInExtensions, control]) => new ExtraBuiltInExtensionResolver(builtInExtensions, control)) - .then(resolver => ExtensionScanner.scanExtensions(input, log, resolver)); - - finalBuiltinExtensions = TPromise.join([builtinExtensions, extraBuiltinExtensions]).then(([builtinExtensions, extraBuiltinExtensions]) => { - let resultMap: { [id: string]: IExtensionDescription; } = Object.create(null); - for (let i = 0, len = builtinExtensions.length; i < len; i++) { - resultMap[builtinExtensions[i].id] = builtinExtensions[i]; - } - // Overwrite with extensions found in extra - for (let i = 0, len = extraBuiltinExtensions.length; i < len; i++) { - resultMap[extraBuiltinExtensions[i].id] = extraBuiltinExtensions[i]; + const translationConfig: TPromise = platform.translationsConfigFile + ? pfs.readFile(platform.translationsConfigFile, 'utf8').then((content) => { + try { + return JSON.parse(content) as Translations; + } catch (err) { + return Object.create(null); } + }, (err) => { + return Object.create(null); + }) + : TPromise.as(Object.create(null)); - let resultArr = Object.keys(resultMap).map((id) => resultMap[id]); - resultArr.sort((a, b) => { - const aLastSegment = path.basename(a.extensionFolderPath); - const bLastSegment = path.basename(b.extensionFolderPath); - if (aLastSegment < bLastSegment) { - return -1; + return translationConfig.then((translations) => { + const version = pkg.version; + const commit = product.commit; + const devMode = !!process.env['VSCODE_DEV']; + const locale = platform.locale; + + const builtinExtensions = this._scanExtensionsWithCache( + instantiationService, + messageService, + environmentService, + BUILTIN_MANIFEST_CACHE_FILE, + new ExtensionScannerInput(version, commit, locale, devMode, SystemExtensionsRoot, true, translations), + log + ); + + let finalBuiltinExtensions: TPromise = builtinExtensions; + + if (devMode) { + const builtInExtensionsFilePath = path.normalize(path.join(URI.parse(require.toUrl('')).fsPath, '..', 'build', 'builtInExtensions.json')); + const builtInExtensions = pfs.readFile(builtInExtensionsFilePath, 'utf8') + .then(raw => JSON.parse(raw)); + + const controlFilePath = path.join(os.homedir(), '.vscode-oss-dev', 'extensions', 'control.json'); + const controlFile = pfs.readFile(controlFilePath, 'utf8') + .then(raw => JSON.parse(raw), () => ({} as any)); + + const input = new ExtensionScannerInput(version, commit, locale, devMode, ExtraDevSystemExtensionsRoot, true, translations); + const extraBuiltinExtensions = TPromise.join([builtInExtensions, controlFile]) + .then(([builtInExtensions, control]) => new ExtraBuiltInExtensionResolver(builtInExtensions, control)) + .then(resolver => ExtensionScanner.scanExtensions(input, log, resolver)); + + finalBuiltinExtensions = TPromise.join([builtinExtensions, extraBuiltinExtensions]).then(([builtinExtensions, extraBuiltinExtensions]) => { + let resultMap: { [id: string]: IExtensionDescription; } = Object.create(null); + for (let i = 0, len = builtinExtensions.length; i < len; i++) { + resultMap[builtinExtensions[i].id] = builtinExtensions[i]; } - if (aLastSegment > bLastSegment) { - return 1; + // Overwrite with extensions found in extra + for (let i = 0, len = extraBuiltinExtensions.length; i < len; i++) { + resultMap[extraBuiltinExtensions[i].id] = extraBuiltinExtensions[i]; } - return 0; + + let resultArr = Object.keys(resultMap).map((id) => resultMap[id]); + resultArr.sort((a, b) => { + const aLastSegment = path.basename(a.extensionFolderPath); + const bLastSegment = path.basename(b.extensionFolderPath); + if (aLastSegment < bLastSegment) { + return -1; + } + if (aLastSegment > bLastSegment) { + return 1; + } + return 0; + }); + return resultArr; }); - return resultArr; - }); - } + } - const userExtensions = ( - environmentService.disableExtensions || !environmentService.extensionsPath - ? TPromise.as([]) - : this._scanExtensionsWithCache( - instantiationService, - messageService, - environmentService, - USER_MANIFEST_CACHE_FILE, - new ExtensionScannerInput(version, commit, locale, devMode, environmentService.extensionsPath, false), - log - ) - ); + const userExtensions = ( + environmentService.disableExtensions || !environmentService.extensionsPath + ? TPromise.as([]) + : this._scanExtensionsWithCache( + instantiationService, + messageService, + environmentService, + USER_MANIFEST_CACHE_FILE, + new ExtensionScannerInput(version, commit, locale, devMode, environmentService.extensionsPath, false, translations), + log + ) + ); - // Always load developed extensions while extensions development - const developedExtensions = ( - environmentService.isExtensionDevelopment - ? ExtensionScanner.scanOneOrMultipleExtensions( - new ExtensionScannerInput(version, commit, locale, devMode, environmentService.extensionDevelopmentPath, false), log - ) - : TPromise.as([]) - ); + // Always load developed extensions while extensions development + const developedExtensions = ( + environmentService.isExtensionDevelopment + ? ExtensionScanner.scanOneOrMultipleExtensions( + new ExtensionScannerInput(version, commit, locale, devMode, environmentService.extensionDevelopmentPath, false, translations), log + ) + : TPromise.as([]) + ); - return TPromise.join([finalBuiltinExtensions, userExtensions, developedExtensions]) - .then((extensionDescriptions: IExtensionDescription[][]) => { + return TPromise.join([finalBuiltinExtensions, userExtensions, developedExtensions]).then((extensionDescriptions: IExtensionDescription[][]) => { const system = extensionDescriptions[0]; const user = extensionDescriptions[1]; const development = extensionDescriptions[2]; @@ -739,6 +753,8 @@ export class ExtensionService extends Disposable implements IExtensionService { log.error('', err); return { system: [], user: [], development: [] }; }); + }); + } private static _handleExtensionPoint(extensionPoint: ExtensionPoint, availableExtensions: IExtensionDescription[], messageHandler: (msg: IMessage) => void): void { diff --git a/src/vs/workbench/services/files/node/fileService.ts b/src/vs/workbench/services/files/node/fileService.ts index f443fec34a4..b27a7f781b3 100644 --- a/src/vs/workbench/services/files/node/fileService.ts +++ b/src/vs/workbench/services/files/node/fileService.ts @@ -41,6 +41,7 @@ import { ILifecycleService, LifecyclePhase } from 'vs/platform/lifecycle/common/ import { getBaseLabel } from 'vs/base/common/labels'; import { assign } from 'vs/base/common/objects'; import { Readable } from 'stream'; +import { IWriteFileOptions } from 'vs/base/node/extfs'; export interface IEncodingOverride { resource: uri; @@ -582,22 +583,19 @@ export class FileService implements IFileService { private doSetContentsAndResolve(resource: uri, absolutePath: string, value: string | ITextSnapshot, addBOM: boolean, encodingToWrite: string, options?: { mode?: number; flag?: string; }): TPromise { let writeFilePromise: TPromise; - // Write fast if we do UTF 8 without BOM - if (!addBOM && encodingToWrite === encoding.UTF8) { - if (typeof value === 'string') { - writeFilePromise = pfs.writeFile(absolutePath, value, options); - } else { - writeFilePromise = pfs.writeFile(absolutePath, this.snapshotToReadableStream(value), options); - } + // Configure encoding related options as needed + const writeFileOptions: IWriteFileOptions = options ? options : Object.create(null); + if (addBOM || encodingToWrite !== encoding.UTF8) { + writeFileOptions.encoding = { + charset: encodingToWrite, + addBOM + }; } - // Otherwise use encoding lib - else { - if (typeof value === 'string') { - writeFilePromise = pfs.writeFile(absolutePath, encoding.encode(value, encodingToWrite, { addBOM }), options); - } else { - writeFilePromise = pfs.writeFile(absolutePath, this.snapshotToReadableStream(value).pipe(encoding.encodeStream(encodingToWrite, { addBOM })), options); - } + if (typeof value === 'string') { + writeFilePromise = pfs.writeFile(absolutePath, value, writeFileOptions); + } else { + writeFilePromise = pfs.writeFile(absolutePath, this.snapshotToReadableStream(value), writeFileOptions); } // set contents @@ -680,7 +678,7 @@ export class FileService implements IFileService { this.options.errorLogger(`Unable to write to file '${resource.toString(true)}' as elevated user (${error})`); } - if (!(error instanceof FileOperationError)) { + if (!FileOperationError.isFileOperationError(error)) { error = new FileOperationError( nls.localize('filePermission', "Permission denied writing to file ({0})", resource.toString(true)), FileOperationResult.FILE_PERMISSION_DENIED, diff --git a/src/vs/workbench/services/scm/common/scm.ts b/src/vs/workbench/services/scm/common/scm.ts index 78014460542..a7901d02b82 100644 --- a/src/vs/workbench/services/scm/common/scm.ts +++ b/src/vs/workbench/services/scm/common/scm.ts @@ -68,6 +68,21 @@ export interface ISCMProvider extends IDisposable { getOriginalResource(uri: URI): TPromise; } +export enum InputValidationType { + Error = 0, + Warning = 1, + Information = 2 +} + +export interface IInputValidation { + message: string; + type: InputValidationType; +} + +export interface IInputValidator { + (value: string, cursorPosition: number): TPromise; +} + export interface ISCMInput { value: string; readonly onDidChange: Event; @@ -75,7 +90,8 @@ export interface ISCMInput { placeholder: string; readonly onDidChangePlaceholder: Event; - lineWarningLength: number | undefined; + validateInput: IInputValidator; + readonly onDidChangeValidateInput: Event; } export interface ISCMRepository extends IDisposable { diff --git a/src/vs/workbench/services/scm/common/scmService.ts b/src/vs/workbench/services/scm/common/scmService.ts index ad66331ddc1..e1ca99a7729 100644 --- a/src/vs/workbench/services/scm/common/scmService.ts +++ b/src/vs/workbench/services/scm/common/scmService.ts @@ -7,8 +7,9 @@ import { IDisposable, toDisposable } from 'vs/base/common/lifecycle'; import Event, { Emitter } from 'vs/base/common/event'; -import { ISCMService, ISCMProvider, ISCMInput, ISCMRepository } from './scm'; +import { ISCMService, ISCMProvider, ISCMInput, ISCMRepository, IInputValidator } from './scm'; import { ILogService } from 'vs/platform/log/common/log'; +import { TPromise } from 'vs/base/common/winjs.base'; class SCMInput implements ISCMInput { @@ -40,7 +41,19 @@ class SCMInput implements ISCMInput { private _onDidChangePlaceholder = new Emitter(); get onDidChangePlaceholder(): Event { return this._onDidChangePlaceholder.event; } - public lineWarningLength: number | undefined = undefined; + private _validateInput: IInputValidator = () => TPromise.as(undefined); + + get validateInput(): IInputValidator { + return this._validateInput; + } + + set validateInput(validateInput: IInputValidator) { + this._validateInput = validateInput; + this._onDidChangeValidateInput.fire(); + } + + private _onDidChangeValidateInput = new Emitter(); + get onDidChangeValidateInput(): Event { return this._onDidChangeValidateInput.event; } } class SCMRepository implements ISCMRepository { diff --git a/src/vs/workbench/services/search/node/ripgrepFileSearch.ts b/src/vs/workbench/services/search/node/ripgrepFileSearch.ts index 9b73f7739ec..acaccc6693a 100644 --- a/src/vs/workbench/services/search/node/ripgrepFileSearch.ts +++ b/src/vs/workbench/services/search/node/ripgrepFileSearch.ts @@ -13,11 +13,14 @@ import { normalizeNFD, startsWith } from 'vs/base/common/strings'; import { IFolderSearch, IRawSearch } from './search'; import { foldersToIncludeGlobs, foldersToRgExcludeGlobs } from './ripgrepTextSearch'; +// If vscode-ripgrep is in an .asar file, then the binary is unpacked. +const rgDiskPath = rgPath.replace(/\bnode_modules\.asar\b/, 'node_modules.asar.unpacked'); + export function spawnRipgrepCmd(config: IRawSearch, folderQuery: IFolderSearch, includePattern: glob.IExpression, excludePattern: glob.IExpression) { const rgArgs = getRgArgs(config, folderQuery, includePattern, excludePattern); const cwd = folderQuery.folder; return { - cmd: cp.spawn(rgPath, rgArgs.args, { cwd }), + cmd: cp.spawn(rgDiskPath, rgArgs.args, { cwd }), siblingClauses: rgArgs.siblingClauses, rgArgs, cwd diff --git a/src/vs/workbench/services/search/node/ripgrepTextSearch.ts b/src/vs/workbench/services/search/node/ripgrepTextSearch.ts index 72ecb4b919d..a38556247ef 100644 --- a/src/vs/workbench/services/search/node/ripgrepTextSearch.ts +++ b/src/vs/workbench/services/search/node/ripgrepTextSearch.ts @@ -23,6 +23,9 @@ import { TPromise } from 'vs/base/common/winjs.base'; import { ISerializedFileMatch, ISerializedSearchComplete, IRawSearch, IFolderSearch, LineMatch, FileMatch } from './search'; import { IProgress } from 'vs/platform/search/common/search'; +// If vscode-ripgrep is in an .asar file, then the binary is unpacked. +const rgDiskPath = rgPath.replace(/\bnode_modules\.asar\b/, 'node_modules.asar.unpacked'); + export class RipgrepEngine { private isDone = false; private rgProc: cp.ChildProcess; @@ -72,7 +75,7 @@ export class RipgrepEngine { onMessage({ message: rgCmd }); }); - this.rgProc = cp.spawn(rgPath, rgArgs.args, { cwd }); + this.rgProc = cp.spawn(rgDiskPath, rgArgs.args, { cwd }); process.once('exit', this.killRgProcFn); this.ripgrepParser = new RipgrepParser(this.config.maxResults, cwd, this.config.extraFiles); @@ -424,11 +427,7 @@ export function fixDriveC(path: string): string { function getRgArgs(config: IRawSearch) { const args = ['--hidden', '--heading', '--line-number', '--color', 'ansi', '--colors', 'path:none', '--colors', 'line:none', '--colors', 'match:fg:red', '--colors', 'match:style:nobold']; - if (config.contentPattern.isSmartCase) { - args.push('--smart-case'); - } else { - args.push(config.contentPattern.isCaseSensitive ? '--case-sensitive' : '--ignore-case'); - } + args.push(config.contentPattern.isCaseSensitive ? '--case-sensitive' : '--ignore-case'); // includePattern can't have siblingClauses foldersToIncludeGlobs(config.folderQueries, config.includePattern).forEach(globArg => { diff --git a/src/vs/workbench/services/search/node/searchService.ts b/src/vs/workbench/services/search/node/searchService.ts index bbfe0682918..2f71778178a 100644 --- a/src/vs/workbench/services/search/node/searchService.ts +++ b/src/vs/workbench/services/search/node/searchService.ts @@ -90,6 +90,7 @@ export class SearchService implements ISearchService { // Allow caller to register progress callback process.nextTick(() => localResults.values().filter((res) => !!res).forEach(onProgress)); + this.logService.trace('SearchService#search', JSON.stringify(query)); const providerPromises = this.searchProvider.map(provider => TPromise.wrap(provider.search(query)).then(e => e, err => { // TODO@joh @@ -108,7 +109,7 @@ export class SearchService implements ISearchService { } if (progress.message) { - this.logService.info('SearchService#search', progress.message); + this.logService.debug('SearchService#search', progress.message); } } )); diff --git a/src/vs/workbench/test/electron-browser/api/extHostTypes.test.ts b/src/vs/workbench/test/electron-browser/api/extHostTypes.test.ts index 478b506e60f..3ecde0d0ba2 100644 --- a/src/vs/workbench/test/electron-browser/api/extHostTypes.test.ts +++ b/src/vs/workbench/test/electron-browser/api/extHostTypes.test.ts @@ -375,39 +375,39 @@ suite('ExtHostTypes', function () { // } // }); - test('WorkspaceEdit - keep order of text and file changes', function () { + // test('WorkspaceEdit - keep order of text and file changes', function () { - const edit = new types.WorkspaceEdit(); - edit.replace(URI.parse('foo:a'), new types.Range(1, 1, 1, 1), 'foo'); - edit.renameResource(URI.parse('foo:a'), URI.parse('foo:b')); - edit.replace(URI.parse('foo:a'), new types.Range(2, 1, 2, 1), 'bar'); - edit.replace(URI.parse('foo:b'), new types.Range(3, 1, 3, 1), 'bazz'); + // const edit = new types.WorkspaceEdit(); + // edit.replace(URI.parse('foo:a'), new types.Range(1, 1, 1, 1), 'foo'); + // edit.renameResource(URI.parse('foo:a'), URI.parse('foo:b')); + // edit.replace(URI.parse('foo:a'), new types.Range(2, 1, 2, 1), 'bar'); + // edit.replace(URI.parse('foo:b'), new types.Range(3, 1, 3, 1), 'bazz'); - const all = edit.allEntries(); - assert.equal(all.length, 3); + // const all = edit.allEntries(); + // assert.equal(all.length, 3); - function isFileChange(thing: [URI, types.TextEdit[]] | [URI, URI]): thing is [URI, URI] { - const [f, s] = thing; - return URI.isUri(f) && URI.isUri(s); - } + // function isFileChange(thing: [URI, types.TextEdit[]] | [URI, URI]): thing is [URI, URI] { + // const [f, s] = thing; + // return URI.isUri(f) && URI.isUri(s); + // } - function isTextChange(thing: [URI, types.TextEdit[]] | [URI, URI]): thing is [URI, types.TextEdit[]] { - const [f, s] = thing; - return URI.isUri(f) && Array.isArray(s); - } + // function isTextChange(thing: [URI, types.TextEdit[]] | [URI, URI]): thing is [URI, types.TextEdit[]] { + // const [f, s] = thing; + // return URI.isUri(f) && Array.isArray(s); + // } - const [first, second, third] = all; - assert.equal(first[0].toString(), 'foo:a'); - assert.ok(!isFileChange(first)); - assert.ok(isTextChange(first) && first[1].length === 2); + // const [first, second, third] = all; + // assert.equal(first[0].toString(), 'foo:a'); + // assert.ok(!isFileChange(first)); + // assert.ok(isTextChange(first) && first[1].length === 2); - assert.equal(second[0].toString(), 'foo:a'); - assert.ok(isFileChange(second)); + // assert.equal(second[0].toString(), 'foo:a'); + // assert.ok(isFileChange(second)); - assert.equal(third[0].toString(), 'foo:b'); - assert.ok(!isFileChange(third)); - assert.ok(isTextChange(third) && third[1].length === 1); - }); + // assert.equal(third[0].toString(), 'foo:b'); + // assert.ok(!isFileChange(third)); + // assert.ok(isTextChange(third) && third[1].length === 1); + // }); test('DocumentLink', function () { assert.throws(() => new types.DocumentLink(null, null)); diff --git a/src/vs/workbench/test/electron-browser/textsearch.perf.integrationTest.ts b/src/vs/workbench/test/electron-browser/textsearch.perf.integrationTest.ts index e4a382f3a78..8f0ac9aae10 100644 --- a/src/vs/workbench/test/electron-browser/textsearch.perf.integrationTest.ts +++ b/src/vs/workbench/test/electron-browser/textsearch.perf.integrationTest.ts @@ -34,6 +34,7 @@ import { QueryBuilder } from 'vs/workbench/parts/search/common/queryBuilder'; import Event, * as event from 'vs/base/common/event'; import { testWorkspace } from 'vs/platform/workspace/test/common/testWorkspace'; +import { ILogService, NullLogService } from '../../../platform/log/common/log'; declare var __dirname: string; @@ -67,7 +68,8 @@ suite('TextSearch performance (integration)', () => { [IEditorGroupService, new TestEditorGroupService()], [IEnvironmentService, TestEnvironmentService], [IUntitledEditorService, createSyncDescriptor(UntitledEditorService)], - [ISearchService, createSyncDescriptor(SearchService)] + [ISearchService, createSyncDescriptor(SearchService)], + [ILogService, new NullLogService()] )); const queryOptions: IQueryOptions = { diff --git a/src/vs/workbench/workbench.main.ts b/src/vs/workbench/workbench.main.ts index 2966cea4559..8149e729d2a 100644 --- a/src/vs/workbench/workbench.main.ts +++ b/src/vs/workbench/workbench.main.ts @@ -22,7 +22,7 @@ import 'vs/platform/actions/electron-browser/menusExtensionPoint'; import 'vs/workbench/api/browser/viewsExtensionPoint'; // Localizations -import 'vs/workbench/api/browser/localizationsExtensionPoint'; +import 'vs/platform/localizations/common/localizations'; // Workbench import 'vs/workbench/browser/actions/toggleActivityBarVisibility'; diff --git a/test/smoke/src/main.ts b/test/smoke/src/main.ts index 019ee28cff6..1fb74f4e732 100644 --- a/test/smoke/src/main.ts +++ b/test/smoke/src/main.ts @@ -125,7 +125,7 @@ process.env.VSCODE_KEYBINDINGS_PATH = keybindingsPath; let quality: Quality; if (process.env.VSCODE_DEV === '1') { quality = Quality.Dev; -} else if ((testCodePath.indexOf('Code - Insiders') /* macOS/Windows */ || testCodePath.indexOf('code-insiders') /* Linux */) >= 0) { +} else if ((electronPath.indexOf('Code - Insiders') /* macOS/Windows */ || electronPath.indexOf('code-insiders') /* Linux */) >= 0) { quality = Quality.Insiders; } else { quality = Quality.Stable; diff --git a/yarn.lock b/yarn.lock index 2e08f04186e..d3cb258ba65 100644 --- a/yarn.lock +++ b/yarn.lock @@ -228,6 +228,19 @@ asap@~2.0.3: version "2.0.5" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" +asar@^0.14.0: + version "0.14.0" + resolved "https://registry.yarnpkg.com/asar/-/asar-0.14.0.tgz#998b36a26abd0e590e55d9f92cfd3fd7a6051652" + dependencies: + chromium-pickle-js "^0.2.0" + commander "^2.9.0" + cuint "^0.2.1" + glob "^6.0.4" + minimatch "^3.0.3" + mkdirp "^0.5.0" + mksnapshot "^0.3.0" + tmp "0.0.28" + asn1@0.1.11: version "0.1.11" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" @@ -383,6 +396,13 @@ binary-search-bounds@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/binary-search-bounds/-/binary-search-bounds-2.0.3.tgz#5ff8616d6dd2ca5388bc85b2d6266e2b9da502dc" +binary@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz#9f60553bc5ce8c3386f3b553cff47462adecaa79" + dependencies: + buffers "~0.1.1" + chainsaw "~0.1.0" + binaryextensions@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-1.0.1.tgz#1e637488b35b58bda5f4774bf96a5212a8c90755" @@ -478,6 +498,10 @@ buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" +buffers@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz#b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb" + bufferstreams@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/bufferstreams/-/bufferstreams-1.1.1.tgz#0161373060ac5988eff99058731114f6e195d51e" @@ -549,6 +573,12 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" +chainsaw@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz#5eab50b28afe58074d0d58291388828b5e5fbc98" + dependencies: + traverse ">=0.3.0 <0.4" + chalk@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" @@ -595,6 +625,10 @@ chrome-remote-interface@^0.25.3: commander "2.11.x" ws "3.3.x" +chromium-pickle-js@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" + ci-info@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.1.1.tgz#47b44df118c48d2597b56d342e7e25791060171a" @@ -964,6 +998,10 @@ ctype@0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.3.tgz#82c18c2461f74114ef16c135224ad0b9144ca12f" +cuint@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cuint/-/cuint-0.2.2.tgz#408086d409550c2631155619e9fa7bcadc3b991b" + currently-unhandled@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" @@ -1025,6 +1063,18 @@ decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +decompress-zip@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/decompress-zip/-/decompress-zip-0.3.0.tgz#ae3bcb7e34c65879adfe77e19c30f86602b4bdb0" + dependencies: + binary "^0.3.0" + graceful-fs "^4.1.3" + mkpath "^0.1.0" + nopt "^3.0.1" + q "^1.1.2" + readable-stream "^1.1.8" + touch "0.0.3" + deep-extend@~0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" @@ -1846,7 +1896,7 @@ fs-exists-sync@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" -fs-extra@^0.26.5: +fs-extra@0.26.7, fs-extra@^0.26.5: version "0.26.7" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" dependencies: @@ -2032,6 +2082,16 @@ glob@^4.3.1, glob@~4.5.x: minimatch "^2.0.1" once "^1.3.0" +glob@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" @@ -2105,7 +2165,7 @@ gm@^1.14.2: cross-spawn "^4.0.0" debug "~2.2.0" -graceful-fs@4.1.11, graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: +graceful-fs@4.1.11, graceful-fs@4.X, graceful-fs@^4.0.0, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -3725,6 +3785,18 @@ mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@ dependencies: minimist "0.0.8" +mkpath@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/mkpath/-/mkpath-0.1.0.tgz#7554a6f8d871834cc97b5462b122c4c124d6de91" + +mksnapshot@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/mksnapshot/-/mksnapshot-0.3.1.tgz#2501c05657436d742ce958a4ff92c77e40dd37e6" + dependencies: + decompress-zip "0.3.0" + fs-extra "0.26.7" + request "^2.79.0" + mocha@^2.0.1, mocha@^2.2.5: version "2.5.3" resolved "https://registry.yarnpkg.com/mocha/-/mocha-2.5.3.tgz#161be5bdeb496771eb9b35745050b622b5aefc58" @@ -3837,7 +3909,7 @@ nodegit-promise@~4.0.0: dependencies: asap "~2.0.3" -nopt@3.x, nopt@~3.0.1: +nopt@3.x, nopt@^3.0.1, nopt@~3.0.1: version "3.0.6" resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" dependencies: @@ -4647,6 +4719,15 @@ read@^1.0.7: isarray "0.0.1" string_decoder "~0.10.x" +readable-stream@^1.1.8, readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" @@ -4659,15 +4740,6 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.0.3" util-deprecate "~1.0.1" -readable-stream@~1.1.9: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readable-stream@~2.0.0, readable-stream@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" @@ -4805,7 +4877,7 @@ request@2.79.0, request@~2.79.0: tunnel-agent "~0.4.1" uuid "^3.0.0" -"request@>= 2.44.0 < 3.0.0", request@^2.45.0: +"request@>= 2.44.0 < 3.0.0", request@^2.45.0, request@^2.79.0: version "2.83.0" resolved "https://registry.yarnpkg.com/request/-/request-2.83.0.tgz#ca0b65da02ed62935887808e6f510381034e3356" dependencies: @@ -5455,6 +5527,12 @@ time-stamp@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" +tmp@0.0.28: + version "0.0.28" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" + dependencies: + os-tmpdir "~1.0.1" + tmp@0.0.29: version "0.0.29" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0" @@ -5471,12 +5549,22 @@ to-iso-string@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/to-iso-string/-/to-iso-string-0.0.2.tgz#4dc19e664dfccbe25bd8db508b00c6da158255d1" +touch@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/touch/-/touch-0.0.3.tgz#51aef3d449571d4f287a5d87c9c8b49181a0db1d" + dependencies: + nopt "~1.0.10" + tough-cookie@~2.3.0, tough-cookie@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561" dependencies: punycode "^1.4.1" +"traverse@>=0.3.0 <0.4": + version "0.3.9" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9" + trim-newlines@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" @@ -5897,9 +5985,9 @@ vscode-fsevents@0.3.8: dependencies: nan "^2.3.0" -vscode-nls-dev@3.0.6: - version "3.0.6" - resolved "https://registry.yarnpkg.com/vscode-nls-dev/-/vscode-nls-dev-3.0.6.tgz#8d07a74b09763df0cf10175b8588ed0d7aa52664" +vscode-nls-dev@3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/vscode-nls-dev/-/vscode-nls-dev-3.0.7.tgz#8cfbb371cb3c8f47f247073d9f84a6af357bbfe0" dependencies: clone "^2.1.1" event-stream "^3.3.4" @@ -5924,9 +6012,9 @@ vscode-textmate@^3.2.0: fast-plist "^0.1.2" oniguruma "^6.0.1" -vscode-xterm@3.1.0-beta13: - version "3.1.0-beta13" - resolved "https://registry.yarnpkg.com/vscode-xterm/-/vscode-xterm-3.1.0-beta13.tgz#6f32cd108c2fac59a0e48a859c51101266d8ce97" +vscode-xterm@3.1.0-beta15: + version "3.1.0-beta15" + resolved "https://registry.yarnpkg.com/vscode-xterm/-/vscode-xterm-3.1.0-beta15.tgz#d0b5353fb1fd574ccd023c67c71957b9b0f158c5" vso-node-api@^6.1.2-preview: version "6.1.2-preview"