Merge branch 'master' into aeschli/html-extension

This commit is contained in:
Martin Aeschlimann
2016-09-08 10:52:31 +02:00
636 changed files with 18190 additions and 9537 deletions
+3 -1
View File
@@ -6,7 +6,9 @@
"rules": {
"no-console": 0,
"no-cond-assign": 0,
"no-unused-vars": 1
"no-unused-vars": 1,
"no-extra-semi": "warn",
"semi": "warn"
},
"extends": "eslint:recommended"
}
+9 -20
View File
@@ -17,25 +17,6 @@
"sourceMaps": true,
"outDir": "${workspaceRoot}/out"
},
{
"name": "Stacks Tests",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
"stopOnEntry": false,
"args": [
"--timeout",
"999999",
"--colors",
"-g",
"Stacks"
],
"cwd": "${workspaceRoot}",
"runtimeArgs": [],
"env": {},
"sourceMaps": true,
"outDir": "${workspaceRoot}/out"
},
{
"name": "Attach to Extension Host",
"type": "node",
@@ -91,7 +72,15 @@
"name": "Launch VSCode",
"type": "chrome",
"request": "launch",
"runtimeExecutable": "${workspaceRoot}/scripts/code.bat",
"windows": {
"runtimeExecutable": "${workspaceRoot}/scripts/code.bat"
},
"osx": {
"runtimeExecutable": "${workspaceRoot}/scripts/code.sh"
},
"linux": {
"runtimeExecutable": "${workspaceRoot}/scripts/code.sh"
},
"sourceMaps": true
},
{
+7 -1
View File
@@ -17,5 +17,11 @@
"tslint.enable": true,
"tslint.rulesDirectory": "build/lib/tslint",
"lcov.path": ["./.build/coverage/lcov.info", "./.build/coverage-single/lcov.info"],
"lcov.watcherExec.windows": "${workspaceRoot}\\scripts\\test.bat --coverage --run ${file.replace(/^src/,'out').replace(/\\.ts$/,'.js')}"
"lcov.watch": [{
"pattern": "**/*.test.js",
"command": "${workspaceRoot}\\scripts\\test.sh --coverage --run ${file}",
"windows": {
"command": "${workspaceRoot}\\scripts\\test.bat --coverage --run ${file}"
}
}]
}
+30
View File
@@ -6,6 +6,36 @@
"license": "MIT",
"isProd": true
},
{
"isLicense": true,
"name": "async-each",
"repositoryURL": "https://github.com/paulmillr/async-each",
"license": "MIT",
"licenseDetail": [
"The MIT License (MIT)",
"",
"Copyright (c) 2016 Paul Miller [(paulmillr.com)](http://paulmillr.com)",
"",
"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."
],
"isProd": true
},
{
"name": "chromium",
"version": "49.0.2623.75",
+4 -1
View File
@@ -43,4 +43,7 @@ Many of the core components and extensions to Code live in their own repositorie
For a complete list, please see the [Related Projects](https://github.com/Microsoft/vscode/wiki/Related-Projects) page on our wiki.
## License
[MIT](LICENSE.txt)
Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the [MIT](LICENSE.txt) License.
+85 -114
View File
@@ -23,40 +23,40 @@ This project incorporates components from the projects listed below. The origina
16. language-go version 0.39.0 (https://github.com/atom/language-go)
17. language-php version 0.29.0 (https://github.com/atom/language-php)
18. language-rust version 0.4.4 (https://github.com/zargony/atom-language-rust)
19. Microsoft/TypeScript-TmLanguage version 0.0.1 (https://github.com/Microsoft/TypeScript-TmLanguage)
20. mmcgrana/textmate-clojure (https://github.com/mmcgrana/textmate-clojure)
21. octicons-code version 3.1.0 (https://octicons.github.com)
22. octicons-font version 3.1.0 (https://octicons.github.com)
23. string_scorer version 0.1.20 (https://github.com/joshaven/string_score)
24. sublimehq/Packages (https://github.com/sublimehq/Packages)
25. SublimeText/PowerShell (https://github.com/SublimeText/PowerShell)
26. textmate/asp.vb.net.tmbundle (https://github.com/textmate/asp.vb.net.tmbundle)
27. textmate/c.tmbundle (https://github.com/textmate/c.tmbundle)
28. textmate/coffee-script.tmbundle (https://github.com/textmate/coffee-script.tmbundle)
29. textmate/css.tmbundle (https://github.com/textmate/css.tmbundle)
30. textmate/diff.tmbundle (https://github.com/textmate/diff.tmbundle)
31. textmate/git.tmbundle (https://github.com/textmate/git.tmbundle)
32. textmate/groovy.tmbundle (https://github.com/textmate/groovy.tmbundle)
33. textmate/html.tmbundle (https://github.com/textmate/html.tmbundle)
34. textmate/ini.tmbundle (https://github.com/textmate/ini.tmbundle)
35. textmate/java.tmbundle (https://github.com/textmate/java.tmbundle)
36. textmate/javascript.tmbundle (https://github.com/textmate/javascript.tmbundle)
37. textmate/less.tmbundle (https://github.com/textmate/less.tmbundle)
38. textmate/lua.tmbundle (https://github.com/textmate/lua.tmbundle)
39. textmate/make.tmbundle (https://github.com/textmate/make.tmbundle)
40. textmate/markdown.tmbundle (https://github.com/textmate/markdown.tmbundle)
41. textmate/objective-c.tmbundle (https://github.com/textmate/objective-c.tmbundle)
42. textmate/perl.tmbundle (https://github.com/textmate/perl.tmbundle)
43. textmate/php.tmbundle (https://github.com/textmate/php.tmbundle)
44. textmate/python.tmbundle (https://github.com/textmate/python.tmbundle)
45. textmate/r.tmbundle (https://github.com/textmate/r.tmbundle)
46. textmate/ruby.tmbundle (https://github.com/textmate/ruby.tmbundle)
47. textmate/shellscript.tmbundle (https://github.com/textmate/shellscript.tmbundle)
48. textmate/sql.tmbundle (https://github.com/textmate/sql.tmbundle)
49. textmate/xml.tmbundle (https://github.com/textmate/xml.tmbundle)
50. textmate/yaml.tmbundle (https://github.com/textmate/yaml.tmbundle)
51. typescript version 1.5 (https://github.com/Microsoft/TypeScript)
52. typescript version 1.8.2 (https://github.com/Microsoft/TypeScript)
19. MagicStack/MagicPython (https://github.com/MagicStack/MagicPython)
20. Microsoft/TypeScript-TmLanguage version 0.0.1 (https://github.com/Microsoft/TypeScript-TmLanguage)
21. mmcgrana/textmate-clojure (https://github.com/mmcgrana/textmate-clojure)
22. octicons-code version 3.1.0 (https://octicons.github.com)
23. octicons-font version 3.1.0 (https://octicons.github.com)
24. seti-ui version 0.1.0 (https://github.com/jesseweed/seti-ui)
25. string_scorer version 0.1.20 (https://github.com/joshaven/string_score)
26. sublimehq/Packages (https://github.com/sublimehq/Packages)
27. SublimeText/PowerShell (https://github.com/SublimeText/PowerShell)
28. textmate/asp.vb.net.tmbundle (https://github.com/textmate/asp.vb.net.tmbundle)
29. textmate/c.tmbundle (https://github.com/textmate/c.tmbundle)
30. textmate/coffee-script.tmbundle (https://github.com/textmate/coffee-script.tmbundle)
31. textmate/css.tmbundle (https://github.com/textmate/css.tmbundle)
32. textmate/diff.tmbundle (https://github.com/textmate/diff.tmbundle)
33. textmate/git.tmbundle (https://github.com/textmate/git.tmbundle)
34. textmate/groovy.tmbundle (https://github.com/textmate/groovy.tmbundle)
35. textmate/html.tmbundle (https://github.com/textmate/html.tmbundle)
36. textmate/ini.tmbundle (https://github.com/textmate/ini.tmbundle)
37. textmate/java.tmbundle (https://github.com/textmate/java.tmbundle)
38. textmate/javascript.tmbundle (https://github.com/textmate/javascript.tmbundle)
39. textmate/less.tmbundle (https://github.com/textmate/less.tmbundle)
40. textmate/lua.tmbundle (https://github.com/textmate/lua.tmbundle)
41. textmate/make.tmbundle (https://github.com/textmate/make.tmbundle)
42. textmate/markdown.tmbundle (https://github.com/textmate/markdown.tmbundle)
43. textmate/objective-c.tmbundle (https://github.com/textmate/objective-c.tmbundle)
44. textmate/perl.tmbundle (https://github.com/textmate/perl.tmbundle)
45. textmate/php.tmbundle (https://github.com/textmate/php.tmbundle)
46. textmate/r.tmbundle (https://github.com/textmate/r.tmbundle)
47. textmate/ruby.tmbundle (https://github.com/textmate/ruby.tmbundle)
48. textmate/shellscript.tmbundle (https://github.com/textmate/shellscript.tmbundle)
49. textmate/sql.tmbundle (https://github.com/textmate/sql.tmbundle)
50. textmate/xml.tmbundle (https://github.com/textmate/xml.tmbundle)
51. textmate/yaml.tmbundle (https://github.com/textmate/yaml.tmbundle)
52. typescript version 1.5 (https://github.com/Microsoft/TypeScript)
53. TypeScript-TmLanguage version 0.1.8 (https://github.com/Microsoft/TypeScript-TmLanguage)
54. unity-shader-files version 0.1.0 (https://github.com/nashella/unity-shader-files)
55. vscode-swift version 0.0.1 (https://github.com/owensd/vscode-swift)
@@ -784,6 +784,32 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
=========================================
END OF language-rust NOTICES AND INFORMATION
%% MagicStack/MagicPython NOTICES AND INFORMATION BEGIN HERE
=========================================
The MIT License
Copyright (c) 2015 MagicStack Inc. http://magic.io
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 MagicStack/MagicPython NOTICES AND INFORMATION
%% Microsoft/TypeScript-TmLanguage NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright (c) Microsoft Corporation. All rights reserved.
@@ -1110,6 +1136,31 @@ OTHER DEALINGS IN THE FONT SOFTWARE.
=========================================
END OF octicons-font NOTICES AND INFORMATION
%% seti-ui NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright (c) 2014 Jesse Weed
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 seti-ui NOTICES AND INFORMATION
%% string_scorer NOTICES AND INFORMATION BEGIN HERE
=========================================
This software is released under the MIT license:
@@ -1514,24 +1565,6 @@ to the base-name name of the original file, and an extension of txt, html, or si
=========================================
END OF textmate/php.tmbundle NOTICES AND INFORMATION
%% textmate/python.tmbundle NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright (c) textmate-python.tmbundle project authors
If not otherwise specified (see below), files in this repository fall under the following license:
Permission to copy, use, modify, sell and distribute this
software is granted. This software is provided "as is" without
express or implied warranty, and with no claim as to its
suitability for any purpose.
An exception is made for files in readable text which contain their own license information,
or files where an accompanying file exists (in the same directory) with a "-license" suffix added
to the base-name name of the original file, and an extension of txt, html, or similar. For example
"tidy" is accompanied by "tidy-license.txt".
=========================================
END OF textmate/python.tmbundle NOTICES AND INFORMATION
%% textmate/r.tmbundle NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright (c) textmate-r.tmbundle project authors
@@ -1697,68 +1730,6 @@ END OF TERMS AND CONDITIONS
=========================================
END OF typescript NOTICES AND INFORMATION
%% typescript NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright (c) Microsoft Corporation. All rights reserved.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and
You must cause any modified files to carry prominent notices stating that You changed the files; and
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
=========================================
END OF typescript NOTICES AND INFORMATION
%% TypeScript-TmLanguage NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright (c) Microsoft Corporation. All rights reserved.
+4 -1
View File
@@ -3,7 +3,8 @@ environment:
VSCODE_BUILD_VERBOSE: true
install:
- ps: Install-Product node 5.10.1 x64
- ps: Install-Product node 6.5.0 x64
- npm install -g npm
- npm install -g gulp mocha
build_script:
@@ -12,5 +13,7 @@ build_script:
- gulp compile
test_script:
- node --version
- npm --version
- .\scripts\test.bat
- .\scripts\test-integration.bat
+3 -2
View File
@@ -32,6 +32,7 @@ var editorResources = [
'!out-build/vs/base/browser/ui/splitview/**/*',
'!out-build/vs/base/browser/ui/toolbar/**/*',
'!out-build/vs/base/browser/ui/octiconLabel/**/*',
'!out-build/vs/editor/contrib/defineKeybinding/**/*',
'out-build/vs/base/worker/workerMainCompatibility.html',
'out-build/vs/base/worker/workerMain.{js,js.map}',
'!out-build/vs/workbench/**',
@@ -59,7 +60,8 @@ function editorLoaderConfig() {
// never ship octicons in editor
result.paths['vs/base/browser/ui/octiconLabel/octiconLabel'] = 'out-build/vs/base/browser/ui/octiconLabel/octiconLabel.mock';
result['vs/css'] = { inlineResources: true };
// force css inlining to use base64 -- see https://github.com/Microsoft/monaco-editor/issues/148
result['vs/css'] = { inlineResources: 'base64' };
return result;
}
@@ -84,7 +86,6 @@ gulp.task('editor-distro', ['clean-editor-distro', 'minify-editor', 'optimize-ed
// other assets
es.merge(
gulp.src('build/monaco/LICENSE'),
gulp.src('build/monaco/CHANGELOG.md'),
gulp.src('build/monaco/ThirdPartyNotices.txt'),
gulp.src('src/vs/monaco.d.ts')
).pipe(gulp.dest('out-monaco-editor-core')),
+4 -4
View File
@@ -11,7 +11,7 @@ const path = require('path');
const es = require('event-stream');
const azure = require('gulp-azure-storage');
const electron = require('gulp-atom-electron');
const symdest = require('gulp-symdest');
const vfs = require('vinyl-fs');
const rename = require('gulp-rename');
const replace = require('gulp-replace');
const filter = require('gulp-filter');
@@ -130,7 +130,7 @@ gulp.task('electron', ['clean-electron'], () => {
.pipe(json({ name }))
.pipe(electron(opts))
.pipe(filter(['**', '!**/app/package.json']))
.pipe(symdest('.build/electron'));
.pipe(vfs.dest('.build/electron'));
});
const languages = ['chs', 'cht', 'jpn', 'kor', 'deu', 'fra', 'esn', 'rus', 'ita'];
@@ -186,7 +186,7 @@ function packageTask(platform, arch, opts) {
const productJsonStream = gulp.src(['product.json'], { base: '.' })
.pipe(json({ commit, date }));
const license = gulp.src(['Credits_*', 'LICENSE.txt', 'ThirdPartyNotices.txt', 'licenses/**'], { base: '.' });
const license = gulp.src(['LICENSES.chromium.html', 'LICENSE.txt', 'ThirdPartyNotices.txt', 'licenses/**'], { base: '.' });
// TODO the API should be copied to `out` during compile, not here
const api = gulp.src('src/vs/vscode.d.ts').pipe(rename('out/vs/vscode.d.ts'));
@@ -243,7 +243,7 @@ function packageTask(platform, arch, opts) {
.pipe(rename('bin/' + product.applicationName)));
}
return result.pipe(symdest(destination));
return result.pipe(vfs.dest(destination));
};
}
+17 -10
View File
@@ -10,13 +10,13 @@ const replace = require('gulp-replace');
const rename = require('gulp-rename');
const shell = require('gulp-shell');
const es = require('event-stream');
const symdest = require('gulp-symdest');
const vfs = require('vinyl-fs');
const util = require('./lib/util');
const packageJson = require('../package.json');
const product = require('../product.json');
function getDebPackageArch(arch) {
return { x64: 'amd64', ia32: 'i386' }[arch];
return { x64: 'amd64', ia32: 'i386', arm: 'armhf' }[arch];
}
const linuxPackageRevision = Math.floor(new Date().getTime() / 1000);
@@ -55,29 +55,29 @@ function prepareDebPackage(arch) {
const prerm = gulp.src('resources/linux/debian/prerm.template', { base: '.' })
.pipe(replace('@@NAME@@', product.applicationName))
.pipe(rename('DEBIAN/prerm'))
.pipe(rename('DEBIAN/prerm'));
const postrm = gulp.src('resources/linux/debian/postrm.template', { base: '.' })
.pipe(replace('@@NAME@@', product.applicationName))
.pipe(rename('DEBIAN/postrm'))
.pipe(rename('DEBIAN/postrm'));
const postinst = gulp.src('resources/linux/debian/postinst.template', { base: '.' })
.pipe(replace('@@NAME@@', product.applicationName))
.pipe(replace('@@ARCHITECTURE@@', debArch))
.pipe(replace('@@QUALITY@@', product.quality || '@@QUALITY@@'))
.pipe(replace('@@UPDATEURL@@', product.updateUrl || '@@UPDATEURL@@'))
.pipe(rename('DEBIAN/postinst'))
.pipe(rename('DEBIAN/postinst'));
const all = es.merge(control, postinst, postrm, prerm, desktop, icon, code);
return all.pipe(symdest(destination));
return all.pipe(vfs.dest(destination));
};
}
function buildDebPackage(arch) {
const debArch = getDebPackageArch(arch);
return shell.task([
'chmod 755 ' + product.applicationName + '-' + debArch + '/DEBIAN/postinst ' + product.applicationName + '-' + debArch + '/DEBIAN/prerm',
'chmod 755 ' + product.applicationName + '-' + debArch + '/DEBIAN/postinst ' + product.applicationName + '-' + debArch + '/DEBIAN/prerm ' + product.applicationName + '-' + debArch + '/DEBIAN/postrm',
'mkdir -p deb',
'fakeroot dpkg-deb -b ' + product.applicationName + '-' + debArch + ' deb',
'dpkg-scanpackages deb /dev/null > Packages'
@@ -89,7 +89,7 @@ function getRpmBuildPath(rpmArch) {
}
function getRpmPackageArch(arch) {
return { x64: 'x86_64', ia32: 'i386' }[arch];
return { x64: 'x86_64', ia32: 'i386', arm: 'armhf' }[arch];
}
function prepareRpmPackage(arch) {
@@ -124,8 +124,8 @@ function prepareRpmPackage(arch) {
const all = es.merge(code, desktop, icon, spec, specIcon);
return all.pipe(symdest(getRpmBuildPath(rpmArch)));
}
return all.pipe(vfs.dest(getRpmBuildPath(rpmArch)));
};
}
function buildRpmPackage(arch) {
@@ -133,6 +133,7 @@ function buildRpmPackage(arch) {
const rpmBuildPath = getRpmBuildPath(rpmArch);
const rpmOut = rpmBuildPath + '/RPMS/' + rpmArch;
const destination = '.build/linux/rpm/' + rpmArch;
return shell.task([
'mkdir -p ' + destination,
'HOME="$(pwd)/' + destination + '" fakeroot rpmbuild -bb ' + rpmBuildPath + '/SPECS/' + product.applicationName + '.spec --target=' + rpmArch,
@@ -143,15 +144,21 @@ function buildRpmPackage(arch) {
gulp.task('clean-vscode-linux-ia32-deb', util.rimraf('.build/linux/deb/i386'));
gulp.task('clean-vscode-linux-x64-deb', util.rimraf('.build/linux/deb/amd64'));
gulp.task('clean-vscode-linux-arm-deb', util.rimraf('.build/linux/deb/armhf'));
gulp.task('clean-vscode-linux-ia32-rpm', util.rimraf('.build/linux/rpm/i386'));
gulp.task('clean-vscode-linux-x64-rpm', util.rimraf('.build/linux/rpm/x86_64'));
gulp.task('clean-vscode-linux-arm-rpm', util.rimraf('.build/linux/rpm/armhf'));
gulp.task('vscode-linux-ia32-prepare-deb', ['clean-vscode-linux-ia32-deb', 'vscode-linux-ia32-min'], prepareDebPackage('ia32'));
gulp.task('vscode-linux-x64-prepare-deb', ['clean-vscode-linux-x64-deb', 'vscode-linux-x64-min'], prepareDebPackage('x64'));
gulp.task('vscode-linux-arm-prepare-deb', ['clean-vscode-linux-arm-deb', 'vscode-linux-arm-min'], prepareDebPackage('armhf'));
gulp.task('vscode-linux-ia32-build-deb', ['vscode-linux-ia32-prepare-deb'], buildDebPackage('ia32'));
gulp.task('vscode-linux-x64-build-deb', ['vscode-linux-x64-prepare-deb'], buildDebPackage('x64'));
gulp.task('vscode-linux-arm-build-deb', ['vscode-linux-arm-prepare-deb'], buildDebPackage('armhf'));
gulp.task('vscode-linux-ia32-prepare-rpm', ['clean-vscode-linux-ia32-rpm', 'vscode-linux-ia32-min'], prepareRpmPackage('ia32'));
gulp.task('vscode-linux-x64-prepare-rpm', ['clean-vscode-linux-x64-rpm', 'vscode-linux-x64-min'], prepareRpmPackage('x64'));
gulp.task('vscode-linux-arm-prepare-rpm', ['clean-vscode-linux-arm-rpm', 'vscode-linux-arm-min'], prepareRpmPackage('armhf'));
gulp.task('vscode-linux-ia32-build-rpm', ['vscode-linux-ia32-prepare-rpm'], buildRpmPackage('ia32'));
gulp.task('vscode-linux-x64-build-rpm', ['vscode-linux-x64-prepare-rpm'], buildRpmPackage('x64'));
gulp.task('vscode-linux-arm-build-rpm', ['vscode-linux-arm-prepare-rpm'], buildRpmPackage('armhf'));
+1 -1
View File
@@ -161,7 +161,7 @@ function extractStrings(destFiles) {
destFile.sources.forEach(function (source) {
source.contents = source.contents.replace(/define\(("[^"]+"),\s*\[(((, )?("|')[^"']+("|'))+)\]/, function (_, moduleMatch, depsMatch) {
var defineCall = parseDefineCall(moduleMatch, depsMatch);
return "define(__m[" + replacementMap[defineCall.module] + "], __M([" + defineCall.deps.map(function (dep) { return replacementMap[dep]; }).join(',') + "])";
return "define(__m[" + replacementMap[defineCall.module] + "/*" + defineCall.module + "*/], __M([" + defineCall.deps.map(function (dep) { return replacementMap[dep] + '/*' + dep + '*/'; }).join(',') + "])";
});
});
destFile.sources.unshift({
+1 -1
View File
@@ -268,7 +268,7 @@ function extractStrings(destFiles:IConcatFile[]):IConcatFile[] {
destFile.sources.forEach((source) => {
source.contents = source.contents.replace(/define\(("[^"]+"),\s*\[(((, )?("|')[^"']+("|'))+)\]/, (_, moduleMatch, depsMatch) => {
let defineCall = parseDefineCall(moduleMatch, depsMatch);
return `define(__m[${replacementMap[defineCall.module]}], __M([${defineCall.deps.map(dep => replacementMap[dep]).join(',')}])`;
return `define(__m[${replacementMap[defineCall.module]}/*${defineCall.module}*/], __M([${defineCall.deps.map(dep => replacementMap[dep] + '/*' + dep + '*/').join(',')}])`;
});
});
-20
View File
@@ -1,20 +0,0 @@
# Monaco Editor Change log
## [0.5.1]
- Fixed mouse handling in IE
## [0.5.0]
### Breaking changes
- `monaco.editor.createWebWorker` now loads the AMD module and calls `create` and passes in as first argument a context of type `monaco.worker.IWorkerContext` and as second argument the `initData`. This breaking change was needed to allow handling the case of misconfigured web workers (running on a file protocol or the cross-domain case)
- the `CodeActionProvider.provideCodeActions` now gets passed in a `CodeActionContext` that contains the markers at the relevant range.
- the `hoverMessage` of a decoration is now a `MarkedString | MarkedString[]`
- the `contents` of a `Hover` returned by a `HoverProvider` is now a `MarkedString | MarkedString[]`
- removed deprecated `IEditor.onDidChangeModelRawContent`, `IModel.onDidChangeRawContent`
### Notable fixes
- Broken configurations (loading from `file://` or misconfigured cross-domain loading) now load the web worker code in the UI thread. This caused a breaking change in the behaviour of `monaco.editor.createWebWorker`
- The right-pointing mouse pointer is oversized in high DPI - [issue](https://github.com/Microsoft/monaco-editor/issues/5)
- The editor functions now correctly when hosted inside a `position:fixed` element.
- Cross origin configuration is now picked up (as advertised in documentation from MonacoEnvironment)
+22
View File
@@ -8,6 +8,28 @@ herein, whether by implication, estoppel or otherwise.
%% winjs version 4.4.0 (https://github.com/winjs/winjs)
=========================================
WinJS
Copyright (c) Microsoft Corporation
All rights reserved.
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.
=========================================
END OF winjs NOTICES AND INFORMATION
%% HTML 5.1 W3C Working Draft version 08 October 2015 (http://www.w3.org/TR/2015/WD-html51-20151008/)
=========================================
Copyright © 2015 W3C® (MIT, ERCIM, Keio, Beihang). This software or document includes material copied
+1
View File
@@ -53,6 +53,7 @@ declare module monaco {
declare module monaco.editor {
#includeAll(vs/editor/browser/standalone/standaloneEditor;modes.=>languages.):
#include(vs/editor/common/services/webWorker): MonacoWebWorker, IWebWorkerOptions
#include(vs/editor/browser/standalone/standaloneCodeEditor): IEditorConstructionOptions, IDiffEditorConstructionOptions, IStandaloneCodeEditor, IStandaloneDiffEditor
export interface ICommandHandler {
(...args:any[]): void;
+1 -1
View File
@@ -1,7 +1,7 @@
{
"name": "monaco-editor-core",
"private": true,
"version": "0.5.3",
"version": "0.6.1",
"description": "A browser based code editor",
"author": "Microsoft Corporation",
"license": "MIT",
+1
View File
@@ -47,6 +47,7 @@ Name: "traditionalChinese"; MessagesFile: "{#RepoDir}\build\win32\i18n\Default.z
Type: filesandordirs; Name: {app}\resources\app\plugins
Type: filesandordirs; Name: {app}\resources\app\extensions
Type: filesandordirs; Name: {app}\resources\app\node_modules
Type: files; Name: {app}\resources\app\Credits_45.0.2454.85.html
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"
+1 -1
View File
@@ -28,7 +28,7 @@ export function activateColorDecorations(decoratorProvider: (uri: string) => The
let colorsDecorationType = window.createTextEditorDecorationType(decorationType);
disposables.push(colorsDecorationType);
let pendingUpdateRequests : { [key:string]:number; } = {};
let pendingUpdateRequests : { [key:string]: NodeJS.Timer; } = {};
// we care about all visible editors
window.visibleTextEditors.forEach(editor => {
+8 -8
View File
@@ -3,19 +3,19 @@
"version": "0.1.0",
"dependencies": {
"vscode-jsonrpc": {
"version": "2.2.0",
"from": "vscode-jsonrpc@>=2.2.0 <3.0.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-2.2.0.tgz"
"version": "2.3.2-next.5",
"from": "vscode-jsonrpc@>=2.3.2-next.2 <3.0.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-2.3.2-next.5.tgz"
},
"vscode-languageclient": {
"version": "2.4.2-next.3",
"version": "2.4.2-next.22",
"from": "vscode-languageclient@next",
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-2.4.2-next.3.tgz"
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-2.4.2-next.22.tgz"
},
"vscode-languageserver-types": {
"version": "1.0.1",
"from": "vscode-languageserver-types@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-1.0.1.tgz"
"version": "1.0.3",
"from": "vscode-languageserver-types@>=1.0.3 <2.0.0",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-1.0.3.tgz"
},
"vscode-nls": {
"version": "1.0.7",
+1 -1
View File
@@ -646,7 +646,7 @@
}
},
"dependencies": {
"vscode-languageclient": "^2.4.2-next.3",
"vscode-languageclient": "^2.4.2-next.22",
"vscode-nls": "^1.0.7"
}
}
+18 -10
View File
@@ -3,23 +3,31 @@
"version": "1.0.0",
"dependencies": {
"vscode-css-languageservice": {
"version": "1.0.7-next.2",
"from": "vscode-css-languageservice@1.0.7-next.2"
"version": "1.0.9-next.1",
"from": "vscode-css-languageservice@next",
"resolved": "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-1.0.9-next.1.tgz"
},
"vscode-jsonrpc": {
"version": "2.2.0",
"from": "vscode-jsonrpc@>=2.2.0 <3.0.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-2.2.0.tgz"
"version": "2.3.2-next.5",
"from": "vscode-jsonrpc@>=2.3.2-next.2 <3.0.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-2.3.2-next.5.tgz"
},
"vscode-languageserver": {
"version": "2.4.0-next.4",
"version": "2.4.0-next.12",
"from": "vscode-languageserver@next",
"resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-2.4.0-next.4.tgz"
"resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-2.4.0-next.12.tgz",
"dependencies": {
"vscode-languageserver-types": {
"version": "1.0.3",
"from": "vscode-languageserver-types@>=1.0.3 <2.0.0",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-1.0.3.tgz"
}
}
},
"vscode-languageserver-types": {
"version": "1.0.1",
"from": "vscode-languageserver-types@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-1.0.1.tgz"
"version": "1.0.3",
"from": "vscode-languageserver-types@>=1.0.3 <2.0.0",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-1.0.3.tgz"
},
"vscode-nls": {
"version": "1.0.7",
+2 -2
View File
@@ -8,8 +8,8 @@
"node": "*"
},
"dependencies": {
"vscode-css-languageservice": "^1.0.7-next.2",
"vscode-languageserver": "^2.4.0-next.4"
"vscode-css-languageservice": "^1.0.9-next.1",
"vscode-languageserver": "^2.4.0-next.12"
},
"scripts": {
"compile": "gulp compile-extension:css-server",
+2 -2
View File
@@ -44,7 +44,7 @@ connection.onShutdown(() => {
});
// After the server has started the client sends an initilize request. The server receives
// in the passed params the rootPath of the workspace plus the client capabilites.
// in the passed params the rootPath of the workspace plus the client capabilities.
connection.onInitialize((params: InitializeParams): InitializeResult => {
return {
capabilities: {
@@ -90,7 +90,7 @@ function updateConfiguration(settings: Settings) {
documents.all().forEach(triggerValidation);
}
let pendingValidationRequests : {[uri:string]:number} = {};
let pendingValidationRequests : { [uri:string]: NodeJS.Timer } = {};
const validationDelayMs = 200;
// The content of a text document has changed. This event is emitted
+10 -34
View File
@@ -4,40 +4,16 @@
*--------------------------------------------------------------------------------------------*/
/// <reference path="../src/vs/vscode.d.ts" />
/// <reference path="../src/typings/mocha.d.ts" />
/// <reference path="./node.d.ts" />
declare var define: {
(moduleName: string, dependencies: string[], callback: (...args: any[]) => any): any;
(moduleName: string, dependencies: string[], definition: any): any;
(moduleName: string, callback: (...args: any[]) => any): any;
(moduleName: string, definition: any): any;
(dependencies: string[], callback: (...args: any[]) => any): any;
(dependencies: string[], definition: any): any;
};
declare var require: {
toUrl(path: string): string;
(moduleName: string): any;
(dependencies: string[], callback: (...args: any[]) => any, errorback?: (err: any) => void): any;
config(data: any): any;
onError: Function;
__$__nodeRequire<T>(moduleName: string): T;
};
// Declaring the following because the code gets compiled with es5, which lack definitions for console and timers.
declare var console: {
info(message?: any, ...optionalParams: any[]): void;
profile(reportName?: string): void;
assert(test?: boolean, message?: string, ...optionalParams: any[]): void;
clear(): void;
dir(value?: any, ...optionalParams: any[]): void;
warn(message?: any, ...optionalParams: any[]): void;
error(message?: any, ...optionalParams: any[]): void;
log(message?: any, ...optionalParams: any[]): void;
profileEnd(): void;
};
declare function clearTimeout(handle: number): void;
declare function setTimeout(handler: any, timeout?: any, ...args: any[]): number;
declare function clearInterval(handle: number): void;
declare function setInterval(handler: any, timeout?: any, ...args: any[]): number;
assert(value: any, message?: string, ...optionalParams: any[]): void;
dir(obj: any, options?: {showHidden?: boolean, depth?: number, colors?: boolean}): void;
error(message?: any, ...optionalParams: any[]): void;
info(message?: any, ...optionalParams: any[]): void;
log(message?: any, ...optionalParams: any[]): void;
time(label: string): void;
timeEnd(label: string): void;
trace(message?: any, ...optionalParams: any[]): void;
warn(message?: any, ...optionalParams: any[]): void;
};
@@ -8,6 +8,7 @@ import {MarkedString, CompletionItemKind, CompletionItem, DocumentSelector} from
import {IJSONContribution, ISuggestionsCollector} from './jsonContributions';
import {XHRRequest} from 'request-light';
import {Location} from 'jsonc-parser';
import {textToMarkedString} from './markedTextUtil';
import * as nls from 'vscode-nls';
const localize = nls.loadMessageBundle();
@@ -173,7 +174,7 @@ export class BowerJSONContribution implements IJSONContribution {
htmlContent.push(localize('json.bower.package.hover', '{0}', pack));
return this.getInfo(pack).then(documentation => {
if (documentation) {
htmlContent.push({ language: 'string', value: documentation});
htmlContent.push(textToMarkedString(documentation));
}
return htmlContent;
});
@@ -2,15 +2,10 @@
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
// Container Identifiers
export const Identifiers = {
WORKBENCH_CONTAINER: 'workbench.main.container',
ACTIVITYBAR_PART: 'workbench.parts.activitybar',
SIDEBAR_PART: 'workbench.parts.sidebar',
PANEL_PART: 'workbench.parts.panel',
EDITOR_PART: 'workbench.parts.editor',
STATUSBAR_PART: 'workbench.parts.statusbar'
};
import {MarkedString} from 'vscode';
export function textToMarkedString(text: string) : MarkedString {
return text.replace(/[\\`*_{}[\]()#+\-.!]/g, '\\$&'); // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash
}
@@ -8,6 +8,7 @@ import {MarkedString, CompletionItemKind, CompletionItem, DocumentSelector} from
import {IJSONContribution, ISuggestionsCollector} from './jsonContributions';
import {XHRRequest} from 'request-light';
import {Location} from 'jsonc-parser';
import {textToMarkedString} from './markedTextUtil';
import * as nls from 'vscode-nls';
const localize = nls.loadMessageBundle();
@@ -121,29 +122,29 @@ export class PackageJSONContribution implements IJSONContribution {
if ((location.matches(['dependencies', '*']) || location.matches(['devDependencies', '*']) || location.matches(['optionalDependencies', '*']) || location.matches(['peerDependencies', '*']))) {
let currentKey = location.path[location.path.length - 1];
if (typeof currentKey === 'string') {
let queryUrl = 'http://registry.npmjs.org/' + encodeURIComponent(currentKey) + '/latest';
let queryUrl = 'http://registry.npmjs.org/' + encodeURIComponent(currentKey).replace('%40', '@');
return this.xhr({
url : queryUrl
}).then((success) => {
try {
let obj = JSON.parse(success.responseText);
if (obj && obj.version) {
let version = obj.version;
let name = JSON.stringify(version);
let latest = obj && obj['dist-tags'] && obj['dist-tags']['latest'];
if (latest) {
let name = JSON.stringify(latest);
let proposal = new CompletionItem(name);
proposal.kind = CompletionItemKind.Property;
proposal.insertText = name;
proposal.documentation = localize('json.npm.latestversion', 'The currently latest version of the package');
result.add(proposal);
name = JSON.stringify('^' + version);
name = JSON.stringify('^' + latest);
proposal = new CompletionItem(name);
proposal.kind = CompletionItemKind.Property;
proposal.insertText = name;
proposal.documentation = localize('json.npm.majorversion', 'Matches the most recent major version (1.x.x)');
result.add(proposal);
name = JSON.stringify('~' + version);
name = JSON.stringify('~' + latest);
proposal = new CompletionItem(name);
proposal.kind = CompletionItemKind.Property;
proposal.insertText = name;
@@ -179,8 +180,8 @@ export class PackageJSONContribution implements IJSONContribution {
}
private getInfo(pack: string): Thenable<string[]> {
let queryUrl = 'http://registry.npmjs.org/' + encodeURIComponent(pack) + '/latest';
let queryUrl = 'http://registry.npmjs.org/' + encodeURIComponent(pack).replace('%40', '@');
return this.xhr({
url : queryUrl
}).then((success) => {
@@ -191,8 +192,9 @@ export class PackageJSONContribution implements IJSONContribution {
if (obj.description) {
result.push(obj.description);
}
if (obj.version) {
result.push(localize('json.npm.version.hover', 'Latest version: {0}', obj.version));
let latest = obj && obj['dist-tags'] && obj['dist-tags']['latest'];
if (latest) {
result.push(localize('json.npm.version.hover', 'Latest version: {0}', latest));
}
return result;
}
@@ -213,7 +215,7 @@ export class PackageJSONContribution implements IJSONContribution {
htmlContent.push(localize('json.npm.package.hover', '{0}', pack));
return this.getInfo(pack).then(infos => {
infos.forEach(info => {
htmlContent.push({language: 'string', value: info});
htmlContent.push(textToMarkedString(info));
});
return htmlContent;
});
+8 -8
View File
@@ -13,19 +13,19 @@
"resolved": "https://registry.npmjs.org/vscode-extension-telemetry/-/vscode-extension-telemetry-0.0.5.tgz"
},
"vscode-jsonrpc": {
"version": "2.2.0",
"from": "vscode-jsonrpc@>=2.2.0 <3.0.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-2.2.0.tgz"
"version": "2.3.2-next.5",
"from": "vscode-jsonrpc@>=2.3.2-next.2 <3.0.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-2.3.2-next.5.tgz"
},
"vscode-languageclient": {
"version": "2.4.2-next.3",
"version": "2.4.2-next.22",
"from": "vscode-languageclient@next",
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-2.4.2-next.3.tgz"
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-2.4.2-next.22.tgz"
},
"vscode-languageserver-types": {
"version": "1.0.1",
"from": "vscode-languageserver-types@>=1.0.0 <2.0.0",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-1.0.1.tgz"
"version": "1.0.3",
"from": "vscode-languageserver-types@>=1.0.3 <2.0.0",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-1.0.3.tgz"
},
"vscode-nls": {
"version": "1.0.7",
+1 -1
View File
@@ -98,7 +98,7 @@
},
"dependencies": {
"vscode-extension-telemetry": "^0.0.5",
"vscode-languageclient": "^2.4.2-next.3",
"vscode-languageclient": "^2.4.2-next.22",
"vscode-nls": "^1.0.7"
}
}
+23 -11
View File
@@ -43,29 +43,41 @@
"resolved": "https://registry.npmjs.org/request-light/-/request-light-0.1.0.tgz"
},
"vscode-json-languageservice": {
"version": "1.1.4",
"from": "vscode-json-languageservice@1.1.4",
"resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-1.1.4.tgz"
"version": "1.1.8-next.1",
"from": "vscode-json-languageservice@next",
"resolved": "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-1.1.8-next.1.tgz",
"dependencies": {
"vscode-languageserver-types": {
"version": "1.0.3",
"from": "vscode-languageserver-types@>=1.0.3 <2.0.0",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-1.0.3.tgz"
}
}
},
"vscode-jsonrpc": {
"version": "2.2.0",
"from": "vscode-jsonrpc@>=2.2.0 <3.0.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-2.2.0.tgz"
"version": "2.3.2-next.5",
"from": "vscode-jsonrpc@>=2.3.2-next.2 <3.0.0",
"resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-2.3.2-next.5.tgz"
},
"vscode-languageserver": {
"version": "2.4.0-next.4",
"version": "2.4.0-next.12",
"from": "vscode-languageserver@next",
"resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-2.4.0-next.4.tgz"
"resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-2.4.0-next.12.tgz"
},
"vscode-languageserver-types": {
"version": "1.0.1",
"from": "vscode-languageserver-types@1.0.1",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-1.0.1.tgz"
"version": "1.0.3",
"from": "vscode-languageserver-types@>=1.0.3 <2.0.0",
"resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-1.0.3.tgz"
},
"vscode-nls": {
"version": "1.0.7",
"from": "vscode-nls@>=1.0.4 <2.0.0",
"resolved": "https://registry.npmjs.org/vscode-nls/-/vscode-nls-1.0.7.tgz"
},
"vscode-uri": {
"version": "0.0.6",
"from": "vscode-uri@>=0.0.6 <0.0.7",
"resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-0.0.6.tgz"
}
}
}
+2 -2
View File
@@ -9,8 +9,8 @@
},
"dependencies": {
"request-light": "^0.1.0",
"vscode-json-languageservice": "^1.1.4",
"vscode-languageserver": "^2.4.0-next.4",
"vscode-json-languageservice": "^1.1.8-next.1",
"vscode-languageserver": "^2.4.0-next.12",
"vscode-nls": "^1.0.4"
},
"scripts": {
+2 -2
View File
@@ -52,7 +52,7 @@ documents.listen(connection);
const filesAssociationContribution = new FileAssociationContribution();
// After the server has started the client sends an initilize request. The server receives
// in the passed params the rootPath of the workspace plus the client capabilites.
// in the passed params the rootPath of the workspace plus the client capabilities.
let workspaceRoot: URI;
connection.onInitialize((params: InitializeParams): InitializeResult => {
workspaceRoot = URI.parse(params.rootPath);
@@ -204,7 +204,7 @@ documents.onDidClose(event => {
connection.sendDiagnostics({ uri: event.document.uri, diagnostics: [] });
});
let pendingValidationRequests : {[uri:string]:number} = {};
let pendingValidationRequests : { [uri: string]: NodeJS.Timer; } = {};
const validationDelayMs = 200;
function cleanPendingValidation(textDocument: TextDocument): void {
@@ -219,10 +219,10 @@ export class ProjectJSONContribution implements JSONWorkerContribution {
this.addCached(res.id, res.version, res.description);
if (res.id === pack) {
if (res.description) {
htmlContent.push({ language: 'string', value: res.description });
htmlContent.push(MarkedString.fromPlainText(res.description));
}
if (res.version) {
htmlContent.push({ language: 'string', value: localize('json.nugget.version.hover', 'Latest version: {0}', res.version)});
htmlContent.push(MarkedString.fromPlainText(localize('json.nugget.version.hover', 'Latest version: {0}', res.version)));
}
break;
}
+2767 -114
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,6 +1,6 @@
{
"account": "monacobuild",
"container": "debuggers",
"zip": "6366d8f/node-debug.zip",
"zip": "864e0bd/node-debug.zip",
"output": ""
}
+1254 -294
View File
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -7,6 +7,7 @@
import {HoverProvider, Hover, MarkedString, TextDocument, CancellationToken, Position} from 'vscode';
import phpGlobals = require('./phpGlobals');
import { textToMarkedString } from './utils/markedTextUtil';
export default class PHPHoverProvider implements HoverProvider {
@@ -21,7 +22,7 @@ export default class PHPHoverProvider implements HoverProvider {
var entry = phpGlobals.globalfunctions[name] || phpGlobals.compiletimeconstants[name] || phpGlobals.globalvariables[name] || phpGlobals.keywords[name];
if (entry && entry.description) {
let signature = name + (entry.signature || '');
let contents: MarkedString[] = [entry.description, { language: 'php', value: signature }];
let contents: MarkedString[] = [ textToMarkedString(entry.description), { language: 'php', value: signature }];
return new Hover(contents, wordRange);
}
}
@@ -0,0 +1,11 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import {MarkedString} from 'vscode';
export function textToMarkedString(text: string) : MarkedString {
return text.replace(/[\\`*_{}[\]()#+\-.!]/g, '\\$&'); // escape markdown syntax tokens: http://daringfireball.net/projects/markdown/syntax#backslash
}
+1
View File
@@ -9,6 +9,7 @@
"extensions": [ ".rb", ".rbx", ".rjs", ".gemspec", ".rake", ".ru" ],
"filenames": [ "rakefile", "gemfile", "guardfile" ],
"aliases": [ "Ruby", "rb" ],
"firstLine": "^#!/.*\\bruby\\b",
"configuration": "./language-configuration.json"
}],
"grammars": [{
+118 -62
View File
@@ -155,7 +155,7 @@
"name": "meta.at-rule.else.scss",
"patterns": [
{
"include": "#logical_operators"
"include": "#conditional_operators"
},
{
"include": "#variable"
@@ -295,7 +295,7 @@
"name": "meta.at-rule.if.scss",
"patterns": [
{
"include": "#logical_operators"
"include": "#conditional_operators"
},
{
"include": "#variable"
@@ -388,53 +388,105 @@
]
},
"at_rule_keyframes": {
"begin": "(?<=^|\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\b",
"beginCaptures": {
"0": {
"name": "keyword.control.at-rule.keyframes.scss"
},
"1": {
"name": "punctuation.definition.keyword.scss"
}
},
"end": "(?<=})",
"name": "meta.at-rule.keyframes.scss",
"patterns": [
{
"begin": "^\\s*((@)(-[\\w-]*-)?keyframes\\b)\\s*([\\w-]*)",
"match": "(?<=@keyframes)\\s+((?:[_A-Za-z][-\\w]|-[_A-Za-z])[-\\w]*)",
"captures": {
"1": {
"name": "keyword.control.at-rule.keyframes.scss"
},
"2": {
"name": "punctuation.definition.keyword.scss"
},
"3": {
"name": "punctuation.definition.keyword.scss"
},
"4": {
"name": "entity.name.function.scss"
}
}
},
{
"begin": "(?<=@keyframes)\\s+(\")",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.scss"
}
},
"comment": "Keyframes with Attributes",
"end": "(?<=})(?:\\s*$)?",
"name": "meta.at-rule.keyframes.scss",
"end": "\"",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.scss"
}
},
"name": "string.quoted.double.scss",
"contentName": "entity.name.function.scss",
"patterns": [
{
"begin": "{",
"end": "}",
"beginCaptures": {
"0": {
"name": "punctuation.section.keyframes.begin.scss"
}
},
"endCaptures": {
"0": {
"name": "punctuation.section.keyframes.end.scss"
}
},
"name": "meta.keyframes.scss",
"patterns": [
{
"match": "(\\b(\\d+%|from\\b|to\\b))",
"name": "entity.other.attribute-name.scss"
},
{
"include": "#interpolation"
},
{
"include": "#property_list"
}
]
"match": "\\\\(\\h{1,6}|.)",
"name": "constant.character.escape.scss"
},
{
"include": "#interpolation"
}
]
},
{
"begin": "(?<=@keyframes)\\s+(')",
"beginCaptures": {
"1": {
"name": "punctuation.definition.string.begin.scss"
}
},
"end": "'",
"endCaptures": {
"0": {
"name": "punctuation.definition.string.end.scss"
}
},
"name": "string.quoted.single.scss",
"contentName": "entity.name.function.scss",
"patterns": [
{
"match": "\\\\(\\h{1,6}|.)",
"name": "constant.character.escape.scss"
},
{
"include": "#interpolation"
}
]
},
{
"begin": "{",
"beginCaptures": {
"0": {
"name": "punctuation.section.keyframes.begin.scss"
}
},
"end": "}",
"endCaptures": {
"0": {
"name": "punctuation.section.keyframes.end.scss"
}
},
"patterns": [
{
"match": "\\b(?:(?:100|[1-9]\\d|\\d)%|from|to)(?=\\s*{)",
"name": "entity.other.attribute-name.scss"
},
{
"include": "#flow_control"
},
{
"include": "#interpolation"
},
{
"include": "#property_list"
},
{
"include": "#rules"
}
]
}
@@ -469,7 +521,7 @@
"include": "#variable"
},
{
"include": "#logical_operators"
"include": "#conditional_operators"
},
{
"include": "#media_types"
@@ -665,29 +717,23 @@
]
},
"at_rule_supports": {
"begin": "((@)supports)\\b",
"begin": "(?<=^|\\s)(@)supports\\b",
"captures": {
"1": {
"0": {
"name": "keyword.control.at-rule.supports.scss"
},
"2": {
"1": {
"name": "punctuation.definition.keyword.scss"
}
},
"end": "(?={|$)",
"end": "(?={)|$",
"name": "meta.at-rule.supports.scss",
"patterns": [
{
"include": "#logical_operators"
},
{
"include": "#constant_property_value"
},
{
"include": "#property_names"
},
{
"include": "#property_values"
"include": "#properties"
},
{
"match": "\\(",
@@ -696,10 +742,6 @@
{
"match": "\\)",
"name": "punctuation.definition.condition.end.bracket.round.scss"
},
{
"match": ":",
"name": "punctuation.separator.key-value.scss"
}
]
},
@@ -741,7 +783,7 @@
"name": "meta.at-rule.while.scss",
"patterns": [
{
"include": "#logical_operators"
"include": "#conditional_operators"
},
{
"include": "#variable"
@@ -1034,9 +1076,23 @@
}
]
},
"conditional_operators": {
"patterns": [
{
"include": "#comparison_operators"
},
{
"include": "#logical_operators"
}
]
},
"comparison_operators": {
"match": "==|!=|<=|>=|<|>",
"name": "keyword.operator.comparison.scss"
},
"logical_operators": {
"match": "\\b(==|!=|<=|>=|<|>|not|or|and)\\b",
"name": "keyword.control.operator"
"match": "\\b(not\\b|or\\b|and\\b)",
"name": "keyword.operator.logical.scss"
},
"map": {
"begin": "\\(",
@@ -1190,7 +1246,7 @@
}
},
"comment": "Kuroir: fixed nested elements for sass.",
"end": "\\s*(;|(?=}))",
"end": "\\s*(;|(?=}|\\)))",
"endCaptures": {
"1": {
"name": "punctuation.terminator.rule.scss"
@@ -1386,7 +1442,7 @@
]
},
"selector_entities": {
"match": "\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|circle|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|g|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|image|input|ins|kbd|keygen|label|legend|li|line(?!-)|link|main|map|mark|menu|menuitem|meta|meter|nav|noframes|noscript|object(?!-)|ol|optgroup|option|output|p|param|path|picture|polygon|polyline|pre|progress|q|rb|rect|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table(?!-)|tbody|td|template|text(?!-)|textarea|textpath|tfoot|th|thead|time|title|tr|track|tspan|tt|u|ul|var|video|wbr)\\b",
"match": "\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|bdi|bdo|big|blockquote|body|br|button|canvas|caption|circle|cite|code|col|colgroup|data|datalist|dd|del|details|dfn|dialog|div|dl|dt|ellipse|em|embed|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|g|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|image|input|ins|kbd|keygen|label|legend|li|line(?!-)|link|main|map|mark|menu|menuitem|meta|meter|nav|noframes|noscript|object(?!-)|ol|optgroup|option|output|p|param|path|picture|polygon|polyline|pre|progress|q|rb|rect|rp|rt|rtc|ruby|s|samp|script|section|select|small|source|span|strike|strong|style|sub|summary|sup|svg|table(?!-)|tbody|td|template|text(?!-)|textarea|textpath|tfoot|th|thead|time|title|tr|track|tspan|tt|u|ul|var|video|wbr)\\b",
"name": "entity.name.tag.scss"
},
"selector_custom": {
@@ -1612,5 +1668,5 @@
"name": "variable.scss"
}
},
"version": "https://github.com/atom/language-sass/commit/38b8d07b0e5edc8ac1e3ac1e370a208e838fc198"
"version": "https://github.com/atom/language-sass/commit/b0417d1412a9169562f637133099fe2bb841a735"
}
@@ -264,19 +264,8 @@
}
},
{
"c": ")",
"t": "meta.property-list.property-value.scss",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
"dark_vs": ".vs-dark .token rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": ";",
"t": "meta.property-list.punctuation.rule.scss.terminator",
"c": ");",
"t": "meta.property-list.scss",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -4181,7 +4181,7 @@
},
{
"c": ") ",
"t": "meta.property-list.property-value.scss",
"t": "meta.property-list.scss",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -4192,40 +4192,18 @@
},
{
"c": "*",
"t": "css.keyword.meta.operator.property-list.property-value.scss",
"t": "entity.meta.name.property-list.scss.tag.wildcard",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.tag rgb(86, 156, 214)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.tag rgb(128, 0, 0)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.entity.name.tag rgb(86, 156, 214)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.entity.name.tag rgb(128, 0, 0)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.entity.name.tag rgb(86, 156, 214)"
}
},
{
"c": " ",
"t": "meta.property-list.property-value.scss",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
"dark_vs": ".vs-dark .token rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": "3",
"t": "constant.meta.numeric.property-list.property-value.scss",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.constant.numeric rgb(181, 206, 168)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.constant.numeric rgb(9, 136, 90)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.constant.numeric rgb(181, 206, 168)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.constant.numeric rgb(9, 136, 90)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.constant.numeric rgb(181, 206, 168)"
}
},
{
"c": ";",
"t": "meta.property-list.punctuation.rule.scss.terminator",
"c": " 3;",
"t": "meta.property-list.scss",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -6755,10 +6733,10 @@
},
{
"c": "and",
"t": "at-rule.control.keyword.media.meta.operator.property-list.scss",
"t": "at-rule.keyword.logical.media.meta.operator.property-list.scss",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
@@ -9218,7 +9196,29 @@
}
},
{
"c": " == ",
"c": " ",
"t": "at-rule.if.meta.property-list.scss",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
"dark_vs": ".vs-dark .token rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": "==",
"t": "at-rule.comparison.if.keyword.meta.operator.property-list.scss",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
}
},
{
"c": " ",
"t": "at-rule.if.meta.property-list.scss",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
@@ -9438,7 +9438,29 @@
}
},
{
"c": " < ",
"c": " ",
"t": "at-rule.if.meta.property-list.scss",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
"dark_vs": ".vs-dark .token rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": "<",
"t": "at-rule.comparison.if.keyword.meta.operator.property-list.scss",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
}
},
{
"c": " ",
"t": "at-rule.if.meta.property-list.scss",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
@@ -9977,7 +9999,29 @@
}
},
{
"c": " == ocean ",
"c": " ",
"t": "at-rule.if.meta.property-list.scss",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
"dark_vs": ".vs-dark .token rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": "==",
"t": "at-rule.comparison.if.keyword.meta.operator.property-list.scss",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
}
},
{
"c": " ocean ",
"t": "at-rule.if.meta.property-list.scss",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
@@ -11209,7 +11253,29 @@
}
},
{
"c": " > ",
"c": " ",
"t": "at-rule.each.meta.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
"dark_vs": ".vs-dark .token rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": ">",
"t": "at-rule.comparison.each.keyword.meta.operator.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
}
},
{
"c": " ",
"t": "at-rule.each.meta.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
@@ -11990,7 +12056,29 @@
}
},
{
"c": " == ",
"c": " ",
"t": "at-rule.each.if.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
"dark_vs": ".vs-dark .token rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": "==",
"t": "at-rule.comparison.each.if.keyword.meta.operator.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
}
},
{
"c": " ",
"t": "at-rule.each.if.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
@@ -12046,10 +12134,10 @@
},
{
"c": "and",
"t": "at-rule.control.each.if.keyword.meta.operator.property-list.scss.while",
"t": "at-rule.each.if.keyword.logical.meta.operator.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
@@ -12078,7 +12166,29 @@
}
},
{
"c": " == (",
"c": " ",
"t": "at-rule.each.if.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
"dark_vs": ".vs-dark .token rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": "==",
"t": "at-rule.comparison.each.if.keyword.meta.operator.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.operator rgb(212, 212, 212)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.operator rgb(0, 0, 0)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.operator rgb(212, 212, 212)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.operator rgb(0, 0, 0)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.operator rgb(212, 212, 212)"
}
},
{
"c": " (",
"t": "at-rule.each.if.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
@@ -18623,7 +18733,7 @@
}
},
{
"c": "@-webkit-",
"c": "@",
"t": "at-rule.control.definition.each.keyframes.keyword.meta.property-list.punctuation.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
@@ -18634,7 +18744,7 @@
}
},
{
"c": "keyframes",
"c": "-webkit-keyframes",
"t": "at-rule.control.each.keyframes.keyword.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
@@ -18645,29 +18755,7 @@
}
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
"dark_vs": ".vs-dark .token rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": "NAME-YOUR-ANIMATION",
"t": "at-rule.each.entity.function.keyframes.meta.name.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.function rgb(220, 220, 170)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.function rgb(121, 94, 38)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.entity.name.function rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": " ",
"c": " NAME-YOUR-ANIMATION ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
@@ -18964,7 +19052,7 @@
}
},
{
"c": "@-moz-",
"c": "@",
"t": "at-rule.control.definition.each.keyframes.keyword.meta.property-list.punctuation.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
@@ -18975,7 +19063,7 @@
}
},
{
"c": "keyframes",
"c": "-moz-keyframes",
"t": "at-rule.control.each.keyframes.keyword.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
@@ -18986,29 +19074,7 @@
}
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
"dark_vs": ".vs-dark .token rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": "NAME-YOUR-ANIMATION",
"t": "at-rule.each.entity.function.keyframes.meta.name.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.function rgb(220, 220, 170)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.function rgb(121, 94, 38)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.entity.name.function rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": " ",
"c": " NAME-YOUR-ANIMATION ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
@@ -19305,30 +19371,30 @@
}
},
{
"c": "@-o-",
"t": "at-rule.control.definition.each.keyframes.keyword.meta.property-list.punctuation.scss.while",
"c": "@",
"t": "at-rule.each.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
"dark_vs": ".vs-dark .token rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": "keyframes",
"t": "at-rule.control.each.keyframes.keyword.meta.property-list.scss.while",
"c": "-o-keyframes",
"t": "at-rule.each.illegal.invalid.meta.property-list.property-name.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.keyword.control rgb(197, 134, 192)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.keyword.control rgb(175, 0, 219)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.keyword.control rgb(86, 156, 214)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.keyword.control rgb(0, 0, 255)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.keyword.control rgb(86, 156, 214)"
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.invalid rgb(244, 71, 71)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.invalid rgb(205, 49, 49)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.invalid rgb(244, 71, 71)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.invalid rgb(205, 49, 49)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.invalid rgb(244, 71, 71)"
}
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"t": "at-rule.each.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19339,18 +19405,18 @@
},
{
"c": "NAME-YOUR-ANIMATION",
"t": "at-rule.each.entity.function.keyframes.meta.name.property-list.scss.while",
"t": "at-rule.custom.each.entity.meta.name.property-list.scss.tag.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.function rgb(220, 220, 170)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.function rgb(121, 94, 38)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.entity.name.function rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.name.tag rgb(86, 156, 214)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.name.tag rgb(128, 0, 0)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.entity.name.tag rgb(86, 156, 214)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.entity.name.tag rgb(128, 0, 0)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.entity.name.tag rgb(86, 156, 214)"
}
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"t": "at-rule.each.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19361,7 +19427,7 @@
},
{
"c": "{",
"t": "at-rule.begin.each.keyframes.meta.property-list.punctuation.scss.section.while",
"t": "at-rule.begin.bracket.curly.each.meta.property-list.punctuation.scss.section.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19371,30 +19437,8 @@
}
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
"dark_vs": ".vs-dark .token rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": "0%",
"t": "at-rule.attribute-name.each.entity.keyframes.meta.other.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.other.attribute-name rgb(156, 220, 254)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.other.attribute-name.scss rgb(128, 0, 0)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.entity.other.attribute-name rgb(156, 220, 254)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.entity.other.attribute-name.scss rgb(128, 0, 0)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.entity.other.attribute-name rgb(156, 220, 254)"
}
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"c": " 0% ",
"t": "at-rule.each.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19405,7 +19449,7 @@
},
{
"c": "{",
"t": "at-rule.begin.bracket.curly.each.keyframes.meta.property-list.punctuation.scss.section.while",
"t": "at-rule.begin.bracket.curly.each.meta.property-list.punctuation.scss.section.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19416,7 +19460,7 @@
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"t": "at-rule.each.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19427,7 +19471,7 @@
},
{
"c": "opacity",
"t": "at-rule.each.keyframes.meta.property-list.property-name.scss.support.type.while",
"t": "at-rule.each.meta.property-list.property-name.scss.support.type.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.support.type.property-name rgb(156, 220, 254)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.support.type.property-name.scss rgb(255, 0, 0)",
@@ -19438,7 +19482,7 @@
},
{
"c": ":",
"t": "at-rule.each.key-value.keyframes.meta.property-list.punctuation.scss.separator.while",
"t": "at-rule.each.key-value.meta.property-list.punctuation.scss.separator.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19449,7 +19493,7 @@
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"t": "at-rule.each.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19460,7 +19504,7 @@
},
{
"c": "0",
"t": "at-rule.constant.each.keyframes.meta.numeric.property-list.property-value.scss.while",
"t": "at-rule.constant.each.meta.numeric.property-list.property-value.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.constant.numeric rgb(181, 206, 168)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.constant.numeric rgb(9, 136, 90)",
@@ -19471,7 +19515,7 @@
},
{
"c": ";",
"t": "at-rule.each.keyframes.meta.property-list.punctuation.rule.scss.terminator.while",
"t": "at-rule.each.meta.property-list.punctuation.rule.scss.terminator.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19482,7 +19526,7 @@
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"t": "at-rule.each.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19493,7 +19537,7 @@
},
{
"c": "}",
"t": "at-rule.bracket.curly.each.end.keyframes.meta.property-list.punctuation.scss.section.while",
"t": "at-rule.bracket.curly.each.end.meta.property-list.punctuation.scss.section.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19503,30 +19547,8 @@
}
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
"dark_vs": ".vs-dark .token rgb(212, 212, 212)",
"light_vs": ".vs .token rgb(0, 0, 0)",
"hc_black": ".hc-black .token rgb(255, 255, 255)"
}
},
{
"c": "100%",
"t": "at-rule.attribute-name.each.entity.keyframes.meta.other.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.entity.other.attribute-name rgb(156, 220, 254)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.entity.other.attribute-name.scss rgb(128, 0, 0)",
"dark_vs": ".vs-dark.vscode-theme-defaults-themes-dark_vs-json .token.entity.other.attribute-name rgb(156, 220, 254)",
"light_vs": ".vs.vscode-theme-defaults-themes-light_vs-json .token.entity.other.attribute-name.scss rgb(128, 0, 0)",
"hc_black": ".hc-black.vscode-theme-defaults-themes-hc_black-json .token.entity.other.attribute-name rgb(156, 220, 254)"
}
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"c": " 100% ",
"t": "at-rule.each.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19537,7 +19559,7 @@
},
{
"c": "{",
"t": "at-rule.begin.bracket.curly.each.keyframes.meta.property-list.punctuation.scss.section.while",
"t": "at-rule.begin.bracket.curly.each.meta.property-list.punctuation.scss.section.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19548,7 +19570,7 @@
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"t": "at-rule.each.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19559,7 +19581,7 @@
},
{
"c": "opacity",
"t": "at-rule.each.keyframes.meta.property-list.property-name.scss.support.type.while",
"t": "at-rule.each.meta.property-list.property-name.scss.support.type.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.support.type.property-name rgb(156, 220, 254)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.support.type.property-name.scss rgb(255, 0, 0)",
@@ -19570,7 +19592,7 @@
},
{
"c": ":",
"t": "at-rule.each.key-value.keyframes.meta.property-list.punctuation.scss.separator.while",
"t": "at-rule.each.key-value.meta.property-list.punctuation.scss.separator.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19581,7 +19603,7 @@
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"t": "at-rule.each.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19592,7 +19614,7 @@
},
{
"c": "1",
"t": "at-rule.constant.each.keyframes.meta.numeric.property-list.property-value.scss.while",
"t": "at-rule.constant.each.meta.numeric.property-list.property-value.scss.while",
"r": {
"dark_plus": ".vs-dark.vscode-theme-defaults-themes-dark_plus-json .token.constant.numeric rgb(181, 206, 168)",
"light_plus": ".vs.vscode-theme-defaults-themes-light_plus-json .token.constant.numeric rgb(9, 136, 90)",
@@ -19603,7 +19625,7 @@
},
{
"c": ";",
"t": "at-rule.each.keyframes.meta.property-list.punctuation.rule.scss.terminator.while",
"t": "at-rule.each.meta.property-list.punctuation.rule.scss.terminator.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19614,7 +19636,7 @@
},
{
"c": " ",
"t": "at-rule.each.keyframes.meta.property-list.scss.while",
"t": "at-rule.each.meta.property-list.scss.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19625,7 +19647,7 @@
},
{
"c": "}",
"t": "at-rule.bracket.curly.each.end.keyframes.meta.property-list.punctuation.scss.section.while",
"t": "at-rule.bracket.curly.each.end.meta.property-list.punctuation.scss.section.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
@@ -19636,7 +19658,7 @@
},
{
"c": "}",
"t": "at-rule.each.end.keyframes.meta.property-list.punctuation.scss.section.while",
"t": "at-rule.bracket.curly.each.end.meta.property-list.punctuation.scss.section.while",
"r": {
"dark_plus": ".vs-dark .token rgb(212, 212, 212)",
"light_plus": ".vs .token rgb(0, 0, 0)",
+1 -1
View File
@@ -12,7 +12,7 @@
"aliases": ["Shell Script (Bash)", "shellscript", "bash", "sh", "zsh"],
"extensions": [".sh", ".bash", ".bashrc", ".bash_aliases", ".bash_profile", ".bash_login", ".ebuild", ".install", ".profile", ".bash_logout", ".zsh", ".zshrc", ".zprofile", ".zlogin", ".zlogout", ".zshenv"],
"filenames": ["PKGBUILD"],
"firstLine": "^#!.*\\b(bash|zsh|sh|tcsh)|^#\\s*-\\*-[^*]*mode:\\s*shell-script[^*]*-\\*-",
"firstLine": "^#!.*\\b(bash|zsh|sh|tcsh).*|^#\\s*-\\*-[^*]*mode:\\s*shell-script[^*]*-\\*-",
"configuration": "./language-configuration.json",
"mimetypes": ["text/x-shellscript"]
}],
+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><style type="text/css">.icon-canvas-transparent{opacity:0;fill:#F6F6F6;} .icon-vs-out{opacity:0;fill:#F6F6F6;} .icon-vs-bg{fill:#424242;} .icon-vs-fg{fill:#F0EFF1;}</style><path class="icon-canvas-transparent" d="M16 16h-16v-16h16v16z" id="canvas"/><path class="icon-vs-out" d="M4 15c-.97 0-2-.701-2-2v-10c0-1.299 1.03-2 2-2h6.061l3.939 3.556v8.444c0 .97-.701 2-2 2h-8z" id="outline"/><path class="icon-vs-bg" d="M9.641,2H3.964C3.964,2,3,2,3,3c0,0.805,0,7.442,0,10c0,1,0.965,1,0.965,1s7,0,8,0S13,13,13,13V5L9.641,2zM12,13H4V3h5v3h3V13z" id="iconBg"/><path class="icon-vs-fg" d="M4 3h5v3h3v7h-8v-10z" id="iconFg"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><style type="text/css">.icon-canvas-transparent{opacity:0;fill:#F6F6F6;} .icon-vs-out{opacity:0;fill:#F6F6F6;} .icon-vs-bg{fill:#656565;} .icon-vs-fg{fill:#F0EFF1;}</style><path class="icon-canvas-transparent" d="M16 16h-16v-16h16v16z" id="canvas"/><path class="icon-vs-out" d="M4 15c-.97 0-2-.701-2-2v-10c0-1.299 1.03-2 2-2h6.061l3.939 3.556v8.444c0 .97-.701 2-2 2h-8z" id="outline"/><path class="icon-vs-bg" d="M9.641,2H3.964C3.964,2,3,2,3,3c0,0.805,0,7.442,0,10c0,1,0.965,1,0.965,1s7,0,8,0S13,13,13,13V5L9.641,2zM12,13H4V3h5v3h3V13z" id="iconBg"/><path class="icon-vs-fg" d="M4 3h5v3h3v7h-8v-10z" id="iconFg"/></svg>

Before

Width:  |  Height:  |  Size: 682 B

After

Width:  |  Height:  |  Size: 682 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><style type="text/css">.icon-canvas-transparent{opacity:0;fill:#F6F6F6;} .icon-vs-out{opacity:0;fill:#F6F6F6;} .icon-vs-fg{fill:#F0EFF1;} .icon-folder{fill:#424242;}</style><path class="icon-canvas-transparent" d="M16 16h-16v-16h16v16z" id="canvas"/><path class="icon-vs-out" d="M14 .969h-7.116l-1 2h-2.884c-.97 0-2 .701-2 2v2h-1v1.196l2.323 5.804h11.677s.86-.021 1.43-.565c.344-.332.57-.817.57-1.435v-9c0-1.303-1.005-2-2-2z" id="outline"/><path class="icon-folder" d="M14,2c0,0,1,0,1,1c0,2.36,0,8.205,0,9c0,1-1,0.984-1,0.984V3H8L7,5H3v3h8l3,5H3L1,8h1c0,0,0-2,0-3s1.236-1,1-1h3.5l1-2H14z" id="iconBg"/><path class="icon-vs-fg" d="M3 7.969v-3h4l1-2h6v10l-3-5h-8z" id="iconFg"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><style type="text/css">.icon-canvas-transparent{opacity:0;fill:#F6F6F6;} .icon-vs-out{opacity:0;fill:#F6F6F6;} .icon-vs-fg{fill:#F0EFF1;} .icon-folder{fill:#656565;}</style><path class="icon-canvas-transparent" d="M16 16h-16v-16h16v16z" id="canvas"/><path class="icon-vs-out" d="M14 .969h-7.116l-1 2h-2.884c-.97 0-2 .701-2 2v2h-1v1.196l2.323 5.804h11.677s.86-.021 1.43-.565c.344-.332.57-.817.57-1.435v-9c0-1.303-1.005-2-2-2z" id="outline"/><path class="icon-folder" d="M14,2c0,0,1,0,1,1c0,2.36,0,8.205,0,9c0,1-1,0.984-1,0.984V3H8L7,5H3v3h8l3,5H3L1,8h1c0,0,0-2,0-3s1.236-1,1-1h3.5l1-2H14z" id="iconBg"/><path class="icon-vs-fg" d="M3 7.969v-3h4l1-2h6v10l-3-5h-8z" id="iconFg"/></svg>

Before

Width:  |  Height:  |  Size: 745 B

After

Width:  |  Height:  |  Size: 745 B

+1 -1
View File
@@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><style type="text/css">.icon-canvas-transparent{opacity:0;fill:#F6F6F6;} .icon-vs-out{opacity:0;fill:#F6F6F6;} .icon-vs-fg{fill:#F0EFF1;} .icon-folder{fill:#424242;}</style><path class="icon-canvas-transparent" d="M16 16h-16v-16h16v16z" id="canvas"/><path class="icon-vs-out" d="M16 2.5v10c0 .827-.673 1.5-1.5 1.5h-11.996c-.827 0-1.5-.673-1.5-1.5v-8c0-.827.673-1.5 1.5-1.5h2.886l1-2h8.11c.827 0 1.5.673 1.5 1.5z" id="outline"/><path class="icon-folder" d="M14.5 2h-7.492l-1 2h-3.504c-.277 0-.5.224-.5.5v8c0 .276.223.5.5.5h11.996c.275 0 .5-.224.5-.5v-10c0-.276-.225-.5-.5-.5zm-.496 2h-6.496l.5-1h5.996v1z" id="iconBg"/><path class="icon-vs-fg" d="M14 3v1h-6.5l.5-1h6z" id="iconFg"/></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><style type="text/css">.icon-canvas-transparent{opacity:0;fill:#F6F6F6;} .icon-vs-out{opacity:0;fill:#F6F6F6;} .icon-vs-fg{fill:#F0EFF1;} .icon-folder{fill:#656565;}</style><path class="icon-canvas-transparent" d="M16 16h-16v-16h16v16z" id="canvas"/><path class="icon-vs-out" d="M16 2.5v10c0 .827-.673 1.5-1.5 1.5h-11.996c-.827 0-1.5-.673-1.5-1.5v-8c0-.827.673-1.5 1.5-1.5h2.886l1-2h8.11c.827 0 1.5.673 1.5 1.5z" id="outline"/><path class="icon-folder" d="M14.5 2h-7.492l-1 2h-3.504c-.277 0-.5.224-.5.5v8c0 .276.223.5.5.5h11.996c.275 0 .5-.224.5-.5v-10c0-.276-.225-.5-.5-.5zm-.496 2h-6.496l.5-1h5.996v1z" id="iconBg"/><path class="icon-vs-fg" d="M14 3v1h-6.5l.5-1h6z" id="iconFg"/></svg>

Before

Width:  |  Height:  |  Size: 750 B

After

Width:  |  Height:  |  Size: 750 B

+3 -3
View File
@@ -36,9 +36,9 @@
],
"iconThemes": [
{
"id": "vs-standard",
"label": "Standard",
"path": "./fileicons/vs_standard.json"
"id": "vs-minimal",
"label": "Minimal (Visual Studio Code)",
"path": "./fileicons/vs_minimal_icons.json"
}
]
}
+8
View File
@@ -0,0 +1,8 @@
// ATTENTION - THIS DIRECTORY CONTAINS THIRD PARTY OPEN SOURCE MATERIALS:
[{
"name": "seti-ui",
"version": "0.1.0",
"repositoryURL": "https://github.com/jesseweed/seti-ui",
"description": "The file ./icons/seti.woff has been copied from https://github.com/jesseweed/seti-ui/blob/master/styles/_fonts/seti/seti.woff"
}]
@@ -0,0 +1,169 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
var path = require('path');
var fs = require('fs');
var https = require('https');
var url = require('url');
function getCommitSha(repoId, repoPath) {
var commitInfo = 'https://api.github.com/repos/' + repoId + '/commits?path=' + repoPath;
return download(commitInfo).then(function (content) {
try {
let lastCommit = JSON.parse(content)[0];
return Promise.resolve({
commitSha: lastCommit.sha,
commitDate: lastCommit.commit.author.date
});
} catch (e) {
return Promise.resolve(null);
}
}, function () {
console.err('Failed loading ' + commitInfo);
return Promise.resolve(null);
});
}
function download(urlString) {
return new Promise((c, e) => {
var _url = url.parse(urlString);
var options = { host: _url.host, port: _url.port, path: _url.path, headers: { 'User-Agent': 'NodeJS' }};
var content = '';
var request = https.get(options, function (response) {
response.on('data', function (data) {
content += data.toString();
}).on('end', function () {
c(content);
});
}).on('error', function (err) {
e(err.message);
});
});
}
function invertColor(color) {
var res = '#'
for (var i = 1; i < 7; i+=2) {
var newVal = 255 - parseInt('0x' + color.substr(i, 2), 16);
res += newVal.toString(16);
}
return res;
}
exports.update = function () {
var fontMappings = 'https://raw.githubusercontent.com/jesseweed/seti-ui/master/styles/_fonts/seti.less';
console.log('Reading from ' + fontMappings);
var def2Content = {};
var ext2Def = {};
var fileName2Def = {};
var def2ColorId = {};
var colorId2Value = {};
function writeFileIconContent(info) {
var iconDefinitions = {};
for (var def in def2Content) {
var entry = { fontCharacter: def2Content[def] };
var colorId = def2ColorId[def];
if (colorId) {
var colorValue = colorId2Value[colorId];
if (colorValue) {
entry.fontColor = colorValue;
var entryInverse = { fontCharacter: entry.fontCharacter, fontColor: invertColor(colorValue) };
iconDefinitions[def + '_light'] = entryInverse;
}
}
iconDefinitions[def] = entry;
}
function getInvertSet(input) {
var result = {};
for (var assoc in input) {
let invertDef = input[assoc] + '_light';;
if (iconDefinitions[invertDef]) {
result[assoc] = invertDef;
}
}
return result;
}
var res = {
fonts: [{
id: "seti",
src: [{ "path": "./seti.woff", "format": "woff" }],
weight: "normal",
style: "normal",
size: "150%"
}],
iconDefinitions: iconDefinitions,
// folder: "_folder",
file: "_default",
fileExtensions: ext2Def,
fileNames: fileName2Def,
light: {
file: "_default_light",
fileExtensions: getInvertSet(ext2Def),
fileNames: getInvertSet(fileName2Def)
},
version: 'https://github.com/jesseweed/seti-ui/commit/' + info.commitSha,
};
fs.writeFileSync('./icons/seti-icon-theme.json', JSON.stringify(res, null, '\t'));
}
var match;
return download(fontMappings).then(function (content) {
var regex = /@([\w-]+):\s*'(\\E[0-9A-F]+)';/g;
while ((match = regex.exec(content)) !== null) {
def2Content['_' + match[1]] = match[2];
}
var mappings = 'https://raw.githubusercontent.com/jesseweed/seti-ui/master/styles/icons/mapping.less';
return download(mappings).then(function (content) {
var regex2 = /\.icon-(?:set|partial)\('([\w-\.]+)',\s*'([\w-]+)',\s*(@[\w-]+)\)/g;
while ((match = regex2.exec(content)) !== null) {
let pattern = match[1];
let def = '_' + match[2];
let colorId = match[3];
if (pattern[0] === '.') {
ext2Def[pattern.substr(1)] = def;
} else {
fileName2Def[pattern] = def;
}
def2ColorId[def] = colorId;
}
var colors = 'https://raw.githubusercontent.com/jesseweed/seti-ui/master/styles/ui-variables.less';
return download(colors).then(function (content) {
var regex3 = /(@[\w-]+):\s*(#[0-9a-z]+)/g;
while ((match = regex3.exec(content)) !== null) {
colorId2Value[match[1]] = match[2];
}
return getCommitSha('jesseweed/seti-ui', 'styles/_fonts/seti.less').then(function (info) {
try {
writeFileIconContent(info);
if (info) {
console.log('Updated to jesseweed/seti-ui@' + info.commitSha.substr(0, 7) + ' (' + info.commitDate.substr(0, 10) + ')');
}
} catch (e) {
console.error(e);
}
});
});
});
}, console.error);
}
if (path.basename(process.argv[1]) === 'update-icon-theme.js') {
exports.update();
}
Binary file not shown.
File diff suppressed because it is too large Load Diff
+20
View File
@@ -0,0 +1,20 @@
{
"name": "vscode-theme-seti",
"private": true,
"version": "0.1.0",
"description": "A file icon theme made out of the Seti UI file idons",
"publisher": "vscode",
"scripts": {
"update": "node ./build/update-icon-theme.js"
},
"engines": { "vscode": "*" },
"contributes": {
"iconThemes": [
{
"id": "vs-seti",
"label": "Seti (Visual Studio Code)",
"path": "./icons/vs-seti-icon-theme.json"
}
]
}
}
@@ -0,0 +1,32 @@
THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
For Microsoft vscode-theme-seti
This file is based on or incorporates material from the projects listed below ("Third Party OSS"). The original copyright
notice and the license under which Microsoft received such Third Party OSS, are set forth below. Such licenses and notice
are provided for informational purposes only. Microsoft licenses the Third Party OSS to you under the licensing terms for
the Microsoft product or service. Microsoft reserves all other rights not expressly granted under this agreement, whether
by implication, estoppel or otherwise.†
1. Seti UI - A subtle dark colored UI theme for Atom. (https://github.com/jesseweed/seti-ui)
Copyright (c) 2014 Jesse Weed
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.
+3 -2
View File
@@ -192,14 +192,15 @@
]
},
{
"isLicense": true, // We override the license since we need a coorect Copyright
"name": "typescript",
"version": "1.8.2",
"version": "1.8.10",
"license": "Apache2",
"repositoryURL": "https://github.com/Microsoft/TypeScript",
"description": "The contents of the folder lib is from the TypeScript project https://github.com/Microsoft/TypeScript.",
// Reason: LICENSE file does not include Copyright statement
"licenseDetail": [
"Copyright (c) Microsoft Corporation. All rights reserved. ",
"Copyright (c) Microsoft Corporation. All rights reserved.",
"",
"Apache License",
"",
-5
View File
@@ -75,11 +75,6 @@
"default": null,
"description": "%typescript.tsdk.desc%"
},
"typescript.tsdk_version": {
"type": ["string", "null"],
"default": null,
"description": "%typescript.tsdk_version.desc%"
},
"typescript.tsserver.trace": {
"type": "string",
"enum": ["off", "messages", "verbose"],
@@ -31,7 +31,7 @@ export default class TypeScriptHoverProvider implements HoverProvider {
let data = response.body;
if (data) {
return new Hover(
[data.documentation, { language: 'typescript', value: data.displayString }],
[{ language: 'typescript', value: data.displayString }, data.documentation],
new Range(data.start.line - 1, data.start.offset - 1, data.end.line - 1, data.end.offset - 1));
}
}, (err) => {
@@ -5,7 +5,7 @@
'use strict';
import { workspace, Uri, WorkspaceSymbolProvider, SymbolInformation, SymbolKind, Range, Location, CancellationToken } from 'vscode';
import { workspace, window, Uri, WorkspaceSymbolProvider, SymbolInformation, SymbolKind, Range, Location, CancellationToken } from 'vscode';
import * as Proto from '../protocol';
import { ITypescriptServiceClient } from '../typescriptService';
@@ -30,14 +30,23 @@ export default class TypeScriptWorkspaceSymbolProvider implements WorkspaceSymbo
public provideWorkspaceSymbols(search: string, token :CancellationToken): Promise<SymbolInformation[]> {
// typescript wants to have a resource even when asking
// general questions so we check all open documents for
// one that is typescript'ish
// general questions so we check the active editor. If this
// doesn't match we take the first TS document.
let uri: Uri;
let documents = workspace.textDocuments;
for (let document of documents) {
if (document.languageId === this.modeId) {
let editor = window.activeTextEditor;
if (editor) {
let document = editor.document;
if (document && document.languageId === this.modeId) {
uri = document.uri;
break;
}
}
if (!uri) {
let documents = workspace.textDocuments;
for (let document of documents) {
if (document.languageId === this.modeId) {
uri = document.uri;
break;
}
}
}
+4 -5
View File
@@ -9,7 +9,7 @@
* ------------------------------------------------------------------------------------------ */
'use strict';
import { env, languages, commands, workspace, window, Uri, ExtensionContext, IndentAction, Diagnostic, DiagnosticCollection, Range, DocumentFilter } from 'vscode';
import { env, languages, commands, workspace, window, Uri, ExtensionContext, Memento, IndentAction, Diagnostic, DiagnosticCollection, Range, DocumentFilter } from 'vscode';
// This must be the first statement otherwise modules might got loaded with
// the wrong locale.
@@ -67,7 +67,7 @@ export function activate(context: ExtensionContext): void {
modeIds: [MODE_ID_JS, MODE_ID_JSX],
extensions: ['.js', '.jsx']
}
], context.storagePath);
], context.storagePath, context.globalState);
let client = clientHost.serviceClient;
@@ -251,7 +251,6 @@ class LanguageProvider {
public syntaxDiagnosticsReceived(file: string, diagnostics: Diagnostic[]): void {
this.syntaxDiagnostics[file] = diagnostics;
this.currentDiagnostics.set(Uri.file(file), diagnostics);
}
public semanticDiagnosticsReceived(file: string, diagnostics: Diagnostic[]): void {
@@ -273,7 +272,7 @@ class TypeScriptServiceClientHost implements ITypescriptServiceClientHost {
private languages: LanguageProvider[];
private languagePerId: Map<LanguageProvider>;
constructor(descriptions: LanguageDescription[], storagePath: string) {
constructor(descriptions: LanguageDescription[], storagePath: string, globalState: Memento) {
let handleProjectCreateOrDelete = () => {
this.client.execute('reloadProjects', null, false);
this.triggerAllDiagnostics();
@@ -288,7 +287,7 @@ class TypeScriptServiceClientHost implements ITypescriptServiceClientHost {
watcher.onDidDelete(handleProjectCreateOrDelete);
watcher.onDidChange(handleProjectChange);
this.client = new TypeScriptServiceClient(this, storagePath);
this.client = new TypeScriptServiceClient(this, storagePath, globalState);
this.languages = [];
this.languagePerId = Object.create(null);
descriptions.forEach(description => {
@@ -12,7 +12,7 @@ import * as fs from 'fs';
import * as electron from './utils/electron';
import { Reader } from './utils/wireProtocol';
import { workspace, window, Uri, CancellationToken, OutputChannel } from 'vscode';
import { workspace, window, Uri, CancellationToken, OutputChannel, Memento, MessageItem } from 'vscode';
import * as Proto from './protocol';
import { ITypescriptServiceClient, ITypescriptServiceClientHost, APIVersion } from './typescriptService';
@@ -66,10 +66,39 @@ namespace Trace {
}
}
enum MessageAction {
useLocal,
alwaysUseLocal,
useBundled,
doNotCheckAgain
}
interface MyMessageItem extends MessageItem {
id: MessageAction;
}
function openUrl(url: string) {
let cmd: string;
switch (process.platform) {
case 'darwin':
cmd = 'open';
break;
case 'win32':
cmd = 'start';
break;
default:
cmd = 'xdg-open';
}
return cp.exec(cmd + ' ' + url);
}
export default class TypeScriptServiceClient implements ITypescriptServiceClient {
private host: ITypescriptServiceClientHost;
private storagePath: string;
private globalState: Memento;
private pathSeparator: string;
private _onReady: { promise: Promise<void>; resolve: () => void; reject: () => void; };
@@ -94,9 +123,10 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient
private _apiVersion: APIVersion;
private telemetryReporter: TelemetryReporter;
constructor(host: ITypescriptServiceClientHost, storagePath: string) {
constructor(host: ITypescriptServiceClientHost, storagePath: string, globalState: Memento) {
this.host = host;
this.storagePath = storagePath;
this.globalState = globalState;
this.pathSeparator = path.sep;
let p = new Promise<void>((resolve, reject) => {
@@ -250,74 +280,179 @@ export default class TypeScriptServiceClient implements ITypescriptServiceClient
private startService(resendModels: boolean = false): void {
let modulePath = path.join(__dirname, '..', 'server', 'typescript', 'lib', 'tsserver.js');
let checkGlobalVersion = true;
let showVersionStatusItem = false;
if (this.tsdk) {
checkGlobalVersion = false;
if ((<any>path).isAbsolute(this.tsdk)) {
modulePath = path.join(this.tsdk, 'tsserver.js');
} else if (workspace.rootPath) {
modulePath = path.join(workspace.rootPath, this.tsdk, 'tsserver.js');
}
}
this.info(`Using tsserver from location: ${modulePath}`);
if (!fs.existsSync(modulePath)) {
window.showErrorMessage(localize('noServerFound', 'The path {0} doesn\'t point to a valid tsserver install. TypeScript language features will be disabled.', path.dirname(modulePath)));
return;
}
let versionCheckPromise: Thenable<string> = Promise.resolve(modulePath);
const doLocalVersionCheckKey: string = 'doLocalVersionCheck';
let version = this.getTypeScriptVersion(modulePath);
if (!version) {
version = workspace.getConfiguration().get<string>('typescript.tsdk_version', undefined);
}
if (version) {
this._apiVersion = APIVersion.fromString(version);
}
const label = version || localize('versionNumber.custom' ,'custom');
const tooltip = modulePath;
VersionStatus.enable(!!this.tsdk);
VersionStatus.setInfo(label, tooltip);
this.servicePromise = new Promise<cp.ChildProcess>((resolve, reject) => {
try {
let options: electron.IForkOptions = {
execArgv: [] // [`--debug-brk=5859`]
};
let value = process.env.TSS_DEBUG;
if (value) {
let port = parseInt(value);
if (!isNaN(port)) {
this.info(`TSServer started in debug mode using port ${port}`);
options.execArgv = [`--debug=${port}`];
}
if (!this.tsdk && workspace.rootPath && this.globalState.get(doLocalVersionCheckKey, true)) {
let localModulePath = path.join(workspace.rootPath, 'node_modules', 'typescript', 'lib', 'tsserver.js');
if (fs.existsSync(localModulePath)) {
let localVersion = this.getTypeScriptVersion(localModulePath);
let shippedVersion = this.getTypeScriptVersion(modulePath);
if (localVersion && localVersion !== shippedVersion) {
checkGlobalVersion = false;
versionCheckPromise = window.showInformationMessage<MyMessageItem>(
localize(
'localTSFound',
'The workspace folder contains TypeScript version {0}. Do you want to use this version instead of the bundled version {1}?',
localVersion, shippedVersion
),
...[{
title: localize('use', 'Use {0}', localVersion),
id: MessageAction.useLocal
},
{
title: localize('useBundled', 'Use {0}', shippedVersion),
id: MessageAction.useBundled,
},
{
title: localize('useAlways', /*'Always use {0}'*/ 'More Information', localVersion),
id: MessageAction.alwaysUseLocal
},
{
title: localize('doNotCheckAgain', 'Don\'t Check Again'),
id: MessageAction.doNotCheckAgain,
isCloseAffordance: true
}].reverse()
).then((selected) => {
if (!selected) {
return modulePath;
}
switch(selected.id) {
case MessageAction.useLocal:
showVersionStatusItem = true;
return localModulePath;
case MessageAction.alwaysUseLocal:
window.showInformationMessage(localize('continueWithVersion', 'Continuing with version {0}', shippedVersion));
openUrl('http://go.microsoft.com/fwlink/?LinkId=826239');
return modulePath;
case MessageAction.useBundled:
return modulePath;
case MessageAction.doNotCheckAgain:
this.globalState.update(doLocalVersionCheckKey, false);
return modulePath;
default:
return modulePath;
}
});
}
electron.fork(modulePath, [], options, (err: any, childProcess: cp.ChildProcess) => {
if (err) {
this.lastError = err;
this.error('Starting TSServer failed with error.', err);
window.showErrorMessage(localize('serverCouldNotBeStarted', 'TypeScript language server couldn\'t be started. Error message is: {0}', err.message || err));
this.logTelemetry('error', {message: err.message});
return;
}
this.lastStart = Date.now();
childProcess.on('error', (err: Error) => {
this.lastError = err;
this.error('TSServer errored with error.', err);
this.serviceExited(false);
});
childProcess.on('exit', (code: any) => {
this.error(`TSServer exited with code: ${code ? code : 'unknown'}`);
this.serviceExited(true);
});
this.reader = new Reader<Proto.Response>(childProcess.stdout, (msg) => {
this.dispatchMessage(msg);
});
this._onReady.resolve();
resolve(childProcess);
});
} catch (error) {
reject(error);
}
}
versionCheckPromise.then((modulePath) => {
this.info(`Using tsserver from location: ${modulePath}`);
if (!fs.existsSync(modulePath)) {
window.showErrorMessage(localize('noServerFound', 'The path {0} doesn\'t point to a valid tsserver install. TypeScript language features will be disabled.', path.dirname(modulePath)));
return;
}
let version = this.getTypeScriptVersion(modulePath);
if (!version) {
version = workspace.getConfiguration().get<string>('typescript.tsdk_version', undefined);
}
if (version) {
this._apiVersion = APIVersion.fromString(version);
}
const label = version || localize('versionNumber.custom' ,'custom');
const tooltip = modulePath;
VersionStatus.enable(!!this.tsdk || showVersionStatusItem);
VersionStatus.setInfo(label, tooltip);
const doGlobalVersionCheckKey: string = 'doGlobalVersionCheck';
if (checkGlobalVersion && this.globalState.get(doGlobalVersionCheckKey, true)) {
let tscVersion: string = undefined;
try {
let out = cp.execSync('tsc --version', { encoding: 'utf8' });
if (out) {
let matches = out.trim().match(/Version\s*(.*)$/);
if (matches && matches.length === 2) {
tscVersion = matches[1];
}
}
} catch (error) {
}
if (tscVersion && tscVersion !== version) {
window.showInformationMessage(
localize('versionMismatch', 'A version mismatch between the globally installed tsc compiler ({0}) and VS Code\'s language service ({1}) has been detected. This might result in inconsistent compile errors.', tscVersion, version),
...[{
title: localize('moreInformation', 'More Information'),
id: 1
},
{
title: localize('doNotCheckAgain', 'Don\'t Check Again'),
id: 2,
isCloseAffordance: true
}].reverse()
).then((selected) => {
if (!selected) {
return;
}
switch (selected.id) {
case 1:
openUrl('http://go.microsoft.com/fwlink/?LinkId=826239');
break;
case 2:
this.globalState.update(doGlobalVersionCheckKey, false);
break;
}
});
}
}
this.servicePromise = new Promise<cp.ChildProcess>((resolve, reject) => {
try {
let options: electron.IForkOptions = {
execArgv: [] // [`--debug-brk=5859`]
};
let value = process.env.TSS_DEBUG;
if (value) {
let port = parseInt(value);
if (!isNaN(port)) {
this.info(`TSServer started in debug mode using port ${port}`);
options.execArgv = [`--debug=${port}`];
}
}
electron.fork(modulePath, [], options, (err: any, childProcess: cp.ChildProcess) => {
if (err) {
this.lastError = err;
this.error('Starting TSServer failed with error.', err);
window.showErrorMessage(localize('serverCouldNotBeStarted', 'TypeScript language server couldn\'t be started. Error message is: {0}', err.message || err));
this.logTelemetry('error', {message: err.message});
return;
}
this.lastStart = Date.now();
childProcess.on('error', (err: Error) => {
this.lastError = err;
this.error('TSServer errored with error.', err);
this.serviceExited(false);
});
childProcess.on('exit', (code: any) => {
this.error(`TSServer exited with code: ${code ? code : 'unknown'}`);
this.serviceExited(true);
});
this.reader = new Reader<Proto.Response>(childProcess.stdout, (msg) => {
this.dispatchMessage(msg);
});
this._onReady.resolve();
resolve(childProcess);
});
} catch (error) {
reject(error);
}
});
this.serviceStarted(resendModels);
});
this.serviceStarted(resendModels);
}
private serviceStarted(resendModels: boolean): void {
+74 -34
View File
@@ -6,56 +6,96 @@
'use strict';
import * as assert from 'assert';
import {workspace, window, Position, Range} from 'vscode';
import {workspace, window, Position, Range, commands} from 'vscode';
import {createRandomFile, deleteFile, cleanUp} from './utils';
suite('editor tests', () => {
teardown(cleanUp);
test('make edit', () => {
return createRandomFile().then(file => {
function withRandomFileEditor(initialContents:string, run:(editor:vscode.TextEditor, doc:vscode.TextDocument)=>Thenable<void>): Thenable<boolean> {
return createRandomFile(initialContents).then(file => {
return workspace.openTextDocument(file).then(doc => {
return window.showTextDocument(doc).then((editor) => {
return editor.edit((builder) => {
builder.insert(new Position(0, 0), 'Hello World');
}).then(applied => {
assert.ok(applied);
assert.equal(doc.getText(), 'Hello World');
assert.ok(doc.isDirty);
return doc.save().then(saved => {
assert.ok(saved);
assert.ok(!doc.isDirty);
return run(editor, doc).then(_ => {
if (doc.isDirty) {
return doc.save().then(saved => {
assert.ok(saved);
assert.ok(!doc.isDirty);
return deleteFile(file);
});
} else {
return deleteFile(file);
});
}
});
});
});
});
}
test('make edit', () => {
return withRandomFileEditor('', (editor, doc) => {
return editor.edit((builder) => {
builder.insert(new Position(0, 0), 'Hello World');
}).then(applied => {
assert.ok(applied);
assert.equal(doc.getText(), 'Hello World');
assert.ok(doc.isDirty);
});
});
});
test('issue #6281: Edits fail to validate ranges correctly before applying', () => {
return createRandomFile('Hello world!').then(file => {
return workspace.openTextDocument(file).then(doc => {
return window.showTextDocument(doc).then((editor) => {
return editor.edit((builder) => {
builder.replace(new Range(0, 0, Number.MAX_VALUE, Number.MAX_VALUE), 'new');
}).then(applied => {
assert.ok(applied);
assert.equal(doc.getText(), 'new');
assert.ok(doc.isDirty);
return doc.save().then(saved => {
assert.ok(saved);
assert.ok(!doc.isDirty);
return deleteFile(file);
});
});
});
return withRandomFileEditor('Hello world!', (editor, doc) => {
return editor.edit((builder) => {
builder.replace(new Range(0, 0, Number.MAX_VALUE, Number.MAX_VALUE), 'new');
}).then(applied => {
assert.ok(applied);
assert.equal(doc.getText(), 'new');
assert.ok(doc.isDirty);
});
});
});
});
function executeReplace(editor:vscode.TextEditor, range:Range, text:string, undoStopBefore:boolean, undoStopAfter: boolean): Thenable<boolean> {
return editor.edit((builder) => {
builder.replace(range, text);
}, { undoStopBefore: undoStopBefore, undoStopAfter: undoStopAfter });
}
test('TextEditor.edit can control undo/redo stack 1', () => {
return withRandomFileEditor('Hello world!', (editor, doc) => {
return executeReplace(editor, new Range(0, 0, 0, 1), 'h', false, false).then(applied => {
assert.ok(applied);
assert.equal(doc.getText(), 'hello world!');
assert.ok(doc.isDirty);
return executeReplace(editor, new Range(0, 1, 0, 5), 'ELLO', false, false);
}).then(applied => {
assert.ok(applied);
assert.equal(doc.getText(), 'hELLO world!');
assert.ok(doc.isDirty);
return commands.executeCommand('undo');
}).then(_ => {
assert.equal(doc.getText(), 'Hello world!');
});
});
});
test('TextEditor.edit can control undo/redo stack 2', () => {
return withRandomFileEditor('Hello world!', (editor, doc) => {
return executeReplace(editor, new Range(0, 0, 0, 1), 'h', false, false).then(applied => {
assert.ok(applied);
assert.equal(doc.getText(), 'hello world!');
assert.ok(doc.isDirty);
return executeReplace(editor, new Range(0, 1, 0, 5), 'ELLO', true, false);
}).then(applied => {
assert.ok(applied);
assert.equal(doc.getText(), 'hELLO world!');
assert.ok(doc.isDirty);
return commands.executeCommand('undo');
}).then(_ => {
assert.equal(doc.getText(), 'hello world!');
});
});
});
});
@@ -206,6 +206,32 @@ suite('window namespace tests', () => {
});
});
test('showQuickPick, canceled by another picker', function () {
const result = window.showQuickPick(['eins', 'zwei', 'drei'], { ignoreFocusOut: true }).then(result => {
assert.equal(result, undefined);
});
const source = new CancellationTokenSource();
source.cancel();
window.showQuickPick(['eins', 'zwei', 'drei'], undefined, source.token);
return result;
});
test('showQuickPick, canceled by input', function () {
const result = window.showQuickPick(['eins', 'zwei', 'drei'], { ignoreFocusOut: true }).then(result => {
assert.equal(result, undefined);
});
const source = new CancellationTokenSource();
source.cancel();
window.showInputBox(undefined, source.token);
return result;
});
test('editor, selection change kind', () => {
return workspace.openTextDocument(join(workspace.rootPath, './far.js')).then(doc => window.showTextDocument(doc)).then(editor => {
@@ -225,4 +251,19 @@ suite('window namespace tests', () => {
});
});
test('createTerminal, Terminal.name', () => {
var terminal = window.createTerminal('foo');
assert.equal(terminal.name, 'foo');
assert.throws(() => {
terminal.name = 'bar';
}, 'Terminal.name should be readonly');
});
test('createTerminal, immediate Terminal.sendText', () => {
var terminal = window.createTerminal();
// This should not throw an exception
terminal.sendText('echo "foo"');
});
});
@@ -41,10 +41,10 @@ suite('workspace-namespace', () => {
assert.throws(() => config['get'] = <any> 'get-prop');
});
test('configuration, getConfig/value', () => {
const value = workspace.getConfiguration('farboo.config0');
assert.equal(Object.keys(value).length, 3);
});
// test('configuration, getConfig/value', () => {
// const value = workspace.getConfiguration('farboo.config0');
// assert.equal(Object.keys(value).length, 3);
// });
test('textDocuments', () => {
assert.ok(Array.isArray(workspace.textDocuments));
+2 -1
View File
@@ -29,6 +29,7 @@ const assign = require('object-assign');
const monacodts = require('./build/monaco/api');
const fs = require('fs');
const glob = require('glob');
const pkg = require('./package.json');
const rootDir = path.join(__dirname, 'src');
const options = require('./src/tsconfig.json').compilerOptions;
@@ -215,7 +216,7 @@ gulp.task('mixin', function () {
return;
}
const url = 'https://github.com/' + repo + '/archive/master.zip';
const url = `https://github.com/${ repo }/archive/${ pkg.distro }.zip`;
const opts = { base: '' };
const username = process.env['VSCODE_MIXIN_USERNAME'];
const password = process.env['VSCODE_MIXIN_PASSWORD'];
@@ -79,7 +79,7 @@
"miSaveAll": "全部保存(&&L)",
"miSaveAs": "另存为(&&A)...",
"miSelectAll": "全选(&&S)",
"miSelectTheme": "颜色主题(&&C)",
"miSelectColorTheme": "颜色主题(&&C)",
"miSplitEditor": "拆分编辑器(&&E)",
"miSwitchEditor": "切换编辑器(&&E)",
"miSwitchGroup": "切换组(&&G)",
@@ -4,5 +4,6 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"indentAutoMigrate": "请更新设置: \"editor.detectIndentation\" 替换 \"editor.tabSize\": \"auto\" 或 \"editor.insertSpaces\": \"auto\""
"indentAutoMigrate": "请更新设置: \"editor.detectIndentation\" 替换 \"editor.tabSize\": \"auto\" 或 \"editor.insertSpaces\": \"auto\"",
"sourceAndDiagMessage": "[{0}] {1}"
}
@@ -0,0 +1,6 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
@@ -3,4 +3,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.
{}
{
"noCompatible": "找不到可与此代码版本兼容的 {0} 版本。"
}
@@ -3,4 +3,8 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
{
"httpConfigurationTitle": "HTTP",
"proxy": "要使用的代理设置。如果尚未设置,则将从 http_proxy 和 https_proxy 环境变量获取",
"strictSSL": "是否应根据提供的 CA 列表验证代理服务器证书。"
}
@@ -0,0 +1,6 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
@@ -6,6 +6,10 @@
{
"copy": "复制",
"cut": "剪切",
"files": "文件",
"folders": "文件夹",
"openRecentPlaceHolder": "选择要打开的路径(在新窗口中按住 Ctrl 键打开)",
"openRecentPlaceHolderMac": "选择路径(在新窗口中按住 Cmd 键打开)",
"paste": "粘贴",
"redo": "恢复",
"selectAll": "全选",
@@ -3,4 +3,24 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
{
"aborted": "已中止",
"again": "在继续操作之前,请先从“{1}”中删除“{0}”。",
"cancel": "取消",
"cancel2": "取消",
"cantCreateBinFolder": "无法创建 \"/usr/local/bin\"。",
"changeNow": "立即更改",
"continue": "继续",
"editFile": "编辑“{0}”",
"exists": "请删除“{1}”(行 {2})中的别名引用“{0}”,然后重试此操作。",
"install": "在 PATH 中安装“{0}”命令",
"later": "稍后",
"laterInfo": "请记住,你始终可以从命令面板运行“{0}”操作。",
"ok": "确定",
"shellCommand": "Shell 命令",
"successFrom": "已成功从 PATH 卸载 Shell 命令“{0}”。",
"successIn": "已成功在 PATH 中安装了 Shell 命令“{0}”。",
"uninstall": "从 PATH 中卸载“{0}”命令",
"update": "代码需要更改“{0}”shell 命令。是否要立即执行此操作?",
"warnEscalation": "代码将通过 \"osascript\" 提示需要管理员权限才可安装 shell 命令。"
}
@@ -14,6 +14,7 @@
"continueDebug": "继续",
"deactivateBreakpoints": "停用断点",
"debugActionLabelAndKeybinding": "{0} ({1})",
"debugAddToWatch": "调试: 添加到监视",
"debugConsoleAction": "调试控制台",
"debugEvaluate": "调试: 评估",
"disableAllBreakpoints": "禁用所有断点",
@@ -0,0 +1,6 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
@@ -4,6 +4,14 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"command name": "名称",
"debugger name": "名称",
"description": "描述",
"details": "详细信息",
"keyboard shortcuts": "键盘快捷方式(&&K)",
"license": "许可证",
"noReadme": "无可用自述文件。"
"noReadme": "无可用自述文件。",
"runtime": "运行时",
"setting name": "名称",
"snippets": "代码片段"
}
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"acceptLocalChanges": "覆盖",
"acceptLocalChanges": "使用本地更改并覆盖磁盘内容",
"compareChanges": "比较",
"conflictingFileHasChanged": "磁盘上的文件内容已更改,比较编辑器的左侧已刷新。请再次审查和解析。",
"discard": "放弃",
@@ -13,8 +13,8 @@
"readonlySaveError": "无法保存“{0}”: 文件写保护。选择“覆盖”以删除保护。 ",
"resolveSaveConflict": "{0} - 解析保存冲突",
"retry": "重试",
"revertLocalChanges": "还原",
"revertLocalChanges": "放弃本地更改,还原为磁盘上的内容",
"saveConflictDiffLabel": "{0} - 磁盘上 ↔ {1} 中",
"staleSaveError": "无法保存“{0}”: 磁盘上的内容较新。单击 **比较** 以比较你的版本和磁盘上的版本。",
"userGuide": "选择**还原**以放弃所做的更改或使用**覆盖**以将磁盘上的内容替换为所做的更改"
"userGuide": "使用编辑器工具栏中的操作 **撤消** 更改或用更改 **覆盖** 磁盘上的内容"
}
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"findMore": "在应用商店中查找更多信息...",
"noIconThemeLabel": "无",
"preferences": "首选项",
"problemChangingTheme": "加载主题时出现问题: {0}",
"selectTheme.label": "颜色主题",
@@ -0,0 +1,6 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"error.cannotloadicontheme": "无法加载 {0}",
"error.cannotloadtheme": "无法加载 {0}",
"error.cannotparse": "分析 plist 文件 {0} 时出现问题",
"error.cannotparsejson": "分析 JSON 主题文件 {0} 时出现问题",
@@ -79,7 +79,7 @@
"miSaveAll": "全部儲存(&&L)",
"miSaveAs": "另存新檔(&&A)...",
"miSelectAll": "全選(&&S)",
"miSelectTheme": "色彩佈景主題(&&C)",
"miSelectColorTheme": "色彩佈景主題(&&C)",
"miSplitEditor": "分割編輯器(&&E)",
"miSwitchEditor": "切換編輯器(&&E)",
"miSwitchGroup": "切換群組(&&G)",
@@ -4,5 +4,6 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"indentAutoMigrate": "請更新您的設定: `editor.detect Indentation` 會取代 `editor.tabSize`: \"auto\" 或 `editor.insertSpaces`: \"auto\""
"indentAutoMigrate": "請更新您的設定: `editor.detect Indentation` 會取代 `editor.tabSize`: \"auto\" 或 `editor.insertSpaces`: \"auto\"",
"sourceAndDiagMessage": "[{0}] {1}"
}
@@ -0,0 +1,6 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
@@ -3,4 +3,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.
{}
{
"noCompatible": "找不到與此 Code 版本相容的 {0} 版本。"
}
@@ -3,4 +3,8 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
{
"httpConfigurationTitle": "HTTP",
"proxy": "要使用的 Proxy 設定。如果未設定,會從 http_proxy 與 https_proxy 環境變數取得設定。",
"strictSSL": "是否應該針對提供的 CA 清單驗證 Proxy 伺服器憑證。"
}
@@ -0,0 +1,6 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
@@ -6,6 +6,10 @@
{
"copy": "複製",
"cut": "剪下",
"files": "檔案",
"folders": "資料夾",
"openRecentPlaceHolder": "選取要開啟的路徑 (按住 Ctrl 鍵以在新視窗開啟)",
"openRecentPlaceHolderMac": "選取路徑 (按住 Cmd 鍵以在新視窗開啟)",
"paste": "貼上",
"redo": "取消復原",
"selectAll": "全選",
@@ -3,4 +3,24 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
{
"aborted": "已中止",
"again": "請從 '{1}' 移除 '{0}' 別名後再繼續。",
"cancel": "取消",
"cancel2": "取消",
"cantCreateBinFolder": "無法建立 '/usr/local/bin'。",
"changeNow": "立即變更",
"continue": "繼續",
"editFile": "編輯 '{0}'",
"exists": "請移除參考 '{1}' (第 {2} 行) 中之 '{0}' 的別名,然後重試此動作。",
"install": "在 PATH 中安裝 '{0}' 命令",
"later": "稍後",
"laterInfo": "請記住,您一律可以從命令選擇區執行 '{0}' 動作。",
"ok": "確定",
"shellCommand": "殼層命令",
"successFrom": "已成功從 PATH 解除安裝殼層命令 '{0}'。",
"successIn": "已成功在 PATH 中安裝殼層命令 '{0}'。",
"uninstall": "從 PATH 將 '{0}' 命令解除安裝 ",
"update": "Code 必須變更 '{0}' 殼層命令。要立即執行此作業嗎?",
"warnEscalation": "Code 現在會提示輸入 'osascript' 取得系統管理員權限,以便安裝殼層命令。"
}
@@ -14,6 +14,7 @@
"continueDebug": "繼續",
"deactivateBreakpoints": "停用中斷點",
"debugActionLabelAndKeybinding": "{0} ({1})",
"debugAddToWatch": "偵錯: 加入監看",
"debugConsoleAction": "偵錯主控台",
"debugEvaluate": "偵錯: 評估",
"disableAllBreakpoints": "停用所有中斷點",
@@ -0,0 +1,6 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
@@ -4,6 +4,14 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"command name": "名稱",
"debugger name": "名稱",
"description": "描述",
"details": "詳細資料",
"keyboard shortcuts": "鍵盤快速鍵(&&K)",
"license": "授權",
"noReadme": "沒有可用的讀我檔案。"
"noReadme": "沒有可用的讀我檔案。",
"runtime": "執行階段",
"setting name": "名稱",
"snippets": "程式碼片段"
}
@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"acceptLocalChanges": "覆寫",
"acceptLocalChanges": "使用本機變更並覆寫磁碟內容",
"compareChanges": "比較",
"conflictingFileHasChanged": "磁碟上的檔案內容已變更,而且已重新整理比較編輯器左側。請重新檢閱並加以解決。",
"discard": "捨棄",
@@ -13,8 +13,8 @@
"readonlySaveError": "無法儲存 '{0}': 檔案有防寫保護。請選取 [覆寫] 以移除保護。",
"resolveSaveConflict": "{0} - 解決儲存衝突",
"retry": "重試",
"revertLocalChanges": "還原",
"revertLocalChanges": "捨棄本機變更並還原成磁碟上的內容",
"saveConflictDiffLabel": "{0} - 磁碟上 ↔ {1} 中",
"staleSaveError": "無法儲存 '{0}': 磁碟上的內容較新。請按一下 [比較],比較您的版本與磁碟上的版本。",
"userGuide": "請選取 [還原] 捨棄您的變更;或選取 [覆寫],以您的變更取代磁碟上的內容"
"userGuide": "使用編輯器工具列中的動作來「復原」您的變更,或以您的變更「覆寫」磁碟上的內容"
}
@@ -5,6 +5,7 @@
// Do not edit this file. It is machine generated.
{
"findMore": "在 Marketplace 可找到更多...",
"noIconThemeLabel": "無",
"preferences": "喜好設定",
"problemChangingTheme": "載入佈景主題時發生問題: {0}",
"selectTheme.label": "色彩佈景主題",
@@ -0,0 +1,6 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
@@ -4,6 +4,7 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"error.cannotloadicontheme": "無法載入 {0}",
"error.cannotloadtheme": "無法載入 {0}",
"error.cannotparse": "剖析 plist 檔案時發生問題: {0}",
"error.cannotparsejson": "剖析 JSON 佈景主題檔案時發生問題: {0}",
@@ -79,7 +79,7 @@
"miSaveAll": "A&&lles speichern",
"miSaveAs": "Speichern &&unter...",
"miSelectAll": "&&Alles auswählen",
"miSelectTheme": "&&Farbdesign",
"miSelectColorTheme": "&&Farbdesign",
"miSplitEditor": "&&Editor teilen",
"miSwitchEditor": "&&Editor wechseln",
"miSwitchGroup": "&&Gruppe wechseln",
@@ -4,5 +4,6 @@
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{
"indentAutoMigrate": "Bitte aktualisieren Sie Ihre Einstellungen: \"editor.detectIndentation\" ersetzt \"editor.tabSize\": \"auto\" oder \"editor.insertSpaces\": \"auto\""
"indentAutoMigrate": "Bitte aktualisieren Sie Ihre Einstellungen: \"editor.detectIndentation\" ersetzt \"editor.tabSize\": \"auto\" oder \"editor.insertSpaces\": \"auto\"",
"sourceAndDiagMessage": "[{0}] {1}"
}
@@ -0,0 +1,6 @@
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
@@ -3,4 +3,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.
{}
{
"noCompatible": "Eine kompatible Version von {0} mit dieser Version des Codes wurde nicht gefunden."
}
@@ -3,4 +3,8 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
// Do not edit this file. It is machine generated.
{}
{
"httpConfigurationTitle": "HTTP",
"proxy": "Die zu verwendende Proxyeinstellung. Wenn diese Option nicht festgelegt wird, wird der Wert aus den Umgebungsvariablen \"http_proxy\" und \"https_proxy\" übernommen.",
"strictSSL": "Gibt an, ob das Proxyserverzertifikat anhand der Liste der bereitgestellten Zertifizierungsstellen überprüft werden soll."
}
@@ -5,11 +5,11 @@
// Do not edit this file. It is machine generated.
{
"defaultKeybindings": "Standard-Tastaturkurzbefehle",
"defaultKeybindingsHeader": "Überschreiben Sie Tastenbindungen, indem Sie sie in die Tastenbindungsdatei einfügen.",
"defaultKeybindingsHeader": "Überschreiben Sie Tastenzuordnungen, indem Sie sie in die Tastenzuordnungsdatei einfügen.",
"defaultName": "Standardeinstellungen",
"defaultSettingsHeader": "Überschreiben Sie Einstellungen, indem Sie sie in die Einstellungsdatei einfügen.",
"defaultSettingsHeader2": "Unter http://go.microsoft.com/fwlink/?LinkId=808995 finden Sie die am häufigsten verwendeten Einstellungen.",
"emptyKeybindingsHeader": "Platzieren Sie Ihre Tastenbindungen in dieser Datei, um die Standardwerte zu überschreiben.",
"emptyKeybindingsHeader": "Platzieren Sie Ihre Tastenzuordnungen in dieser Datei, um die Standardwerte zu überschreiben.",
"emptySettingsHeader": "Platzieren Sie Ihre Einstellungen in dieser Datei, um die Standardeinstellungen zu überschreiben.",
"emptySettingsHeader1": "Platzieren Sie Ihre Einstellungen in dieser Datei, um Standard- und Benutzereinstellungen zu überschreiben.",
"fail.createSettings": "{0} ({1}) kann nicht erstellt werden.",

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