diff --git a/IDE/src/IDEApp.bf b/IDE/src/IDEApp.bf index f7cc9ee2..9f2a74cd 100644 --- a/IDE/src/IDEApp.bf +++ b/IDE/src/IDEApp.bf @@ -9760,9 +9760,9 @@ namespace IDE CompileResult(buildCompletedCmd.mHotProjectName, !buildCompletedCmd.mFailed); if (buildCompletedCmd.mFailed) - OutputLineSmart("ERROR: BUILD FAILED"); + OutputLineSmart("ERROR: BUILD FAILED. Total build time: {0:0.00}s", buildCompletedCmd.mStopwatch.ElapsedMilliseconds / 1000.0f); if ((mVerbosity >= .Detailed) && (buildCompletedCmd.mStopwatch != null)) - OutputLine("Total build time: {0:0.00}s", buildCompletedCmd.mStopwatch.ElapsedMilliseconds / 1000.0f); + OutputLineSmart("SUCCESS: Build completed with no errors. Total build time: {0:0.00}s", buildCompletedCmd.mStopwatch.ElapsedMilliseconds / 1000.0f); if (mDebugger?.mIsComptimeDebug == true) DebuggerComptimeStop(); @@ -11455,12 +11455,12 @@ namespace IDE mLastTestFailed = true; } - protected virtual void CompileFailed() + protected virtual void CompileFailed(Stopwatch stopwatch) { if (mTestManager != null) mTestManager.BuildFailed(); if (mVerbosity > .Quiet) - OutputLine("Compile failed."); + OutputLineSmart("ERROR: Compile failed. Total build time: {0:0.00}s", stopwatch.ElapsedMilliseconds / 1000.0f); mLastCompileFailed = true; if (mRunningTestScript) @@ -11624,7 +11624,7 @@ namespace IDE if ((passInstance.mFailed) && (passInstance.mCompileSucceeded)) { // This can happen if we can't load a Beef file - CompileFailed(); + CompileFailed(startStopWatch); passInstance.mCompileSucceeded = false; } @@ -11656,7 +11656,7 @@ namespace IDE if (!mDebugger.mIsRunning) { OutputErrorLine("Hot compile failed - target no longer running"); - CompileFailed(); + CompileFailed(startStopWatch); return; } @@ -11688,7 +11688,7 @@ namespace IDE SkipProjectCompile(project, hotProject); } CompileResult((hotProject != null) ? hotProject.mProjectName : null, false); - CompileFailed(); + CompileFailed(startStopWatch); return; } @@ -11740,7 +11740,7 @@ namespace IDE } if (!success) - CompileFailed(); + CompileFailed(startStopWatch); if (success) { @@ -12268,7 +12268,7 @@ namespace IDE passInstance = CompileBeef(hotProject, hotIdx, lastCompileHadMessages, let hadBeef); if (passInstance == null) { - CompileFailed(); + CompileFailed(scope .()); return false; } diff --git a/IDE/src/Settings.bf b/IDE/src/Settings.bf index 48b3ae17..6b988f4a 100644 --- a/IDE/src/Settings.bf +++ b/IDE/src/Settings.bf @@ -351,6 +351,7 @@ namespace IDE public Color mError = 0xFFFF0000; public Color mBuildError = 0xFFFF8080; public Color mBuildWarning = 0xFFFFFF80; + public Color mBuildSuccess = 0xFF80FF80; public Color mVisibleWhiteSpace = 0xFF9090C0; public Color mCurrentLineHilite = 0xFF4C4C54; public Color mCurrentLineNumberHilite = 0x18FFFFFF; @@ -426,6 +427,7 @@ namespace IDE GetColor("Error", ref mError); GetColor("BuildError", ref mBuildError); GetColor("BuildWarning", ref mBuildWarning); + GetColor("BuildSuccess", ref mBuildSuccess); GetColor("VisibleWhiteSpace", ref mVisibleWhiteSpace); GetColor("CurrentLineHilite", ref mCurrentLineHilite); GetColor("CurrentLineNumberHilite", ref mCurrentLineNumberHilite); @@ -457,6 +459,7 @@ namespace IDE SourceEditWidgetContent.sTextColors[(.)SourceElementType.Error] = mError; SourceEditWidgetContent.sTextColors[(.)SourceElementType.BuildError] = mBuildError; SourceEditWidgetContent.sTextColors[(.)SourceElementType.BuildWarning] = mBuildWarning; + SourceEditWidgetContent.sTextColors[(.)SourceElementType.BuildSuccess] = mBuildSuccess; SourceEditWidgetContent.sTextColors[(.)SourceElementType.VisibleWhiteSpace] = mVisibleWhiteSpace; DarkTheme.COLOR_TEXT = mText; diff --git a/IDE/src/ui/OutputPanel.bf b/IDE/src/ui/OutputPanel.bf index a60696f8..02e525f6 100644 --- a/IDE/src/ui/OutputPanel.bf +++ b/IDE/src/ui/OutputPanel.bf @@ -306,6 +306,10 @@ namespace IDE.ui { mQueuedDisplayChanges.Add(QueuedDisplayChange(mQueuedText.Length, "WARNING".Length, (.)SourceElementType.BuildWarning)); } + if (line.StartsWith("SUCCESS:")) + { + mQueuedDisplayChanges.Add(QueuedDisplayChange(mQueuedText.Length, "SUCCESS".Length, (.)SourceElementType.BuildSuccess)); + } Write(line); } } diff --git a/IDE/src/ui/SourceEditWidgetContent.bf b/IDE/src/ui/SourceEditWidgetContent.bf index 47987419..fdbd372f 100644 --- a/IDE/src/ui/SourceEditWidgetContent.bf +++ b/IDE/src/ui/SourceEditWidgetContent.bf @@ -806,6 +806,7 @@ namespace IDE.ui 0xFFFF8080, // BuildError 0xFFFFFF80, // BuildWarning + 0xFF80FF80, // BuildSuccess 0xFF9090C0, // VisibleWhiteSpace ) ~ delete _; diff --git a/IDE/src/ui/SourceViewPanel.bf b/IDE/src/ui/SourceViewPanel.bf index 2b9ea18d..5889b2da 100644 --- a/IDE/src/ui/SourceViewPanel.bf +++ b/IDE/src/ui/SourceViewPanel.bf @@ -47,6 +47,7 @@ namespace IDE.ui BuildError, BuildWarning, + BuildSuccess, VisibleWhiteSpace }