release: WRNexusJS 0.8.0
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
"use strict";
|
||||
|
||||
const vscode = require("vscode");
|
||||
const path = require("node:path");
|
||||
const { LanguageClient, TransportKind } = require("vscode-languageclient/node");
|
||||
|
||||
const { formatWrn } = require("./formatter");
|
||||
|
||||
@@ -329,7 +331,7 @@ async function recoverWrnLanguage(document) {
|
||||
*
|
||||
* @param {vscode.ExtensionContext} context
|
||||
*/
|
||||
function activate(context) {
|
||||
async function activate(context) {
|
||||
for (const document of vscode.workspace.textDocuments) {
|
||||
void recoverWrnLanguage(document);
|
||||
}
|
||||
@@ -340,12 +342,43 @@ function activate(context) {
|
||||
}),
|
||||
);
|
||||
|
||||
registerDiagnostics(context);
|
||||
registerCompilerDiagnostics(context);
|
||||
registerCompletionProvider(context);
|
||||
registerDefinitionProvider(context);
|
||||
registerComponentIntelligence(context);
|
||||
registerFormatter(context);
|
||||
const useLanguageServer = vscode.workspace
|
||||
.getConfiguration("wrnexus")
|
||||
.get("languageServer.enable", true);
|
||||
let languageServerStarted = false;
|
||||
if (useLanguageServer) {
|
||||
const module = path.join(context.extensionPath, "src", "language-server.cjs");
|
||||
const serverOptions = {
|
||||
run: { module, transport: TransportKind.stdio },
|
||||
debug: { module, transport: TransportKind.stdio, options: { execArgv: ["--nolazy"] } },
|
||||
};
|
||||
const client = new LanguageClient(
|
||||
"wrnexusLanguageServer",
|
||||
"WRNexus Language Server",
|
||||
serverOptions,
|
||||
{
|
||||
documentSelector: [{ scheme: "file", language: WRN_LANGUAGE_ID }],
|
||||
},
|
||||
);
|
||||
try {
|
||||
await client.start();
|
||||
languageServerStarted = true;
|
||||
context.subscriptions.push({ dispose: () => void client.stop() });
|
||||
} catch (error) {
|
||||
console.warn(
|
||||
"[wrnexus] language server failed to start; using built-in providers.",
|
||||
error instanceof Error ? error.message : String(error),
|
||||
);
|
||||
}
|
||||
}
|
||||
if (!languageServerStarted) {
|
||||
registerDiagnostics(context);
|
||||
registerCompilerDiagnostics(context);
|
||||
registerCompletionProvider(context);
|
||||
registerDefinitionProvider(context);
|
||||
registerComponentIntelligence(context);
|
||||
registerFormatter(context);
|
||||
}
|
||||
registerSemanticTokens(context);
|
||||
registerV060LanguageFeatures(context);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user