mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-19 09:35:36 -05:00
VS Code merge to df8fe74bd55313de0dd2303bc47a4aab0ca56b0e (#17979)
* Merge from vscode 504f934659740e9d41501cad9f162b54d7745ad9 * delete unused folders * distro * Bump build node version * update chokidar * FIx hygiene errors * distro * Fix extension lint issues * Remove strict-vscode * Add copyright header exemptions * Bump vscode-extension-telemetry to fix webpacking issue with zone.js * distro * Fix failing tests (revert marked.js back to current one until we decide to update) * Skip searchmodel test * Fix mac build * temp debug script loading * Try disabling coverage * log error too * Revert "log error too" This reverts commit af0183e5d4ab458fdf44b88fbfab9908d090526f. * Revert "temp debug script loading" This reverts commit 3d687d541c76db2c5b55626c78ae448d3c25089c. * Add comments explaining coverage disabling * Fix ansi_up loading issue * Merge latest from ads * Use newer option * Fix compile * add debug logging warn * Always log stack * log more * undo debug * Update to use correct base path (+cleanup) * distro * fix compile errors * Remove strict-vscode * Fix sql editors not showing * Show db dropdown input & fix styling * Fix more info in gallery * Fix gallery asset requests * Delete unused workflow * Fix tapable resolutions for smoke test compile error * Fix smoke compile * Disable crash reporting * Disable interactive Co-authored-by: ADS Merger <karlb@microsoft.com>
This commit is contained in:
@@ -15,7 +15,6 @@ import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
||||
import { KeyCode } from 'vs/base/common/keyCodes';
|
||||
|
||||
import { Button, IButtonStyles } from 'sql/base/browser/ui/button/button';
|
||||
import { onUnexpectedError } from 'vs/base/common/errors';
|
||||
|
||||
export interface IDropdownStyles {
|
||||
backgroundColor?: Color;
|
||||
@@ -43,14 +42,14 @@ export class DropdownList extends Dropdown {
|
||||
this.button = new Button(_contentContainer);
|
||||
this.button.label = action.label;
|
||||
this._register(DOM.addDisposableListener(this.button.element, DOM.EventType.CLICK, () => {
|
||||
action.run().catch(e => onUnexpectedError(e));
|
||||
action.run();
|
||||
this.hide();
|
||||
}));
|
||||
this._register(DOM.addDisposableListener(this.button.element, DOM.EventType.KEY_DOWN, (e: KeyboardEvent) => {
|
||||
let event = new StandardKeyboardEvent(e);
|
||||
if (event.equals(KeyCode.Enter)) {
|
||||
e.stopPropagation();
|
||||
action.run().catch(e => onUnexpectedError(e));
|
||||
action.run();
|
||||
this.hide();
|
||||
}
|
||||
}));
|
||||
|
||||
@@ -11,10 +11,10 @@ import { Scrollable, ScrollbarVisibility, INewScrollDimensions, ScrollEvent } fr
|
||||
import { getOrDefault } from 'vs/base/common/objects';
|
||||
import * as DOM from 'vs/base/browser/dom';
|
||||
import { Disposable, IDisposable, dispose } from 'vs/base/common/lifecycle';
|
||||
import { domEvent } from 'vs/base/browser/event';
|
||||
import { Event } from 'vs/base/common/event';
|
||||
import { Range, IRange } from 'vs/base/common/range';
|
||||
import { clamp } from 'vs/base/common/numbers';
|
||||
import { DomEmitter } from 'vs/base/browser/event';
|
||||
|
||||
export interface IScrollableViewOptions {
|
||||
useShadows?: boolean;
|
||||
@@ -89,8 +89,8 @@ export class ScrollableView extends Disposable {
|
||||
|
||||
// Prevent the monaco-scrollable-element from scrolling
|
||||
// https://github.com/Microsoft/vscode/issues/44181
|
||||
this._register(domEvent(this.scrollableElement.getDomNode(), 'scroll')
|
||||
(e => (e.target as HTMLElement).scrollTop = 0));
|
||||
this._register(new DomEmitter(this.scrollableElement.getDomNode(), 'scroll')).event
|
||||
(e => (e.target as HTMLElement).scrollTop = 0);
|
||||
}
|
||||
|
||||
elementTop(index: number): number {
|
||||
|
||||
@@ -10,7 +10,6 @@ import { ScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElemen
|
||||
import { Event } from 'vs/base/common/event';
|
||||
import { ScrollEvent, ScrollbarVisibility, INewScrollDimensions } from 'vs/base/common/scrollable';
|
||||
import * as DOM from 'vs/base/browser/dom';
|
||||
import { domEvent } from 'vs/base/browser/event';
|
||||
import { CancelablePromise, createCancelablePromise } from 'vs/base/common/async';
|
||||
import { isWindows } from 'vs/base/common/platform';
|
||||
import * as browser from 'vs/base/browser/browser';
|
||||
@@ -22,6 +21,7 @@ import { Sash, Orientation, ISashEvent as IBaseSashEvent } from 'vs/base/browser
|
||||
import { CellCache, ICell } from 'sql/base/browser/ui/table/highPerf/cellCache';
|
||||
import { ITableRenderer, ITableDataSource, ITableMouseEvent, IStaticTableRenderer, ITableColumn } from 'sql/base/browser/ui/table/highPerf/table';
|
||||
import { GridPosition } from 'sql/base/common/gridPosition';
|
||||
import { DomEmitter, DOMEventMap, EventHandler } from 'vs/base/browser/event';
|
||||
|
||||
export interface IAriaSetProvider<T> {
|
||||
getSetSize(element: T, index: number, listLength: number): number;
|
||||
@@ -212,8 +212,9 @@ export class TableView<T> implements IDisposable {
|
||||
|
||||
// Prevent the monaco-scrollable-element from scrolling
|
||||
// https://github.com/Microsoft/vscode/issues/44181
|
||||
domEvent(this.scrollableElement.getDomNode(), 'scroll')
|
||||
(e => (e.target as HTMLElement).scrollTop = 0, null, this.disposables);
|
||||
const scrollEmitter = new DomEmitter(this.scrollableElement.getDomNode(), 'scroll');
|
||||
this.disposables.push(scrollEmitter);
|
||||
scrollEmitter.event(e => (e.target as HTMLElement).scrollTop = 0, null, this.disposables);
|
||||
|
||||
this.updateScrollWidth();
|
||||
this.layout();
|
||||
@@ -635,15 +636,37 @@ export class TableView<T> implements IDisposable {
|
||||
delete this.visibleRows[index];
|
||||
}
|
||||
|
||||
@memoize get onMouseClick(): Event<ITableMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'click'), e => this.toMouseEvent(e)); }
|
||||
@memoize get onMouseDblClick(): Event<ITableMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'dblclick'), e => this.toMouseEvent(e)); }
|
||||
@memoize get onMouseMiddleClick(): Event<ITableMouseEvent<T>> { return Event.filter(Event.map(domEvent(this.domNode, 'auxclick'), e => this.toMouseEvent(e as MouseEvent)), e => e.browserEvent.button === 1); }
|
||||
@memoize get onMouseUp(): Event<ITableMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'mouseup'), e => this.toMouseEvent(e)); }
|
||||
@memoize get onMouseDown(): Event<ITableMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'mousedown'), e => this.toMouseEvent(e)); }
|
||||
@memoize get onMouseOver(): Event<ITableMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'mouseover'), e => this.toMouseEvent(e)); }
|
||||
@memoize get onMouseMove(): Event<ITableMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'mousemove'), e => this.toMouseEvent(e)); }
|
||||
@memoize get onMouseOut(): Event<ITableMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'mouseout'), e => this.toMouseEvent(e)); }
|
||||
@memoize get onContextMenu(): Event<ITableMouseEvent<T>> { return Event.map(domEvent(this.domNode, 'contextmenu'), e => this.toMouseEvent(e)); }
|
||||
@memoize get onMouseClick(): Event<ITableMouseEvent<T>> { return Event.map(this.createAndRegisterDomEmitter(this.domNode, 'click').event, e => this.toMouseEvent(e)); }
|
||||
@memoize get onMouseDblClick(): Event<ITableMouseEvent<T>> {
|
||||
return Event.map(this.createAndRegisterDomEmitter(this.domNode, 'dblclick').event, e => this.toMouseEvent(e));
|
||||
}
|
||||
@memoize get onMouseMiddleClick(): Event<ITableMouseEvent<T>> {
|
||||
return Event.filter(Event.map(this.createAndRegisterDomEmitter(this.domNode, 'auxclick').event, e => this.toMouseEvent(e as MouseEvent)), e => e.browserEvent.button === 1);
|
||||
}
|
||||
@memoize get onMouseUp(): Event<ITableMouseEvent<T>> {
|
||||
return Event.map(this.createAndRegisterDomEmitter(this.domNode, 'mouseup').event, e => this.toMouseEvent(e));
|
||||
}
|
||||
@memoize get onMouseDown(): Event<ITableMouseEvent<T>> {
|
||||
return Event.map(this.createAndRegisterDomEmitter(this.domNode, 'mousedown').event, e => this.toMouseEvent(e));
|
||||
}
|
||||
@memoize get onMouseOver(): Event<ITableMouseEvent<T>> {
|
||||
return Event.map(this.createAndRegisterDomEmitter(this.domNode, 'mouseover').event, e => this.toMouseEvent(e));
|
||||
}
|
||||
@memoize get onMouseMove(): Event<ITableMouseEvent<T>> {
|
||||
return Event.map(this.createAndRegisterDomEmitter(this.domNode, 'mousemove').event, e => this.toMouseEvent(e));
|
||||
}
|
||||
@memoize get onMouseOut(): Event<ITableMouseEvent<T>> {
|
||||
return Event.map(this.createAndRegisterDomEmitter(this.domNode, 'mouseout').event, e => this.toMouseEvent(e));
|
||||
}
|
||||
@memoize get onContextMenu(): Event<ITableMouseEvent<T>> {
|
||||
return Event.map(this.createAndRegisterDomEmitter(this.domNode, 'contextmenu').event, e => this.toMouseEvent(e));
|
||||
}
|
||||
|
||||
private createAndRegisterDomEmitter<K extends keyof DOMEventMap>(eventHandler: EventHandler, type: K): DomEmitter<K> {
|
||||
const emitter = new DomEmitter(eventHandler, type);
|
||||
this.disposables.push(emitter);
|
||||
return emitter;
|
||||
}
|
||||
|
||||
public toMouseEvent(browserEvent: MouseEvent): ITableMouseEvent<T> {
|
||||
const index = this.getItemIndexFromEventTarget(browserEvent.target || null);
|
||||
|
||||
@@ -12,7 +12,7 @@ import * as DOM from 'vs/base/browser/dom';
|
||||
import { TableView, ITableViewOptions } from 'sql/base/browser/ui/table/highPerf/tableView';
|
||||
import { ScrollEvent } from 'vs/base/common/scrollable';
|
||||
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
||||
import { domEvent } from 'vs/base/browser/event';
|
||||
import { DomEmitter } from 'vs/base/browser/event';
|
||||
import { KeyCode } from 'vs/base/common/keyCodes';
|
||||
import * as platform from 'vs/base/common/platform';
|
||||
import { IListStyles, IStyleController } from 'vs/base/browser/ui/list/listWidget';
|
||||
@@ -92,9 +92,9 @@ class DOMFocusController<T> implements IDisposable {
|
||||
private list: Table<T>,
|
||||
private view: TableView<T>
|
||||
) {
|
||||
this.disposables = [];
|
||||
|
||||
const onKeyDown = Event.chain(domEvent(view.domNode, 'keydown'))
|
||||
const emitter = new DomEmitter(view.domNode, 'keydown');
|
||||
this.disposables.push(emitter);
|
||||
const onKeyDown = Event.chain(emitter.event)
|
||||
.map(e => new StandardKeyboardEvent(e));
|
||||
|
||||
onKeyDown.filter(e => e.keyCode === KeyCode.Tab && !e.ctrlKey && !e.metaKey && !e.shiftKey && !e.altKey)
|
||||
@@ -323,7 +323,7 @@ function rowCountFilter(column: ITableColumn<any, any>): boolean {
|
||||
|
||||
class KeyboardController<T> implements IDisposable {
|
||||
|
||||
private disposables: IDisposable[];
|
||||
private disposables: IDisposable[] = [];
|
||||
// private openController: IOpenController;
|
||||
|
||||
constructor(
|
||||
@@ -332,11 +332,11 @@ class KeyboardController<T> implements IDisposable {
|
||||
options?: ITableOptions<T>
|
||||
) {
|
||||
// const multipleSelectionSupport = !(options.multipleSelectionSupport === false);
|
||||
this.disposables = [];
|
||||
|
||||
// this.openController = options.openController || DefaultOpenController;
|
||||
|
||||
const onKeyDown = Event.chain(domEvent(view.domNode, 'keydown'))
|
||||
const emitter = new DomEmitter(view.domNode, 'keydown');
|
||||
this.disposables.push(emitter);
|
||||
const onKeyDown = Event.chain(emitter.event)
|
||||
// .filter(e => !isInputElement(e.target as HTMLElement))
|
||||
.map(e => new StandardKeyboardEvent(e));
|
||||
|
||||
@@ -732,13 +732,13 @@ export class Table<T> implements IDisposable {
|
||||
|
||||
private didJustPressContextMenuKey: boolean = false;
|
||||
@memoize get onContextMenu(): Event<ITableContextMenuEvent<T>> {
|
||||
const fromKeydown = Event.chain(domEvent(this.view.domNode, 'keydown'))
|
||||
const fromKeydown = Event.chain(this.disposables.add(new DomEmitter(this.view.domNode, 'keydown')).event)
|
||||
.map(e => new StandardKeyboardEvent(e))
|
||||
.filter(e => this.didJustPressContextMenuKey = e.keyCode === KeyCode.ContextMenu || (e.shiftKey && e.keyCode === KeyCode.F10))
|
||||
.filter(e => { e.preventDefault(); e.stopPropagation(); return false; })
|
||||
.event as Event<any>;
|
||||
|
||||
const fromKeyup = Event.chain(domEvent(this.view.domNode, 'keyup'))
|
||||
const fromKeyup = Event.chain(this.disposables.add(new DomEmitter(this.view.domNode, 'keyup')).event)
|
||||
.filter(() => {
|
||||
const didJustPressContextMenuKey = this.didJustPressContextMenuKey;
|
||||
this.didJustPressContextMenuKey = false;
|
||||
@@ -761,9 +761,9 @@ export class Table<T> implements IDisposable {
|
||||
return Event.any<ITableContextMenuEvent<T>>(fromKeydown, fromKeyup, fromMouse);
|
||||
}
|
||||
|
||||
get onKeyDown(): Event<KeyboardEvent> { return domEvent(this.view.domNode, 'keydown'); }
|
||||
get onKeyUp(): Event<KeyboardEvent> { return domEvent(this.view.domNode, 'keyup'); }
|
||||
get onKeyPress(): Event<KeyboardEvent> { return domEvent(this.view.domNode, 'keypress'); }
|
||||
get onKeyDown(): Event<KeyboardEvent> { return this.disposables.add(new DomEmitter(this.view.domNode, 'keydown')).event; }
|
||||
get onKeyUp(): Event<KeyboardEvent> { return this.disposables.add(new DomEmitter(this.view.domNode, 'keyup')).event; }
|
||||
get onKeyPress(): Event<KeyboardEvent> { return this.disposables.add(new DomEmitter(this.view.domNode, 'keypress')).event; }
|
||||
|
||||
readonly onDidFocus: Event<void>;
|
||||
readonly onDidBlur: Event<void>;
|
||||
@@ -809,8 +809,8 @@ export class Table<T> implements IDisposable {
|
||||
this.disposables.add(controller);
|
||||
}
|
||||
|
||||
this.onDidFocus = Event.map(domEvent(this.view.domNode, 'focus', true), () => null!);
|
||||
this.onDidBlur = Event.map(domEvent(this.view.domNode, 'blur', true), () => null!);
|
||||
this.onDidFocus = Event.map(this.disposables.add(new DomEmitter(this.view.domNode, 'focus', true)).event, () => null!);
|
||||
this.onDidBlur = Event.map(this.disposables.add(new DomEmitter(this.view.domNode, 'blur', true)).event, () => null!);
|
||||
|
||||
this.disposables.add(this.createMouseController());
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { InputBox } from 'sql/base/browser/ui/inputBox/inputBox';
|
||||
import { SelectBox } from 'sql/base/browser/ui/selectBox/selectBox';
|
||||
import { getCodeForKeyCode } from 'vs/base/browser/keyboardEvent';
|
||||
|
||||
@@ -373,8 +373,8 @@ export class ActionBar extends ActionRunner implements IActionRunner {
|
||||
//this.emit('cancel');
|
||||
}
|
||||
|
||||
public override run(action: IAction, context?: any): Promise<any> {
|
||||
return this._actionRunner.run(action, context);
|
||||
public override async run(action: IAction, context?: any): Promise<void> {
|
||||
this._actionRunner.run(action, context);
|
||||
}
|
||||
|
||||
public override dispose(): void {
|
||||
|
||||
@@ -349,9 +349,9 @@ export class OverflowActionBar extends ActionBar {
|
||||
}
|
||||
}
|
||||
|
||||
public override run(action: IAction, context?: any): Promise<any> {
|
||||
public override async run(action: IAction, context?: any): Promise<void> {
|
||||
this.hideOverflowDisplay();
|
||||
return this._actionRunner.run(action, context);
|
||||
this._actionRunner.run(action, context);
|
||||
}
|
||||
|
||||
public get actionsList(): HTMLElement {
|
||||
|
||||
@@ -39,7 +39,7 @@ export const fileActionsContributionNewQuery = localize('newQuery', "New Query")
|
||||
export const fileActionsContributionMiNewQuery = localize({ key: 'miNewQuery', comment: ['&& denotes a mnemonic'] }, "New &&Query");
|
||||
export const fileActionsContributionMiNewNotebook = localize({ key: 'miNewNotebook', comment: ['&& denotes a mnemonic'] }, "&&New Notebook");
|
||||
export const filesContributionMaxMemoryForLargeFilesMB = localize('maxMemoryForLargeFilesMB', "Controls the memory available to Azure Data Studio after restart when trying to open large files. Same effect as specifying `--max-memory=NEWSIZE` on the command line.");
|
||||
export const watcherExclude = localize('sql.watcherExclude', "Configure glob patterns of file paths to exclude from file watching. Patterns must match on absolute paths (i.e. prefix with ** or the full path to match properly). Changing this setting requires a restart. When you experience Azure Data Studio consuming lots of CPU time on startup, you can exclude large folders to reduce the initial load.");
|
||||
export const watcherExclude = localize('sql.watcherExclude', "Configure glob patterns of file paths to exclude from file watching. Patterns must match on absolute paths, i.e. prefix with `**/` or the full path to match properly and suffix with `/**` to match files within a path (for example `**/build/output/**` or `/Users/name/workspaces/project/build/output/**`). Changing this setting requires a restart. When you experience Azure Data Studio consuming lots of CPU time on startup, you can exclude large folders to reduce the initial load.");
|
||||
export function localizationsContributionUpdateLocale(locale: string): string { return localize('updateLocale', "Would you like to change Azure Data Studio's UI language to {0} and restart?", locale); }
|
||||
export function localizationsContributionActivateLanguagePack(locale: string): string { return localize('activateLanguagePack', "In order to use Azure Data Studio in {0}, Azure Data Studio needs to restart.", locale); }
|
||||
export const watermarkNewSqlFile = localize('watermark.newSqlFile', "New SQL File");
|
||||
|
||||
Reference in New Issue
Block a user