aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Czihak <git@dcz.at>2026-05-10 19:06:22 +0200
committerDavid Czihak <git@dcz.at>2026-05-10 19:06:22 +0200
commit315195d38c26c33dd25933895201c706b3aef782 (patch)
treefad5cf0236dd4adbde7eb7af19b9127379939aa2
parentd09074e28b9156e920b52ade07e7fd6f5ec3a6c1 (diff)
Refactor: Rework settings, language, icons
- The plugin and workspace settings have been restructured to make more sense and provide a better user experience. - English and German languages have been reworked completely to sound more precise. - Icons for tasks have been added.
-rw-r--r--Images/zig-hex/zig-hex.pngbin0 -> 3070 bytes
-rw-r--r--Images/zig-hex/zig-hex@2x.pngbin0 -> 3023 bytes
-rw-r--r--Images/zig-script/zig-script.pngbin0 -> 1521 bytes
-rw-r--r--Images/zig-script/zig-script@2x.pngbin0 -> 1506 bytes
-rw-r--r--Scripts/main.js102
-rw-r--r--de.lproj/strings.json97
-rw-r--r--en.lproj/strings.json99
-rw-r--r--extension.json131
8 files changed, 244 insertions, 185 deletions
diff --git a/Images/zig-hex/zig-hex.png b/Images/zig-hex/zig-hex.png
new file mode 100644
index 0000000..da18a18
--- /dev/null
+++ b/Images/zig-hex/zig-hex.png
Binary files differ
diff --git a/Images/zig-hex/zig-hex@2x.png b/Images/zig-hex/zig-hex@2x.png
new file mode 100644
index 0000000..911219e
--- /dev/null
+++ b/Images/zig-hex/zig-hex@2x.png
Binary files differ
diff --git a/Images/zig-script/zig-script.png b/Images/zig-script/zig-script.png
new file mode 100644
index 0000000..bec1c9f
--- /dev/null
+++ b/Images/zig-script/zig-script.png
Binary files differ
diff --git a/Images/zig-script/zig-script@2x.png b/Images/zig-script/zig-script@2x.png
new file mode 100644
index 0000000..b436080
--- /dev/null
+++ b/Images/zig-script/zig-script@2x.png
Binary files differ
diff --git a/Scripts/main.js b/Scripts/main.js
index aa11e9e..7477993 100644
--- a/Scripts/main.js
+++ b/Scripts/main.js
@@ -48,7 +48,10 @@ exports.activate = function activate() {
try {
disposable.dispose();
} catch (error) {
- console.error(`[${EXTENSION_ID}] Failed to dispose registration`, error);
+ console.error(
+ `[${EXTENSION_ID}] Failed to dispose registration`,
+ error,
+ );
}
}
});
@@ -76,7 +79,10 @@ exports.deactivate = function deactivate() {
try {
disposable.dispose();
} catch (error) {
- console.error(`[${EXTENSION_ID}] Failed to dispose registration`, error);
+ console.error(
+ `[${EXTENSION_ID}] Failed to dispose registration`,
+ error,
+ );
}
}
});
@@ -385,9 +391,7 @@ function parseProjectName(cwd) {
if (typeof content !== "string" || content.length === 0) return null;
const stripped = content.replace(/\/\/[^\n]*/g, "");
- const match = stripped.match(
- /\.name\s*=\s*(?:"([^"]+)"|\.([A-Za-z_][\w]*))/,
- );
+ const match = stripped.match(/\.name\s*=\s*(?:"([^"]+)"|\.([A-Za-z_][\w]*))/);
if (!match) return null;
return match[1] || match[2] || null;
}
@@ -536,7 +540,30 @@ const stepCache = {
* @param {*} variables - Dictionary of variable names and values
*/
function localizeText(key, fallback, variables) {
- let text = nova.localize(key, fallback);
+ let text = nova.localize(key, null);
+
+ if (key === text) {
+ return `Localization missing for ${key}`;
+ }
+
+ if (!variables || typeof variables !== "object") {
+ return text;
+ }
+
+ for (const [name, value] of Object.entries(variables)) {
+ text = text.split(`{${name}}`).join(String(value));
+ }
+
+ return text;
+}
+
+function localize(key, variables) {
+ let text = nova.localize(key, null);
+
+ if (key === text) {
+ console.warn(`[locales] Missing localization for ${key}`);
+ return text;
+ }
if (!variables || typeof variables !== "object") {
return text;
@@ -628,21 +655,22 @@ async function findOnPath(executableName) {
// package managers use but that may be absent when Nova is launched from the
// Dock (where launchd provides a narrower system PATH than a login shell).
const fallbackPrefixes = [
- "/opt/homebrew/bin", // Homebrew – Apple Silicon
- "/usr/local/bin", // Homebrew – Intel / manual installs
+ "/opt/homebrew/bin", // Homebrew – Apple Silicon
+ "/usr/local/bin", // Homebrew – Intel / manual installs
`${nova.environment && nova.environment.HOME}/.local/bin`, // mise, cargo, etc.
];
- const augmentedPath = [...new Set([
- ...novaPath.split(":").filter(Boolean),
- ...fallbackPrefixes,
- ])].join(":");
+ const augmentedPath = [
+ ...new Set([...novaPath.split(":").filter(Boolean), ...fallbackPrefixes]),
+ ].join(":");
const result = await runProcess("/usr/bin/env", {
args: ["which", executableName],
env: { PATH: augmentedPath },
});
const found = result.stdout.trim();
- console.log(`[${EXTENSION_ID}] findOnPath: ${executableName} → ${result.status === 0 ? found : "not found"}`);
+ console.log(
+ `[${EXTENSION_ID}] findOnPath: ${executableName} → ${result.status === 0 ? found : "not found"}`,
+ );
if (result.status !== 0) {
return null;
@@ -661,7 +689,9 @@ async function findOnPath(executableName) {
async function resolveExecutable(configKey, defaultCommand) {
const configuredPath = getConfigValue(configKey);
if (configuredPath) {
- console.log(`[${EXTENSION_ID}] findOnPath: ${defaultCommand} → config: ${configuredPath}`);
+ console.log(
+ `[${EXTENSION_ID}] findOnPath: ${defaultCommand} → config: ${configuredPath}`,
+ );
return configuredPath;
}
@@ -678,7 +708,7 @@ async function resolveZigExecutable() {
if (!zigPath) {
nova.workspace.showWarningMessage(
localizeText(
- "warning.zig.not_found",
+ "warning.zig.not-found",
"Zig was not found. Install it or set a Zig executable path in Zig extension settings.",
),
);
@@ -877,7 +907,9 @@ function registerCommands() {
const command = payload && payload.command;
const args = (payload && payload.args) || [];
const cwd = (payload && payload.cwd) || workspace.path || null;
- console.log(`[${EXTENSION_ID}] runInTerminal: command=${command} cwd=${cwd}`);
+ console.log(
+ `[${EXTENSION_ID}] runInTerminal: command=${command} cwd=${cwd}`,
+ );
if (!command) {
workspace.showWarningMessage(
@@ -947,10 +979,14 @@ class ZigLanguageServer {
observeConfig(key, restart) {
const onChange = () => {
if (restart) {
- console.log(`[${LANGUAGE_CLIENT_ID}] config changed (${key}) → restart`);
+ console.log(
+ `[${LANGUAGE_CLIENT_ID}] config changed (${key}) → restart`,
+ );
this.start();
} else {
- console.log(`[${LANGUAGE_CLIENT_ID}] config changed (${key}) → push configuration`);
+ console.log(
+ `[${LANGUAGE_CLIENT_ID}] config changed (${key}) → push configuration`,
+ );
this.pushConfiguration().catch((error) => {
console.error(
`[${LANGUAGE_CLIENT_ID}] pushConfiguration failed`,
@@ -997,7 +1033,9 @@ class ZigLanguageServer {
const sinceLastStop = Date.now() - lastZlsStopAt;
if (lastZlsStopAt > 0 && sinceLastStop < ZLS_RESTART_GRACE_MS) {
const wait = ZLS_RESTART_GRACE_MS - sinceLastStop;
- console.log(`[${LANGUAGE_CLIENT_ID}] waiting ${wait}ms for previous ZLS to exit`);
+ console.log(
+ `[${LANGUAGE_CLIENT_ID}] waiting ${wait}ms for previous ZLS to exit`,
+ );
await new Promise((resolve) => setTimeout(resolve, wait));
if (generation !== this.restartGeneration) {
return;
@@ -1018,7 +1056,7 @@ class ZigLanguageServer {
this.warnMissingTool(
"zls",
localizeText(
- "warning.zls.not_found",
+ "warning.zls.not-found",
"ZLS was not found. Install it or set a ZLS executable path in Zig extension settings.",
),
);
@@ -1078,7 +1116,9 @@ class ZigLanguageServer {
}
});
- console.log(`[${LANGUAGE_CLIENT_ID}] starting client: zls=${zlsPath} zig=${zigPath || "not found"}`);
+ console.log(
+ `[${LANGUAGE_CLIENT_ID}] starting client: zls=${zlsPath} zig=${zigPath || "not found"}`,
+ );
try {
client.start();
this.client = client;
@@ -1176,7 +1216,7 @@ class ZigTaskAssistant {
constructor() {
this.disposable = nova.assistants.registerTaskAssistant(this, {
identifier: TASK_ASSISTANT_ID,
- name: localizeText("name.extension", "Zig"),
+ name: localize("autotasks.title"),
});
}
@@ -1190,9 +1230,8 @@ class ZigTaskAssistant {
provideTasks() {
const tasks = [];
- const currentFile = new Task(
- localizeText("task.current_file.name", "Current Zig File"),
- );
+ const currentFile = new Task(localize("autotasks.current-file.name"));
+ currentFile.image = "zig-script";
currentFile.setAction(
Task.Run,
new TaskResolvableAction({
@@ -1219,11 +1258,8 @@ class ZigTaskAssistant {
const steps = stepCache.getOrFetch(workspacePath);
if (steps && steps.length > 0) {
for (const step of steps) {
- const task = new Task(
- localizeText("task.build_step.name", "Zig Build: {step}", {
- step,
- }),
- );
+ const task = new Task(localize("autotasks.buildstep.name", { step }));
+ task.image = "zig-hex";
task.setAction(
Task.Run,
new TaskResolvableAction({
@@ -1245,7 +1281,9 @@ class ZigTaskAssistant {
const type = context.data && context.data.type;
const config = context.config;
const cwd = getTaskCwd(config);
- console.log(`[${TASK_ASSISTANT_ID}] resolveTaskAction: type=${type} cwd=${cwd}`);
+ console.log(
+ `[${TASK_ASSISTANT_ID}] resolveTaskAction: type=${type} cwd=${cwd}`,
+ );
if (type === "clean") {
return this.resolveCleanAction(cwd);
@@ -1475,7 +1513,7 @@ class ZigTaskAssistant {
if (!lldbDapPath) {
nova.workspace.showWarningMessage(
localizeText(
- "warning.lldb_dap.not_found",
+ "warning.lldb_dap.not-found",
"lldb-dap was not found. Install Xcode Command Line Tools or set an LLDB DAP executable path in Zig extension settings.",
),
);
diff --git a/de.lproj/strings.json b/de.lproj/strings.json
index 7fd41c2..3ebacf6 100644
--- a/de.lproj/strings.json
+++ b/de.lproj/strings.json
@@ -1,23 +1,13 @@
{
"Zig": "Zig",
- "Zig language support for Nova with Tree-sitter syntax highlighting, ZLS integration, run tasks, and LLDB-based debugging.": "Zig-Sprachunterstützung für Nova mit Tree-sitter-Syntaxhervorhebung, ZLS-Integration, Ausführungsaufgaben und LLDB-basiertem Debugging.",
- "Zig (LLDB DAP)": "Zig (LLDB DAP)",
- "Tooling": "Werkzeuge",
- "Paths to the Zig toolchain and language server. Leave blank to discover them from PATH.": "Pfade zur Zig-Toolchain und zum Language Server. Leer lassen, um sie über PATH zu finden.",
- "Zig Executable": "Zig-Ausführungsdatei",
"zig": "zig",
- "Absolute path to the Zig executable.": "Absoluter Pfad zur Zig-Ausführungsdatei.",
+ "Zig (LLDB DAP)": "Zig (LLDB DAP)",
"zls": "zls",
- "LLDB DAP Executable": "LLDB-DAP-Ausführungsdatei",
- "lldb-dap": "lldb-dap",
- "Absolute path to the lldb-dap executable. Leave blank to discover it via xcrun or PATH.": "Absoluter Pfad zur lldb-dap-Ausführungsdatei. Leer lassen, um sie über xcrun oder PATH zu finden.",
- "Workspace-specific overrides for Zig and ZLS executable paths.": "Workspace-spezifische Überschreibungen für Zig- und ZLS-Ausführungspfade.",
- "Workspace-specific language server settings.": "Workspace-spezifische Language-Server-Einstellungen.",
"Zig Package": "Zig-Paket",
"Build and run a Zig package from one Nova task configuration.": "Ein Zig-Paket aus einer einzigen Nova-Task-Konfiguration bauen und ausführen.",
"Working Directory": "Arbeitsverzeichnis",
- "Workspace Root": "Workspace-Wurzel",
+ "Workspace Root": "Projektverzeichnis",
"Run Step": "Ausführungsschritt",
"run": "run",
"install": "install",
@@ -58,19 +48,18 @@
"Pause immediately when the program starts.": "Sofort anhalten, wenn das Programm startet.",
"warning.terminal.launch_failed": "Zig-Task konnte im Terminal nicht gestartet werden.",
"warning.terminal.open_failed": "Terminal für die Zig-Task konnte nicht geöffnet werden.",
- "warning.zls.not_found": "ZLS wurde nicht gefunden. Installiere es oder setze einen ZLS-Ausführungspfad in den Zig-Erweiterungseinstellungen.",
+
"name.language_server": "Zig Language Server",
"warning.zls.stopped_unexpectedly": "Der Zig Language Server wurde unerwartet beendet ({executable}).",
"warning.zls.start_failed": "Der Zig Language Server konnte unter {path} nicht gestartet werden.",
"name.extension": "Zig",
"task.current_file.name": "Aktuelle Zig-Datei",
"warning.clean.missing_cwd": "Wähle vor dem Bereinigen von Zig-Build-Artefakten einen Workspace oder ein Arbeitsverzeichnis aus.",
- "warning.zig.not_found": "Zig wurde nicht gefunden. Installiere es oder setze einen Zig-Ausführungspfad in den Zig-Erweiterungseinstellungen.",
"warning.current_file.focus_editor_for_run": "Fokussiere einen Zig-Editor, bevor du „Aktuelle Zig-Datei“ ausführst.",
"warning.current_file.focus_editor_for_clean": "Fokussiere einen Zig-Editor, bevor du Artefakte der „Aktuelle Zig-Datei“ bereinigst.",
- "warning.lldb_dap.not_found": "lldb-dap wurde nicht gefunden. Installiere die Xcode Command Line Tools oder setze einen LLDB-DAP-Ausführungspfad in den Zig-Erweiterungseinstellungen.",
+
"warning.debug.choose_program": "Wähle vor dem Ausführen von Zig Debug einen Programmpfad aus.",
- "warning.node.not_found": "Node.js wurde nicht gefunden. Installiere Node.js, damit der Zig-Debug-Adapter-Proxy laufen kann.",
+
"Debug Adapter": "Debug-Adapter",
"Controls for the lldb-dap integration.": "Steuerelemente für die lldb-dap-Integration.",
"Enable Proxy Log": "Proxy-Protokoll aktivieren",
@@ -96,43 +85,65 @@
"On": "Ein",
"Off": "Aus",
"Toggle `-fincremental` / `-fno-incremental`.": "Schaltet `-fincremental` / `-fno-incremental` um.",
- "task.build_step.name": "Zig-Build: {step}",
"warning.clean.unsafe_cwd": "Reinigung verweigert: Das Arbeitsverzeichnis muss innerhalb dieses Workspaces liegen.",
"warning.fmt.no_file": "Öffne eine gespeicherte Zig-Datei, bevor du „Aktuelle Zig-Datei formatieren“ ausführst.",
"warning.fmt.not_zig": "„Aktuelle Zig-Datei formatieren“ funktioniert nur mit Zig-Dateien.",
"warning.fmt.no_workspace": "Öffne einen Workspace, bevor du „Workspace formatieren“ ausführst.",
"warning.fmt.failed": "zig fmt ist fehlgeschlagen.",
+ "warning.zig.not-found": "zig wurde nicht gefunden. Stelle sicher, dass zig über PATH gefunden werden kann, oder gib den Pfad explizit an in den Erweiterungs- oder Projekteinstellungen.",
+ "warning.zls.not-found": "zls wurde nicht gefunden. Stelle sicher, dass zls über PATH gefunden werden kann, oder gib den Pfad explizit an in den Erweiterungs- oder Projekteinstellungen",
+ "warning.node.not-found": "node wurde nicht gefunden. Stelle sicher, dass node über PATH gefunden werden kann, oder gib den Pfad explizit an in den Erweiterungs- oder Projekteinstellungen",
+ "warning.lldb_dap.not-found": "lldb-dap wurde nicht gefunden. Installiere die Xcode Command line tools, oder gib den Pfad explizit an in den Erweiterungs- oder Projekteinstellungen.",
+
+ "tasks.buildrun.name": "Zig Build",
+ "tasks.buildrun.info": "Zig kompilieren und ausführen",
+
+ "tasks.debug.name": "Zig Debug",
+ "tasks.debug.info": "Zig mit Debug-Symbolen für LLDB kompilieren und ausführen",
+
+ "tasks.test.name": "Zig Test",
+ "tasks.test.info": "Tests ausführen, die im Zig-Projekt definiert sind",
+
+ "tasks.watch.name": "Zig Watch",
+ "tasks.watch.info": "Zig-Dateien beobachten und bei Änderungen autimatisch neu kompilieren",
+
+ "autotasks.title": "Automatisch erkannte Aufgaben",
+ "autotasks.current-file.name": "Aktuelle Zig-Datei ausführen",
+ "autotasks.buildstep.name": "zig build {step}",
+
"config.general.title": "Allgemein",
- "zig.executable-path.title": "Pfad zu zig",
- "zig.executable-path.info": "Leer lassen, um zig über die Umgebungsvariable PATH zu finden",
+ "config.zig.executable-path.title": "Pfad zu zig",
+ "config.zig.executable-path.info": "Leer lassen, um zig über die Umgebungsvariable PATH zu finden",
+
+ "config.zls.title": "Erweiterte Sprachfunktionen",
+ "config.zls.info": "Diagnose, Vervollständigung, Navigation und mehr",
+ "config.zls.enable.title": "ZLS aktivieren",
+ "config.zls.enable.info": "Für diese Funktion muss ZLS installiert sein",
+ "config.zls.build-on-save.title": "Beim Speichern bauen",
+ "config.zls.build-on-save.info": "Erlaube ZLS, den build / check-Runner beim Speichern aufzurufen",
+ "config.zls.log-communication.title": "ZLS-Protokoll",
+ "config.zls.log-communication.info": "Kommunikation zwischen ZLS und Nova in der Erweiterungskonsole protokollieren",
+ "config.zls.executable-path.title": "Pfad zu zls",
+ "config.zls.executable-path.info": "Leer lassen, um zls über die Umgebungsvariable PATH zu finden",
- "zls.title": "Erweiterte Sprachfunktionen",
- "zls.info": "Diagnose, Vervollständigung, Navigation und mehr",
- "zls.enable.title": "ZLS aktivieren",
- "zls.enable.info": "Für diese Funktion muss ZLS installiert sein",
- "zls.build-on-save.title": "Beim Speichern bauen",
- "zls.build-on-save.info": "Erlaube ZLS, den build / check-Runner beim Speichern aufzurufen",
- "zls.log-communication.title": "ZLS-Protokoll",
- "zls.log-communication.info": "Kommunikation zwischen ZLS und Nova in der Erweiterungskonsole protokollieren",
- "zls.executable-path.title": "Pfad zu zls",
- "zls.executable-path.info": "Leer lassen, um zls über die Umgebungsvariable PATH zu finden",
+ "config.debugging.title": "Debugging",
+ "config.debugging.info": "Einstellungen für die LLDB-Integration",
+ "config.debugging.lldb-dap-path.title": "Pfad zu lldb-dap",
+ "config.debugging.lldb-dap-path.info": "Leer lassen, um lldb-dap über das Xcode Command line tool xcrun oder über die Umgebungsvariable PATH zu finden",
+ "config.debugging.logging.title": "LLDB-Protokoll",
+ "config.debugging.logging.info": "Ausgabe des lldb-dap-Proxy im Erweiterungsverzeichnis protokollieren",
- "debugging.title": "Debugging",
- "debugging.info": "Einstellungen für die LLDB-Integration",
- "debugging.lldb-dap-path.title": "Pfad zu lldb-dap",
- "debugging.lldb-dap-path.info": "Leer lassen, um lldb-dap über das Xcode Command line tool xcrun oder über die Umgebungsvariable PATH zu finden",
- "debugging.logging.title": "LLDB-Protokoll",
- "debugging.logging.info": "Ausgabe des lldb-dap-Proxy im Erweiterungsverzeichnis protokollieren",
+ "config.tasks.title": "Aufgaben",
+ "config.tasks.info": "Aufgabenbezogene Einstellungen",
- "tasks.title": "Aufgaben",
- "tasks.info": "Aufgabenbezogene Einstellungen",
+ "config.tasks.autodiscover.title": "Aufgaben automatisch erkennen",
+ "config.tasks.autodiscover.info": "Erkenne Build Steps und füge sie automatisch in die Aufgabenliste hinzu",
- "tasks.autodiscover.title": "Aufgaben automatisch erkennen",
- "tasks.autodiscover.info": "Erkenne Build Steps und füge sie automatisch in die Aufgabenliste hinzu",
+ "config.enabled": "Aktiviert",
+ "config.disabled": "Deaktiviert",
+ "config.inherit": "Globale Einstellung verwenden",
- "setting.enabled": "Aktiviert",
- "setting.disabled": "Deaktiviert",
- "setting.inherit": "Globale Einstellung verwenden",
- "setting.inherit.path-info": "Leer lassen, um die globale Einstellung zu verwenden",
+ "workspaceconfig.inherit.info": "Leer lassen, um die globale Einstellung zu verwenden",
+ "workspaceconfig.inherit.placeholder": "Globale Einstellung"
}
diff --git a/en.lproj/strings.json b/en.lproj/strings.json
index e6a0302..0646258 100644
--- a/en.lproj/strings.json
+++ b/en.lproj/strings.json
@@ -1,23 +1,11 @@
{
"Zig": "Zig",
- "Zig language support for Nova with Tree-sitter syntax highlighting, ZLS integration, run tasks, and LLDB-based debugging.": "Zig-Sprachunterstützung für Nova mit Tree-sitter-Syntaxhervorhebung, ZLS-Integration, Ausführungsaufgaben und LLDB-basiertem Debugging.",
- "Zig (LLDB DAP)": "Zig (LLDB DAP)",
- "Tooling": "Werkzeuge",
- "Paths to the Zig toolchain and language server. Leave blank to discover them from PATH.": "Pfade zur Zig-Toolchain und zum Language Server. Leer lassen, um sie über PATH zu finden.",
- "Zig Executable": "Zig-Ausführungsdatei",
"zig": "zig",
- "Absolute path to the Zig executable.": "Absoluter Pfad zur Zig-Ausführungsdatei.",
+ "Zig (LLDB DAP)": "Zig (LLDB DAP)",
"zls": "zls",
- "LLDB DAP Executable": "LLDB-DAP-Ausführungsdatei",
- "lldb-dap": "lldb-dap",
- "Absolute path to the lldb-dap executable. Leave blank to discover it via xcrun or PATH.": "Absoluter Pfad zur lldb-dap-Ausführungsdatei. Leer lassen, um sie über xcrun oder PATH zu finden.",
- "Workspace-specific overrides for Zig and ZLS executable paths.": "Workspace-spezifische Überschreibungen für Zig- und ZLS-Ausführungspfade.",
- "Workspace-specific language server settings.": "Workspace-spezifische Language-Server-Einstellungen.",
- "Zig Package": "Zig-Paket",
- "Build and run a Zig package from one Nova task configuration.": "Ein Zig-Paket aus einer einzigen Nova-Task-Konfiguration bauen und ausführen.",
"Working Directory": "Arbeitsverzeichnis",
- "Workspace Root": "Workspace-Wurzel",
+ "Workspace Root": "Workspace root",
"Run Step": "Ausführungsschritt",
"run": "run",
"install": "install",
@@ -58,19 +46,18 @@
"Pause immediately when the program starts.": "Sofort anhalten, wenn das Programm startet.",
"warning.terminal.launch_failed": "Zig-Task konnte im Terminal nicht gestartet werden.",
"warning.terminal.open_failed": "Terminal für die Zig-Task konnte nicht geöffnet werden.",
- "warning.zls.not_found": "ZLS wurde nicht gefunden. Installiere es oder setze einen ZLS-Ausführungspfad in den Zig-Erweiterungseinstellungen.",
+
"name.language_server": "Zig Language Server",
"warning.zls.stopped_unexpectedly": "Der Zig Language Server wurde unerwartet beendet ({executable}).",
"warning.zls.start_failed": "Der Zig Language Server konnte unter {path} nicht gestartet werden.",
"name.extension": "Zig",
"task.current_file.name": "Aktuelle Zig-Datei",
"warning.clean.missing_cwd": "Wähle vor dem Bereinigen von Zig-Build-Artefakten einen Workspace oder ein Arbeitsverzeichnis aus.",
- "warning.zig.not_found": "Zig wurde nicht gefunden. Installiere es oder setze einen Zig-Ausführungspfad in den Zig-Erweiterungseinstellungen.",
+
"warning.current_file.focus_editor_for_run": "Fokussiere einen Zig-Editor, bevor du „Aktuelle Zig-Datei“ ausführst.",
"warning.current_file.focus_editor_for_clean": "Fokussiere einen Zig-Editor, bevor du Artefakte der „Aktuelle Zig-Datei“ bereinigst.",
- "warning.lldb_dap.not_found": "lldb-dap wurde nicht gefunden. Installiere die Xcode Command Line Tools oder setze einen LLDB-DAP-Ausführungspfad in den Zig-Erweiterungseinstellungen.",
+
"warning.debug.choose_program": "Wähle vor dem Ausführen von Zig Debug einen Programmpfad aus.",
- "warning.node.not_found": "Node.js wurde nicht gefunden. Installiere Node.js, damit der Zig-Debug-Adapter-Proxy laufen kann.",
"Zig Test": "Zig-Test",
"Run `zig build test` with optional --test-filter and --summary controls.": "Führt `zig build test` mit optionalen --test-filter- und --summary-Steuerungen aus.",
@@ -93,43 +80,65 @@
"On": "Ein",
"Off": "Aus",
"Toggle `-fincremental` / `-fno-incremental`.": "Schaltet `-fincremental` / `-fno-incremental` um.",
- "task.build_step.name": "Zig-Build: {step}",
"warning.clean.unsafe_cwd": "Reinigung verweigert: Das Arbeitsverzeichnis muss innerhalb dieses Workspaces liegen.",
"warning.fmt.no_file": "Öffne eine gespeicherte Zig-Datei, bevor du „Aktuelle Zig-Datei formatieren“ ausführst.",
"warning.fmt.not_zig": "„Aktuelle Zig-Datei formatieren“ funktioniert nur mit Zig-Dateien.",
"warning.fmt.no_workspace": "Öffne einen Workspace, bevor du „Workspace formatieren“ ausführst.",
"warning.fmt.failed": "zig fmt ist fehlgeschlagen.",
+ "warning.zig.not-found": "zig executable not found. Make sure it can be found in the PATH or explicitly define the path in the extension or workspace settings.",
+ "warning.zls.not-found": "zls executable not found. Make sure zls can be found in the PATH or explicitly define the path in the extension or workspace settings.",
+ "warning.node.not-found": "node executable not found. Make sure node can be found in the PATH. Without it, debugging cannot work.",
+ "warning.lldb_dap.not-found": "lldb-dap executable not found. Install Xcode command line tools or explicitly define the path in the extension or workspace settings.",
+
+ "tasks.buildrun.name": "Zig build",
+ "tasks.buildrun.info": "Build and run Zig",
+
+ "tasks.debug.name": "Zig debug",
+ "tasks.debug.info": "Build and run Zig with debug symbols for use with LLDB",
+
+ "tasks.test.name": "Zig test",
+ "tasks.test.info": "Build and run tests defined in your Zig project",
+
+ "tasks.watch.name": "Zig watch",
+ "tasks.watch.info": "Monitor Zig files and recompile on changes",
+
+ "autotasks.title": "Auto-discovered tasks",
+ "autotasks.current-file.name": "Run active Zig file",
+ "autotasks.buildstep.name": "zig build {step}",
+
"config.general.title": "General",
- "zig.executable-path.title": "Path to zig",
- "zig.executable-path.info": "Leave empty to resolve zig via the environment variable PATH",
+ "config.zig.executable-path.title": "Path to zig",
+ "config.zig.executable-path.info": "Leave empty to resolve zig via the environment variable PATH",
+
+ "config.zls.title": "Advanced language features",
+ "config.zls.info": "Diagnostics, completions, hover, navigation",
+ "config.zls.enable.title": "Enable ZLS",
+ "config.zls.enable.info": "ZLS needs to be installed for this to work",
+ "config.zls.build-on-save.title": "Bei Speichern bauen",
+ "config.zls.build-on-save.info": "Allow ZLS to call the build / check runner on save",
+ "config.zls.log-communication.title": "ZLS log",
+ "config.zls.log-communication.info": "Log communication between ZLS and Nova to the extension console",
+ "config.zls.executable-path.title": "Path to zls",
+ "config.zls.executable-path.info": "Leave empty to resolve zls via the environment variable PATH",
- "zls.title": "Advanced language features",
- "zls.info": "Diagnostics, completion, navigation and more",
- "zls.enable.title": "Enable ZLS",
- "zls.enable.info": "ZLS needs to be installed for this to work",
- "zls.build-on-save.title": "Bei Speichern bauen",
- "zls.build-on-save.info": "Allow ZLS to call the build / check runner on save",
- "zls.log-communication.title": "ZLS log",
- "zls.log-communication.info": "Log communication between ZLS and Nova to the extension console",
- "zls.executable-path.title": "Path to zls",
- "zls.executable-path.info": "Leave empty to resolve zls via the environment variable PATH",
+ "config.debugging.title": "Debugging",
+ "config.debugging.info": "Settings for the LLDB integration",
+ "config.debugging.lldb-dap-path.title": "Path to lldb-dap",
+ "config.debugging.lldb-dap-path.info": "Leave empty to resolve lldb-dap via the Xcode Command line tool xcrun or via the environment variable PATH",
+ "config.debugging.logging.title": "LLDB log",
+ "config.debugging.logging.info": "Log output of the lldb-dap proxy to the extension directory",
- "debugging.title": "Debugging",
- "debugging.info": "Settings for the LLDB integration",
- "debugging.lldb-dap-path.title": "Path to lldb-dap",
- "debugging.lldb-dap-path.info": "Leave empty to resolve lldb-dap via the Xcode Command line tool xcrun or via the environment variable PATH",
- "debugging.logging.title": "LLDB log",
- "debugging.logging.info": "Log output of the lldb-dap proxy to the extension directory",
+ "config.tasks.title": "Tasks",
+ "config.tasks.info": "Task-related settings",
- "tasks.title": "Tasks",
- "tasks.info": "Task-related settings",
+ "config.tasks.autodiscover.title": "Auto-discover tasks",
+ "config.tasks.autodiscover.info": "Discover build steps and add them to the list of tasks",
- "tasks.autodiscover.title": "Auto-discover tasks",
- "tasks.autodiscover.info": "Discover build steps and add them to the list of tasks",
+ "config.enabled": "Enabled",
+ "config.disabled": "Disabled",
+ "config.inherit": "Inherit from Global",
- "setting.enabled": "Enabled",
- "setting.disabled": "Disabled",
- "setting.inherit": "Inherit from Global",
- "setting.inherit.path-info": "Leave empty to inherit the global configuration"
+ "workspaceconfig.inherit.info": "Leave empty to inherit the global configuration",
+ "workspaceconfig.inherit.placeholder": "Global configuration"
}
diff --git a/extension.json b/extension.json
index 52808c9..34a9d02 100644
--- a/extension.json
+++ b/extension.json
@@ -35,10 +35,10 @@
"children": [
{
"key": "at.dcz.nova-zig.toolchain.zig-path",
- "title": "zig.executable-path.title",
+ "title": "config.zig.executable-path.title",
"type": "path",
"placeholder": "zig",
- "description": "zig.executable-path.info",
+ "description": "config.zig.executable-path.info",
"allowFiles": true,
"allowFolders": false,
"filetype": "public.unix-executable"
@@ -47,77 +47,77 @@
},
{
"type": "section",
- "title": "zls.title",
- "description": "zls.info",
+ "title": "config.zls.title",
+ "description": "config.zls.info",
"children": [
{
"key": "at.dcz.nova-zig.zls.enabled",
- "title": "zls.enable.title",
+ "title": "config.zls.enable.title",
"type": "boolean",
"default": true,
- "description": "zls.enable.info"
+ "description": "config.zls.enable.info"
},
{
"key": "at.dcz.nova-zig.toolchain.zls-path",
- "title": "zls.executable-path.title",
+ "title": "config.zls.executable-path.title",
"type": "path",
"placeholder": "zls",
- "description": "zls.executable-path.info",
+ "description": "config.zls.executable-path.info",
"allowFiles": true,
"allowFolders": false,
"filetype": "public.unix-executable"
},
{
"key": "at.dcz.nova-zig.zls.build-on-save",
- "title": "zls.build-on-save.title",
+ "title": "config.zls.build-on-save.title",
"type": "boolean",
"default": false,
- "description": "zls.build-on-save.info"
+ "description": "config.zls.build-on-save.info"
},
{
"key": "at.dcz.nova-zig.zls.debug",
- "title": "zls.log-communication.title",
+ "title": "config.zls.log-communication.title",
"type": "boolean",
"default": false,
- "description": "zls.log-communication.info"
+ "description": "config.zls.log-communication.info"
}
]
},
{
"type": "section",
- "title": "debugging.title",
- "description": "debugging.info",
+ "title": "config.debugging.title",
+ "description": "config.debugging.info",
"children": [
{
"key": "at.dcz.nova-zig.toolchain.lldb-dap-path",
- "title": "debugging.lldb-dap-path.title",
+ "title": "config.debugging.lldb-dap-path.title",
"type": "path",
"placeholder": "lldb-dap",
- "description": "debugging.lldb-dap-path.info",
+ "description": "config.debugging.lldb-dap-path.info",
"allowFiles": true,
"allowFolders": false,
"filetype": "public.unix-executable"
},
{
"key": "at.dcz.nova-zig.debug-adapter.debug",
- "title": "debugging.logging.title",
+ "title": "config.debugging.logging.title",
"type": "boolean",
"default": false,
- "description": "debugging.logging.info"
+ "description": "config.debugging.logging.info"
}
]
},
{
"type": "section",
- "title": "tasks.title",
- "description": "tasks.info",
+ "title": "config.tasks.title",
+ "description": "config.tasks.info",
"children": [
{
"key": "at.dcz.nova-zig.tasks.discover-steps",
- "title": "tasks.autodiscover.title",
+ "title": "config.tasks.autodiscover.title",
"type": "boolean",
"default": true,
- "description": "tasks.autodiscover.info"
+ "description": "config.tasks.autodiscover.info"
}
]
}
@@ -130,10 +130,10 @@
"children": [
{
"key": "at.dcz.nova-zig.toolchain.zig-path",
- "title": "zig.executable-path.title",
+ "title": "config.zig.executable-path.title",
"type": "path",
- "placeholder": "zig",
- "description": "setting.inherit.path-info",
+ "placeholder": "workspaceconfig.inherit.placeholder",
+ "description": "workspaceconfig.inherit.info",
"allowFiles": true,
"allowFolders": false,
"filetype": "public.unix-executable"
@@ -142,56 +142,56 @@
},
{
"type": "section",
- "title": "zls.title",
- "description": "zls.info",
+ "title": "config.zls.title",
+ "description": "config.zls.info",
"children": [
{
"key": "at.dcz.nova-zig.zls.enabled",
- "title": "zls.enable.title",
+ "title": "config.zls.enable.title",
"type": "enum",
"default": "inherit",
"values": [
- ["inherit", "setting.inherit"],
- ["enabled", "setting.enabled"],
- ["disabled", "setting.disabled"]
+ ["inherit", "config.inherit"],
+ ["enabled", "config.enabled"],
+ ["disabled", "config.disabled"]
],
- "description": "zls.enable.info"
+ "description": "config.zls.enable.info"
},
{
"key": "at.dcz.nova-zig.toolchain.zls-path",
- "title": "zls.executable-path.title",
+ "title": "config.zls.executable-path.title",
"type": "path",
- "placeholder": "zls",
- "description": "setting.inherit.path-info",
+ "placeholder": "workspaceconfig.inherit.placeholder",
+ "description": "workspaceconfig.inherit.info",
"allowFiles": true,
"allowFolders": false,
"filetype": "public.unix-executable"
},
{
"key": "at.dcz.nova-zig.zls.build-on-save",
- "title": "zls.build-on-save.title",
+ "title": "config.zls.build-on-save.title",
"type": "enum",
"default": "inherit",
"values": [
- ["inherit", "setting.inherit"],
- ["enabled", "setting.enabled"],
- ["disabled", "setting.disabled"]
+ ["inherit", "config.inherit"],
+ ["enabled", "config.enabled"],
+ ["disabled", "config.disabled"]
],
- "description": "zls.build-on-save.info"
+ "description": "config.zls.build-on-save.info"
}
]
},
{
"type": "section",
- "title": "debugging.title",
- "description": "debugging.info",
+ "title": "config.debugging.title",
+ "description": "config.debugging.info",
"children": [
{
"key": "at.dcz.nova-zig.toolchain.lldb-dap-path",
- "title": "debugging.lldb-dap-path.title",
+ "title": "config.debugging.lldb-dap-path.title",
"type": "path",
- "placeholder": "lldb-dap",
- "description": "setting.inherit.path-info",
+ "placeholder": "workspaceconfig.inherit.placeholder",
+ "description": "workspaceconfig.inherit.info",
"allowFiles": true,
"allowFolders": false,
"filetype": "public.unix-executable"
@@ -200,20 +200,20 @@
},
{
"type": "section",
- "title": "tasks.title",
- "description": "tasks.info",
+ "title": "config.tasks.title",
+ "description": "config.tasks.info",
"children": [
{
"key": "at.dcz.nova-zig.tasks.discover-steps",
- "title": "tasks.autodiscover.title",
+ "title": "config.tasks.autodiscover.title",
"type": "enum",
"default": "inherit",
"values": [
- ["inherit", "setting.inherit"],
- ["enabled", "setting.enabled"],
- ["disabled", "setting.disabled"]
+ ["inherit", "config.inherit"],
+ ["enabled", "config.enabled"],
+ ["disabled", "config.disabled"]
],
- "description": "tasks.autodiscover.info"
+ "description": "config.tasks.autodiscover.info"
}
]
}
@@ -227,15 +227,16 @@
"debugAdapters": {
"zig-lldb-dap": {
- "name": "Zig (LLDB DAP)",
- "image": "zig-debug"
+ "name": "LLDB",
+ "image": "zig-mark"
}
},
"taskTemplates": {
"zigBuildRun": {
- "name": "Zig Package",
- "description": "Build and run a Zig package from one Nova task configuration.",
+ "name": "tasks.buildrun.name",
+ "description": "tasks.buildrun.info",
+ "image": "zig-hex",
"tasks": {
"build": {
"resolve": "at.dcz.nova-zig.tasks",
@@ -326,10 +327,10 @@
}
]
},
-
"zigDebug": {
- "name": "Zig Debug",
- "description": "Build a Zig package in Debug mode and launch it under lldb-dap.",
+ "name": "tasks.debug.name",
+ "description": "tasks.debug.info",
+ "image": "zig-hex",
"tasks": {
"build": {
"resolve": "at.dcz.nova-zig.tasks",
@@ -430,10 +431,10 @@
}
]
},
-
"zigTest": {
- "name": "Zig Test",
- "description": "Run `zig build test` with optional --test-filter and --summary controls.",
+ "name": "tasks.test.name",
+ "description": "tasks.test.info",
+ "image": "zig-hex",
"tasks": {
"build": {
"resolve": "at.dcz.nova-zig.tasks",
@@ -525,10 +526,10 @@
}
]
},
-
"zigWatch": {
- "name": "Zig Watch",
- "description": "Run `zig build --watch` and rebuild on file changes. Note: inline issues only update on the first build cycle — Nova's matchers do not re-arm for streaming output.",
+ "name": "tasks.watch.name",
+ "description": "tasks.watch.info",
+ "image": "zig-hex",
"tasks": {
"build": {
"resolve": "at.dcz.nova-zig.tasks",