@@ -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