@@ -46,15 +46,15 @@ pub struct JsonWorkspaceHandle {
4646#[ derive( Debug ,  Clone ,  Deserialize ,  Serialize ) ]  
4747#[ serde( tag = "type" ) ]  
4848pub  enum  DiscoverProjectMessage  { 
49-     Error  {  message :  String  } , 
49+     Error  {  message :  String ,   context :   Option < String >  } , 
5050    Progress  {  message :  String  } , 
5151    Finished  {  project_json :  Vec < ProjectJsonData >  } , 
5252} 
5353
5454impl  ParseFromLine  for  DiscoverProjectMessage  { 
5555    fn  from_line ( line :  & str ,  _error :  & mut  String )  -> Option < Self >  { 
5656        let  Ok ( value)  = serde_json:: from_str :: < serde_json:: Value > ( line)  else  { 
57-             return  Some ( DiscoverProjectMessage :: Error  {  message :  line. to_owned ( )  } ) ; 
57+             return  Some ( DiscoverProjectMessage :: Error  {  message :  line. to_owned ( ) ,   context :   None  } ) ; 
5858        } ; 
5959
6060        if  let  Ok ( project)  = serde_json:: from_value :: < ProjectJsonData > ( value. clone ( ) )  { 
@@ -67,6 +67,15 @@ impl ParseFromLine for DiscoverProjectMessage {
6767            } ) ; 
6868        } 
6969
70+         if  let  Some ( error)  = value. pointer ( "/fields/error" )  { 
71+             if  let  Some ( source)  = value. pointer ( "/fields/source" )  { 
72+                 return  Some ( DiscoverProjectMessage :: Error  { 
73+                     message :  error. as_str ( ) . unwrap ( ) . to_owned ( ) , 
74+                     context :  Some ( source. as_str ( ) . unwrap ( ) . to_owned ( ) ) , 
75+                 } ) ; 
76+             } 
77+         } 
78+ 
7079        None 
7180    } 
7281
0 commit comments