diff --git a/kittens/choose_files/calibre.go b/kittens/choose_files/calibre.go index 9eed60d54..87b0daf5e 100644 --- a/kittens/choose_files/calibre.go +++ b/kittens/choose_files/calibre.go @@ -212,6 +212,10 @@ func (c *calibre_server_process) ShowMetadata(h *Handler, s ShowData) (offset in return } +func (c *calibre_server_process) String() string { + return "Calibre" +} + func NewCalibrePreview( abspath string, metadata fs.FileInfo, opts Settings, WakeupMainThread func() bool, ) Preview { diff --git a/kittens/choose_files/image_preview.go b/kittens/choose_files/image_preview.go index 515cfb408..6a8d46886 100644 --- a/kittens/choose_files/image_preview.go +++ b/kittens/choose_files/image_preview.go @@ -42,6 +42,7 @@ type PreviewRenderer interface { Unmarshall(map[string]string) (any, error) Render(string) (map[string][]byte, metadata, *images.ImageData, error) ShowMetadata(h *Handler, s ShowData) int + String() string } type render_data struct { @@ -71,6 +72,9 @@ type ImagePreview struct { WakeupMainThread func() bool } +func (p *ImagePreview) String() string { + return fmt.Sprintf("ImagePreview{%#v, ready: %v, renderer: %s}", p.abspath, p.ready.Load(), p.renderer.String()) +} func (p *ImagePreview) IsValidForColorScheme(bool) bool { return true } func (p *ImagePreview) IsReady() bool { return p.ready.Load() || p.render_channel == nil } @@ -213,6 +217,8 @@ func (p *ImagePreview) start_rendering() { type ImagePreviewRenderer uint +func (p ImagePreviewRenderer) String() string { return "ImagePreviewRenderer" } + func (p ImagePreviewRenderer) Render(abspath string) (ans map[string][]byte, m metadata, img *images.ImageData, err error) { if img, err = images.OpenImageFromPath(abspath); err != nil { return nil, metadata{}, nil, err diff --git a/kittens/choose_files/preview.go b/kittens/choose_files/preview.go index b10627fce..c499f6741 100644 --- a/kittens/choose_files/preview.go +++ b/kittens/choose_files/preview.go @@ -29,6 +29,7 @@ type Preview interface { IsValidForColorScheme(light bool) bool Unload() IsReady() bool + String() string } type PreviewManager struct { @@ -82,6 +83,7 @@ type MessagePreview struct { trailers []string } +func (p MessagePreview) String() string { return fmt.Sprintf("MessagePreview{%#v}", p.title) } func (p MessagePreview) IsValidForColorScheme(bool) bool { return true } func (p MessagePreview) IsReady() bool { return true } @@ -213,6 +215,10 @@ type TextFilePreview struct { metadata fs.FileInfo } +func (p *TextFilePreview) String() string { + return fmt.Sprint("TextFilePreview{%#v, ready: %v}", p.path, p.ready.Load()) +} + func (p *TextFilePreview) IsValidForColorScheme(light bool) bool { return p.light == light } func (p *TextFilePreview) Unload() {}