diff options
| -rw-r--r-- | Images/zig-hex/zig-hex.png | bin | 0 -> 3070 bytes | |||
| -rw-r--r-- | Images/zig-hex/zig-hex@2x.png | bin | 0 -> 3023 bytes | |||
| -rw-r--r-- | Images/zig-script/zig-script.png | bin | 0 -> 1521 bytes | |||
| -rw-r--r-- | Images/zig-script/zig-script@2x.png | bin | 0 -> 1506 bytes | |||
| -rw-r--r-- | Scripts/main.js | 102 | ||||
| -rw-r--r-- | de.lproj/strings.json | 97 | ||||
| -rw-r--r-- | en.lproj/strings.json | 99 | ||||
| -rw-r--r-- | extension.json | 131 |
8 files changed, 244 insertions, 185 deletions
diff --git a/Images/zig-hex/zig-hex.png b/Images/zig-hex/zig-hex.png Binary files differnew file mode 100644 index 0000000..da18a18 --- /dev/null +++ b/Images/zig-hex/zig-hex.png diff --git a/Images/zig-hex/zig-hex@2x.png b/Images/zig-hex/zig-hex@2x.png Binary files differnew file mode 100644 index 0000000..911219e --- /dev/null +++ b/Images/zig-hex/zig-hex@2x.png diff --git a/Images/zig-script/zig-script.png b/Images/zig-script/zig-script.png Binary files differnew file mode 100644 index 0000000..bec1c9f --- /dev/null +++ b/Images/zig-script/zig-script.png diff --git a/Images/zig-script/zig-script@2x.png b/Images/zig-script/zig-script@2x.png Binary files differnew file mode 100644 index 0000000..b436080 --- /dev/null +++ b/Images/zig-script/zig-script@2x.png 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", |
