Files
fn_registry/functions/tui/normalize_terminal_output.go
egutierrez ebba1e4e02 feat: add Go TUI rendering and terminal helper functions
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.
2026-04-12 13:54:54 +02:00

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()
}