Documentation
¶
Index ¶
- Constants
- func ANSILen(s string) int
- func CalcDiffWidth(oldContent, newContent string) int
- func GetRefinement() (string, error)
- func InitTheme(cfg ThemeConfig)
- func PrintCompactDiff(filePath, oldContent, newContent string, padWidth int)
- func PromptApplyEdit() bool
- func RunEditWithSpinner(ctx context.Context, provider llm.EditToolProvider, ...) ([]llm.EditToolCall, error)
- func RunSetupWizard() (*config.Config, error)
- func RunUnifiedDiffWithSpinner(ctx context.Context, provider llm.UnifiedDiffProvider, ...) (string, error)
- func RunWithSpinner(ctx context.Context, provider llm.Provider, req llm.SuggestRequest) ([]llm.CommandSuggestion, error)
- func SelectCommand(suggestions []llm.CommandSuggestion, shell string, provider llm.Provider, ...) (string, error)
- func SetTheme(t *Theme)
- func ShowCommand(cmd string)
- func ShowCommandHelp(command, shell string, provider llm.Provider) error
- func ShowEditSkipped(filePath string, reason string)
- func ShowError(msg string)
- func StripANSI(s string) string
- func Truncate(s string, maxLen int) string
- type Highlighter
- type Styles
- type Theme
- type ThemeConfig
Constants ¶
const ( EnabledIcon = "●" DisabledIcon = "○" SuccessIcon = "✓" FailIcon = "✗" )
Status indicators
const SomethingElse = "__something_else__"
Variables ¶
This section is empty.
Functions ¶
func CalcDiffWidth ¶ added in v0.0.5
CalcDiffWidth calculates the required padding width for a diff The result is capped to the terminal-aware max content width
func GetRefinement ¶
GetRefinement prompts the user for additional guidance
func PrintCompactDiff ¶ added in v0.0.5
PrintCompactDiff prints a compact diff with 2 lines of context and line numbers padWidth specifies the total line width for consistent backgrounds across diffs
func PromptApplyEdit ¶ added in v0.0.5
func PromptApplyEdit() bool
PromptApplyEdit asks the user whether to apply an edit Returns true if user wants to apply (Enter or y), false to skip (n)
func RunEditWithSpinner ¶ added in v0.0.6
func RunEditWithSpinner(ctx context.Context, provider llm.EditToolProvider, systemPrompt, userPrompt string, debug bool) ([]llm.EditToolCall, error)
RunEditWithSpinner shows a spinner while executing the edit request Returns edits, or error if cancelled or failed
func RunSetupWizard ¶
RunSetupWizard runs the first-time setup wizard and returns the config
func RunUnifiedDiffWithSpinner ¶ added in v0.0.6
func RunUnifiedDiffWithSpinner(ctx context.Context, provider llm.UnifiedDiffProvider, systemPrompt, userPrompt string, debug bool) (string, error)
RunUnifiedDiffWithSpinner shows a spinner while executing the unified diff request Returns the diff string, or error if cancelled or failed
func RunWithSpinner ¶
func RunWithSpinner(ctx context.Context, provider llm.Provider, req llm.SuggestRequest) ([]llm.CommandSuggestion, error)
RunWithSpinner shows a spinner while executing the LLM request Returns suggestions, or error if cancelled or failed
func SelectCommand ¶
func SelectCommand(suggestions []llm.CommandSuggestion, shell string, provider llm.Provider, allowNonTTY bool) (string, error)
SelectCommand presents the user with a list of command suggestions and returns the selected one. Returns the selected command or SomethingElse if user wants to refine their request. If provider is non-nil and user presses 'h', shows help for the highlighted command. allowNonTTY permits a non-interactive fallback when no TTY is available.
func ShowCommand ¶
func ShowCommand(cmd string)
ShowCommand displays the command that will be executed (to stderr, keeping stdout clean)
func ShowCommandHelp ¶
ShowCommandHelp renders scrollable help for a command
func ShowEditSkipped ¶ added in v0.0.5
ShowEditSkipped shows that an edit was skipped
Types ¶
type Highlighter ¶ added in v0.0.6
type Highlighter struct {
// contains filtered or unexported fields
}
Highlighter handles syntax highlighting for diff display
func NewHighlighter ¶ added in v0.0.6
func NewHighlighter(filePath string) *Highlighter
NewHighlighter creates a highlighter for the given file path. Returns nil if the language is not recognized.
func (*Highlighter) HighlightLine ¶ added in v0.0.6
func (h *Highlighter) HighlightLine(line string) string
HighlightLine applies syntax highlighting to a line without a background color.
func (*Highlighter) HighlightLineWithBg ¶ added in v0.0.6
func (h *Highlighter) HighlightLineWithBg(line string, bg [3]int) string
HighlightLineWithBg applies syntax highlighting to a line with a specific background color. bg is an RGB array [r, g, b] for true color background.
type Styles ¶
type Styles struct {
// Text styles
Title lipgloss.Style
Subtitle lipgloss.Style
Success lipgloss.Style
Error lipgloss.Style
Muted lipgloss.Style
Bold lipgloss.Style
Highlighted lipgloss.Style
// Table styles
TableHeader lipgloss.Style
TableCell lipgloss.Style
TableBorder lipgloss.Style
// UI element styles
Spinner lipgloss.Style
Command lipgloss.Style
// Diff styles
DiffAdd lipgloss.Style // Added lines (+)
DiffRemove lipgloss.Style // Removed lines (-)
DiffContext lipgloss.Style // Context lines (unchanged)
DiffHeader lipgloss.Style // Diff header (@@ ... @@)
// contains filtered or unexported fields
}
Styles returns styled text helpers bound to a renderer
func DefaultStyles ¶
func DefaultStyles() *Styles
DefaultStyles returns styles for stderr (default TUI output)
func NewStyledWithTheme ¶
NewStyledWithTheme creates styles with a specific theme
func (*Styles) FormatEnabled ¶
FormatEnabled returns a styled enabled/disabled indicator
func (*Styles) FormatResult ¶
FormatResult returns a styled success/fail result
type Theme ¶
type Theme struct {
// Primary colors
Primary lipgloss.Color // main accent color (commands, highlights)
Secondary lipgloss.Color // secondary accent (headers, borders)
// Semantic colors
Success lipgloss.Color // success states, enabled
Error lipgloss.Color // error states, disabled
Warning lipgloss.Color // warnings
Muted lipgloss.Color // dimmed/secondary text
Text lipgloss.Color // primary text
// UI element colors
Spinner lipgloss.Color // loading spinner
Border lipgloss.Color // borders and dividers
Background lipgloss.Color // background (if needed)
// Diff backgrounds
DiffAddBg lipgloss.Color // background for added lines
DiffRemoveBg lipgloss.Color // background for removed lines
DiffContextBg lipgloss.Color // background for context lines
}
Theme defines the color palette for the UI
func ThemeFromConfig ¶
func ThemeFromConfig(cfg ThemeConfig) *Theme
ThemeFromConfig creates a theme with config overrides applied