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) Start(args ...any)
- func (h *DevTUI) Update(msg tea.Msg) (tea.Model, tea.Cmd)
- func (h *DevTUI) View() string
- type DisplayHandler
- type EditHandler
- type EditHandlerTracker
- type ExecutionHandler
- type FieldHandler
- type MessageTracker
- type ShortcutsHandler
- func (h *ShortcutsHandler) Change(newValue any, progress ...func(string)) (string, error)
- func (h *ShortcutsHandler) Editable() bool
- func (h *ShortcutsHandler) GetLastOperationID() string
- func (h *ShortcutsHandler) Label() string
- func (h *ShortcutsHandler) Name() string
- func (h *ShortcutsHandler) SetLastOperationID(lastOpID string)
- func (h *ShortcutsHandler) Timeout() time.Duration
- func (h *ShortcutsHandler) Value() string
- type TuiConfig
- type WriterBasic
- type WriterTracker
- type WritingHandler
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.Run(&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) 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 DisplayHandler ¶ added in v0.0.116
type DisplayHandler interface {
Label() string // Display label (e.g., "Help", "Status")
Content() string // Display content (e.g., "help\n1-..\n2-...", "executing deploy wait...")
}
DisplayHandler defines the interface for read-only information display handlers. These handlers show static or dynamic content without user interaction.
type EditHandler ¶ added in v0.0.116
type EditHandler interface {
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
}
EditHandler defines the interface for interactive fields that accept user input. These handlers allow users to modify values through text input.
type EditHandlerTracker ¶ added in v0.0.116
type EditHandlerTracker interface {
EditHandler
MessageTracker
}
EditHandlerTracker combines EditHandler with MessageTracker for advanced edit handlers that need message tracking capabilities.
type ExecutionHandler ¶ added in v0.0.116
type ExecutionHandler interface {
Label() string // Button label (e.g., "Deploy to Production", "Build Project")
Execute(progress ...func(string)) error
}
ExecutionHandler defines the interface for action buttons that execute operations. These handlers trigger business logic when activated by the user.
type FieldHandler ¶ added in v0.0.7
type FieldHandler interface {
Label() string // Field label (e.g., "Server Port")
Value() string // Current field value (e.g., "8080")
Editable() bool // Whether field is editable or action button
Change(newValue any, progress ...func(string)) (string, error) // Handler with optional progress callback
Timeout() time.Duration // Return 0 for no timeout, or specific duration
// NEW: WritingHandler methods (REQUIRED for all handlers)
WritingHandler
}
FieldHandler interface defines the contract for field handlers This replaces the individual parameters approach with a unified interface Internal fieldHandler interface for backward compatibility (DEPRECATED - Use specialized handlers) Users should use DisplayHandler, EditHandler, ExecutionHandler instead
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) Change ¶ added in v0.0.96
func (h *ShortcutsHandler) Change(newValue any, progress ...func(string)) (string, error)
func (*ShortcutsHandler) Editable ¶ added in v0.0.96
func (h *ShortcutsHandler) Editable() bool
func (*ShortcutsHandler) GetLastOperationID ¶ added in v0.0.103
func (h *ShortcutsHandler) GetLastOperationID() 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
WritingHandler methods
func (*ShortcutsHandler) SetLastOperationID ¶ added in v0.0.103
func (h *ShortcutsHandler) SetLastOperationID(lastOpID string)
func (*ShortcutsHandler) Timeout ¶ added in v0.0.96
func (h *ShortcutsHandler) Timeout() time.Duration
func (*ShortcutsHandler) Value ¶ added in v0.0.96
func (h *ShortcutsHandler) Value() 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
TestMode bool // only used in tests to enable synchronous behavior
}
type WriterBasic ¶ added in v0.0.116
type WriterBasic interface {
Name() string // Writer identifier (e.g., "webBuilder", "ApplicationLog")
}
WriterBasic defines the interface for basic writers that create new lines for each write. These writers are suitable for simple logging or output display.
type WriterTracker ¶ added in v0.0.116
type WriterTracker interface {
Name() string
MessageTracker
}
WriterTracker defines the interface for advanced writers that can update existing lines. These writers support message tracking and can modify previously written content.
type WritingHandler ¶ added in v0.0.103
type WritingHandler interface {
Name() string // Handler identifier (e.g., "TinyWasm", "MainServer")
SetLastOperationID(lastOpID string) // DevTUI calls this after processing each message
GetLastOperationID() string // Handler returns ID for message updates, "" for new messages
}
Internal writingHandler interface for message tracking (DEPRECATED) Users should use WriterBasic, WriterTracker instead
