mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-27 03:54:24 +01:00
Experiment with switching markdown extension to use native privates
Let's try this out with one extension to start
This commit is contained in:
@@ -10,12 +10,16 @@ import { MarkdownPreviewManager } from '../preview/previewManager';
|
||||
export class CopyImageCommand implements Command {
|
||||
public readonly id = '_markdown.copyImage';
|
||||
|
||||
readonly #webviewManager: MarkdownPreviewManager;
|
||||
|
||||
public constructor(
|
||||
private readonly _webviewManager: MarkdownPreviewManager,
|
||||
) { }
|
||||
webviewManager: MarkdownPreviewManager,
|
||||
) {
|
||||
this.#webviewManager = webviewManager;
|
||||
}
|
||||
|
||||
public execute(args: { id: string; resource: string }) {
|
||||
const source = vscode.Uri.parse(args.resource);
|
||||
this._webviewManager.findPreview(source)?.copyImage(args.id);
|
||||
this.#webviewManager.findPreview(source)?.copyImage(args.id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,12 +10,16 @@ import { MarkdownPreviewManager } from '../preview/previewManager';
|
||||
export class OpenImageCommand implements Command {
|
||||
public readonly id = '_markdown.openImage';
|
||||
|
||||
readonly #webviewManager: MarkdownPreviewManager;
|
||||
|
||||
public constructor(
|
||||
private readonly _webviewManager: MarkdownPreviewManager,
|
||||
) { }
|
||||
webviewManager: MarkdownPreviewManager,
|
||||
) {
|
||||
this.#webviewManager = webviewManager;
|
||||
}
|
||||
|
||||
public execute(args: { resource: string; imageSource: string }) {
|
||||
const source = vscode.Uri.parse(args.resource);
|
||||
this._webviewManager.openDocumentLink(args.imageSource, source);
|
||||
this.#webviewManager.openDocumentLink(args.imageSource, source);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,13 +10,19 @@ import { MarkdownPreviewManager } from '../preview/previewManager';
|
||||
export class RefreshPreviewCommand implements Command {
|
||||
public readonly id = 'markdown.preview.refresh';
|
||||
|
||||
readonly #webviewManager: MarkdownPreviewManager;
|
||||
readonly #engine: MarkdownItEngine;
|
||||
|
||||
public constructor(
|
||||
private readonly _webviewManager: MarkdownPreviewManager,
|
||||
private readonly _engine: MarkdownItEngine
|
||||
) { }
|
||||
webviewManager: MarkdownPreviewManager,
|
||||
engine: MarkdownItEngine
|
||||
) {
|
||||
this.#webviewManager = webviewManager;
|
||||
this.#engine = engine;
|
||||
}
|
||||
|
||||
public execute() {
|
||||
this._engine.cleanCache();
|
||||
this._webviewManager.refresh();
|
||||
this.#engine.cleanCache();
|
||||
this.#webviewManager.refresh();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,14 +10,20 @@ import { MarkdownPreviewManager } from '../preview/previewManager';
|
||||
export class ReloadPlugins implements Command {
|
||||
public readonly id = 'markdown.api.reloadPlugins';
|
||||
|
||||
readonly #webviewManager: MarkdownPreviewManager;
|
||||
readonly #engine: MarkdownItEngine;
|
||||
|
||||
public constructor(
|
||||
private readonly _webviewManager: MarkdownPreviewManager,
|
||||
private readonly _engine: MarkdownItEngine,
|
||||
) { }
|
||||
webviewManager: MarkdownPreviewManager,
|
||||
engine: MarkdownItEngine,
|
||||
) {
|
||||
this.#webviewManager = webviewManager;
|
||||
this.#engine = engine;
|
||||
}
|
||||
|
||||
public execute(): void {
|
||||
this._engine.reloadPlugins();
|
||||
this._engine.cleanCache();
|
||||
this._webviewManager.refresh();
|
||||
this.#engine.reloadPlugins();
|
||||
this.#engine.cleanCache();
|
||||
this.#webviewManager.refresh();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,11 +10,15 @@ import { ITextDocument } from '../types/textDocument';
|
||||
export class RenderDocument implements Command {
|
||||
public readonly id = 'markdown.api.render';
|
||||
|
||||
readonly #engine: MarkdownItEngine;
|
||||
|
||||
public constructor(
|
||||
private readonly _engine: MarkdownItEngine
|
||||
) { }
|
||||
engine: MarkdownItEngine
|
||||
) {
|
||||
this.#engine = engine;
|
||||
}
|
||||
|
||||
public async execute(document: ITextDocument | string): Promise<string> {
|
||||
return (await (this._engine.render(document))).html;
|
||||
return (await (this.#engine.render(document))).html;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -53,14 +53,20 @@ async function showPreview(
|
||||
export class ShowPreviewCommand implements Command {
|
||||
public readonly id = 'markdown.showPreview';
|
||||
|
||||
readonly #webviewManager: MarkdownPreviewManager;
|
||||
readonly #telemetryReporter: TelemetryReporter;
|
||||
|
||||
public constructor(
|
||||
private readonly _webviewManager: MarkdownPreviewManager,
|
||||
private readonly _telemetryReporter: TelemetryReporter
|
||||
) { }
|
||||
webviewManager: MarkdownPreviewManager,
|
||||
telemetryReporter: TelemetryReporter
|
||||
) {
|
||||
this.#webviewManager = webviewManager;
|
||||
this.#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, {
|
||||
showPreview(this.#webviewManager, this.#telemetryReporter, uri, {
|
||||
sideBySide: false,
|
||||
locked: previewSettings?.locked
|
||||
});
|
||||
@@ -71,13 +77,19 @@ export class ShowPreviewCommand implements Command {
|
||||
export class ShowPreviewToSideCommand implements Command {
|
||||
public readonly id = 'markdown.showPreviewToSide';
|
||||
|
||||
readonly #webviewManager: MarkdownPreviewManager;
|
||||
readonly #telemetryReporter: TelemetryReporter;
|
||||
|
||||
public constructor(
|
||||
private readonly _webviewManager: MarkdownPreviewManager,
|
||||
private readonly _telemetryReporter: TelemetryReporter
|
||||
) { }
|
||||
webviewManager: MarkdownPreviewManager,
|
||||
telemetryReporter: TelemetryReporter
|
||||
) {
|
||||
this.#webviewManager = webviewManager;
|
||||
this.#telemetryReporter = telemetryReporter;
|
||||
}
|
||||
|
||||
public execute(uri?: vscode.Uri, previewSettings?: DynamicPreviewSettings) {
|
||||
showPreview(this._webviewManager, this._telemetryReporter, uri, {
|
||||
showPreview(this.#webviewManager, this.#telemetryReporter, uri, {
|
||||
sideBySide: true,
|
||||
locked: previewSettings?.locked
|
||||
});
|
||||
@@ -88,13 +100,19 @@ export class ShowPreviewToSideCommand implements Command {
|
||||
export class ShowLockedPreviewToSideCommand implements Command {
|
||||
public readonly id = 'markdown.showLockedPreviewToSide';
|
||||
|
||||
readonly #webviewManager: MarkdownPreviewManager;
|
||||
readonly #telemetryReporter: TelemetryReporter;
|
||||
|
||||
public constructor(
|
||||
private readonly _webviewManager: MarkdownPreviewManager,
|
||||
private readonly _telemetryReporter: TelemetryReporter
|
||||
) { }
|
||||
webviewManager: MarkdownPreviewManager,
|
||||
telemetryReporter: TelemetryReporter
|
||||
) {
|
||||
this.#webviewManager = webviewManager;
|
||||
this.#telemetryReporter = telemetryReporter;
|
||||
}
|
||||
|
||||
public execute(uri?: vscode.Uri) {
|
||||
showPreview(this._webviewManager, this._telemetryReporter, uri, {
|
||||
showPreview(this.#webviewManager, this.#telemetryReporter, uri, {
|
||||
sideBySide: true,
|
||||
locked: true
|
||||
});
|
||||
|
||||
@@ -12,19 +12,25 @@ import { isMarkdownFile } from '../util/file';
|
||||
export class ShowPreviewSecuritySelectorCommand implements Command {
|
||||
public readonly id = 'markdown.showPreviewSecuritySelector';
|
||||
|
||||
readonly #previewSecuritySelector: PreviewSecuritySelector;
|
||||
readonly #previewManager: MarkdownPreviewManager;
|
||||
|
||||
public constructor(
|
||||
private readonly _previewSecuritySelector: PreviewSecuritySelector,
|
||||
private readonly _previewManager: MarkdownPreviewManager
|
||||
) { }
|
||||
previewSecuritySelector: PreviewSecuritySelector,
|
||||
previewManager: MarkdownPreviewManager
|
||||
) {
|
||||
this.#previewSecuritySelector = previewSecuritySelector;
|
||||
this.#previewManager = previewManager;
|
||||
}
|
||||
|
||||
public execute(resource: string | undefined) {
|
||||
if (this._previewManager.activePreviewResource) {
|
||||
this._previewSecuritySelector.showSecuritySelectorForResource(this._previewManager.activePreviewResource);
|
||||
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);
|
||||
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);
|
||||
this.#previewSecuritySelector.showSecuritySelectorForResource(vscode.window.activeTextEditor.document.uri);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,12 +10,16 @@ import { MarkdownPreviewManager } from '../preview/previewManager';
|
||||
export class ShowSourceCommand implements Command {
|
||||
public readonly id = 'markdown.showSource';
|
||||
|
||||
readonly #previewManager: MarkdownPreviewManager;
|
||||
|
||||
public constructor(
|
||||
private readonly _previewManager: MarkdownPreviewManager
|
||||
) { }
|
||||
previewManager: MarkdownPreviewManager
|
||||
) {
|
||||
this.#previewManager = previewManager;
|
||||
}
|
||||
|
||||
public execute() {
|
||||
const { activePreviewResource, activePreviewResourceColumn } = this._previewManager;
|
||||
const { activePreviewResource, activePreviewResourceColumn } = this.#previewManager;
|
||||
if (activePreviewResource && activePreviewResourceColumn) {
|
||||
return vscode.workspace.openTextDocument(activePreviewResource).then(document => {
|
||||
return vscode.window.showTextDocument(document, activePreviewResourceColumn);
|
||||
|
||||
@@ -9,11 +9,15 @@ import { MarkdownPreviewManager } from '../preview/previewManager';
|
||||
export class ToggleLockCommand implements Command {
|
||||
public readonly id = 'markdown.preview.toggleLock';
|
||||
|
||||
readonly #previewManager: MarkdownPreviewManager;
|
||||
|
||||
public constructor(
|
||||
private readonly _previewManager: MarkdownPreviewManager
|
||||
) { }
|
||||
previewManager: MarkdownPreviewManager
|
||||
) {
|
||||
this.#previewManager = previewManager;
|
||||
}
|
||||
|
||||
public execute() {
|
||||
this._previewManager.toggleLock();
|
||||
this.#previewManager.toggleLock();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user