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.
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
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()
|
||||
}
|
||||
Reference in New Issue
Block a user