@@ -41,6 +41,7 @@ package body LSP.Ada_Handlers.Alire is
41
41
Process : Spawn.Processes.Process;
42
42
Stdout : VSS.Stream_Element_Vectors.Stream_Element_Vector;
43
43
Stderr : VSS.Stream_Element_Vectors.Stream_Element_Vector;
44
+ Error : Integer := 0 ; -- Error_Occurred argument
44
45
Text : VSS.Strings.Virtual_String; -- Stdout as a text
45
46
end record ;
46
47
@@ -50,13 +51,28 @@ package body LSP.Ada_Handlers.Alire is
50
51
overriding procedure Standard_Error_Available
51
52
(Self : in out Process_Listener);
52
53
54
+ overriding procedure Error_Occurred
55
+ (Self : in out Process_Listener;
56
+ Error : Integer);
57
+
53
58
procedure Start_Alire
54
59
(Listener : in out Process_Listener'Class;
55
60
ALR : String;
56
61
Option_1 : String;
57
62
Option_2 : String;
58
63
Root : String);
59
64
65
+ -- ------------------
66
+ -- Error_Occurred --
67
+ -- ------------------
68
+
69
+ overriding procedure Error_Occurred
70
+ (Self : in out Process_Listener;
71
+ Error : Integer) is
72
+ begin
73
+ Self.Error := Error;
74
+ end Error_Occurred ;
75
+
60
76
-- -------------
61
77
-- Run_Alire --
62
78
-- -------------
@@ -158,14 +174,16 @@ package body LSP.Ada_Handlers.Alire is
158
174
if Item.Process.Exit_Status /= Spawn.Normal
159
175
or else Item.Process.Exit_Code /= 0
160
176
or else Decoder.Has_Error
177
+ or else Item.Error /= 0
161
178
then
162
- Error := " alr" ;
179
+ Error := " ' alr" ;
163
180
164
181
for Arg of Item.Process.Arguments loop
165
182
Error.Append (" " );
166
183
Error.Append (VSS.Strings.Conversions.To_Virtual_String (Arg));
167
184
end loop ;
168
185
186
+ Error.Append (" ' failed:" );
169
187
Error.Append (VSS.Characters.Latin.Line_Feed);
170
188
171
189
if Decoder.Has_Error then
@@ -184,6 +202,12 @@ package body LSP.Ada_Handlers.Alire is
184
202
Error.Append (Text);
185
203
end if ;
186
204
205
+ if Item.Error /= 0 then
206
+ Error.Append
207
+ (VSS.Strings.Conversions.To_Virtual_String
208
+ (GNAT.OS_Lib.Errno_Message (Item.Error)));
209
+ end if ;
210
+
187
211
return ;
188
212
end if ;
189
213
end loop ;
0 commit comments