@@ -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 "   
122+                 """  
123+                     .trimIndent()
111124
112-                 val  details =  event.details.details?.replace(path ? :  " " " " 
113-                 val  solutions =  event.solutions.joinToString(" \n " 
114-                 val  content =  " $header \n $details \n $solutions " 
115-                 service?.err?.println (content)
125+                 println (message)
116126            }
117127        })
118128    }
0 commit comments