@@ -15,8 +15,10 @@ 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
@@ -78,6 +80,7 @@ class GradleJob{
7880 private fun BuildLauncher.addStateListener (){
7981 addProgressListener(ProgressListener { event ->
8082 if (event is TaskStartEvent ) {
83+ service?.editor?.statusMessage(" Running task: ${event.descriptor.name} " , EditorStatus .NOTICE )
8184 when (event.descriptor.name) {
8285 " :run" -> {
8386 state.value = State .RUNNING
@@ -87,6 +90,10 @@ class GradleJob{
8790
8891 }
8992 if (event is TaskFinishEvent ) {
93+ if (event.result is TaskSuccessResult ){
94+ service?.editor?.statusMessage(" Finished task ${event.descriptor.name} " , EditorStatus .NOTICE )
95+ }
96+
9097 when (event.descriptor.name){
9198 " :jar" -> {
9299 state.value = State .NONE
@@ -98,21 +105,26 @@ class GradleJob{
98105 }
99106 }
100107 if (event is DefaultSingleProblemEvent ) {
101- // TODO: Move to UI instead of printing
108+ /*
109+ We have 6 lines to display the error in the editor.
110+ */
111+
102112 if (event.definition.severity == Severity .ADVICE ) return @ProgressListener
103113 problems.add(event)
104114
105- val path = (event.locations.firstOrNull() as DefaultFileLocation ? )?.path
115+ // TODO: Show the error on the location if it is available
116+
117+ val error = event.definition.id.displayName
118+ service?.editor?.statusError(error)
119+ System .err.println (" Problem: $error " )
106120
107- val header = """
108- ${event.definition.id.displayName} :
109- ${event.contextualLabel.contextualLabel}
110- """ .trimIndent()
121+ val message = """
122+ Context: ${event.contextualLabel.contextualLabel}
123+ Solutions: ${event.solutions.joinToString(" \n\t " ) { it.solution }}
124+ """
125+ .trimIndent()
111126
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)
127+ println (message)
116128 }
117129 })
118130 }
0 commit comments