@@ -15,15 +15,15 @@ import org.gradle.tooling.events.problems.internal.DefaultFileLocation
1515import org.gradle.tooling.events.problems.internal.DefaultSingleProblemEvent
1616import org.gradle.tooling.events.task.TaskFinishEvent
1717import org.gradle.tooling.events.task.TaskStartEvent
18+ import org.gradle.tooling.events.task.TaskSuccessResult
1819import processing.app.Base
1920import processing.app.Messages
21+ import processing.app.ui.EditorStatus
2022import java.io.InputStreamReader
2123import java.io.PipedInputStream
2224import java.io.PipedOutputStream
2325import java.lang.IllegalStateException
2426
25- // TODO: Move the error reporting to its own file
26- // TODO: Move the output filtering to its own file
2727class 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