UNPKG

@daiyam/artifact-vsx-ts

Version:

The configuration to create Visual Studio extensions and publish them on Visual Studio Marketplace and Open VSX Registry.

54 lines (39 loc) 1.33 kB
import * as vscode from 'vscode'; import { Disposable } from './utils/disposable.js'; import { CONFIG_KEY, getDebugChannel } from './utils/settings.js'; export class DocumentManager implements vscode.Disposable { private readonly disposable: Disposable = new Disposable(); private enabled: boolean = false; public activate(context: vscode.ExtensionContext) { // {{{ vscode.workspace.onDidChangeConfiguration((event) => { if(event.affectsConfiguration(CONFIG_KEY)) { this.configure(); } }); context.subscriptions.push(this); } // }}} public dispose(): void { // {{{ this.disposable.dispose(); } // }}} private configure(): void { // {{{ const config = vscode.workspace.getConfiguration(CONFIG_KEY, null); const wasEnabled = this.enabled; this.enabled = config.get<boolean>('enabled') ?? true; if(!this.enabled) { this.disposable.dispose(); return; } if(!wasEnabled) { this.disposable.push( vscode.window.onDidChangeActiveTextEditor((editor) => this.onDidChangeActiveTextEditor(editor)), ); } } // }}} private onDidChangeActiveTextEditor(editor: vscode.TextEditor | undefined): void { // {{{ if(!editor) { return; } const channel = getDebugChannel(true)!; channel.appendLine('onDidChangeActiveTextEditor:', editor.document.fileName); } // }}} }