mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-22 22:48:11 +02:00
Terminal : le vrai code de sortie, la sortie gardée au délai, sans ANSI
Repris de shell.ts / shell-tail.ts et diagnostics.ts d'OpenFox (2.0.160). - « cmd | tail -N » : le code de sortie devenait celui de tail (0) et un build en échec passait pour réussi. Le tail est retiré de la commande et Loki garde lui-même les N dernières lignes : même sortie, vrai code. - Délai dépassé : la sortie déjà produite est rendue (où en était le build, quel test bloquait) au lieu d'un « [timeout] » sec, avec le conseil de passer par bash_bg pour un serveur. - Couleurs et séquences ANSI retirées : du bruit en tokens. - La durée suit le code de sortie (« exit: 0 · 1.2s »). - Mode Code : « cmd & » refusé, avec renvoi vers bash_bg — le process orphelin n'avait ni sortie lisible ni moyen d'être arrêté. - Diagnostics LSP : erreurs d'abord, avec le compte total ; au-delà de la limite, des indices de style passaient devant l'erreur de compilation. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
a745d2399e
commit
2e0356cd6c
5 files changed
+175
-4
No files matched your search
@@ -22,6 +22,7 @@ import (
|
||||
"os"
|
||||
"os/exec"
|
||||
"path/filepath"
|
||||
"sort"
|
||||
"strings"
|
||||
"sync"
|
||||
"time"
|
||||
@@ -145,10 +146,35 @@ func lspDiagnosticsFor(absPath string) string {
|
||||
if len(diags) == 0 {
|
||||
return ""
|
||||
}
|
||||
// Erreurs d'abord, puis avertissements, puis le reste (OpenFox) : au-delà
|
||||
// de lspMaxDiags on tronque, et des indices de style passaient devant
|
||||
// l'erreur de compilation qui comptait. Le compte annonce le total.
|
||||
rank := func(s int) int {
|
||||
if s <= 0 {
|
||||
return 1 // sévérité absente : traitée comme une erreur
|
||||
}
|
||||
return s
|
||||
}
|
||||
sort.SliceStable(diags, func(i, j int) bool { return rank(diags[i].Severity) < rank(diags[j].Severity) })
|
||||
nErr, nWarn := 0, 0
|
||||
for _, d := range diags {
|
||||
switch rank(d.Severity) {
|
||||
case 1:
|
||||
nErr++
|
||||
case 2:
|
||||
nWarn++
|
||||
}
|
||||
}
|
||||
total := len(diags)
|
||||
if len(diags) > lspMaxDiags {
|
||||
diags = diags[:lspMaxDiags]
|
||||
}
|
||||
var b strings.Builder
|
||||
fmt.Fprintf(&b, "%d erreur(s), %d avertissement(s)", nErr, nWarn)
|
||||
if total > len(diags) {
|
||||
fmt.Fprintf(&b, " — %d premiers sur %d", len(diags), total)
|
||||
}
|
||||
b.WriteString("\n")
|
||||
for _, d := range diags {
|
||||
sev := "info"
|
||||
switch d.Severity {
|
||||
|
||||
Reference in new issue
Block a user