From e81d7b9ee230dc4f009ef86293c24b7042dfb261 Mon Sep 17 00:00:00 2001 From: Remi Thebault Date: Sun, 27 Nov 2022 22:11:52 +0100 Subject: [PATCH] add d.ext.ccdbFail message --- source/served/extension.d | 31 ++++++++++++++++++++++++++++--- views/de.txt | 1 + views/en.txt | 1 + views/fr.txt | 1 + 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/source/served/extension.d b/source/served/extension.d index 391d2e6d..b5a32020 100644 --- a/source/served/extension.d +++ b/source/served/extension.d @@ -654,7 +654,11 @@ void delayedProjectActivation(WorkspaceD.Instance instance, string workspaceRoot } if (!loadedDub) + { error("Exception starting dub: ", err); + proj.startupError(workspaceRoot, translate!"d.ext.dubFail"(instance.cwd, err ? err.msg + : "")); + } else trace("Started dub with root dependencies ", instance .get!DubComponent.rootDependencies); @@ -666,17 +670,38 @@ void delayedProjectActivation(WorkspaceD.Instance instance, string workspaceRoot string ccdbPath = proj.config.d.ccdbPath; if (!ccdbPath.length && !loadedDub) ccdbPath = discoverCcdb(workspaceRoot); + bool loadedCcdb; if (ccdbPath.length) { trace("starting CCDB with ", ccdbPath); - instance.get!ClangCompilationDatabaseComponent.setDbPath(ccdbPath); + + try + { + if (backend.attachEager(instance, "ccdb", err)) + { + instance.get!ClangCompilationDatabaseComponent.setDbPath(ccdbPath); + loadedCcdb = true; + } + } + catch (Exception ex) + { + err = ex; + } + if (!loadedCcdb) + { + + error("Exception loading CCDB: ", err); + proj.startupError(workspaceRoot, translate!"d.ext.ccdbFail"(instance.cwd, err ? err.msg : "")); + } + else + trace("Initialized CCDB with import paths ", instance + .get!ClangCompilationDatabaseComponent.importPaths); } - if (loadedDub || ccdbPath.length) + if (loadedDub || loadedCcdb) return; error("Failed starting dub or CCDB in ", root, " - falling back to fsworkspace"); - proj.startupError(workspaceRoot, translate!"d.ext.dubFail"(instance.cwd, err ? err.msg : "")); try { diff --git a/views/de.txt b/views/de.txt index ab71b50e..e7fe0c07 100644 --- a/views/de.txt +++ b/views/de.txt @@ -105,6 +105,7 @@ d.ext.dubInvalidRecipeSyntax: Im dub.json/dub.sdl Rezept wurde ein Fehler gefund d.ext.dubRecipeMaybeBroken: Konnte dub nicht starten. Das dub.json/dub.sdl Rezept könnte möglicherweise Fehlerhaft sein! Bitte Fehler beheben und neu speichern. d.ext.dubUpgradeFail: Konnte nicht dub upgrade durchführen d.ext.dubImportFail: Konnte keine Importpfäde finden. Bitte Einstellungen in der Statusleiste überprüfen. +d.ext.ccdbFail: Konnte die Clang Kompilierung Datenbank (compile_commands.json) für {0} nicht starten ({1}). Funktionalität begrenzt! d.ext.configSwitchFail: Konfiguration konnte nicht gewechselt werden. In die Entwicklertools umschalten für Details. d.ext.archSwitchFail: Architektur konnte nicht gewechselt werden. In die Entwicklertools umschalten für Details. d.ext.buildTypeSwitchFail: Build Type konnte nicht gewechselt werden. In die Entwicklertools umschalten für Details. diff --git a/views/en.txt b/views/en.txt index a6a92805..061feb8e 100644 --- a/views/en.txt +++ b/views/en.txt @@ -105,6 +105,7 @@ d.ext.dubInvalidRecipeSyntax: There is an issue in your dub.json/dub.sdl package d.ext.dubRecipeMaybeBroken: Dub could not be started. Your dub.json/dub.sdl package recipe might be faulty! Fix it and save the file again. d.ext.dubUpgradeFail: Could not upgrade dub project d.ext.dubImportFail: Could not update import paths. Please check your build settings in the status bar. +d.ext.ccdbFail: Could not initialize Clang Compilation Database (compile_commands.json) for {0} ({1}). Falling back to limited functionality! d.ext.configSwitchFail: Failed to switch configuration. See console for details. d.ext.archSwitchFail: Failed to switch arch type. See console for details. d.ext.buildTypeSwitchFail: Failed to switch build type. See console for details. diff --git a/views/fr.txt b/views/fr.txt index bcde9061..c35b19a3 100644 --- a/views/fr.txt +++ b/views/fr.txt @@ -90,6 +90,7 @@ d.ext.config.invalid.archType: L'architecture '{0}' spécifiée dans la configur d.ext.config.invalid.buildType: Le type de construction '{0}' spécifié dans la configuration n'est pas disponible ! d.ext.config.invalid.compiler: Le compilateur '{0}' spécifié dans la configuration n'est pas disponible ! d.ext.dubFail : Dub n'a pas pu être initialisé pour {0}. Vous n'aurez pas accès à toutes les fonctionnalités.\n\n{1} +d.ext.ccdbFail : La base de données de compilation Clang (compile_commands.json) n'a pas pu être initialisée pour {0} ({1}). Vous n'aurez pas accès à toutes les fonctionnalités. d.ext.fsworkspaceFail: fsworkspace n'a pas pu être initialisé pour {0}. Regardez votre console pour plus de détails. d.ext.dcdFail: DCD n'a pas pu être initialisé pour l'espace de travail {0}.{1} d.ext.gcLens: {0} octets alloués / {1} allocations