30 lines
1.5 KiB
TypeScript
30 lines
1.5 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import * as vscode from 'vscode';
|
|
import { Command } from '../commandManager';
|
|
import { PreviewSecuritySelector } from '../security';
|
|
import { isMarkdownFile } from '../util/file';
|
|
import { MarkdownPreviewManager } from '../features/previewManager';
|
|
|
|
export class ShowPreviewSecuritySelectorCommand implements Command {
|
|
public readonly id = 'markdown.showPreviewSecuritySelector';
|
|
|
|
public constructor(
|
|
private readonly previewSecuritySelector: PreviewSecuritySelector,
|
|
private readonly previewManager: MarkdownPreviewManager
|
|
) { }
|
|
|
|
public execute(resource: string | undefined) {
|
|
if (this.previewManager.activePreviewResource) {
|
|
this.previewSecuritySelector.showSecuritySelectorForResource(this.previewManager.activePreviewResource);
|
|
} else if (resource) {
|
|
const source = vscode.Uri.parse(resource);
|
|
this.previewSecuritySelector.showSecuritySelectorForResource(source.query ? vscode.Uri.parse(source.query) : source);
|
|
} else if (vscode.window.activeTextEditor && isMarkdownFile(vscode.window.activeTextEditor.document)) {
|
|
this.previewSecuritySelector.showSecuritySelectorForResource(vscode.window.activeTextEditor.document.uri);
|
|
}
|
|
}
|
|
} |