Merge from vscode c58aaab8a1cc22a7139b761166a0d4f37d41e998 (#7880)

* Merge from vscode c58aaab8a1cc22a7139b761166a0d4f37d41e998

* fix pipelines

* fix strict-null-checks

* add missing files
This commit is contained in:
Anthony Dresser
2019-10-21 22:12:22 -07:00
committed by GitHub
parent 7c9be74970
commit 1e22f47304
913 changed files with 18898 additions and 16536 deletions

View File

@@ -238,7 +238,7 @@ class EventCollection<T> implements Collection<T> {
class TreeRenderer<T, TFilterData, TRef, TTemplateData> implements IListRenderer<ITreeNode<T, TFilterData>, ITreeListTemplateData<TTemplateData>> {
private static DefaultIndent = 8;
private static readonly DefaultIndent = 8;
readonly templateId: string;
private renderedElements = new Map<T, ITreeNode<T, TFilterData>>();
@@ -250,7 +250,7 @@ class TreeRenderer<T, TFilterData, TRef, TTemplateData> implements IListRenderer
private activeIndentNodes = new Set<ITreeNode<T, TFilterData>>();
private indentGuidesDisposable: IDisposable = Disposable.None;
private disposables: IDisposable[] = [];
private readonly disposables = new DisposableStore();
constructor(
private renderer: ITreeRenderer<T, TFilterData, TTemplateData>,
@@ -458,7 +458,7 @@ class TreeRenderer<T, TFilterData, TRef, TTemplateData> implements IListRenderer
this.renderedNodes.clear();
this.renderedElements.clear();
this.indentGuidesDisposable.dispose();
this.disposables = dispose(this.disposables);
dispose(this.disposables);
}
}
@@ -471,7 +471,7 @@ class TypeFilter<T> implements ITreeFilter<T, FuzzyScore>, IDisposable {
private _pattern: string = '';
private _lowercasePattern: string = '';
private disposables: IDisposable[] = [];
private readonly disposables = new DisposableStore();
set pattern(pattern: string) {
this._pattern = pattern;
@@ -546,7 +546,7 @@ class TypeFilter<T> implements ITreeFilter<T, FuzzyScore>, IDisposable {
}
dispose(): void {
this.disposables = dispose(this.disposables);
dispose(this.disposables);
}
}
@@ -581,8 +581,8 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
private readonly _onDidChangePattern = new Emitter<string>();
readonly onDidChangePattern = this._onDidChangePattern.event;
private enabledDisposables: IDisposable[] = [];
private disposables: IDisposable[] = [];
private readonly enabledDisposables = new DisposableStore();
private readonly disposables = new DisposableStore();
constructor(
private tree: AbstractTree<T, TFilterData, any>,
@@ -657,6 +657,7 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
const onKeyDown = Event.chain(domEvent(this.view.getHTMLElement(), 'keydown'))
.filter(e => !isInputElement(e.target as HTMLElement) || e.target === this.filterOnTypeDomNode)
.filter(e => e.key !== 'Dead')
.map(e => new StandardKeyboardEvent(e))
.filter(this.keyboardNavigationEventFilter || (() => true))
.filter(() => this.automaticKeyboardNavigation || this.triggered)
@@ -682,7 +683,7 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
}
this.domNode.remove();
this.enabledDisposables = dispose(this.enabledDisposables);
this.enabledDisposables.clear();
this.tree.refilter();
this.render();
this._enabled = false;
@@ -744,7 +745,7 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
const containerWidth = container.clientWidth;
const midContainerWidth = containerWidth / 2;
const width = this.domNode.clientWidth;
const disposables: IDisposable[] = [];
const disposables = new DisposableStore();
let positionClassName = this.positionClassName;
const updatePosition = () => {
@@ -780,8 +781,8 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
const onDragEnd = () => {
this.positionClassName = positionClassName;
this.domNode.className = `monaco-list-type-filter ${this.positionClassName}`;
this.domNode.style.top = null;
this.domNode.style.left = null;
this.domNode.style.top = '';
this.domNode.style.left = '';
dispose(disposables);
};
@@ -790,13 +791,13 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
removeClass(this.domNode, positionClassName);
addClass(this.domNode, 'dragging');
disposables.push(toDisposable(() => removeClass(this.domNode, 'dragging')));
disposables.add(toDisposable(() => removeClass(this.domNode, 'dragging')));
domEvent(document, 'dragover')(onDragOver, null, disposables);
domEvent(this.domNode, 'dragend')(onDragEnd, null, disposables);
StaticDND.CurrentDragAndDropData = new DragAndDropData('vscode-ui');
disposables.push(toDisposable(() => StaticDND.CurrentDragAndDropData = undefined));
disposables.add(toDisposable(() => StaticDND.CurrentDragAndDropData = undefined));
}
private onDidSpliceModel(): void {
@@ -855,9 +856,15 @@ class TypeFilterController<T, TFilterData> implements IDisposable {
}
dispose() {
this.disable();
if (this._enabled) {
this.domNode.remove();
this.enabledDisposables.dispose();
this._enabled = false;
this.triggered = false;
}
this._onDidChangePattern.dispose();
this.disposables = dispose(this.disposables);
dispose(this.disposables);
}
}
@@ -1175,7 +1182,7 @@ export abstract class AbstractTree<T, TFilterData, TRef> implements IDisposable
private typeFilterController?: TypeFilterController<T, TFilterData>;
private focusNavigationFilter: ((node: ITreeNode<T, TFilterData>) => boolean) | undefined;
private styleElement: HTMLStyleElement;
protected disposables: IDisposable[] = [];
protected readonly disposables = new DisposableStore();
get onDidScroll(): Event<ScrollEvent> { return this.view.onDidScroll; }
@@ -1224,16 +1231,17 @@ export abstract class AbstractTree<T, TFilterData, TRef> implements IDisposable
const onDidChangeCollapseStateRelay = new Relay<ICollapseStateChangeEvent<T, TFilterData>>();
const onDidChangeActiveNodes = new Relay<ITreeNode<T, TFilterData>[]>();
const activeNodes = new EventCollection(onDidChangeActiveNodes.event);
this.renderers = renderers.map(r => new TreeRenderer<T, TFilterData, TRef, any>(r, () => this.model, onDidChangeCollapseStateRelay.event, activeNodes, _options));
this.disposables.push(...this.renderers);
for (let r of this.renderers) {
this.disposables.add(r);
}
let filter: TypeFilter<T> | undefined;
if (_options.keyboardNavigationLabelProvider) {
filter = new TypeFilter(this, _options.keyboardNavigationLabelProvider, _options.filter as any as ITreeFilter<T, FuzzyScore>);
_options = { ..._options, filter: filter as ITreeFilter<T, TFilterData> }; // TODO need typescript help here
this.disposables.push(filter);
this.disposables.add(filter);
}
this.focus = new Trait(_options.identityProvider);
@@ -1287,7 +1295,7 @@ export abstract class AbstractTree<T, TFilterData, TRef> implements IDisposable
const delegate = _options.keyboardNavigationDelegate || DefaultKeyboardNavigationDelegate;
this.typeFilterController = new TypeFilterController(this, this.model, this.view, filter!, delegate);
this.focusNavigationFilter = node => this.typeFilterController!.shouldAllowFocus(node);
this.disposables.push(this.typeFilterController!);
this.disposables.add(this.typeFilterController!);
}
this.styleElement = createStyleSheet(this.view.getHTMLElement());
@@ -1362,7 +1370,7 @@ export abstract class AbstractTree<T, TFilterData, TRef> implements IDisposable
}
get scrollLeft(): number {
return this.view.scrollTop;
return this.view.scrollLeft;
}
set scrollLeft(scrollLeft: number) {
@@ -1641,7 +1649,7 @@ export abstract class AbstractTree<T, TFilterData, TRef> implements IDisposable
}
dispose(): void {
this.disposables = dispose(this.disposables);
dispose(this.disposables);
this.view.dispose();
}
}