ebba1e4e02
7 funciones Go del dominio tui: apply_gradient (gradiente de color en texto), draw_box y draw_separator (renderizado de cajas y separadores con box_chars), load_ascii_art (carga de arte ASCII desde archivos), normalize_terminal_output y strip_ansi (limpieza de salida de terminal), read_dir_autocomplete (autocompletado de rutas de directorio). Incluye box_chars.go como helper de caracteres Unicode para bordes.
29 lines
575 B
Go
29 lines
575 B
Go
package tui
|
|
|
|
import "strings"
|
|
|
|
// NormalizeTerminalOutput strips ANSI codes, normalizes line endings,
|
|
// and removes non-printable control characters from terminal output.
|
|
func NormalizeTerminalOutput(s string) string {
|
|
if s == "" {
|
|
return ""
|
|
}
|
|
|
|
clean := StripANSI(s)
|
|
clean = strings.ReplaceAll(clean, "\r\n", "\n")
|
|
clean = strings.ReplaceAll(clean, "\r", "\n")
|
|
|
|
var b strings.Builder
|
|
b.Grow(len(clean))
|
|
for _, r := range clean {
|
|
switch {
|
|
case r == '\n' || r == '\t':
|
|
b.WriteRune(r)
|
|
case r >= 32 && r != 127:
|
|
b.WriteRune(r)
|
|
}
|
|
}
|
|
|
|
return b.String()
|
|
}
|