Documentation
¶
Index ¶
- Variables
- func ConfirmPromptBox(message string)
- func Debug(format string, args ...interface{})
- func ErrorLog(format string, args ...interface{})
- func ErrorLogWithoutEmoji(format string, args ...interface{})
- func Fatal(format string, args ...interface{})
- func Fatalf(format string, args ...interface{})
- func InfoLog(format string, args ...interface{})
- func IsMultilineMarker(input string) bool
- func SetLogLevel(level LogLevel)
- func ShowColoredDiff(oldStr, newStr string, opts *DiffOptions)
- func ShowUnifiedDiff(diffOutput string)
- func SimpleDivider(width int)
- func SuccessLog(format string, args ...interface{})
- func SuccessLogWithEmoji(emoji, format string, args ...interface{})
- func ToolConfirmBox(toolName string, details []string)
- func TrimBracketedPasteMarkers(input string) string
- func Warn(format string, args ...interface{})
- func WarnWithoutEmoji(format string, args ...interface{})
- type BoxStyle
- type DiffOptions
- type LogLevel
- type MultiProgress
- func (mp *MultiProgress) AddTask(id int, message string)
- func (mp *MultiProgress) Clear()
- func (mp *MultiProgress) Done(id int)
- func (mp *MultiProgress) Fail(id int, err string)
- func (mp *MultiProgress) GetTask(id int) *Task
- func (mp *MultiProgress) IsAllDone() bool
- func (mp *MultiProgress) Render()
- func (mp *MultiProgress) Start(id int)
- func (mp *MultiProgress) StartRendering()
- func (mp *MultiProgress) StopRendering()
- type MultilineReader
- type Pager
- type PasteMode
- type Progress
- type Spinner
- type Task
- type TaskStatus
Constants ¶
This section is empty.
Variables ¶
var ( // 基本色 Cyan = color.New(color.FgCyan) // 情報・ヘッダー Yellow = color.New(color.FgYellow) // 警告・プロンプト Green = color.New(color.FgGreen) // 成功・追加 Red = color.New(color.FgRed) // エラー・削除 White = color.New(color.FgWhite) // 通常テキスト Blue = color.New(color.FgBlue) // リンク・参照 Magenta = color.New(color.FgMagenta) // 特殊・ハイライト // Bold variants BoldCyan = color.New(color.FgCyan, color.Bold) BoldYellow = color.New(color.FgYellow, color.Bold) BoldGreen = color.New(color.FgGreen, color.Bold) BoldRed = color.New(color.FgRed, color.Bold) BoldWhite = color.New(color.FgWhite, color.Bold) // 特殊用途 Dim = color.New(color.Faint) // 薄い表示(コンテキスト行など) Bold = color.New(color.Bold) // 太字 Faint = color.New(color.Faint) // 薄い表示 )
共通色定義 全パッケージで一貫した色使いを実現するための定義
var ( Info = Cyan // 情報メッセージ Success = Green // 成功メッセージ Warning = Yellow // 警告メッセージ Error = Red // エラーメッセージ Prompt = Yellow // ユーザー入力プロンプト Header = BoldCyan // セクションヘッダー )
用途別エイリアス(セマンティックカラー)
var DefaultBoxStyle = BoxStyle{
TopLeft: "┌",
TopRight: "┐",
BottomLeft: "└",
BottomRight: "┘",
Horizontal: "─",
Vertical: "│",
LeftT: "├",
RightT: "┤",
}
DefaultBoxStyle は標準のボックススタイル
var DefaultDiffOptions = DiffOptions{ ContextLines: 3, ShowLineNums: true, InlineMode: true, MaxTotalLines: 50, }
DefaultDiffOptions はデフォルトの差分表示オプション
Functions ¶
func ConfirmPromptBox ¶ added in v0.31.0
func ConfirmPromptBox(message string)
ConfirmPromptBox は確認プロンプト用のボックスを表示
func Debug ¶ added in v0.43.0
func Debug(format string, args ...interface{})
Debug logs a debug message (only when XELYON_DEBUG=1)
func ErrorLog ¶ added in v0.43.0
func ErrorLog(format string, args ...interface{})
ErrorLog logs an error message
func ErrorLogWithoutEmoji ¶ added in v0.43.0
func ErrorLogWithoutEmoji(format string, args ...interface{})
ErrorLogWithoutEmoji logs an error message without prefix
func Fatal ¶ added in v0.43.0
func Fatal(format string, args ...interface{})
Fatal logs an error message and exits with code 1
func Fatalf ¶ added in v0.43.0
func Fatalf(format string, args ...interface{})
Fatalf logs an error message to stderr and exits with code 1
func InfoLog ¶ added in v0.43.0
func InfoLog(format string, args ...interface{})
InfoLog logs an info message
func IsMultilineMarker ¶ added in v0.29.0
IsMultilineMarker checks if the input is a multiline marker
func SetLogLevel ¶ added in v0.43.0
func SetLogLevel(level LogLevel)
SetLogLevel sets the current logging level
func ShowColoredDiff ¶ added in v0.31.0
func ShowColoredDiff(oldStr, newStr string, opts *DiffOptions)
ShowColoredDiff は色付きの差分を表示 oldStr: 変更前のテキスト newStr: 変更後のテキスト opts: 表示オプション(nilならデフォルト使用)
func ShowUnifiedDiff ¶ added in v0.31.0
func ShowUnifiedDiff(diffOutput string)
ShowUnifiedDiff はUnified Diff形式で色付き表示
func SuccessLog ¶ added in v0.43.0
func SuccessLog(format string, args ...interface{})
SuccessLog logs a success message
func SuccessLogWithEmoji ¶ added in v0.43.0
func SuccessLogWithEmoji(emoji, format string, args ...interface{})
SuccessLogWithEmoji logs a success message with custom emoji
func ToolConfirmBox ¶ added in v0.31.0
ToolConfirmBox はツール確認用のボックスを表示
func TrimBracketedPasteMarkers ¶ added in v0.29.0
TrimBracketedPasteMarkers removes bracketed paste markers from input (both forms)
func Warn ¶ added in v0.43.0
func Warn(format string, args ...interface{})
Warn logs a warning message
func WarnWithoutEmoji ¶ added in v0.43.0
func WarnWithoutEmoji(format string, args ...interface{})
WarnWithoutEmoji logs a warning message without prefix
Types ¶
type BoxStyle ¶ added in v0.31.0
type BoxStyle struct {
TopLeft string
TopRight string
BottomLeft string
BottomRight string
Horizontal string
Vertical string
LeftT string
RightT string
}
BoxStyle はボックスの罫線スタイル
type DiffOptions ¶ added in v0.31.0
type DiffOptions struct {
ContextLines int // 差分前後の表示行数
ShowLineNums bool // 行番号を表示するか
InlineMode bool // インラインモード(追加・削除を連続表示)
MaxTotalLines int // 最大表示行数(0=無制限)
}
DiffOptions は差分表示のオプション
type LogLevel ¶ added in v0.43.0
type LogLevel int
LogLevel represents the severity of a log message
func GetLogLevel ¶ added in v0.43.0
func GetLogLevel() LogLevel
GetLogLevel returns the current logging level
type MultiProgress ¶ added in v0.43.0
type MultiProgress struct {
// contains filtered or unexported fields
}
MultiProgress は複数タスクの進捗を管理・表示
func NewMultiProgress ¶ added in v0.43.0
func NewMultiProgress() *MultiProgress
NewMultiProgress は新しいMultiProgressを作成
func NewMultiProgressWithWriter ¶ added in v0.43.0
func NewMultiProgressWithWriter(w io.Writer) *MultiProgress
NewMultiProgressWithWriter は出力先を指定してMultiProgressを作成
func (*MultiProgress) AddTask ¶ added in v0.43.0
func (mp *MultiProgress) AddTask(id int, message string)
AddTask はタスクを追加
func (*MultiProgress) Done ¶ added in v0.43.0
func (mp *MultiProgress) Done(id int)
Done はタスクを完了にマーク
func (*MultiProgress) Fail ¶ added in v0.43.0
func (mp *MultiProgress) Fail(id int, err string)
Fail はタスクをエラーにマーク
func (*MultiProgress) GetTask ¶ added in v0.43.0
func (mp *MultiProgress) GetTask(id int) *Task
GetTask はIDでタスクを取得
func (*MultiProgress) IsAllDone ¶ added in v0.43.0
func (mp *MultiProgress) IsAllDone() bool
IsAllDone は全タスクが完了したかチェック
func (*MultiProgress) Render ¶ added in v0.43.0
func (mp *MultiProgress) Render()
Render は全タスクの状態を表示
func (*MultiProgress) Start ¶ added in v0.43.0
func (mp *MultiProgress) Start(id int)
Start はタスクを実行中にマーク
func (*MultiProgress) StartRendering ¶ added in v0.43.0
func (mp *MultiProgress) StartRendering()
StartRendering はバックグラウンドで定期的に再描画を開始
func (*MultiProgress) StopRendering ¶ added in v0.43.0
func (mp *MultiProgress) StopRendering()
StopRendering は再描画を停止し、最終状態を表示
type MultilineReader ¶ added in v0.29.0
type MultilineReader struct {
// contains filtered or unexported fields
}
MultilineReader handles multiline input with bracketed paste mode and ``` markers
func NewMultilineReader ¶ added in v0.29.0
func NewMultilineReader(r io.Reader) *MultilineReader
NewMultilineReader creates a new multiline reader
func (*MultilineReader) DisableBracketedPaste ¶ added in v0.29.0
func (m *MultilineReader) DisableBracketedPaste()
DisableBracketedPaste is a no-op (kept for API compatibility)
func (*MultilineReader) EnableBracketedPaste ¶ added in v0.29.0
func (m *MultilineReader) EnableBracketedPaste()
EnableBracketedPaste is a no-op (kept for API compatibility) Note: We don't enable bracketed paste mode because some terminals (WSL/Ubuntu) display the escape sequences as literal text. Instead, we just strip markers.
func (*MultilineReader) FlushInput ¶ added in v0.31.0
func (m *MultilineReader) FlushInput()
FlushInput discards any buffered input data This should be called after AI output completes to ignore keypresses during output
func (*MultilineReader) ReadInput ¶ added in v0.29.0
func (m *MultilineReader) ReadInput(prompt string) (string, error)
ReadInput reads user input, supporting: 1. ``` markers for explicit multiline mode 2. Single line input (default) All bracketed paste markers are automatically stripped from input
func (*MultilineReader) Reader ¶ added in v0.31.0
func (m *MultilineReader) Reader() *bufio.Reader
Reader returns the underlying bufio.Reader for sharing with other input handlers
type PasteMode ¶ added in v0.31.0
type PasteMode struct {
// contains filtered or unexported fields
}
PasteMode captures multiline input for environments where bracketed paste mode is unreliable. It is also reusable from other input contexts (e.g., comment input during confirmations).
End conditions: - empty line x2 - "END" or "/end" - Ctrl+D (EOF)
Cancel: - "/cancel" or "/c" (content is discarded)
Limits: - max lines / max bytes - idle timeout
Note: This does NOT read from the OS clipboard. It is an interactive capture mode.
func NewPasteMode ¶ added in v0.31.0
func NewPasteMode(cfg config.PasteConfig) *PasteMode
func (*PasteMode) Capture ¶ added in v0.31.0
func (p *PasteMode) Capture(in io.Reader, out io.Writer) (content string, cancelled bool, err error)
Capture reads multiline input from in and writes prompts/help to out. Returns captured content, cancelled=true when user cancelled, and error when I/O fails. Deprecated: Use CaptureWithReader for better buffer sharing.
func (*PasteMode) CaptureWithReader ¶ added in v0.31.0
func (p *PasteMode) CaptureWithReader(reader *bufio.Reader, out io.Writer) (content string, cancelled bool, err error)
CaptureWithReader reads multiline input using an existing bufio.Reader. This avoids buffer conflicts when sharing stdin with other readers. Returns captured content, cancelled=true when user cancelled, and error when I/O fails.
type Progress ¶ added in v0.43.0
type Progress struct {
// contains filtered or unexported fields
}
Progress はプログレスバーを表示
func NewProgress ¶ added in v0.43.0
NewProgress は新しいProgressを作成 total: 全体の数(0 の場合は不確定モード) message: 表示するメッセージ
func NewProgressWithWriter ¶ added in v0.43.0
NewProgressWithWriter は出力先を指定してProgressを作成
func (*Progress) Complete ¶ added in v0.43.0
func (p *Progress) Complete()
Complete はプログレスバーを100%にして停止
func (*Progress) GetCurrent ¶ added in v0.43.0
GetCurrent は現在の進捗を取得
func (*Progress) SetMessage ¶ added in v0.43.0
SetMessage はメッセージを更新
type Spinner ¶
type Spinner struct {
// contains filtered or unexported fields
}
Spinner はターミナルでアニメーションを表示
func NewSpinnerWithWriter ¶ added in v0.31.0
NewSpinnerWithWriter は出力先を指定してSpinnerを作成 run_test などで stdout 出力(コマンド結果)と混ざらないよう、stderr を指定する用途を想定。
func (*Spinner) ClearStatus ¶ added in v0.43.0
func (s *Spinner) ClearStatus()
ClearStatus はステータスメッセージをクリア
type Task ¶ added in v0.43.0
type Task struct {
ID int
Message string
Status TaskStatus
StartTime time.Time
EndTime time.Time
Error string
}
Task は個別のタスク情報を保持
type TaskStatus ¶ added in v0.43.0
type TaskStatus string
TaskStatus はタスクの状態を表す
const ( TaskPending TaskStatus = "pending" TaskRunning TaskStatus = "running" TaskDone TaskStatus = "done" TaskError TaskStatus = "error" )