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 HandlerDisplay
- type HandlerEdit
- type HandlerEditTracker
- type HandlerExecution
- type HandlerExecutionTracker
- type HandlerWriter
- type HandlerWriterTracker
- 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 HandlerDisplay ¶ added in v0.0.117
type HandlerDisplay interface {
Name() string // Full text to display in footer (handler responsible for content) eg. "System Status Information Display"
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 HandlerEditTracker ¶ added in v0.0.126
type HandlerEditTracker interface {
HandlerEdit
MessageTracker
}
HandlerEditTracker combines HandlerEdit with MessageTracker for advanced edit handlers that need message tracking capabilities.
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 HandlerExecutionTracker ¶ added in v0.0.126
type HandlerExecutionTracker interface {
HandlerExecution
MessageTracker
}
HandlerExecutionTracker combines HandlerExecution with MessageTracker for advanced execution handlers that need message tracking capabilities.
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 HandlerWriterTracker ¶ added in v0.0.126
type HandlerWriterTracker interface {
Name() string
MessageTracker
}
HandlerWriterTracker defines the interface for advanced writers that can update existing lines. These writers support message tracking and can modify previously written content.
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) 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
}
