diff --git a/.vscode/notebooks/api.github-issues b/.vscode/notebooks/api.github-issues
index ad2d028465e..2eb4b6432b3 100644
--- a/.vscode/notebooks/api.github-issues
+++ b/.vscode/notebooks/api.github-issues
@@ -8,7 +8,7 @@
{
"kind": 2,
"language": "github-issues",
- "value": "$repo=repo:microsoft/vscode\n$milestone=milestone:\"August 2020\"",
+ "value": "$repo=repo:microsoft/vscode\n$milestone=milestone:\"September 2020\"",
"editable": true
},
{
diff --git a/.vscode/notebooks/my-work.github-issues b/.vscode/notebooks/my-work.github-issues
index d1452276f6e..a5de65e0bd1 100644
--- a/.vscode/notebooks/my-work.github-issues
+++ b/.vscode/notebooks/my-work.github-issues
@@ -8,7 +8,7 @@
{
"kind": 2,
"language": "github-issues",
- "value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks\n\n// current milestone name\n$milestone=milestone:\"August 2020\"",
+ "value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks\n\n// current milestone name\n$milestone=milestone:\"September 2020\"",
"editable": true
},
{
diff --git a/.vscode/notebooks/verification.github-issues b/.vscode/notebooks/verification.github-issues
index 79f7f8a5c0e..4e65452ea56 100644
--- a/.vscode/notebooks/verification.github-issues
+++ b/.vscode/notebooks/verification.github-issues
@@ -14,7 +14,7 @@
{
"kind": 2,
"language": "github-issues",
- "value": "$repos=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks \n$milestone=milestone:\"July 2020\"",
+ "value": "$repos=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks \n$milestone=milestone:\"September 2020\"",
"editable": true
},
{
diff --git a/.vscode/searches/TrustedTypes.code-search b/.vscode/searches/TrustedTypes.code-search
new file mode 100644
index 00000000000..2112eb183c8
--- /dev/null
+++ b/.vscode/searches/TrustedTypes.code-search
@@ -0,0 +1,483 @@
+# Query: .innerHTML =
+# Flags: CaseSensitive WordMatch
+# Including: src/vs/**/*.{t,j}s
+# Excluding: *.test.ts
+# ContextLines: 3
+
+57 results - 39 files
+
+src/vs/base/browser/markdownRenderer.ts:
+ 156 const strValue = values[0];
+ 157 const span = element.querySelector(`div[data-code="${id}"]`);
+ 158 if (span) {
+ 159: span.innerHTML = strValue;
+ 160 }
+ 161 }).catch(err => {
+ 162 // ignore
+
+ 238 return true;
+ 239 }
+ 240
+ 241: element.innerHTML = insane(renderedMarkdown, {
+ 242 allowedSchemes,
+ 243 // allowedTags should included everything that markdown renders to.
+ 244 // Since we have our own sanitize function for marked, it's possible we missed some tag so let insane make sure.
+
+src/vs/base/browser/ui/codicons/codiconStyles.ts:
+ 20 for (let c of iconRegistry.all) {
+ 21 rules.push(formatRule(c));
+ 22 }
+ 23: codiconStyleSheet.innerHTML = rules.join('\n');
+ 24 }
+ 25
+ 26 const delayer = new RunOnceScheduler(updateAll, 0);
+
+src/vs/base/browser/ui/contextview/contextview.ts:
+ 157 this.shadowRootHostElement = DOM.$('.shadow-root-host');
+ 158 this.container.appendChild(this.shadowRootHostElement);
+ 159 this.shadowRoot = this.shadowRootHostElement.attachShadow({ mode: 'open' });
+ 160: this.shadowRoot.innerHTML = `
+ 161
+
+src/vs/base/browser/ui/list/listWidget.ts:
+ 826
+ 827 const newStyles = content.join('\n');
+ 828 if (newStyles !== this.styleElement.innerHTML) {
+ 829: this.styleElement.innerHTML = newStyles;
+ 830 }
+ 831 }
+ 832 }
+
+src/vs/base/browser/ui/menu/menu.ts:
+ 229 private initializeStyleSheet(container: HTMLElement): void {
+ 230 if (isInShadowDOM(container)) {
+ 231 this.styleSheet = createStyleSheet(container);
+ 232: this.styleSheet.innerHTML = MENU_WIDGET_CSS;
+ 233 } else {
+ 234 if (!Menu.globalStyleSheet) {
+ 235 Menu.globalStyleSheet = createStyleSheet();
+ 236: Menu.globalStyleSheet.innerHTML = MENU_WIDGET_CSS;
+ 237 }
+ 238
+ 239 this.styleSheet = Menu.globalStyleSheet;
+
+src/vs/base/browser/ui/menu/menubar.ts:
+ 548 }
+ 549
+ 550 innerHtml = innerHtml.replace(/&&/g, '&');
+ 551: titleElement.innerHTML = innerHtml;
+ 552 } else {
+ 553: titleElement.innerHTML = cleanMenuLabel.replace(/&&/g, '&');
+ 554 }
+ 555
+ 556 let mnemonicMatches = MENU_MNEMONIC_REGEX.exec(label);
+
+src/vs/base/browser/ui/sash/sash.ts:
+ 266 }
+ 267 }
+ 268
+ 269: style.innerHTML = `* { cursor: ${cursor} !important; }`;
+ 270 };
+ 271
+ 272 const disposables = new DisposableStore();
+
+src/vs/base/browser/ui/selectBox/selectBoxCustom.ts:
+ 367 content.push(`.monaco-select-box-dropdown-container > .select-box-dropdown-list-container .monaco-list .monaco-list-row.option-disabled:hover { outline: none !important; }`);
+ 368 }
+ 369
+ 370: this.styleElement.innerHTML = content.join('\n');
+ 371
+ 372 this.applyStyles();
+ 373 }
+
+ 705 });
+ 706
+ 707
+ 708: container.innerHTML = this.options[longest].text + (!!this.options[longest].decoratorRight ? (this.options[longest].decoratorRight + ' ') : '');
+ 709 elementWidth = dom.getTotalWidth(container);
+ 710 }
+ 711
+
+src/vs/base/browser/ui/tree/abstractTree.ts:
+ 1476
+ 1477 const newStyles = content.join('\n');
+ 1478 if (newStyles !== this.styleElement.innerHTML) {
+ 1479: this.styleElement.innerHTML = newStyles;
+ 1480 }
+ 1481
+ 1482 this.view.style(styles);
+
+src/vs/base/parts/quickinput/browser/quickInput.ts:
+ 1693 }
+ 1694 const newStyles = content.join('\n');
+ 1695 if (newStyles !== this.ui.styleSheet.innerHTML) {
+ 1696: this.ui.styleSheet.innerHTML = newStyles;
+ 1697 }
+ 1698 }
+ 1699 }
+
+src/vs/code/electron-browser/workbench/workbench.js:
+ 124 const style = document.createElement('style');
+ 125 style.className = 'initialShellColors';
+ 126 document.head.appendChild(style);
+ 127: style.innerHTML = `body { background-color: ${shellBackground}; color: ${shellForeground}; margin: 0; padding: 0; }`;
+ 128
+ 129 if (data && data.layoutInfo) {
+ 130 // restore parts if possible (we might not always store layout info)
+
+ 150
+ 151 if (configuration.folderUri || configuration.workspace) {
+ 152 // folder or workspace -> status bar color, sidebar
+ 153: splash.innerHTML = `
+ 154
+ 155
+ 156
+
+ 158 `;
+ 159 } else {
+ 160 // empty -> speical status bar color, no sidebar
+ 161: splash.innerHTML = `
+ 162
+ 163
+ 164
+
+src/vs/code/electron-sandbox/issue/issueReporterMain.ts:
+ 57 const platformClass = platform.isWindows ? 'windows' : platform.isLinux ? 'linux' : 'mac';
+ 58 addClass(document.body, platformClass); // used by our fonts
+ 59
+ 60: document.body.innerHTML = BaseHtml();
+ 61 const issueReporter = new IssueReporter(configuration);
+ 62 issueReporter.render();
+ 63 document.body.style.display = 'block';
+
+ 244 content.push(`.monaco-text-button:not(.disabled):hover, .monaco-text-button:focus { background-color: ${styles.buttonHoverBackground} !important; }`);
+ 245 }
+ 246
+ 247: styleTag.innerHTML = content.join('\n');
+ 248 document.head.appendChild(styleTag);
+ 249 document.body.style.color = styles.color || '';
+ 250 }
+
+src/vs/code/electron-sandbox/processExplorer/processExplorerMain.ts:
+ 282 this.listeners.clear();
+ 283
+ 284 const tableHead = document.createElement('thead');
+ 285: tableHead.innerHTML = `
+ 286 | ${localize('cpu', "CPU %")} |
+ 287 ${localize('memory', "Memory (MB)")} |
+ 288 ${localize('pid', "PID")} |
+
+ 319 content.push(`.highest { color: ${styles.highlightForeground}; }`);
+ 320 }
+ 321
+ 322: styleTag.innerHTML = content.join('\n');
+ 323 if (document.head) {
+ 324 document.head.appendChild(styleTag);
+ 325 }
+
+src/vs/editor/browser/view/domLineBreaksComputer.ts:
+ 107 allCharOffsets[i] = tmp[0];
+ 108 allVisibleColumns[i] = tmp[1];
+ 109 }
+ 110: containerDomNode.innerHTML = sb.build();
+ 111
+ 112 containerDomNode.style.position = 'absolute';
+ 113 containerDomNode.style.top = '10000';
+
+src/vs/editor/browser/view/viewLayer.ts:
+ 507 private _finishRenderingNewLines(ctx: IRendererContext, domNodeIsEmpty: boolean, newLinesHTML: string, wasNew: boolean[]): void {
+ 508 const lastChild = this.domNode.lastChild;
+ 509 if (domNodeIsEmpty || !lastChild) {
+ 510: this.domNode.innerHTML = newLinesHTML;
+ 511 } else {
+ 512 lastChild.insertAdjacentHTML('afterend', newLinesHTML);
+ 513 }
+
+ 525 private _finishRenderingInvalidLines(ctx: IRendererContext, invalidLinesHTML: string, wasInvalid: boolean[]): void {
+ 526 const hugeDomNode = document.createElement('div');
+ 527
+ 528: hugeDomNode.innerHTML = invalidLinesHTML;
+ 529
+ 530 for (let i = 0; i < ctx.linesLength; i++) {
+ 531 const line = ctx.lines[i];
+
+src/vs/editor/browser/widget/diffEditorWidget.ts:
+ 2157
+ 2158 let domNode = document.createElement('div');
+ 2159 domNode.className = `view-lines line-delete ${MOUSE_CURSOR_TEXT_CSS_CLASS_NAME}`;
+ 2160: domNode.innerHTML = sb.build();
+ 2161 Configuration.applyFontInfoSlow(domNode, fontInfo);
+ 2162
+ 2163 let marginDomNode = document.createElement('div');
+ 2164 marginDomNode.className = 'inline-deleted-margin-view-zone';
+ 2165: marginDomNode.innerHTML = marginHTML.join('');
+ 2166 Configuration.applyFontInfoSlow(marginDomNode, fontInfo);
+ 2167
+ 2168 return {
+
+src/vs/editor/standalone/browser/colorizer.ts:
+ 40 let text = domNode.firstChild ? domNode.firstChild.nodeValue : '';
+ 41 domNode.className += ' ' + theme;
+ 42 let render = (str: string) => {
+ 43: domNode.innerHTML = str;
+ 44 };
+ 45 return this.colorize(modeService, text || '', mimeType, options).then(render, (err) => console.error(err));
+ 46 }
+
+src/vs/editor/standalone/browser/standaloneThemeServiceImpl.ts:
+ 211 if (!this._globalStyleElement) {
+ 212 this._globalStyleElement = dom.createStyleSheet();
+ 213 this._globalStyleElement.className = 'monaco-colors';
+ 214: this._globalStyleElement.innerHTML = this._css;
+ 215 this._styleElements.push(this._globalStyleElement);
+ 216 }
+ 217 return Disposable.None;
+
+ 220 private _registerShadowDomContainer(domNode: HTMLElement): IDisposable {
+ 221 const styleElement = dom.createStyleSheet(domNode);
+ 222 styleElement.className = 'monaco-colors';
+ 223: styleElement.innerHTML = this._css;
+ 224 this._styleElements.push(styleElement);
+ 225 return {
+ 226 dispose: () => {
+
+ 290 ruleCollector.addRule(generateTokensCSSForColorMap(colorMap));
+ 291
+ 292 this._css = cssRules.join('\n');
+ 293: this._styleElements.forEach(styleElement => styleElement.innerHTML = this._css);
+ 294
+ 295 TokenizationRegistry.setColorMap(colorMap);
+ 296 this._onColorThemeChange.fire(theme);
+
+src/vs/editor/test/browser/controller/imeTester.ts:
+ 55 let content = this._model.getModelLineContent(i);
+ 56 r += content + '
';
+ 57 }
+ 58: output.innerHTML = r;
+ 59 }
+ 60 }
+ 61
+
+ 69 let title = document.createElement('div');
+ 70 title.className = 'title';
+ 71
+ 72: title.innerHTML = description + '. Type ' + inputStr + '';
+ 73 container.appendChild(title);
+ 74
+ 75 let startBtn = document.createElement('button');
+
+src/vs/workbench/browser/parts/compositePart.ts:
+ 414 const $this = this;
+ 415 return {
+ 416 updateTitle: (id, title, keybinding) => {
+ 417: titleLabel.innerHTML = strings.escape(title);
+ 418 titleLabel.title = keybinding ? nls.localize('titleTooltip', "{0} ({1})", title, keybinding) : title;
+ 419 },
+ 420
+
+src/vs/workbench/browser/parts/statusbar/statusbarPart.ts:
+ 672 this.styleElement = createStyleSheet(container);
+ 673 }
+ 674
+ 675: this.styleElement.innerHTML = `.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-beak:before { border-bottom-color: ${backgroundColor}; }`;
+ 676 }
+ 677
+ 678 private doCreateStatusItem(id: string, alignment: StatusbarAlignment, ...extraClasses: string[]): HTMLElement {
+
+src/vs/workbench/contrib/comments/browser/commentsView.ts:
+ 109 content.push(`.comments-panel .comments-panel-container .text code { color: ${codeTextForegroundColor}; }`);
+ 110 }
+ 111
+ 112: styleElement.innerHTML = content.join('\n');
+ 113 }
+ 114
+ 115 private async renderComments(): Promise {
+
+src/vs/workbench/contrib/comments/browser/commentThreadWidget.ts:
+ 692 }
+ 693
+ 694 if (label) {
+ 695: this._headingLabel.innerHTML = strings.escape(label);
+ 696 this._headingLabel.setAttribute('aria-label', label);
+ 697 }
+ 698 }
+
+ 916 font-weight: ${fontInfo.fontWeight};
+ 917 }`);
+ 918
+ 919: this._styleElement.innerHTML = content.join('\n');
+ 920
+ 921 // Editor decorations should also be responsive to theme changes
+ 922 this.setCommentEditorDecorations();
+
+src/vs/workbench/contrib/debug/browser/repl.ts:
+ 306 const replInputLineHeight = this.replInput.getOption(EditorOption.lineHeight);
+ 307
+ 308 // Set the font size, font family, line height and align the twistie to be centered, and input theme color
+ 309: this.styleElement.innerHTML = `
+ 310 .repl .repl-tree .expression {
+ 311 font-size: ${fontSize}px;
+ 312 font-family: ${fontFamily};
+
+src/vs/workbench/contrib/debug/browser/statusbarColorProvider.ts:
+ 84 this.styleElement = createStyleSheet(container);
+ 85 }
+ 86
+ 87: this.styleElement.innerHTML = `.monaco-workbench .part.statusbar > .items-container > .statusbar-item.has-beak:before { border-bottom-color: ${backgroundColor} !important; }`;
+ 88 }
+ 89
+ 90 private getColorKey(noFolderColor: string, debuggingColor: string, normalColor: string): string {
+
+src/vs/workbench/contrib/files/browser/views/explorerView.ts:
+ 812
+ 813 const newStyles = content.join('\n');
+ 814 if (newStyles !== this.styleElement.innerHTML) {
+ 815: this.styleElement.innerHTML = newStyles;
+ 816 }
+ 817 }
+ 818
+
+src/vs/workbench/contrib/notebook/browser/diff/notebookTextDiffList.ts:
+ 222
+ 223 const newStyles = content.join('\n');
+ 224 if (newStyles !== this.styleElement.innerHTML) {
+ 225: this.styleElement.innerHTML = newStyles;
+ 226 }
+ 227 }
+ 228 }
+
+src/vs/workbench/contrib/notebook/browser/view/notebookCellList.ts:
+ 1033
+ 1034 const newStyles = content.join('\n');
+ 1035 if (newStyles !== this.styleElement.innerHTML) {
+ 1036: this.styleElement.innerHTML = newStyles;
+ 1037 }
+ 1038 }
+ 1039
+
+src/vs/workbench/contrib/notebook/browser/view/renderers/cellRenderer.ts:
+ 443
+ 444 private getMarkdownDragImage(templateData: MarkdownCellRenderTemplate): HTMLElement {
+ 445 const dragImageContainer = DOM.$('.cell-drag-image.monaco-list-row.focused.markdown-cell-row');
+ 446: dragImageContainer.innerHTML = templateData.container.outerHTML;
+ 447
+ 448 // Remove all rendered content nodes after the
+ 449 const markdownContent = dragImageContainer.querySelector('.cell.markdown')!;
+
+ 587
+ 588 private getDragImageImpl(templateData: BaseCellRenderTemplate, editor: ICodeEditor, type: 'code' | 'markdown'): HTMLElement | null {
+ 589 const dragImageContainer = DOM.$(`.cell-drag-image.monaco-list-row.focused.${type}-cell-row`);
+ 590: dragImageContainer.innerHTML = templateData.container.innerHTML;
+ 591
+ 592 const editorContainer = dragImageContainer.querySelector('.cell-editor-container');
+ 593 if (!editorContainer) {
+
+ 599 return null;
+ 600 }
+ 601
+ 602: editorContainer.innerHTML = richEditorText;
+ 603
+ 604 return dragImageContainer;
+ 605 }
+
+src/vs/workbench/contrib/notebook/browser/view/renderers/webviewPreloads.ts:
+ 375 addMouseoverListeners(outputNode, outputId);
+ 376 const content = data.content;
+ 377 if (content.type === RenderOutputType.Html) {
+ 378: outputNode.innerHTML = content.htmlContent;
+ 379 cellOutputContainer.appendChild(outputNode);
+ 380 domEval(outputNode);
+ 381 } else {
+
+src/vs/workbench/contrib/sash/browser/sash.ts:
+ 35 const size = clamp(this.configurationService.getValue(this.configurationName) ?? minSize, minSize, maxSize);
+ 36
+ 37 // Update styles
+ 38: this.stylesheet.innerHTML = `
+ 39 .monaco-sash.vertical { cursor: ew-resize; top: 0; width: ${size}px; height: 100%; }
+ 40 .monaco-sash.horizontal { cursor: ns-resize; left: 0; width: 100%; height: ${size}px; }
+ 41 .monaco-sash:not(.disabled).orthogonal-start::before, .monaco-sash:not(.disabled).orthogonal-end::after { content: ' '; height: ${size * 2}px; width: ${size * 2}px; z-index: 100; display: block; cursor: all-scroll; position: absolute; }
+
+src/vs/workbench/contrib/scm/browser/dirtydiffDecorator.ts:
+ 1301
+ 1302 private setViewState(state: IViewState): void {
+ 1303 this.viewState = state;
+ 1304: this.stylesheet.innerHTML = `
+ 1305 .monaco-editor .dirty-diff-modified,.monaco-editor .dirty-diff-added{border-left-width:${state.width}px;}
+ 1306 .monaco-editor .dirty-diff-modified, .monaco-editor .dirty-diff-added, .monaco-editor .dirty-diff-deleted {
+ 1307 opacity: ${state.visibility === 'always' ? 1 : 0};
+
+src/vs/workbench/contrib/watermark/browser/watermark.ts:
+ 141 const dd = dom.append(dl, $('dd'));
+ 142 const keybinding = new KeybindingLabel(dd, OS, { renderUnboundKeybindings: true });
+ 143 keybinding.set(this.keybindingService.lookupKeybinding(entry.id));
+ 144: dd.innerHTML = keybinding.element.outerHTML;
+ 145 });
+ 146 };
+ 147
+
+src/vs/workbench/contrib/webview/browser/webviewIconManager.ts:
+ 61 }
+ 62 }
+ 63 }
+ 64: this._styleElement.innerHTML = cssRules.join('\n');
+ 65 }
+ 66 }
+
+src/vs/workbench/contrib/webview/browser/pre/main.js:
+ 386 // apply default styles
+ 387 const defaultStyles = newDocument.createElement('style');
+ 388 defaultStyles.id = '_defaultStyles';
+ 389: defaultStyles.innerHTML = defaultCssRules;
+ 390 newDocument.head.prepend(defaultStyles);
+ 391
+ 392 applyStyles(newDocument, newDocument.body);
+
+src/vs/workbench/contrib/welcome/page/browser/welcomePage.ts:
+ 328
+ 329 const prodName = container.querySelector('.welcomePage .title .caption') as HTMLElement;
+ 330 if (prodName) {
+ 331: prodName.innerHTML = this.productService.nameLong;
+ 332 }
+ 333
+ 334 recentlyOpened.then(({ workspaces }) => {
+
+src/vs/workbench/contrib/welcome/walkThrough/browser/walkThroughPart.ts:
+ 281
+ 282 const content = model.main.textEditorModel.getValue(EndOfLinePreference.LF);
+ 283 if (!strings.endsWith(input.resource.path, '.md')) {
+ 284: this.content.innerHTML = content;
+ 285 this.updateSizeClasses();
+ 286 this.decorateContent();
+ 287 this.contentDisposables.push(this.keybindingService.onDidUpdateKeybindings(() => this.decorateContent()));
+
+ 303 const innerContent = document.createElement('div');
+ 304 innerContent.classList.add('walkThroughContent'); // only for markdown files
+ 305 const markdown = this.expandMacros(content);
+ 306: innerContent.innerHTML = marked(markdown, { renderer });
+ 307 this.content.appendChild(innerContent);
+ 308
+ 309 model.snippets.forEach((snippet, i) => {
+
+src/vs/workbench/services/textMate/browser/abstractTextMateService.ts:
+ 312 grammarFactory.setTheme(theme, tokenColorMap);
+ 313 let colorMap = AbstractTextMateService._toColorMap(tokenColorMap);
+ 314 let cssRules = generateTokensCSSForColorMap(colorMap);
+ 315: this._styleElement.innerHTML = cssRules;
+ 316 TokenizationRegistry.setColorMap(colorMap);
+ 317 }
+ 318
+
+src/vs/workbench/services/themes/browser/workbenchThemeService.ts:
+ 692 const elStyle = document.createElement('style');
+ 693 elStyle.type = 'text/css';
+ 694 elStyle.className = rulesClassName;
+ 695: elStyle.innerHTML = styleSheetContent;
+ 696 document.head.appendChild(elStyle);
+ 697 } else {
+ 698: (themeStyles[0]).innerHTML = styleSheetContent;
+ 699 }
+ 700 }
+ 701
diff --git a/.yarnrc b/.yarnrc
index 3c6eccfb102..fbf612d0989 100644
--- a/.yarnrc
+++ b/.yarnrc
@@ -1,3 +1,3 @@
disturl "https://atom.io/download/electron"
-target "9.2.1"
+target "9.3.0"
runtime "electron"
diff --git a/build/lib/electron.js b/build/lib/electron.js
index 3c7a876d607..301a7695060 100644
--- a/build/lib/electron.js
+++ b/build/lib/electron.js
@@ -41,7 +41,7 @@ exports.config = {
darwinBundleDocumentType(["bowerrc"], 'resources/darwin/bower.icns'),
darwinBundleDocumentType(["c", "h"], 'resources/darwin/c.icns'),
darwinBundleDocumentType(["config", "editorconfig", "gitattributes", "gitconfig", "gitignore", "ini"], 'resources/darwin/config.icns'),
- darwinBundleDocumentType(["cc", "cpp", "cxx", "hh", "hpp", "hxx"], 'resources/darwin/cpp.icns'),
+ darwinBundleDocumentType(["cc", "cpp", "cxx", "c++", "hh", "hpp", "hxx", "h++"], 'resources/darwin/cpp.icns'),
darwinBundleDocumentType(["cs", "csx"], 'resources/darwin/csharp.icns'),
darwinBundleDocumentType(["css"], 'resources/darwin/css.icns'),
darwinBundleDocumentType(["go"], 'resources/darwin/go.icns'),
diff --git a/build/lib/electron.ts b/build/lib/electron.ts
index e969aa8ecba..125759c5815 100644
--- a/build/lib/electron.ts
+++ b/build/lib/electron.ts
@@ -46,7 +46,7 @@ export const config = {
darwinBundleDocumentType(["bowerrc"], 'resources/darwin/bower.icns'),
darwinBundleDocumentType(["c", "h"], 'resources/darwin/c.icns'),
darwinBundleDocumentType(["config", "editorconfig", "gitattributes", "gitconfig", "gitignore", "ini"], 'resources/darwin/config.icns'),
- darwinBundleDocumentType(["cc", "cpp", "cxx", "hh", "hpp", "hxx"], 'resources/darwin/cpp.icns'),
+ darwinBundleDocumentType(["cc", "cpp", "cxx", "c++", "hh", "hpp", "hxx", "h++"], 'resources/darwin/cpp.icns'),
darwinBundleDocumentType(["cs", "csx"], 'resources/darwin/csharp.icns'),
darwinBundleDocumentType(["css"], 'resources/darwin/css.icns'),
darwinBundleDocumentType(["go"], 'resources/darwin/go.icns'),
diff --git a/build/win32/code.iss b/build/win32/code.iss
index 6908759b7aa..7f4b36e71aa 100644
--- a/build/win32/code.iss
+++ b/build/win32/code.iss
@@ -173,6 +173,13 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bower
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bowerrc\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\bower.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.bowerrc\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.c++\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.c++\OpenWithProgids"; ValueType: string; ValueName: "{#RegValueName}.c++"; ValueData: ""; Flags: uninsdeletevalue; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c++"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C++}"; Flags: uninsdeletekey; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c++"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c++\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c++\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
+
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.c\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.c\OpenWithProgids"; ValueType: string; ValueName: "{#RegValueName}.c"; ValueData: ""; Flags: uninsdeletevalue; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.c"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C}"; Flags: uninsdeletekey; Tasks: associatewithfiles
@@ -442,6 +449,13 @@ Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hbs";
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hbs\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\default.ico"; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hbs\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.h++\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.h++\OpenWithProgids"; ValueType: string; ValueName: "{#RegValueName}.h++"; ValueData: ""; Flags: uninsdeletevalue; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h++"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C++ Header}"; Flags: uninsdeletekey; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h++"; ValueType: string; ValueName: "AppUserModelID"; ValueData: "{#AppUserId}"; Flags: uninsdeletekey; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h++\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "{app}\resources\app\resources\win32\cpp.ico"; Tasks: associatewithfiles
+Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.h++\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\{#ExeBasename}.exe"" ""%1"""; Tasks: associatewithfiles
+
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.hh\OpenWithProgids"; ValueType: none; ValueName: "{#RegValueName}"; Flags: deletevalue uninsdeletevalue; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\.hh\OpenWithProgids"; ValueType: string; ValueName: "{#RegValueName}.hh"; ValueData: ""; Flags: uninsdeletevalue; Tasks: associatewithfiles
Root: {#SoftwareClassesRootKey}; Subkey: "Software\Classes\{#RegValueName}.hh"; ValueType: string; ValueName: ""; ValueData: "{cm:SourceFile,C++ Header}"; Flags: uninsdeletekey; Tasks: associatewithfiles
diff --git a/cgmanifest.json b/cgmanifest.json
index e6e8ce8a5c1..859af568b1b 100644
--- a/cgmanifest.json
+++ b/cgmanifest.json
@@ -60,12 +60,12 @@
"git": {
"name": "electron",
"repositoryUrl": "https://github.com/electron/electron",
- "commitHash": "03c7a54dc534ce1867d4393b9b1a6989d4a7e005"
+ "commitHash": "fb03807cd21915ddc3aa2521ba4f5ba14597bd7e"
}
},
"isOnlyProductionDependency": true,
"license": "MIT",
- "version": "9.2.1"
+ "version": "9.3.0"
},
{
"component": {
diff --git a/extensions/bat/language-configuration.json b/extensions/bat/language-configuration.json
index 17bc92f6a91..e205fb5f5c4 100644
--- a/extensions/bat/language-configuration.json
+++ b/extensions/bat/language-configuration.json
@@ -1,6 +1,6 @@
{
"comments": {
- "lineComment": "REM"
+ "lineComment": "@REM"
},
"brackets": [
["{", "}"],
@@ -22,8 +22,8 @@
],
"folding": {
"markers": {
- "start": "^\\s*(::\\s*|REM\\s+)#region",
- "end": "^\\s*(::\\s*|REM\\s+)#endregion"
+ "start": "^\\s*(::|REM|@REM)\\s*#region",
+ "end": "^\\s*(::|REM|@REM)\\s*#endregion"
}
}
}
diff --git a/extensions/configuration-editing/schemas/attachContainer.schema.json b/extensions/configuration-editing/schemas/attachContainer.schema.json
index fc53bb896f1..2b7952446f0 100644
--- a/extensions/configuration-editing/schemas/attachContainer.schema.json
+++ b/extensions/configuration-editing/schemas/attachContainer.schema.json
@@ -50,6 +50,7 @@
"type": "string",
"enum": [
"none",
+ "loginShell",
"loginInteractiveShell",
"interactiveShell"
],
diff --git a/extensions/configuration-editing/schemas/devContainer.schema.json b/extensions/configuration-editing/schemas/devContainer.schema.json
index 999a50e7788..b37e07fa65c 100644
--- a/extensions/configuration-editing/schemas/devContainer.schema.json
+++ b/extensions/configuration-editing/schemas/devContainer.schema.json
@@ -96,6 +96,7 @@
"type": "string",
"enum": [
"none",
+ "loginShell",
"loginInteractiveShell",
"interactiveShell"
],
diff --git a/extensions/cpp/package.json b/extensions/cpp/package.json
index d302aa46ffd..1c8a244d285 100644
--- a/extensions/cpp/package.json
+++ b/extensions/cpp/package.json
@@ -34,8 +34,8 @@
".c++",
".hpp",
".hh",
- ".hxx",
- ".h++",
+ ".hxx",
+ ".h++",
".h",
".ii",
".ino",
diff --git a/extensions/debug-server-ready/src/extension.ts b/extensions/debug-server-ready/src/extension.ts
index 91e996d665b..9f8737f307f 100644
--- a/extensions/debug-server-ready/src/extension.ts
+++ b/extensions/debug-server-ready/src/extension.ts
@@ -146,18 +146,13 @@ class ServerReadyDetector extends vscode.Disposable {
break;
case 'debugWithChrome':
- if (vscode.env.remoteName === 'wsl' || !!vscode.extensions.getExtension('msjsdiag.debugger-for-chrome')) {
- vscode.debug.startDebugging(session.workspaceFolder, {
- type: 'chrome',
- name: 'Chrome Debug',
- request: 'launch',
- url: uri,
- webRoot: args.webRoot || WEB_ROOT
- }, session);
- } else {
- const errMsg = localize('server.ready.chrome.not.installed', "The action '{0}' requires the '{1}' extension.", 'debugWithChrome', 'Debugger for Chrome');
- vscode.window.showErrorMessage(errMsg, { modal: true }).then(_ => undefined);
- }
+ vscode.debug.startDebugging(session.workspaceFolder, {
+ type: 'pwa-chrome',
+ name: 'Chrome Debug',
+ request: 'launch',
+ url: uri,
+ webRoot: args.webRoot || WEB_ROOT
+ });
break;
default:
diff --git a/extensions/git/package.nls.json b/extensions/git/package.nls.json
index c412586f43c..b2aee5a34ba 100644
--- a/extensions/git/package.nls.json
+++ b/extensions/git/package.nls.json
@@ -166,8 +166,8 @@
"view.workbench.scm.missing": "A valid git installation was not detected, more details can be found in the [git output](command:git.showOutput).\nPlease [install git](https://git-scm.com/), or learn more about how to use git and source control in VS Code in [our docs](https://aka.ms/vscode-scm).\nIf you're using a different version control system, you can [search the Marketplace](command:workbench.extensions.search?%22%40category%3A%5C%22scm%20providers%5C%22%22) for additional extensions.",
"view.workbench.scm.disabled": "If you would like to use git features, please enable git in your [settings](command:workbench.action.openSettings?%5B%22git.enabled%22%5D).\nTo learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
"view.workbench.scm.empty": "In order to use git features, you can open a folder containing a git repository or clone from a URL.\n[Open Folder](command:vscode.openFolder)\n[Clone Repository](command:git.clone)\nTo learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
- "view.workbench.scm.folder": "The folder currently open doesn't have a git repository.\n[Initialize Repository](command:git.init?%5Btrue%5D)\nTo learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
- "view.workbench.scm.workspace": "The workspace currently open doesn't have any folders containing git repositories.\n[Initialize Repository](command:git.init)\nTo learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
+ "view.workbench.scm.folder": "The folder currently open doesn't have a git repository. You can initialize a repository which will enable source control features powered by git.\n[Initialize Repository](command:git.init?%5Btrue%5D)\nTo learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
+ "view.workbench.scm.workspace": "The workspace currently open doesn't have any folders containing git repositories. You can initialize a repository on a folder which will enable source control features powered by git.\n[Initialize Repository](command:git.init)\nTo learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
"view.workbench.scm.emptyWorkspace": "The workspace currently open doesn't have any folders containing git repositories.\n[Add Folder to Workspace](command:workbench.action.addRootFolder)\nTo learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).",
"view.workbench.cloneRepository": "You can also clone a repository from a URL. To learn more about how to use git and source control in VS Code [read our docs](https://aka.ms/vscode-scm).\n[Clone Repository](command:git.clone)"
}
diff --git a/extensions/github/package.nls.json b/extensions/github/package.nls.json
index 28906a39f0d..34e762b2f9c 100644
--- a/extensions/github/package.nls.json
+++ b/extensions/github/package.nls.json
@@ -2,6 +2,6 @@
"displayName": "GitHub",
"description": "GitHub",
"config.gitAuthentication": "Controls whether to enable automatic GitHub authentication for git commands within VS Code.",
- "welcome.publishFolder": "You can also directly publish this folder to a GitHub repository.\n[$(github) Publish to GitHub](command:github.publish)",
- "welcome.publishWorkspaceFolder": "You can also directly publish a workspace folder to a GitHub repository.\n[$(github) Publish to GitHub](command:github.publish)"
+ "welcome.publishFolder": "You can also directly publish this folder to a GitHub repository. Once published, you'll have access to source control features powered by git and GitHub.\n[$(github) Publish to GitHub](command:github.publish)",
+ "welcome.publishWorkspaceFolder": "You can also directly publish a workspace folder to a GitHub repository. Once published, you'll have access to source control features powered by git and GitHub.\n[$(github) Publish to GitHub](command:github.publish)"
}
diff --git a/extensions/groovy/package.json b/extensions/groovy/package.json
index ab2ef0da7ba..f3a0cc17ec8 100644
--- a/extensions/groovy/package.json
+++ b/extensions/groovy/package.json
@@ -13,7 +13,7 @@
"languages": [{
"id": "groovy",
"aliases": ["Groovy", "groovy"],
- "extensions": [".groovy", ".gvy", ".gradle", ".jenkinsfile"],
+ "extensions": [".groovy", ".gvy", ".gradle", ".jenkinsfile", ".nf"],
"filenamePatterns": ["Jenkinsfile.*"],
"firstLine": "^#!.*\\bgroovy\\b",
"configuration": "./language-configuration.json"
diff --git a/extensions/java/cgmanifest.json b/extensions/java/cgmanifest.json
index 7f0ef8760a8..68e15fac2df 100644
--- a/extensions/java/cgmanifest.json
+++ b/extensions/java/cgmanifest.json
@@ -6,11 +6,11 @@
"git": {
"name": "atom/language-java",
"repositoryUrl": "https://github.com/atom/language-java",
- "commitHash": "2e179ceac423403eb5bf0eff26884093c3edba6f"
+ "commitHash": "f631536a4137d65b622f01cebeac72345f9e6f70"
}
},
"license": "MIT",
- "version": "0.31.4"
+ "version": "0.31.5"
}
],
"version": 1
diff --git a/extensions/java/syntaxes/java.tmLanguage.json b/extensions/java/syntaxes/java.tmLanguage.json
index 3cfa6f56337..11b6cf50a93 100644
--- a/extensions/java/syntaxes/java.tmLanguage.json
+++ b/extensions/java/syntaxes/java.tmLanguage.json
@@ -4,7 +4,7 @@
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
"Once accepted there, we are happy to receive an update request."
],
- "version": "https://github.com/atom/language-java/commit/2e179ceac423403eb5bf0eff26884093c3edba6f",
+ "version": "https://github.com/atom/language-java/commit/f631536a4137d65b622f01cebeac72345f9e6f70",
"name": "Java",
"scopeName": "source.java",
"patterns": [
@@ -1785,7 +1785,7 @@
]
},
"variables": {
- "begin": "(?x)\n(?=\n (\n \\b(void|boolean|byte|char|short|int|float|long|double)\\b\n |\n (?>(\\w+\\.)*[A-Z_]+\\w*) # e.g. `javax.ws.rs.Response`, or `String`\n )\n \\s*\n (\n <[\\w<>,\\.?\\s\\[\\]]*> # e.g. `HashMap`, or `List`\n )?\n \\s*\n (\n (\\[\\])* # int[][]\n )?\n \\s+\n [A-Za-z_$][\\w$]* # At least one identifier after space\n ([\\w\\[\\],$][\\w\\[\\],\\s]*)? # possibly primitive array or additional identifiers\n \\s*(=|:|;)\n)",
+ "begin": "(?x)\n(?=\n \\b\n (\n (void|boolean|byte|char|short|int|float|long|double)\n |\n (?>(\\w+\\.)*[A-Z_]+\\w*) # e.g. `javax.ws.rs.Response`, or `String`\n )\n \\b\n \\s*\n (\n <[\\w<>,\\.?\\s\\[\\]]*> # e.g. `HashMap`, or `List`\n )?\n \\s*\n (\n (\\[\\])* # int[][]\n )?\n \\s+\n [A-Za-z_$][\\w$]* # At least one identifier after space\n ([\\w\\[\\],$][\\w\\[\\],\\s]*)? # possibly primitive array or additional identifiers\n \\s*(=|:|;)\n)",
"end": "(?=\\=|:|;)",
"name": "meta.definition.variable.java",
"patterns": [
diff --git a/extensions/php/cgmanifest.json b/extensions/php/cgmanifest.json
index ea157efc34e..3c5b9b9ffd3 100644
--- a/extensions/php/cgmanifest.json
+++ b/extensions/php/cgmanifest.json
@@ -6,7 +6,7 @@
"git": {
"name": "language-php",
"repositoryUrl": "https://github.com/atom/language-php",
- "commitHash": "11cdaf62a9d949d3aca550f1a58c9754de6b5ab0"
+ "commitHash": "6c0da475f86b45ea990638525f68be7658986546"
}
},
"license": "MIT",
diff --git a/extensions/php/syntaxes/php.tmLanguage.json b/extensions/php/syntaxes/php.tmLanguage.json
index a995a1e82ab..54fbd4b7869 100644
--- a/extensions/php/syntaxes/php.tmLanguage.json
+++ b/extensions/php/syntaxes/php.tmLanguage.json
@@ -4,7 +4,7 @@
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
"Once accepted there, we are happy to receive an update request."
],
- "version": "https://github.com/atom/language-php/commit/11cdaf62a9d949d3aca550f1a58c9754de6b5ab0",
+ "version": "https://github.com/atom/language-php/commit/6c0da475f86b45ea990638525f68be7658986546",
"scopeName": "source.php",
"patterns": [
{
@@ -1329,6 +1329,17 @@
}
]
},
+ "named-arguments": {
+ "match": "(?i)(?<=^|\\(|,)\\s*([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)\\s*(:)(?!:)",
+ "captures": {
+ "1": {
+ "name": "entity.name.variable.parameter.php"
+ },
+ "2": {
+ "name": "punctuation.separator.colon.php"
+ }
+ }
+ },
"function-call": {
"patterns": [
{
@@ -1357,6 +1368,9 @@
},
"name": "meta.function-call.php",
"patterns": [
+ {
+ "include": "#named-arguments"
+ },
{
"include": "$self"
}
@@ -1395,6 +1409,9 @@
},
"name": "meta.function-call.php",
"patterns": [
+ {
+ "include": "#named-arguments"
+ },
{
"include": "$self"
}
@@ -2242,6 +2259,9 @@
},
"name": "meta.method-call.php",
"patterns": [
+ {
+ "include": "#named-arguments"
+ },
{
"include": "$self"
}
@@ -2614,6 +2634,9 @@
},
"name": "meta.method-call.static.php",
"patterns": [
+ {
+ "include": "#named-arguments"
+ },
{
"include": "$self"
}
@@ -3447,6 +3470,18 @@
}
},
"patterns": [
+ {
+ "match": "(?i)^\\s*([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)\\s*(?=:(?!:))",
+ "captures": {
+ "1": {
+ "patterns": [
+ {
+ "include": "$self"
+ }
+ ]
+ }
+ }
+ },
{
"include": "$self"
}
diff --git a/extensions/python/package.json b/extensions/python/package.json
index e7c75aa4ea1..f39c3d62b23 100644
--- a/extensions/python/package.json
+++ b/extensions/python/package.json
@@ -15,7 +15,7 @@
"id": "python",
"extensions": [ ".py", ".rpy", ".pyw", ".cpy", ".gyp", ".gypi", ".pyi", ".ipy"],
"aliases": [ "Python", "py" ],
- "filenames": [ "Snakefile" ],
+ "filenames": [ "Snakefile", "SConstruct", "SConscript" ],
"firstLine": "^#!\\s*/?.*\\bpython[0-9.-]*\\b",
"configuration": "./language-configuration.json"
}],
diff --git a/extensions/sql/cgmanifest.json b/extensions/sql/cgmanifest.json
index 3ef90a09d14..45e7c7f4e7b 100644
--- a/extensions/sql/cgmanifest.json
+++ b/extensions/sql/cgmanifest.json
@@ -6,7 +6,7 @@
"git": {
"name": "Microsoft/vscode-mssql",
"repositoryUrl": "https://github.com/Microsoft/vscode-mssql",
- "commitHash": "750d30dc48c4c0317b63bb5f1ed3e71487bb84a1"
+ "commitHash": "61ae0eb21ac53883a23e09913a5ae77a59126ff9"
}
},
"license": "MIT",
diff --git a/extensions/sql/syntaxes/sql.tmLanguage.json b/extensions/sql/syntaxes/sql.tmLanguage.json
index bc3b533bcb9..de4dc029f80 100644
--- a/extensions/sql/syntaxes/sql.tmLanguage.json
+++ b/extensions/sql/syntaxes/sql.tmLanguage.json
@@ -4,7 +4,7 @@
"If you want to provide a fix or improvement, please create a pull request against the original repository.",
"Once accepted there, we are happy to receive an update request."
],
- "version": "https://github.com/Microsoft/vscode-mssql/commit/750d30dc48c4c0317b63bb5f1ed3e71487bb84a1",
+ "version": "https://github.com/Microsoft/vscode-mssql/commit/61ae0eb21ac53883a23e09913a5ae77a59126ff9",
"name": "SQL",
"scopeName": "source.sql",
"patterns": [
diff --git a/extensions/typescript-language-features/src/tsServer/bufferSyncSupport.ts b/extensions/typescript-language-features/src/tsServer/bufferSyncSupport.ts
index fdc552a293c..40610b66f11 100644
--- a/extensions/typescript-language-features/src/tsServer/bufferSyncSupport.ts
+++ b/extensions/typescript-language-features/src/tsServer/bufferSyncSupport.ts
@@ -306,7 +306,10 @@ class GetErrRequest {
public readonly files: ResourceMap,
onDone: () => void
) {
- const allFiles = coalesce(Array.from(files.entries).map(entry => client.normalizedPath(entry.resource)));
+ const allFiles = coalesce(Array.from(files.entries)
+ .filter(entry => client.hasCapabilityForResource(entry.resource, ClientCapability.Semantic))
+ .map(entry => client.normalizedPath(entry.resource)));
+
if (!allFiles.length || !client.capabilities.has(ClientCapability.Semantic)) {
this._done = true;
setImmediate(onDone);
@@ -529,7 +532,7 @@ export default class BufferSyncSupport extends Disposable {
this.triggerDiagnostics();
}
- public getErr(resources: vscode.Uri[]): any {
+ public getErr(resources: readonly vscode.Uri[]): any {
const handledResources = resources.filter(resource => this.handles(resource));
if (!handledResources.length) {
return;
diff --git a/extensions/typescript-language-features/src/tsServer/versionManager.ts b/extensions/typescript-language-features/src/tsServer/versionManager.ts
index 069d6d683d4..4811fefd3a7 100644
--- a/extensions/typescript-language-features/src/tsServer/versionManager.ts
+++ b/extensions/typescript-language-features/src/tsServer/versionManager.ts
@@ -5,7 +5,6 @@
import * as vscode from 'vscode';
import * as nls from 'vscode-nls';
-import * as path from 'path';
import { TypeScriptServiceConfiguration } from '../utils/configuration';
import { Disposable } from '../utils/dispose';
import { ITypeScriptVersionProvider, TypeScriptVersion } from './versionProvider';
@@ -110,7 +109,7 @@ export class TypeScriptVersionManager extends Disposable {
run: async () => {
await this.workspaceState.update(useWorkspaceTsdkStorageKey, true);
const tsConfig = vscode.workspace.getConfiguration('typescript');
- await tsConfig.update('tsdk', path.dirname(version.tsServerPath), false);
+ await tsConfig.update('tsdk', version.pathLabel, false);
this.updateActiveVersion(version);
},
};
diff --git a/extensions/typescript-language-features/src/tsServer/versionProvider.electron.ts b/extensions/typescript-language-features/src/tsServer/versionProvider.electron.ts
index 15107bc4b5b..760f82d7b09 100644
--- a/extensions/typescript-language-features/src/tsServer/versionProvider.electron.ts
+++ b/extensions/typescript-language-features/src/tsServer/versionProvider.electron.ts
@@ -104,7 +104,8 @@ export class DiskTypeScriptVersionProvider implements ITypeScriptVersionProvider
return [
new TypeScriptVersion(source,
serverPath,
- DiskTypeScriptVersionProvider.getApiVersion(serverPath))
+ DiskTypeScriptVersionProvider.getApiVersion(serverPath),
+ tsdkPathSetting)
];
}
diff --git a/extensions/typescript-language-features/src/typescriptService.ts b/extensions/typescript-language-features/src/typescriptService.ts
index 8a59d97105c..58a78ad19b5 100644
--- a/extensions/typescript-language-features/src/typescriptService.ts
+++ b/extensions/typescript-language-features/src/typescriptService.ts
@@ -145,10 +145,15 @@ export interface ITypeScriptServiceClient {
/**
* Tries to ensure that a vscode document is open on the TS server.
*
- * Returns the normalized path.
+ * @return The normalized path or `undefined` if the document is not open on the server.
*/
toOpenedFilePath(document: vscode.TextDocument): string | undefined;
+ /**
+ * Checks if `resource` has a given capability.
+ */
+ hasCapabilityForResource(resource: vscode.Uri, capability: ClientCapability): boolean;
+
getWorkspaceRootForResource(resource: vscode.Uri): string | undefined;
readonly onTsServerStarted: vscode.Event<{ version: TypeScriptVersion, usedApiVersion: API }>;
diff --git a/extensions/typescript-language-features/src/typescriptServiceClient.ts b/extensions/typescript-language-features/src/typescriptServiceClient.ts
index a9e6bf10d7f..c068f94189b 100644
--- a/extensions/typescript-language-features/src/typescriptServiceClient.ts
+++ b/extensions/typescript-language-features/src/typescriptServiceClient.ts
@@ -673,6 +673,26 @@ export default class TypeScriptServiceClient extends Disposable implements IType
return this.toPath(document.uri) || undefined;
}
+ public hasCapabilityForResource(resource: vscode.Uri, capability: ClientCapability): boolean {
+ switch (capability) {
+ case ClientCapability.Semantic:
+ {
+ switch (resource.scheme) {
+ case fileSchemes.file:
+ case fileSchemes.untitled:
+ return true;
+ default:
+ return false;
+ }
+ }
+ case ClientCapability.Syntax:
+ case ClientCapability.EnhancedSyntax:
+ {
+ return true;
+ }
+ }
+ }
+
public toResource(filepath: string): vscode.Uri {
if (filepath.startsWith(this.inMemoryResourcePrefix)) {
const resource = vscode.Uri.parse(filepath.slice(1));
diff --git a/extensions/typescript-language-features/src/utils/fileSchemes.ts b/extensions/typescript-language-features/src/utils/fileSchemes.ts
index 46b8467879d..d465a60326e 100644
--- a/extensions/typescript-language-features/src/utils/fileSchemes.ts
+++ b/extensions/typescript-language-features/src/utils/fileSchemes.ts
@@ -6,8 +6,6 @@
export const file = 'file';
export const untitled = 'untitled';
export const git = 'git';
-export const pr = 'pr';
-export const privateScheme = 'private';
/** Live share scheme */
export const vsls = 'vsls';
export const walkThroughSnippet = 'walkThroughSnippet';
@@ -22,7 +20,5 @@ export const semanticSupportedSchemes = [
*/
export const disabledSchemes = new Set([
git,
- vsls,
- privateScheme,
- pr,
+ vsls
]);
diff --git a/package.json b/package.json
index 5e05dbde40c..1d04db1ccf5 100644
--- a/package.json
+++ b/package.json
@@ -59,7 +59,7 @@
"native-is-elevated": "0.4.1",
"native-keymap": "2.2.0",
"native-watchdog": "1.3.0",
- "node-pty": "0.10.0-beta8",
+ "node-pty": "0.10.0-beta17",
"semver-umd": "^5.5.7",
"spdlog": "^0.11.1",
"sudo-prompt": "9.1.1",
@@ -68,13 +68,13 @@
"vscode-nsfw": "1.2.8",
"vscode-oniguruma": "1.3.1",
"vscode-proxy-agent": "^0.5.2",
- "vscode-ripgrep": "^1.8.0",
+ "vscode-ripgrep": "^1.9.0",
"vscode-sqlite3": "4.0.10",
"vscode-textmate": "5.2.0",
- "xterm": "4.9.0-beta.25",
+ "xterm": "4.9.0-beta.32",
"xterm-addon-search": "0.7.0",
"xterm-addon-unicode11": "0.2.0",
- "xterm-addon-webgl": "0.9.0-beta.1",
+ "xterm-addon-webgl": "0.9.0-beta.4",
"yauzl": "^2.9.2",
"yazl": "^2.4.3"
},
@@ -110,7 +110,7 @@
"css-loader": "^3.2.0",
"debounce": "^1.0.0",
"deemon": "^1.4.0",
- "electron": "9.2.1",
+ "electron": "9.3.0",
"eslint": "6.8.0",
"eslint-plugin-jsdoc": "^19.1.0",
"event-stream": "3.3.4",
diff --git a/product.json b/product.json
index 30a7f0708ea..7651fc50bb5 100644
--- a/product.json
+++ b/product.json
@@ -61,7 +61,7 @@
},
{
"name": "ms-vscode.references-view",
- "version": "0.0.62",
+ "version": "0.0.63",
"repo": "https://github.com/Microsoft/vscode-reference-view",
"metadata": {
"id": "dc489f46-520d-4556-ae85-1f9eab3c412d",
diff --git a/remote/package.json b/remote/package.json
index 187c951af64..0a7b6f7e0a1 100644
--- a/remote/package.json
+++ b/remote/package.json
@@ -12,18 +12,18 @@
"jschardet": "2.2.1",
"minimist": "^1.2.5",
"native-watchdog": "1.3.0",
- "node-pty": "0.10.0-beta8",
+ "node-pty": "0.10.0-beta17",
"semver-umd": "^5.5.7",
"spdlog": "^0.11.1",
"vscode-nsfw": "1.2.8",
"vscode-oniguruma": "1.3.1",
"vscode-proxy-agent": "^0.5.2",
- "vscode-ripgrep": "^1.8.0",
+ "vscode-ripgrep": "^1.9.0",
"vscode-textmate": "5.2.0",
- "xterm": "4.9.0-beta.25",
+ "xterm": "4.9.0-beta.32",
"xterm-addon-search": "0.7.0",
"xterm-addon-unicode11": "0.2.0",
- "xterm-addon-webgl": "0.9.0-beta.1",
+ "xterm-addon-webgl": "0.9.0-beta.4",
"yauzl": "^2.9.2",
"yazl": "^2.4.3"
},
diff --git a/remote/web/package.json b/remote/web/package.json
index fc4855b4ab7..9db946c5bbb 100644
--- a/remote/web/package.json
+++ b/remote/web/package.json
@@ -7,9 +7,9 @@
"semver-umd": "^5.5.7",
"vscode-oniguruma": "1.3.1",
"vscode-textmate": "5.2.0",
- "xterm": "4.9.0-beta.25",
+ "xterm": "4.9.0-beta.32",
"xterm-addon-search": "0.7.0",
"xterm-addon-unicode11": "0.2.0",
- "xterm-addon-webgl": "0.9.0-beta.1"
+ "xterm-addon-webgl": "0.9.0-beta.4"
}
}
diff --git a/remote/web/yarn.lock b/remote/web/yarn.lock
index a5498289c43..400d4d629c4 100644
--- a/remote/web/yarn.lock
+++ b/remote/web/yarn.lock
@@ -37,12 +37,12 @@ xterm-addon-unicode11@0.2.0:
resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.2.0.tgz#9ed0c482b353908bba27778893ca80823382737c"
integrity sha512-rjFDItPc/IDoSiEnoDFwKroNwLD/7t9vYKENjrcKVZg5tgJuuUj8D4rZtP6iVCjSB1LTLYmUs4L/EmCqIyLR/Q==
-xterm-addon-webgl@0.9.0-beta.1:
- version "0.9.0-beta.1"
- resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.9.0-beta.1.tgz#e0a4e9b71db7ef8182064236844caf32833214c2"
- integrity sha512-yyIYfehzaqaOTOTjSapA3sEcaGDIPn0xAiWyRIWyW5zwTZIo7FA+O4IzhgAT9b7ioJWLcPoHPUA0OFNHAx20vQ==
+xterm-addon-webgl@0.9.0-beta.4:
+ version "0.9.0-beta.4"
+ resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.9.0-beta.4.tgz#5f5fde50db5c06b116471bcf56ad9930884b36fa"
+ integrity sha512-GuCvF7Eg1nKLX6zUbJLkt5cqeeccUjf/G6fugCfrkR0EWWC6Ik5mEsEOs5UWm9vvY2kX9t16BdCrgqp8KJegEg==
-xterm@4.9.0-beta.25:
- version "4.9.0-beta.25"
- resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.9.0-beta.25.tgz#c229a144184ab7b3c3afdaff76f9d81bac58933b"
- integrity sha512-NJHwuS7Qsoq/Yuobl+Au4rgol/oBNj4pGoR2R6IRnXODS5RDE4spHDofWKiUkDMlNZtPPku1W7k1kFnonDIhhg==
+xterm@4.9.0-beta.32:
+ version "4.9.0-beta.32"
+ resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.9.0-beta.32.tgz#d1243d3be211cc06aad3418e696e4eced995c20c"
+ integrity sha512-jloHNBnj6XRJt+oPkapvrXJZVsYq6se/PEgzErl0iZn9qzSB3jmWE4byumoEjXJR6EgU5ZOmNljeeEDA9jO/jA==
diff --git a/remote/yarn.lock b/remote/yarn.lock
index 748e983bd3c..c5f19e6bbc9 100644
--- a/remote/yarn.lock
+++ b/remote/yarn.lock
@@ -294,10 +294,10 @@ node-addon-api@1.6.2:
resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.6.2.tgz#d8aad9781a5cfc4132cc2fecdbdd982534265217"
integrity sha512-479Bjw9nTE5DdBSZZWprFryHGjUaQC31y1wHo19We/k0BZlrmhqQitWoUL0cD8+scljCbIUL+E58oRDEakdGGA==
-node-pty@0.10.0-beta8:
- version "0.10.0-beta8"
- resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.10.0-beta8.tgz#f4aa56c71a794f4580373a3030dfebd25240c6db"
- integrity sha512-Ul/hLsadC0SvvShxpne+kq2ebSMcitewlNhrwoXXBvFdCqxJt7Ai1AgMhH7AKBUp06uBeYXThJ2ihTszrkdnYw==
+node-pty@0.10.0-beta17:
+ version "0.10.0-beta17"
+ resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.10.0-beta17.tgz#962d4a3f4dc6772385e0cad529c209cef3bc79e6"
+ integrity sha512-tn7EANQacnAvnOQCImvgag1DL0tVmUoY/1yIZbh3u/BBpvCcGHLZJNn7TXheodRLr6hmGSUS2VbfcUr9p0gOug==
dependencies:
nan "^2.14.0"
@@ -410,10 +410,10 @@ vscode-proxy-agent@^0.5.2:
https-proxy-agent "^2.2.3"
socks-proxy-agent "^4.0.1"
-vscode-ripgrep@^1.8.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/vscode-ripgrep/-/vscode-ripgrep-1.8.0.tgz#dfe7c2ae2a2032df8a8108765c2feef73474888a"
- integrity sha512-/Q5XtePkTLLi8yplr5ai24pVEymRF62xH9xXrtj35GTaDCJg3zq1s1/L1UqhVbfNDv4OcMBYjyIAt/quEi3d5w==
+vscode-ripgrep@^1.9.0:
+ version "1.9.0"
+ resolved "https://registry.yarnpkg.com/vscode-ripgrep/-/vscode-ripgrep-1.9.0.tgz#d6cdea4d290f3c2919472cdcfe2440d5fb1f99db"
+ integrity sha512-7jyAC/NNfvMPZgCVkyqIn0STYJ7wIk3PF2qA2cX1sEutx1g/e2VtgKAodXnfpreJq4993JT/BSIigOv/0lBSzg==
dependencies:
https-proxy-agent "^4.0.0"
proxy-from-env "^1.1.0"
@@ -445,15 +445,15 @@ xterm-addon-unicode11@0.2.0:
resolved "https://registry.yarnpkg.com/xterm-addon-unicode11/-/xterm-addon-unicode11-0.2.0.tgz#9ed0c482b353908bba27778893ca80823382737c"
integrity sha512-rjFDItPc/IDoSiEnoDFwKroNwLD/7t9vYKENjrcKVZg5tgJuuUj8D4rZtP6iVCjSB1LTLYmUs4L/EmCqIyLR/Q==
-xterm-addon-webgl@0.9.0-beta.1:
- version "0.9.0-beta.1"
- resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.9.0-beta.1.tgz#e0a4e9b71db7ef8182064236844caf32833214c2"
- integrity sha512-yyIYfehzaqaOTOTjSapA3sEcaGDIPn0xAiWyRIWyW5zwTZIo7FA+O4IzhgAT9b7ioJWLcPoHPUA0OFNHAx20vQ==
+xterm-addon-webgl@0.9.0-beta.4:
+ version "0.9.0-beta.4"
+ resolved "https://registry.yarnpkg.com/xterm-addon-webgl/-/xterm-addon-webgl-0.9.0-beta.4.tgz#5f5fde50db5c06b116471bcf56ad9930884b36fa"
+ integrity sha512-GuCvF7Eg1nKLX6zUbJLkt5cqeeccUjf/G6fugCfrkR0EWWC6Ik5mEsEOs5UWm9vvY2kX9t16BdCrgqp8KJegEg==
-xterm@4.9.0-beta.25:
- version "4.9.0-beta.25"
- resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.9.0-beta.25.tgz#c229a144184ab7b3c3afdaff76f9d81bac58933b"
- integrity sha512-NJHwuS7Qsoq/Yuobl+Au4rgol/oBNj4pGoR2R6IRnXODS5RDE4spHDofWKiUkDMlNZtPPku1W7k1kFnonDIhhg==
+xterm@4.9.0-beta.32:
+ version "4.9.0-beta.32"
+ resolved "https://registry.yarnpkg.com/xterm/-/xterm-4.9.0-beta.32.tgz#d1243d3be211cc06aad3418e696e4eced995c20c"
+ integrity sha512-jloHNBnj6XRJt+oPkapvrXJZVsYq6se/PEgzErl0iZn9qzSB3jmWE4byumoEjXJR6EgU5ZOmNljeeEDA9jO/jA==
yauzl@^2.9.2:
version "2.10.0"
diff --git a/src/vs/base/browser/dom.ts b/src/vs/base/browser/dom.ts
index 9349efc2792..fe50083857a 100644
--- a/src/vs/base/browser/dom.ts
+++ b/src/vs/base/browser/dom.ts
@@ -12,7 +12,6 @@ import { onUnexpectedError } from 'vs/base/common/errors';
import { Emitter, Event } from 'vs/base/common/event';
import { Disposable, IDisposable, toDisposable } from 'vs/base/common/lifecycle';
import * as platform from 'vs/base/common/platform';
-import { coalesce } from 'vs/base/common/arrays';
import { URI } from 'vs/base/common/uri';
import { Schemas, RemoteAuthorities } from 'vs/base/common/network';
import { BrowserFeatures } from 'vs/base/browser/canIUse';
@@ -1012,20 +1011,23 @@ export function prepend(parent: HTMLElement, child: T): T {
return child;
}
-const SELECTOR_REGEX = /([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;
-export function reset(parent: HTMLElement, ...children: Array) {
+/**
+ * Removes all children from `parent` and appends `children`
+ */
+export function reset(parent: HTMLElement, ...children: Array) {
parent.innerText = '';
- coalesce(children)
- .forEach(child => {
- if (child instanceof Node) {
- parent.appendChild(child);
- } else {
- parent.appendChild(document.createTextNode(child as string));
- }
- });
+ for (const child of children) {
+ if (child instanceof Node) {
+ parent.appendChild(child);
+ } else if (typeof child === 'string') {
+ parent.appendChild(document.createTextNode(child));
+ }
+ }
}
+const SELECTOR_REGEX = /([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;
+
export enum Namespace {
HTML = 'http://www.w3.org/1999/xhtml',
SVG = 'http://www.w3.org/2000/svg'
@@ -1075,14 +1077,13 @@ function _$(namespace: Namespace, description: string, attrs?
}
});
- coalesce(children)
- .forEach(child => {
- if (child instanceof Node) {
- result.appendChild(child);
- } else {
- result.appendChild(document.createTextNode(child as string));
- }
- });
+ for (const child of children) {
+ if (child instanceof Node) {
+ result.appendChild(child);
+ } else if (typeof child === 'string') {
+ result.appendChild(document.createTextNode(child));
+ }
+ }
return result as T;
}
diff --git a/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.ts b/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.ts
index 59225493378..fd91a3cb625 100644
--- a/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.ts
+++ b/src/vs/base/browser/ui/breadcrumbs/breadcrumbsWidget.ts
@@ -118,7 +118,7 @@ export class BreadcrumbsWidget {
dispose(): void {
this._disposables.dispose();
- dispose(this._pendingLayout);
+ this._pendingLayout?.dispose();
this._onDidSelectItem.dispose();
this._onDidFocusItem.dispose();
this._onDidChangeFocus.dispose();
@@ -131,9 +131,7 @@ export class BreadcrumbsWidget {
if (dim && dom.Dimension.equals(dim, this._dimension)) {
return;
}
- if (this._pendingLayout) {
- this._pendingLayout.dispose();
- }
+ this._pendingLayout?.dispose();
if (dim) {
// only measure
this._pendingLayout = this._updateDimensions(dim);
diff --git a/src/vs/base/browser/ui/highlightedlabel/highlightedLabel.ts b/src/vs/base/browser/ui/highlightedlabel/highlightedLabel.ts
index e408f21afd2..f5599033976 100644
--- a/src/vs/base/browser/ui/highlightedlabel/highlightedLabel.ts
+++ b/src/vs/base/browser/ui/highlightedlabel/highlightedLabel.ts
@@ -4,8 +4,8 @@
*--------------------------------------------------------------------------------------------*/
import * as objects from 'vs/base/common/objects';
-import { renderCodicons } from 'vs/base/common/codicons';
-import { escape } from 'vs/base/common/strings';
+import * as dom from 'vs/base/browser/dom';
+import { renderCodiconsAsElement } from 'vs/base/browser/codicons';
export interface IHighlight {
start: number;
@@ -15,7 +15,7 @@ export interface IHighlight {
export class HighlightedLabel {
- private domNode: HTMLElement;
+ private readonly domNode: HTMLElement;
private text: string = '';
private title: string = '';
private highlights: IHighlight[] = [];
@@ -44,10 +44,6 @@ export class HighlightedLabel {
return;
}
- if (!Array.isArray(highlights)) {
- highlights = [];
- }
-
this.text = text;
this.title = title;
this.highlights = highlights;
@@ -56,7 +52,7 @@ export class HighlightedLabel {
private render(): void {
- let htmlContent = '';
+ const children: HTMLSpanElement[] = [];
let pos = 0;
for (const highlight of this.highlights) {
@@ -64,31 +60,26 @@ export class HighlightedLabel {
continue;
}
if (pos < highlight.start) {
- htmlContent += '';
const substring = this.text.substring(pos, highlight.start);
- htmlContent += this.supportCodicons ? renderCodicons(escape(substring)) : escape(substring);
- htmlContent += '';
+ children.push(dom.$('span', undefined, ...this.supportCodicons ? renderCodiconsAsElement(substring) : [substring]));
pos = highlight.end;
}
- if (highlight.extraClasses) {
- htmlContent += `