release: WRNexusJS 0.8.0
Quality / quality (ubuntu-latest) (push) Failing after 21s
Quality / quality (windows-latest) (push) Canceled after 0s

This commit is contained in:
2026-08-02 23:18:51 +05:30
parent 87507edf59
commit 586a6db8ff
625 changed files with 243608 additions and 11210 deletions
+40 -7
View File
@@ -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);
}