@@ -260,7 +260,12 @@ class TerminalLangSketch(val project: Project, var content: String) : ExtensionL
260
260
codeSketch.updateViewText(code, true )
261
261
titleLabel.text = " Terminal - ($content )"
262
262
263
- val (isDangerous, reason) = ShellSyntaxSafetyCheck .checkDangerousCommand(project, content)
263
+ val (isDangerous, reason) = try {
264
+ ShellSyntaxSafetyCheck .checkDangerousCommand(project, content)
265
+ } catch (e: Exception ) {
266
+ Pair (true , " Error checking command safety: ${e.message} " )
267
+ }
268
+
264
269
if (isDangerous) {
265
270
AutoDevNotifications .notify(project, " Auto-execution has been disabled for safety: $reason " )
266
271
@@ -311,6 +316,8 @@ class TerminalLangSketch(val project: Project, var content: String) : ExtensionL
311
316
inner class TerminalExecuteAction :
312
317
AnAction (" Execute" , AutoDevBundle .message(" sketch.terminal.execute" ), AllIcons .Actions .Execute ) {
313
318
override fun actionPerformed (e : AnActionEvent ) {
319
+ titleLabel.icon = AllIcons .RunConfigurations .TestState .Run
320
+
314
321
val stdWriter = UIUpdatingWriter (
315
322
onTextUpdate = { text, complete ->
316
323
resultSketch.updateViewText(text, complete)
@@ -329,7 +336,7 @@ class TerminalLangSketch(val project: Project, var content: String) : ExtensionL
329
336
resultSketch.updateViewText(" " , true )
330
337
stdWriter.setExecuting(true )
331
338
setResultStatus(false )
332
-
339
+
333
340
AutoDevCoroutineScope .scope(project).launch {
334
341
val executor = ProcessExecutor (project)
335
342
try {
@@ -340,13 +347,16 @@ class TerminalLangSketch(val project: Project, var content: String) : ExtensionL
340
347
if (collapsibleResultPanel.isCollapsed()) {
341
348
collapsibleResultPanel.expand()
342
349
}
343
-
350
+ // Clear the running icon.
351
+ titleLabel.icon = null
344
352
val success = exitCode == 0
345
353
setResultStatus(success, if (! success) " Process exited with code $exitCode " else null )
346
354
}
347
355
} catch (ex: Exception ) {
348
356
ApplicationManager .getApplication().invokeLater {
349
357
stdWriter.setExecuting(false )
358
+ // Clear the running icon.
359
+ titleLabel.icon = null
350
360
resultSketch.updateViewText(" ${stdWriter.getContent()} \n Error: ${ex.message} " , true )
351
361
setResultStatus(false , ex.message)
352
362
}
@@ -364,3 +374,4 @@ class TerminalLangSketch(val project: Project, var content: String) : ExtensionL
364
374
}
365
375
}
366
376
}
377
+
0 commit comments