Documentation
¶
Index ¶
- func Error(text string) error
- func Errorf(format string, a ...interface{}) error
- func Info(text string) error
- func Infof(format string, a ...interface{}) error
- func InitFormatter(ioCtx io.Context)
- func Markdown(content string) error
- func MarkdownMessage(content string) error
- func MarkdownMessagef(format string, a ...interface{}) error
- func Markdownf(format string, a ...interface{}) error
- func Success(text string) error
- func Successf(format string, a ...interface{}) error
- func Warning(text string) error
- func Warningf(format string, a ...interface{}) error
- func Write(text string) error
- func Writef(format string, a ...interface{}) error
- func Writeln(text string) error
- type Formatter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Error ¶
Error writes an error message with red X to stderr (UI channel). Flow: ui.Error() → terminal.Write() → io.Write(UIStream) → masking → stderr.
func Errorf ¶
Errorf writes a formatted error message with red X to stderr (UI channel). Flow: ui.Errorf() → terminal.Write() → io.Write(UIStream) → masking → stderr.
func Info ¶
Info writes an info message with cyan info icon to stderr (UI channel). Flow: ui.Info() → terminal.Write() → io.Write(UIStream) → masking → stderr.
func Infof ¶
Infof writes a formatted info message with cyan info icon to stderr (UI channel). Flow: ui.Infof() → terminal.Write() → io.Write(UIStream) → masking → stderr.
func InitFormatter ¶
InitFormatter initializes the global formatter with an I/O context. This should be called once at application startup (in root.go).
func Markdown ¶
Markdown writes rendered markdown to stdout (data channel). Use this for help text, documentation, and other pipeable formatted content. Note: Delegates to globalFormatter.Markdown() for rendering, then writes to data channel.
func MarkdownMessage ¶
MarkdownMessage writes rendered markdown to stderr (UI channel). Use this for formatted UI messages and errors.
func MarkdownMessagef ¶
MarkdownMessagef writes formatted markdown to stderr (UI channel).
func Success ¶
Success writes a success message with green checkmark to stderr (UI channel). Flow: ui.Success() → terminal.Write() → io.Write(UIStream) → masking → stderr.
func Successf ¶
Successf writes a formatted success message with green checkmark to stderr (UI channel). Flow: ui.Successf() → terminal.Write() → io.Write(UIStream) → masking → stderr.
func Warning ¶
Warning writes a warning message with yellow warning sign to stderr (UI channel). Flow: ui.Warning() → terminal.Write() → io.Write(UIStream) → masking → stderr.
func Warningf ¶
Warningf writes a formatted warning message with yellow warning sign to stderr (UI channel). Flow: ui.Warningf() → terminal.Write() → io.Write(UIStream) → masking → stderr.
func Write ¶
Write writes plain text to stderr (UI channel) without icons or automatic styling. Flow: ui.Write() → terminal.Write() → io.Write(UIStream) → masking → stderr.
Types ¶
type Formatter ¶
type Formatter interface {
// Status message formatting - standardized output with icons
// This is the foundational method used by Success/Error/Warning/Info
StatusMessage(icon string, style *lipgloss.Style, text string) string
// Semantic formatting - returns styled strings with automatic icons (uses theme.StyleSet)
// These methods use StatusMessage internally with predefined icons
Success(text string) string // Returns "✓ {text}" in green
Successf(format string, a ...interface{}) string // Returns "✓ {formatted}" in green
Warning(text string) string // Returns "⚠ {text}" in yellow
Warningf(format string, a ...interface{}) string // Returns "⚠ {formatted}" in yellow
Error(text string) string // Returns "✗ {text}" in red
Errorf(format string, a ...interface{}) string // Returns "✗ {formatted}" in red
Info(text string) string // Returns "ℹ {text}" in cyan
Infof(format string, a ...interface{}) string // Returns "ℹ {formatted}" in cyan
Muted(text string) string // Returns muted text (gray, no icon)
// Text formatting - returns styled strings
Bold(text string) string // Returns bold text
Heading(text string) string // Returns heading-styled text
Label(text string) string // Returns label-styled text
// Theme access
Styles() *theme.StyleSet // Access to full theme-aware StyleSet
// Capability queries (delegates to terminal.Terminal)
ColorProfile() terminal.ColorProfile
SupportsColor() bool
// Markdown rendering - returns rendered markdown string (pure function, no I/O)
// For writing markdown to channels, use package-level ui.Markdown() or ui.MarkdownMessage()
Markdown(content string) (string, error)
}
Formatter provides text formatting with automatic degradation. Key Principle: Formatter RETURNS FORMATTED STRINGS - it never writes to streams.
Usage Pattern:
io := cmd.Context().Value(ioContextKey).(io.Context)
ui := cmd.Context().Value(uiFormatterKey).(ui.Formatter)
// Format text with automatic icons
msg := ui.Success("Deployment complete!") // Returns "✓ Deployment complete!" in green
// Developer chooses channel
fmt.Fprintf(io.UI(), "%s\n", msg) // UI message → stderr
Uses io.Terminal for capability detection and theme.StyleSet for styling.
var Format Formatter
Format exposes the global formatter for advanced use cases. Most code should use the package-level functions (ui.Success, ui.Error, etc.). Use this when you need the formatted string without writing it.