Merge VS Code 1.21 source code (#1067)

* Initial VS Code 1.21 file copy with patches

* A few more merges

* Post npm install

* Fix batch of build breaks

* Fix more build breaks

* Fix more build errors

* Fix more build breaks

* Runtime fixes 1

* Get connection dialog working with some todos

* Fix a few packaging issues

* Copy several node_modules to package build to fix loader issues

* Fix breaks from master

* A few more fixes

* Make tests pass

* First pass of license header updates

* Second pass of license header updates

* Fix restore dialog issues

* Remove add additional themes menu items

* fix select box issues where the list doesn't show up

* formatting

* Fix editor dispose issue

* Copy over node modules to correct location on all platforms
This commit is contained in:
Karl Burtram
2018-04-04 15:27:51 -07:00
committed by GitHub
parent 5fba3e31b4
commit dafb780987
9412 changed files with 141255 additions and 98813 deletions

View File

@@ -10,7 +10,7 @@ import { TPromise } from 'vs/base/common/winjs.base';
import types = require('vs/base/common/types');
import URI from 'vs/base/common/uri';
import { ITree, IActionProvider } from 'vs/base/parts/tree/browser/tree';
import { IconLabel, IIconLabelOptions } from 'vs/base/browser/ui/iconLabel/iconLabel';
import { IconLabel, IIconLabelValueOptions } from 'vs/base/browser/ui/iconLabel/iconLabel';
import { IQuickNavigateConfiguration, IModel, IDataSource, IFilter, IAccessiblityProvider, IRenderer, IRunner, Mode } from 'vs/base/parts/quickopen/common/quickOpen';
import { Action, IAction, IActionRunner } from 'vs/base/common/actions';
import { compareAnything } from 'vs/base/common/comparers';
@@ -84,7 +84,7 @@ export class QuickOpenEntry {
/**
* The options for the label to use for this entry
*/
public getLabelOptions(): IIconLabelOptions {
public getLabelOptions(): IIconLabelValueOptions {
return null;
}
@@ -116,6 +116,20 @@ export class QuickOpenEntry {
return null;
}
/**
* A tooltip to show when hovering over the entry.
*/
public getTooltip(): string {
return null;
}
/**
* A tooltip to show when hovering over the description portion of the entry.
*/
public getDescriptionTooltip(): string {
return null;
}
/**
* An optional keybinding to show for an entry.
*/
@@ -171,8 +185,13 @@ export class QuickOpenEntry {
return false;
}
public isFile(): boolean {
return false; // TODO@Ben debt with editor history merging
/**
* Determines if this quick open entry should merge with the editor history in quick open. If set to true
* and the resource of this entry is the same as the resource for an editor history, it will not show up
* because it is considered to be a duplicate of an editor history.
*/
public mergeWithEditorHistory(): boolean {
return false;
}
}
@@ -215,7 +234,7 @@ export class QuickOpenEntryGroup extends QuickOpenEntry {
return this.entry ? this.entry.getLabel() : super.getLabel();
}
public getLabelOptions(): IIconLabelOptions {
public getLabelOptions(): IIconLabelValueOptions {
return this.entry ? this.entry.getLabelOptions() : super.getLabelOptions();
}
@@ -293,7 +312,6 @@ export interface IQuickOpenEntryTemplateData {
icon: HTMLSpanElement;
label: IconLabel;
detail: HighlightedLabel;
description: HighlightedLabel;
keybinding: KeybindingLabel;
actionBar: ActionBar;
}
@@ -347,13 +365,7 @@ class Renderer implements IRenderer<QuickOpenEntry> {
row1.appendChild(icon);
// Label
const label = new IconLabel(row1, { supportHighlights: true });
// Description
const descriptionContainer = document.createElement('span');
row1.appendChild(descriptionContainer);
DOM.addClass(descriptionContainer, 'quick-open-entry-description');
const description = new HighlightedLabel(descriptionContainer);
const label = new IconLabel(row1, { supportHighlights: true, supportDescriptionHighlights: true });
// Keybinding
const keybindingContainer = document.createElement('span');
@@ -392,15 +404,13 @@ class Renderer implements IRenderer<QuickOpenEntry> {
icon,
label,
detail,
description,
keybinding,
group,
actionBar
};
}
public renderElement(entry: QuickOpenEntry, templateId: string, templateData: any, styles: IQuickOpenStyles): void {
const data: IQuickOpenEntryTemplateData = templateData;
public renderElement(entry: QuickOpenEntry, templateId: string, data: IQuickOpenEntryGroupTemplateData, styles: IQuickOpenStyles): void {
// Action Bar
if (this.actionProvider.hasActions(null, entry)) {
@@ -412,8 +422,6 @@ class Renderer implements IRenderer<QuickOpenEntry> {
data.actionBar.context = entry; // make sure the context is the current element
this.actionProvider.getActions(null, entry).then((actions) => {
// TODO@Ben this will not work anymore as soon as quick open has more actions
// but as long as there is only one are ok
if (data.actionBar.isEmpty() && actions && actions.length > 0) {
data.actionBar.push(actions, { icon: true, label: false });
} else if (!data.actionBar.isEmpty() && (!actions || actions.length === 0)) {
@@ -431,7 +439,7 @@ class Renderer implements IRenderer<QuickOpenEntry> {
// Entry group
if (entry instanceof QuickOpenEntryGroup) {
const group = <QuickOpenEntryGroup>entry;
const groupData = <IQuickOpenEntryGroupTemplateData>templateData;
const groupData = data;
// Border
if (group.showBorder()) {
@@ -457,30 +465,27 @@ class Renderer implements IRenderer<QuickOpenEntry> {
data.icon.className = iconClass;
// Label
const options: IIconLabelOptions = entry.getLabelOptions() || Object.create(null);
const options: IIconLabelValueOptions = entry.getLabelOptions() || Object.create(null);
options.matches = labelHighlights || [];
data.label.setValue(entry.getLabel(), null, options);
options.title = entry.getTooltip();
options.descriptionTitle = entry.getDescriptionTooltip() || entry.getDescription(); // tooltip over description because it could overflow
options.descriptionMatches = descriptionHighlights || [];
data.label.setValue(entry.getLabel(), entry.getDescription(), options);
// Meta
data.detail.set(entry.getDetail(), detailHighlights);
// Description
data.description.set(entry.getDescription(), descriptionHighlights || []);
data.description.element.title = entry.getDescription();
// Keybinding
data.keybinding.set(entry.getKeybinding(), null);
}
}
public disposeTemplate(templateId: string, templateData: any): void {
public disposeTemplate(templateId: string, templateData: IQuickOpenEntryGroupTemplateData): void {
const data = templateData as IQuickOpenEntryGroupTemplateData;
data.actionBar.dispose();
data.actionBar = null;
data.container = null;
data.entry = null;
data.description.dispose();
data.description = null;
data.keybinding.dispose();
data.keybinding = null;
data.detail.dispose();