import { CompletionAdapter, DefinitionAdapter, DiagnosticsAdapter, DocumentColorAdapter, DocumentFormattingEditProvider, DocumentHighlightAdapter, DocumentLinkAdapter, DocumentRangeFormattingEditProvider, DocumentSymbolAdapter, FoldingRangeAdapter, HoverAdapter, ReferenceAdapter, RenameAdapter, SelectionRangeAdapter, fromPosition, fromRange, toRange, toTextEdit } from "./chunk-4HDAG2SO.js"; import { createWebWorker } from "./chunk-LDDGU7BO.js"; import { languages } from "./chunk-FYA5C7HA.js"; import "./chunk-DC5AMYBS.js"; // node_modules/monaco-editor/esm/vs/language/html/workerManager.js var STOP_WHEN_IDLE_FOR = 2 * 60 * 1e3; var WorkerManager = class { constructor(defaults) { this._defaults = defaults; this._worker = null; this._client = null; this._idleCheckInterval = window.setInterval(() => this._checkIfIdle(), 30 * 1e3); this._lastUsedTime = 0; this._configChangeListener = this._defaults.onDidChange(() => this._stopWorker()); } _stopWorker() { if (this._worker) { this._worker.dispose(); this._worker = null; } this._client = null; } dispose() { clearInterval(this._idleCheckInterval); this._configChangeListener.dispose(); this._stopWorker(); } _checkIfIdle() { if (!this._worker) { return; } let timePassedSinceLastUsed = Date.now() - this._lastUsedTime; if (timePassedSinceLastUsed > STOP_WHEN_IDLE_FOR) { this._stopWorker(); } } _getClient() { this._lastUsedTime = Date.now(); if (!this._client) { this._worker = createWebWorker({ // module that exports the create() method and returns a `HTMLWorker` instance moduleId: "vs/language/html/htmlWorker", createWorker: () => new Worker(new URL("html.worker.js", import.meta.url), { type: "module" }), // passed in to the create() method createData: { languageSettings: this._defaults.options, languageId: this._defaults.languageId }, label: this._defaults.languageId }); this._client = this._worker.getProxy(); } return this._client; } getLanguageServiceWorker(...resources) { let _client; return this._getClient().then((client) => { _client = client; }).then((_) => { if (this._worker) { return this._worker.withSyncedResources(resources); } }).then((_) => _client); } }; // node_modules/monaco-editor/esm/vs/language/html/htmlMode.js import "E:/Workspace/easysql/node_modules/monaco-editor/esm/vs/base/browser/ui/codicons/codicon/codicon.css"; import "E:/Workspace/easysql/node_modules/monaco-editor/esm/vs/base/browser/ui/codicons/codicon/codicon-modifiers.css"; var HTMLCompletionAdapter = class extends CompletionAdapter { constructor(worker) { super(worker, [".", ":", "<", '"', "=", "/"]); } }; function setupMode1(defaults) { const client = new WorkerManager(defaults); const worker = (...uris) => { return client.getLanguageServiceWorker(...uris); }; let languageId = defaults.languageId; languages.registerCompletionItemProvider(languageId, new HTMLCompletionAdapter(worker)); languages.registerHoverProvider(languageId, new HoverAdapter(worker)); languages.registerDocumentHighlightProvider( languageId, new DocumentHighlightAdapter(worker) ); languages.registerLinkProvider(languageId, new DocumentLinkAdapter(worker)); languages.registerFoldingRangeProvider( languageId, new FoldingRangeAdapter(worker) ); languages.registerDocumentSymbolProvider( languageId, new DocumentSymbolAdapter(worker) ); languages.registerSelectionRangeProvider( languageId, new SelectionRangeAdapter(worker) ); languages.registerRenameProvider(languageId, new RenameAdapter(worker)); if (languageId === "html") { languages.registerDocumentFormattingEditProvider( languageId, new DocumentFormattingEditProvider(worker) ); languages.registerDocumentRangeFormattingEditProvider( languageId, new DocumentRangeFormattingEditProvider(worker) ); } } function setupMode(defaults) { const disposables = []; const providers = []; const client = new WorkerManager(defaults); disposables.push(client); const worker = (...uris) => { return client.getLanguageServiceWorker(...uris); }; function registerProviders() { const { languageId, modeConfiguration } = defaults; disposeAll(providers); if (modeConfiguration.completionItems) { providers.push( languages.registerCompletionItemProvider(languageId, new HTMLCompletionAdapter(worker)) ); } if (modeConfiguration.hovers) { providers.push( languages.registerHoverProvider(languageId, new HoverAdapter(worker)) ); } if (modeConfiguration.documentHighlights) { providers.push( languages.registerDocumentHighlightProvider( languageId, new DocumentHighlightAdapter(worker) ) ); } if (modeConfiguration.links) { providers.push( languages.registerLinkProvider(languageId, new DocumentLinkAdapter(worker)) ); } if (modeConfiguration.documentSymbols) { providers.push( languages.registerDocumentSymbolProvider( languageId, new DocumentSymbolAdapter(worker) ) ); } if (modeConfiguration.rename) { providers.push( languages.registerRenameProvider(languageId, new RenameAdapter(worker)) ); } if (modeConfiguration.foldingRanges) { providers.push( languages.registerFoldingRangeProvider( languageId, new FoldingRangeAdapter(worker) ) ); } if (modeConfiguration.selectionRanges) { providers.push( languages.registerSelectionRangeProvider( languageId, new SelectionRangeAdapter(worker) ) ); } if (modeConfiguration.documentFormattingEdits) { providers.push( languages.registerDocumentFormattingEditProvider( languageId, new DocumentFormattingEditProvider(worker) ) ); } if (modeConfiguration.documentRangeFormattingEdits) { providers.push( languages.registerDocumentRangeFormattingEditProvider( languageId, new DocumentRangeFormattingEditProvider(worker) ) ); } } registerProviders(); disposables.push(asDisposable(providers)); return asDisposable(disposables); } function asDisposable(disposables) { return { dispose: () => disposeAll(disposables) }; } function disposeAll(disposables) { while (disposables.length) { disposables.pop().dispose(); } } export { CompletionAdapter, DefinitionAdapter, DiagnosticsAdapter, DocumentColorAdapter, DocumentFormattingEditProvider, DocumentHighlightAdapter, DocumentLinkAdapter, DocumentRangeFormattingEditProvider, DocumentSymbolAdapter, FoldingRangeAdapter, HoverAdapter, ReferenceAdapter, RenameAdapter, SelectionRangeAdapter, WorkerManager, fromPosition, fromRange, setupMode, setupMode1, toRange, toTextEdit }; //# sourceMappingURL=htmlMode-NDZ3CCQE.js.map