Documentation
¶
Index ¶
- type ColorStyle
- type DevTUI
- func (t *DevTUI) AddTabSections(sections ...*tabSection) *DevTUI
- func (h *DevTUI) ContentView() string
- func (t *DevTUI) GetTotalTabSections() int
- func (h *DevTUI) HandleKeyboard(msg tea.KeyMsg) (bool, tea.Cmd)
- func (h *DevTUI) Init() tea.Cmd
- func (t *DevTUI) NewTabSection(title, footer string) *tabSection
- func (h *DevTUI) Print(messages ...any)
- func (t *DevTUI) ReturnFocus() error
- func (h *DevTUI) SetTestMode(enabled bool)
- func (h *DevTUI) Start(args ...any)
- func (h *DevTUI) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (h *DevTUI) View() string
- type EditHandlerTracker
- type ExecutionHandlerTracker
- type HandlerDisplay
- type HandlerEdit
- type HandlerExecution
- type HandlerTrackerWriter
- type HandlerWriter
- type MessageTracker
- type ShortcutsHandler
- type TuiConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ColorStyle ¶
type DevTUI ¶
type DevTUI struct {
*TuiConfig
// contains filtered or unexported fields
}
DevTUI mantiene el estado de la aplicación
func NewTUI ¶
NewTUI creates a new DevTUI instance and initializes it.
Usage Example:
config := &TuiConfig{
AppName: "MyApp",
TabIndexStart: 0,
ExitChan: make(chan bool),
Color: nil, // or your *ColorStyle
LogToFile: func(err any) { fmt.Println(err) },
}
tui := NewTUI(config)
// Configure your sections and fields:
tui.NewTabSection("My Section", "Description").
NewField("Field1", "value", true, nil)
// Start the TUI:
var wg sync.WaitGroup
wg.Add(1)
go tui.Start(&wg)
wg.Wait()
func (*DevTUI) AddTabSections ¶ added in v0.0.9
AddTabSections adds one or more tabSections to the DevTUI If a tab with title "DEFAULT" exists, it will be replaced by the first tab section Deprecated: Use NewTabSection and append to tabSections directly
func (*DevTUI) ContentView ¶
ContentView renderiza los mensajes para una sección de contenido
func (*DevTUI) GetTotalTabSections ¶ added in v0.0.9
GetTotalTabSections returns the total number of tab sections
func (*DevTUI) HandleKeyboard ¶ added in v0.0.10
HandleKeyboard processes keyboard input and updates the model state returns whether the update function should continue processing or return early
func (*DevTUI) NewTabSection ¶ added in v0.0.43
NewTabSection creates and initializes a new tabSection with the given title and footer NewTabSection creates a new tab section and automatically adds it to the TUI
Example:
tab := tui.NewTabSection("BUILD", "Press enter to compile")
func (*DevTUI) ReturnFocus ¶
func (*DevTUI) SetTestMode ¶ added in v0.0.125
SetTestMode enables or disables test mode for synchronous behavior in tests. This should only be used in test files to make tests deterministic.
func (*DevTUI) Start ¶ added in v0.0.93
Start initializes and runs the terminal UI application.
It accepts optional variadic arguments of any type. If a *sync.WaitGroup is provided among these arguments, Start will call its Done() method before returning.
The method runs the UI using the internal tea engine, and handles any errors that may occur during execution. If an error occurs, it will be displayed on the console and the application will wait for user input before exiting.
Parameters:
- args ...any: Optional arguments. Can include a *sync.WaitGroup for synchronization.
type EditHandlerTracker ¶ added in v0.0.116
type EditHandlerTracker interface {
HandlerEdit
MessageTracker
}
EditHandlerTracker combines HandlerEdit with MessageTracker for advanced edit handlers that need message tracking capabilities.
type ExecutionHandlerTracker ¶ added in v0.0.119
type ExecutionHandlerTracker interface {
HandlerExecution
MessageTracker
}
ExecutionHandlerTracker combines HandlerExecution with MessageTracker for advanced execution handlers that need message tracking capabilities.
type HandlerDisplay ¶ added in v0.0.117
type HandlerDisplay interface {
Name() string // Identificador para logging: "HelpDisplay", "StatusMonitor"
Label() string // Display label (e.g., "Help", "Status")
Content() string // Display content (e.g., "help\n1-..\n2-...", "executing deploy wait...")
}
HandlerDisplay defines the interface for read-only information display handlers. These handlers show static or dynamic content without user interaction.
type HandlerEdit ¶ added in v0.0.117
type HandlerEdit interface {
Name() string // Identificador para logging: "ServerPort", "DatabaseURL"
Label() string // Field label (e.g., "Server Port", "Host Configuration")
Value() string // Current/initial value (e.g., "8080", "localhost")
Change(newValue any, progress ...func(string)) error // Sin return string - usar Value() si no hay error
}
HandlerEdit defines the interface for interactive fields that accept user input. These handlers allow users to modify values through text input.
type HandlerExecution ¶ added in v0.0.117
type HandlerExecution interface {
Name() string // Identificador para logging: "DeployProd", "BuildProject"
Label() string // Button label (e.g., "Deploy to Production", "Build Project")
Execute(progress ...func(string)) error
}
HandlerExecution defines the interface for action buttons that execute operations. These handlers trigger business logic when activated by the user.
type HandlerTrackerWriter ¶ added in v0.0.117
type HandlerTrackerWriter interface {
Name() string
MessageTracker
}
HandlerTrackerWriter defines the interface for advanced writers that can update existing lines. These writers support message tracking and can modify previously written content.
type HandlerWriter ¶ added in v0.0.103
type HandlerWriter interface {
Name() string // Writer identifier (e.g., "webBuilder", "ApplicationLog")
}
HandlerWriter defines the interface for basic writers that create new lines for each write. These writers are suitable for simple logging or output display.
type MessageTracker ¶ added in v0.0.116
MessageTracker provides optional interface for message tracking control. Handlers can implement this to control message updates and operation tracking.
type ShortcutsHandler ¶ added in v0.0.96
type ShortcutsHandler struct {
// contains filtered or unexported fields
}
ShortcutsHandler - Shows keyboard navigation instructions
func NewShortcutsHandler ¶ added in v0.0.96
func NewShortcutsHandler() *ShortcutsHandler
func (*ShortcutsHandler) Content ¶ added in v0.0.118
func (h *ShortcutsHandler) Content() string
func (*ShortcutsHandler) Label ¶ added in v0.0.96
func (h *ShortcutsHandler) Label() string
func (*ShortcutsHandler) Name ¶ added in v0.0.103
func (h *ShortcutsHandler) Name() string
type TuiConfig ¶
type TuiConfig struct {
AppName string // app name eg: "MyApp"
TabIndexStart int // is the index of the tab section to start default 0
ExitChan chan bool // global chan to close app eg: make(chan bool)
/*// *ColorStyle style for the TUI
// if nil it will use default style:
type ColorStyle struct {
Foreground string // eg: #F4F4F4
Background string // eg: #000000
Highlight string // eg: #FF6600
Lowlight string // eg: #666666
}*/
Color *ColorStyle
LogToFile func(messages ...any) // function to write log error
}
