diff --git a/src/plugins/nim/nimconstants.h b/src/plugins/nim/nimconstants.h index e0559f49d9f..f3298bace9c 100644 --- a/src/plugins/nim/nimconstants.h +++ b/src/plugins/nim/nimconstants.h @@ -65,6 +65,9 @@ const QString C_NIMCOMPILERBUILDSTEP_TARGETNIMFILE = QStringLiteral("Nim.NimComp // NimCompilerCleanStep const char C_NIMCOMPILERCLEANSTEP_ID[] = "Nim.NimCompilerCleanStep"; +// Nim task category (Issues pane) +const char C_NIMPARSE_ID[] = "Nim.NimParse"; + const char C_NIMLANGUAGE_ID[] = "Nim"; const char C_NIMCODESTYLESETTINGSPAGE_ID[] = "Nim.NimCodeStyleSettings"; const char C_NIMCODESTYLESETTINGSPAGE_DISPLAY[] = QT_TRANSLATE_NOOP("NimCodeStyleSettingsPage", "Code Style"); diff --git a/src/plugins/nim/nimplugin.cpp b/src/plugins/nim/nimplugin.cpp index d92ebdff7ab..4f5b2e3fcfd 100644 --- a/src/plugins/nim/nimplugin.cpp +++ b/src/plugins/nim/nimplugin.cpp @@ -49,6 +49,7 @@ #include #include #include +#include #include using namespace Utils; @@ -135,6 +136,7 @@ void NimPlugin::extensionsInitialized() Core::FileIconProvider::registerIconOverlayForMimeType(icon, Constants::C_NIM_SCRIPT_MIMETYPE); Core::FileIconProvider::registerIconOverlayForMimeType(icon, Constants::C_NIMBLE_MIMETYPE); } + TaskHub::addCategory(Constants::C_NIMPARSE_ID, "Nim"); } } // namespace Nim diff --git a/src/plugins/nim/project/nimblebuildsystem.cpp b/src/plugins/nim/project/nimblebuildsystem.cpp index ae678004438..b08793087c7 100644 --- a/src/plugins/nim/project/nimblebuildsystem.cpp +++ b/src/plugins/nim/project/nimblebuildsystem.cpp @@ -28,8 +28,10 @@ #include "nimbuildsystem.h" #include "nimbleproject.h" #include "nimproject.h" +#include "../nimconstants.h" #include +#include #include #include @@ -60,6 +62,13 @@ static std::vector parseTasks(const QString &nimblePath, const QStri std::vector result; + if (process.exitCode() != 0) { + TaskHub::addTask(Task(Task::Error, + QString::fromUtf8(process.readAllStandardOutput()), + {}, -1, Constants::C_NIMPARSE_ID)); + return result; + } + const QList &lines = linesFromProcessOutput(&process); for (const QByteArray &line : lines) { @@ -82,6 +91,12 @@ static NimbleMetadata parseMetadata(const QString &nimblePath, const QString &wo NimbleMetadata result = {}; + if (process.exitCode() != 0) { + TaskHub::addTask(Task(Task::Error, + QString::fromUtf8(process.readAllStandardOutput()), + {}, -1, Constants::C_NIMPARSE_ID)); + return result; + } const QList &lines = linesFromProcessOutput(&process); for (const QByteArray &line : lines) { @@ -153,6 +168,7 @@ void NimbleBuildSystem::triggerParsing() void NimbleBuildSystem::updateProject() { + TaskHub::clearTasks(Constants::C_NIMPARSE_ID); const FilePath projectDir = projectDirectory(); const FilePath nimble = Nim::nimblePathFromKit(kit());