mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-26 01:25:38 -05:00
* Merge from vscode a5cf1da01d5db3d2557132be8d30f89c38019f6c * remove files we don't want * fix hygiene * update distro * update distro * fix hygiene * fix strict nulls * distro * distro * fix tests * fix tests * add another edit * fix viewlet icon * fix azure dialog * fix some padding * fix more padding issues
103 lines
3.3 KiB
TypeScript
103 lines
3.3 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import * as vscode from 'vscode';
|
|
|
|
import { Command } from '../commandManager';
|
|
import { MarkdownPreviewManager, DynamicPreviewSettings } from '../features/previewManager';
|
|
import { TelemetryReporter } from '../telemetryReporter';
|
|
|
|
interface ShowPreviewSettings {
|
|
readonly sideBySide?: boolean;
|
|
readonly locked?: boolean;
|
|
}
|
|
|
|
async function showPreview(
|
|
webviewManager: MarkdownPreviewManager,
|
|
telemetryReporter: TelemetryReporter,
|
|
uri: vscode.Uri | undefined,
|
|
previewSettings: ShowPreviewSettings,
|
|
): Promise<any> {
|
|
let resource = uri;
|
|
if (!(resource instanceof vscode.Uri)) {
|
|
if (vscode.window.activeTextEditor) {
|
|
// we are relaxed and don't check for markdown files
|
|
resource = vscode.window.activeTextEditor.document.uri;
|
|
}
|
|
}
|
|
|
|
if (!(resource instanceof vscode.Uri)) {
|
|
if (!vscode.window.activeTextEditor) {
|
|
// this is most likely toggling the preview
|
|
return vscode.commands.executeCommand('markdown.showSource');
|
|
}
|
|
// nothing found that could be shown or toggled
|
|
return;
|
|
}
|
|
|
|
const resourceColumn = (vscode.window.activeTextEditor && vscode.window.activeTextEditor.viewColumn) || vscode.ViewColumn.One;
|
|
webviewManager.openDynamicPreview(resource, {
|
|
resourceColumn: resourceColumn,
|
|
previewColumn: previewSettings.sideBySide ? resourceColumn + 1 : resourceColumn,
|
|
locked: !!previewSettings.locked
|
|
});
|
|
|
|
telemetryReporter.sendTelemetryEvent('openPreview', {
|
|
where: previewSettings.sideBySide ? 'sideBySide' : 'inPlace',
|
|
how: (uri instanceof vscode.Uri) ? 'action' : 'pallete'
|
|
});
|
|
}
|
|
|
|
export class ShowPreviewCommand implements Command {
|
|
public readonly id = 'markdown.showPreview';
|
|
|
|
public constructor(
|
|
private readonly webviewManager: MarkdownPreviewManager,
|
|
private readonly telemetryReporter: TelemetryReporter
|
|
) { }
|
|
|
|
public execute(mainUri?: vscode.Uri, allUris?: vscode.Uri[], previewSettings?: DynamicPreviewSettings) {
|
|
for (const uri of Array.isArray(allUris) ? allUris : [mainUri]) {
|
|
showPreview(this.webviewManager, this.telemetryReporter, uri, {
|
|
sideBySide: false,
|
|
locked: previewSettings && previewSettings.locked
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
export class ShowPreviewToSideCommand implements Command {
|
|
public readonly id = 'markdown.showPreviewToSide';
|
|
|
|
public constructor(
|
|
private readonly webviewManager: MarkdownPreviewManager,
|
|
private readonly telemetryReporter: TelemetryReporter
|
|
) { }
|
|
|
|
public execute(uri?: vscode.Uri, previewSettings?: DynamicPreviewSettings) {
|
|
showPreview(this.webviewManager, this.telemetryReporter, uri, {
|
|
sideBySide: true,
|
|
locked: previewSettings && previewSettings.locked
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
export class ShowLockedPreviewToSideCommand implements Command {
|
|
public readonly id = 'markdown.showLockedPreviewToSide';
|
|
|
|
public constructor(
|
|
private readonly webviewManager: MarkdownPreviewManager,
|
|
private readonly telemetryReporter: TelemetryReporter
|
|
) { }
|
|
|
|
public execute(uri?: vscode.Uri) {
|
|
showPreview(this.webviewManager, this.telemetryReporter, uri, {
|
|
sideBySide: true,
|
|
locked: true
|
|
});
|
|
}
|
|
}
|