Skip to content

Commit 1c42961

Browse files
committed
Gradle Task error printing
1 parent 4cca647 commit 1c42961

File tree

2 files changed

+30
-13
lines changed

2 files changed

+30
-13
lines changed
Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package processing.app.gradle;
22

3+
import processing.app.Mode;
4+
import processing.app.Sketch;
35
import processing.app.ui.Editor;
46

7+
import java.io.PrintStream;
8+
59
public class GradleService {
6-
public GradleService(Editor editor) { }
10+
public GradleService(Mode mode, Editor editor) { }
711

812
public void setEnabled(boolean enabled) {}
913
public boolean getEnabled() { return false; }
@@ -12,4 +16,7 @@ public void run() {}
1216
public void export(){}
1317
public void stop() {}
1418
public void startService() {}
19+
public void setSketch(Sketch sketch) {}
20+
public void setErr(PrintStream err) {}
21+
public void setOut(PrintStream out) {}
1522
}

app/src/processing/app/gradle/GradleJob.kt

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ import org.gradle.tooling.events.problems.internal.DefaultFileLocation
1515
import org.gradle.tooling.events.problems.internal.DefaultSingleProblemEvent
1616
import org.gradle.tooling.events.task.TaskFinishEvent
1717
import org.gradle.tooling.events.task.TaskStartEvent
18+
import org.gradle.tooling.events.task.TaskSuccessResult
1819
import processing.app.Base
1920
import processing.app.Messages
21+
import processing.app.ui.EditorStatus
2022
import java.io.InputStreamReader
2123
import java.io.PipedInputStream
2224
import java.io.PipedOutputStream
2325
import java.lang.IllegalStateException
2426

25-
// TODO: Move the error reporting to its own file
26-
// TODO: Move the output filtering to its own file
2727
class GradleJob{
2828
enum class State{
2929
NONE,
@@ -78,6 +78,7 @@ class GradleJob{
7878
private fun BuildLauncher.addStateListener(){
7979
addProgressListener(ProgressListener { event ->
8080
if(event is TaskStartEvent) {
81+
service?.editor?.statusMessage("Running task: ${event.descriptor.name}", EditorStatus.NOTICE)
8182
when(event.descriptor.name) {
8283
":run" -> {
8384
state.value = State.RUNNING
@@ -87,6 +88,10 @@ class GradleJob{
8788

8889
}
8990
if(event is TaskFinishEvent) {
91+
if(event.result is TaskSuccessResult){
92+
service?.editor?.statusMessage("Finished task ${event.descriptor.name}", EditorStatus.NOTICE)
93+
}
94+
9095
when(event.descriptor.name){
9196
":jar"->{
9297
state.value = State.NONE
@@ -98,21 +103,26 @@ class GradleJob{
98103
}
99104
}
100105
if(event is DefaultSingleProblemEvent) {
101-
// TODO: Move to UI instead of printing
106+
/*
107+
We have 6 lines to display the error in the editor.
108+
*/
109+
102110
if(event.definition.severity == Severity.ADVICE) return@ProgressListener
103111
problems.add(event)
104112

105-
val path = (event.locations.firstOrNull() as DefaultFileLocation?)?.path
113+
// TODO: Show the error on the location if it is available
114+
115+
val error = event.definition.id.displayName
116+
service?.editor?.statusError(error)
117+
System.err.println("Problem: $error")
106118

107-
val header = """
108-
${event.definition.id.displayName}:
109-
${event.contextualLabel.contextualLabel}
110-
""".trimIndent()
119+
val message = """
120+
Context: ${event.contextualLabel.contextualLabel}
121+
Solutions: ${event.solutions.joinToString("\n\t") { it.solution }}
122+
"""
123+
.trimIndent()
111124

112-
val details = event.details.details?.replace(path ?: "", "")
113-
val solutions = event.solutions.joinToString("\n") { it.solution }
114-
val content = "$header\n$details\n$solutions"
115-
service?.err?.println(content)
125+
println(message)
116126
}
117127
})
118128
}

0 commit comments

Comments
 (0)