mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-24 18:49:00 +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:
@@ -119,36 +119,38 @@ export interface MarkdownContributionProvider {
|
||||
|
||||
class VSCodeExtensionMarkdownContributionProvider extends Disposable implements MarkdownContributionProvider {
|
||||
|
||||
private _contributions?: MarkdownContributions;
|
||||
#contributions?: MarkdownContributions;
|
||||
readonly #extensionContext: vscode.ExtensionContext;
|
||||
|
||||
public constructor(
|
||||
private readonly _extensionContext: vscode.ExtensionContext,
|
||||
extensionContext: vscode.ExtensionContext,
|
||||
) {
|
||||
super();
|
||||
this.#extensionContext = extensionContext;
|
||||
|
||||
this._register(vscode.extensions.onDidChange(() => {
|
||||
const currentContributions = this._getCurrentContributions();
|
||||
const existingContributions = this._contributions || MarkdownContributions.Empty;
|
||||
const currentContributions = this.#getCurrentContributions();
|
||||
const existingContributions = this.#contributions || MarkdownContributions.Empty;
|
||||
if (!MarkdownContributions.equal(existingContributions, currentContributions)) {
|
||||
this._contributions = currentContributions;
|
||||
this._onContributionsChanged.fire(this);
|
||||
this.#contributions = currentContributions;
|
||||
this.#onContributionsChanged.fire(this);
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
||||
public get extensionUri() {
|
||||
return this._extensionContext.extensionUri;
|
||||
return this.#extensionContext.extensionUri;
|
||||
}
|
||||
|
||||
private readonly _onContributionsChanged = this._register(new vscode.EventEmitter<this>());
|
||||
public readonly onContributionsChanged = this._onContributionsChanged.event;
|
||||
readonly #onContributionsChanged = this._register(new vscode.EventEmitter<this>());
|
||||
public readonly onContributionsChanged = this.#onContributionsChanged.event;
|
||||
|
||||
public get contributions(): MarkdownContributions {
|
||||
this._contributions ??= this._getCurrentContributions();
|
||||
return this._contributions;
|
||||
this.#contributions ??= this.#getCurrentContributions();
|
||||
return this.#contributions;
|
||||
}
|
||||
|
||||
private _getCurrentContributions(): MarkdownContributions {
|
||||
#getCurrentContributions(): MarkdownContributions {
|
||||
return vscode.extensions.all
|
||||
.map(MarkdownContributions.fromExtension)
|
||||
.reduce(MarkdownContributions.merge, MarkdownContributions.Empty);
|
||||
|
||||
Reference in New Issue
Block a user