Files
fn_registry/functions/tui/read_dir_autocomplete.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

33 lines
896 B
Go

package tui
import (
"os"
"sort"
"strings"
)
// AutocompleteCandidate represents a directory entry for path autocomplete.
type AutocompleteCandidate struct {
Name string
IsDir bool
}
// ReadDirAutocomplete reads entries from searchDir whose name starts with prefix
// (case-insensitive). Returns candidates sorted by name.
func ReadDirAutocomplete(searchDir, prefix string) ([]AutocompleteCandidate, error) {
entries, err := os.ReadDir(searchDir)
if err != nil {
return nil, err
}
prefixLower := strings.ToLower(prefix)
var results []AutocompleteCandidate
for _, e := range entries {
name := e.Name()
if prefix == "" || strings.HasPrefix(strings.ToLower(name), prefixLower) {
results = append(results, AutocompleteCandidate{Name: name, IsDir: e.IsDir()})
}
}
sort.Slice(results, func(i, j int) bool { return results[i].Name < results[j].Name })
return results, nil
}