diff --git a/build/builtInExtensions.json b/build/builtInExtensions.json index 1e61897c5ed..65a8a64d140 100644 --- a/build/builtInExtensions.json +++ b/build/builtInExtensions.json @@ -6,7 +6,7 @@ }, { "name": "ms-vscode.node-debug2", - "version": "1.24.1", + "version": "1.24.2", "repo": "https://github.com/Microsoft/vscode-node-debug2" } ] diff --git a/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json b/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json index 820134b366a..091e4378a90 100644 --- a/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json +++ b/extensions/markdown-basics/syntaxes/markdown.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-markdown-tm-grammar/commit/e667795f83c83e36dc6f90bde14632a963c52e34", + "version": "https://github.com/microsoft/vscode-markdown-tm-grammar/commit/ab08007feb924996eff9399c169f171fa17899ca", "name": "Markdown", "scopeName": "text.html.markdown", "patterns": [ @@ -162,6 +162,9 @@ { "include": "#fenced_code_block_fsharp" }, + { + "include": "#fenced_code_block_dart" + }, { "include": "#fenced_code_block_unknown" }, @@ -1649,6 +1652,39 @@ } ] }, + "fenced_code_block_dart": { + "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)(\\s+[^`~]*)?$)", + "name": "markup.fenced_code.block.markdown", + "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", + "beginCaptures": { + "3": { + "name": "punctuation.definition.markdown" + }, + "5": { + "name": "fenced_code.block.language" + }, + "6": { + "name": "fenced_code.block.language.attributes" + } + }, + "endCaptures": { + "3": { + "name": "punctuation.definition.markdown" + } + }, + "patterns": [ + { + "begin": "(^|\\G)(\\s*)(.*)", + "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", + "contentName": "meta.embedded.block.dart", + "patterns": [ + { + "include": "source.dart" + } + ] + } + ] + }, "fenced_code_block_unknown": { "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`~]*)?$)", "beginCaptures": { diff --git a/extensions/typescript-language-features/src/features/documentSymbolProvider.ts b/extensions/typescript-language-features/src/features/documentSymbolProvider.ts index 82a23b34cf6..e81ebf49584 100644 --- a/extensions/typescript-language-features/src/features/documentSymbolProvider.ts +++ b/extensions/typescript-language-features/src/features/documentSymbolProvider.ts @@ -10,22 +10,25 @@ import * as PConst from '../protocol.const'; import { ITypeScriptServiceClient } from '../typescriptService'; import * as typeConverters from '../utils/typeConverters'; -const outlineTypeTable: { [kind: string]: SymbolKind } = Object.create(null); -outlineTypeTable[PConst.Kind.module] = SymbolKind.Module; -outlineTypeTable[PConst.Kind.class] = SymbolKind.Class; -outlineTypeTable[PConst.Kind.enum] = SymbolKind.Enum; -outlineTypeTable[PConst.Kind.interface] = SymbolKind.Interface; -outlineTypeTable[PConst.Kind.memberFunction] = SymbolKind.Method; -outlineTypeTable[PConst.Kind.memberVariable] = SymbolKind.Property; -outlineTypeTable[PConst.Kind.memberGetAccessor] = SymbolKind.Property; -outlineTypeTable[PConst.Kind.memberSetAccessor] = SymbolKind.Property; -outlineTypeTable[PConst.Kind.variable] = SymbolKind.Variable; -outlineTypeTable[PConst.Kind.const] = SymbolKind.Variable; -outlineTypeTable[PConst.Kind.localVariable] = SymbolKind.Variable; -outlineTypeTable[PConst.Kind.variable] = SymbolKind.Variable; -outlineTypeTable[PConst.Kind.function] = SymbolKind.Function; -outlineTypeTable[PConst.Kind.localFunction] = SymbolKind.Function; - +const getSymbolKind = (kind: string): SymbolKind => { + switch (kind) { + case PConst.Kind.module: return SymbolKind.Module; + case PConst.Kind.class: return SymbolKind.Class; + case PConst.Kind.enum: return SymbolKind.Enum; + case PConst.Kind.interface: return SymbolKind.Interface; + case PConst.Kind.memberFunction: return SymbolKind.Method; + case PConst.Kind.memberVariable: return SymbolKind.Property; + case PConst.Kind.memberGetAccessor: return SymbolKind.Property; + case PConst.Kind.memberSetAccessor: return SymbolKind.Property; + case PConst.Kind.variable: return SymbolKind.Variable; + case PConst.Kind.const: return SymbolKind.Variable; + case PConst.Kind.localVariable: return SymbolKind.Variable; + case PConst.Kind.variable: return SymbolKind.Variable; + case PConst.Kind.function: return SymbolKind.Function; + case PConst.Kind.localFunction: return SymbolKind.Function; + } + return SymbolKind.Variable; +}; export default class TypeScriptDocumentSymbolProvider implements DocumentSymbolProvider { public constructor( @@ -45,9 +48,9 @@ export default class TypeScriptDocumentSymbolProvider implements DocumentSymbolP const response = await this.client.execute('navtree', args, token); if (response.body) { // The root represents the file. Ignore this when showing in the UI - let tree = response.body; + const tree = response.body; if (tree.childItems) { - let result = new Array>(); + const result = new Array>(); tree.childItems.forEach(item => TypeScriptDocumentSymbolProvider.convertNavTree(resource.uri, result, item)); return result; } @@ -55,8 +58,8 @@ export default class TypeScriptDocumentSymbolProvider implements DocumentSymbolP } else { const response = await this.client.execute('navbar', args, token); if (response.body) { - let result = new Array(); - let foldingMap: ObjectMap = Object.create(null); + const result = new Array(); + const foldingMap: ObjectMap = Object.create(null); response.body.forEach(item => TypeScriptDocumentSymbolProvider.convertNavBar(resource.uri, 0, foldingMap, result as SymbolInformation[], item)); return result; } @@ -68,11 +71,11 @@ export default class TypeScriptDocumentSymbolProvider implements DocumentSymbolP } private static convertNavBar(resource: Uri, indent: number, foldingMap: ObjectMap, bucket: SymbolInformation[], item: Proto.NavigationBarItem, containerLabel?: string): void { - let realIndent = indent + item.indent; - let key = `${realIndent}|${item.text}`; - if (realIndent !== 0 && !foldingMap[key] && TypeScriptDocumentSymbolProvider.shouldInclueEntry(item.text)) { - let result = new SymbolInformation(item.text, - outlineTypeTable[item.kind as string] || SymbolKind.Variable, + const realIndent = indent + item.indent; + const key = `${realIndent}|${item.text}`; + if (realIndent !== 0 && !foldingMap[key] && TypeScriptDocumentSymbolProvider.shouldInclueEntry(item)) { + const result = new SymbolInformation(item.text, + getSymbolKind(item.kind), containerLabel ? containerLabel : '', typeConverters.Location.fromTextSpan(resource, item.spans[0])); foldingMap[key] = result; @@ -85,28 +88,31 @@ export default class TypeScriptDocumentSymbolProvider implements DocumentSymbolP } } - private static convertNavTree(resource: Uri, bucket: Hierarchy[], item: Proto.NavigationTree): void { - if (!TypeScriptDocumentSymbolProvider.shouldInclueEntry(item.text)) { - return; - } + private static convertNavTree(resource: Uri, bucket: Hierarchy[], item: Proto.NavigationTree): boolean { const symbolInfo = new SymbolInformation2( item.text, '', // todo@joh detail - outlineTypeTable[item.kind as string] || SymbolKind.Variable, + getSymbolKind(item.kind), typeConverters.Range.fromTextSpan(item.spans[0]), typeConverters.Location.fromTextSpan(resource, item.spans[0]), ); + const hierarchy = new Hierarchy(symbolInfo); + let shouldInclude = TypeScriptDocumentSymbolProvider.shouldInclueEntry(item); + if (item.childItems && item.childItems.length > 0) { for (const child of item.childItems) { - TypeScriptDocumentSymbolProvider.convertNavTree(resource, hierarchy.children, child); + shouldInclude = shouldInclude || TypeScriptDocumentSymbolProvider.convertNavTree(resource, hierarchy.children, child); } } - bucket.push(hierarchy); + if (shouldInclude) { + bucket.push(hierarchy); + } + return shouldInclude; } - private static shouldInclueEntry(name: string): boolean { - return !!(name && name !== '' && name !== ''); + private static shouldInclueEntry(item: Proto.NavigationTree | Proto.NavigationBarItem): boolean { + return !!(item.text && item.text !== '' && item.text !== ''); } } diff --git a/package.json b/package.json index 5695269c991..34878ee1799 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "vscode-nsfw": "1.0.17", "vscode-ripgrep": "^0.8.1", "vscode-textmate": "^3.3.3", - "vscode-xterm": "3.5.0-beta5", + "vscode-xterm": "3.5.0-beta6", "yauzl": "^2.9.1" }, "devDependencies": { diff --git a/src/vs/base/browser/dom.ts b/src/vs/base/browser/dom.ts index 2a34c3f1578..3856b7dbeb1 100644 --- a/src/vs/base/browser/dom.ts +++ b/src/vs/base/browser/dom.ts @@ -634,11 +634,11 @@ export function getDomNodePagePosition(domNode: HTMLElement): IDomNodePagePositi } export interface IStandardWindow { - scrollX: number; - scrollY: number; + readonly scrollX: number; + readonly scrollY: number; } -export const StandardWindow: IStandardWindow = new class { +export const StandardWindow: IStandardWindow = new class implements IStandardWindow { get scrollX(): number { if (typeof window.scrollX === 'number') { // modern browsers diff --git a/src/vs/base/browser/event.ts b/src/vs/base/browser/event.ts index 25b85a6807d..ba6349a1471 100644 --- a/src/vs/base/browser/event.ts +++ b/src/vs/base/browser/event.ts @@ -2,113 +2,14 @@ * 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 { Event as _Event, Emitter, mapEvent } from 'vs/base/common/event'; +import { Event, Emitter, mapEvent } from 'vs/base/common/event'; export type EventHandler = HTMLElement | HTMLDocument | Window; export interface IDomEvent { - (element: EventHandler, type: 'MSContentZoom', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSGestureChange', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSGestureDoubleTap', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSGestureEnd', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSGestureHold', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSGestureStart', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSGestureTap', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSGotPointerCapture', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSInertiaStart', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSLostPointerCapture', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSPointerCancel', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSPointerDown', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSPointerEnter', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSPointerLeave', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSPointerMove', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSPointerOut', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSPointerOver', useCapture?: boolean): _Event; - (element: EventHandler, type: 'MSPointerUp', useCapture?: boolean): _Event; - (element: EventHandler, type: 'abort', useCapture?: boolean): _Event; - (element: EventHandler, type: 'activate', useCapture?: boolean): _Event; - (element: EventHandler, type: 'beforeactivate', useCapture?: boolean): _Event; - (element: EventHandler, type: 'beforecopy', useCapture?: boolean): _Event; - (element: EventHandler, type: 'beforecut', useCapture?: boolean): _Event; - (element: EventHandler, type: 'beforedeactivate', useCapture?: boolean): _Event; - (element: EventHandler, type: 'beforepaste', useCapture?: boolean): _Event; - (element: EventHandler, type: 'blur', useCapture?: boolean): _Event; - (element: EventHandler, type: 'canplay', useCapture?: boolean): _Event; - (element: EventHandler, type: 'canplaythrough', useCapture?: boolean): _Event; - (element: EventHandler, type: 'change', useCapture?: boolean): _Event; - (element: EventHandler, type: 'click', useCapture?: boolean): _Event; - (element: EventHandler, type: 'contextmenu', useCapture?: boolean): _Event; - (element: EventHandler, type: 'copy', useCapture?: boolean): _Event; - (element: EventHandler, type: 'cuechange', useCapture?: boolean): _Event; - (element: EventHandler, type: 'cut', useCapture?: boolean): _Event; - (element: EventHandler, type: 'dblclick', useCapture?: boolean): _Event; - (element: EventHandler, type: 'deactivate', useCapture?: boolean): _Event; - (element: EventHandler, type: 'drag', useCapture?: boolean): _Event; - (element: EventHandler, type: 'dragend', useCapture?: boolean): _Event; - (element: EventHandler, type: 'dragenter', useCapture?: boolean): _Event; - (element: EventHandler, type: 'dragleave', useCapture?: boolean): _Event; - (element: EventHandler, type: 'dragover', useCapture?: boolean): _Event; - (element: EventHandler, type: 'dragstart', useCapture?: boolean): _Event; - (element: EventHandler, type: 'drop', useCapture?: boolean): _Event; - (element: EventHandler, type: 'durationchange', useCapture?: boolean): _Event; - (element: EventHandler, type: 'emptied', useCapture?: boolean): _Event; - (element: EventHandler, type: 'ended', useCapture?: boolean): _Event; - (element: EventHandler, type: 'error', useCapture?: boolean): _Event; - (element: EventHandler, type: 'focus', useCapture?: boolean): _Event; - (element: EventHandler, type: 'gotpointercapture', useCapture?: boolean): _Event; - (element: EventHandler, type: 'input', useCapture?: boolean): _Event; - (element: EventHandler, type: 'keydown', useCapture?: boolean): _Event; - (element: EventHandler, type: 'keypress', useCapture?: boolean): _Event; - (element: EventHandler, type: 'keyup', useCapture?: boolean): _Event; - (element: EventHandler, type: 'load', useCapture?: boolean): _Event; - (element: EventHandler, type: 'loadeddata', useCapture?: boolean): _Event; - (element: EventHandler, type: 'loadedmetadata', useCapture?: boolean): _Event; - (element: EventHandler, type: 'loadstart', useCapture?: boolean): _Event; - (element: EventHandler, type: 'lostpointercapture', useCapture?: boolean): _Event; - (element: EventHandler, type: 'mousedown', useCapture?: boolean): _Event; - (element: EventHandler, type: 'mouseenter', useCapture?: boolean): _Event; - (element: EventHandler, type: 'mouseleave', useCapture?: boolean): _Event; - (element: EventHandler, type: 'mousemove', useCapture?: boolean): _Event; - (element: EventHandler, type: 'mouseout', useCapture?: boolean): _Event; - (element: EventHandler, type: 'mouseover', useCapture?: boolean): _Event; - (element: EventHandler, type: 'mouseup', useCapture?: boolean): _Event; - (element: EventHandler, type: 'mousewheel', useCapture?: boolean): _Event; - (element: EventHandler, type: 'paste', useCapture?: boolean): _Event; - (element: EventHandler, type: 'pause', useCapture?: boolean): _Event; - (element: EventHandler, type: 'play', useCapture?: boolean): _Event; - (element: EventHandler, type: 'playing', useCapture?: boolean): _Event; - (element: EventHandler, type: 'pointercancel', useCapture?: boolean): _Event; - (element: EventHandler, type: 'pointerdown', useCapture?: boolean): _Event; - (element: EventHandler, type: 'pointerenter', useCapture?: boolean): _Event; - (element: EventHandler, type: 'pointerleave', useCapture?: boolean): _Event; - (element: EventHandler, type: 'pointermove', useCapture?: boolean): _Event; - (element: EventHandler, type: 'pointerout', useCapture?: boolean): _Event; - (element: EventHandler, type: 'pointerover', useCapture?: boolean): _Event; - (element: EventHandler, type: 'pointerup', useCapture?: boolean): _Event; - (element: EventHandler, type: 'progress', useCapture?: boolean): _Event; - (element: EventHandler, type: 'ratechange', useCapture?: boolean): _Event; - (element: EventHandler, type: 'reset', useCapture?: boolean): _Event; - (element: EventHandler, type: 'scroll', useCapture?: boolean): _Event; - (element: EventHandler, type: 'seeked', useCapture?: boolean): _Event; - (element: EventHandler, type: 'seeking', useCapture?: boolean): _Event; - (element: EventHandler, type: 'select', useCapture?: boolean): _Event; - (element: EventHandler, type: 'selectstart', useCapture?: boolean): _Event; - (element: EventHandler, type: 'stalled', useCapture?: boolean): _Event; - (element: EventHandler, type: 'submit', useCapture?: boolean): _Event; - (element: EventHandler, type: 'suspend', useCapture?: boolean): _Event; - (element: EventHandler, type: 'timeupdate', useCapture?: boolean): _Event; - (element: EventHandler, type: 'touchcancel', useCapture?: boolean): _Event; - (element: EventHandler, type: 'touchend', useCapture?: boolean): _Event; - (element: EventHandler, type: 'touchmove', useCapture?: boolean): _Event; - (element: EventHandler, type: 'touchstart', useCapture?: boolean): _Event; - (element: EventHandler, type: 'volumechange', useCapture?: boolean): _Event; - (element: EventHandler, type: 'waiting', useCapture?: boolean): _Event; - (element: EventHandler, type: 'webkitfullscreenchange', useCapture?: boolean): _Event; - (element: EventHandler, type: 'webkitfullscreenerror', useCapture?: boolean): _Event; - (element: EventHandler, type: 'wheel', useCapture?: boolean): _Event; - (element: EventHandler, type: string, useCapture?: boolean): _Event; + (element: EventHandler, type: K, useCapture?: boolean): Event; + (element: EventHandler, type: string, useCapture?: boolean): Event; } export const domEvent: IDomEvent = (element: EventHandler, type: string, useCapture?: boolean) => { @@ -130,7 +31,7 @@ export interface CancellableEvent { stopPropagation(); } -export function stop(event: _Event): _Event { +export function stop(event: Event): Event { return mapEvent(event, e => { e.preventDefault(); e.stopPropagation(); diff --git a/src/vs/code/electron-browser/issue/issueReporterMain.ts b/src/vs/code/electron-browser/issue/issueReporterMain.ts index 3ed0c5dbd22..e01747b0061 100644 --- a/src/vs/code/electron-browser/issue/issueReporterMain.ts +++ b/src/vs/code/electron-browser/issue/issueReporterMain.ts @@ -321,20 +321,6 @@ export class IssueReporter extends Disposable { }); }); - const labelElements = document.getElementsByClassName('caption'); - for (let i = 0; i < labelElements.length; i++) { - const label = labelElements.item(i); - label.addEventListener('click', (e) => { - e.stopPropagation(); - - const containingDiv = (e.target).parentElement; - const checkbox = containingDiv.firstElementChild; - if (checkbox) { - this.issueReporterModel.update({ [checkbox.id]: !this.issueReporterModel.getData()[checkbox.id] }); - } - }); - } - const showInfoElements = document.getElementsByClassName('showInfo'); for (let i = 0; i < showInfoElements.length; i++) { const showInfo = showInfoElements.item(i); diff --git a/src/vs/code/electron-browser/issue/issueReporterPage.ts b/src/vs/code/electron-browser/issue/issueReporterPage.ts index c922c3fd8a5..afa0c79c4b8 100644 --- a/src/vs/code/electron-browser/issue/issueReporterPage.ts +++ b/src/vs/code/electron-browser/issue/issueReporterPage.ts @@ -66,7 +66,7 @@ export default (): string => ` + }, "Include my system information ({0})")).replace('{0}', `${escape(localize('show', "show"))}`)} @@ -76,7 +76,7 @@ export default (): string => ` + }, "Include my currently running processes ({0})")).replace('{0}', `${escape(localize('show', "show"))}`)}