viewport

package
v0.21.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 31, 2025 License: MIT Imports: 6 Imported by: 812

Documentation

Overview

Package viewport provides a component for rendering a viewport in a Bubble Tea.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Sync deprecated added in v0.3.0

func Sync(m Model) tea.Cmd

Sync tells the renderer where the viewport will be located and requests a render of the current state of the viewport. It should be called for the first render and after a window resize.

For high performance rendering only.

Deprecated: high performance rendering is deprecated in Bubble Tea.

func ViewDown deprecated added in v0.3.0

func ViewDown(m Model, lines []string) tea.Cmd

ViewDown is a high performance command that moves the viewport up by a given number of lines. Use Model.ViewDown to get the lines that should be rendered. For example:

lines := model.ViewDown(1)
cmd := ViewDown(m, lines)

Deprecated: high performance rendering is deprecated in Bubble Tea.

func ViewUp deprecated added in v0.3.0

func ViewUp(m Model, lines []string) tea.Cmd

ViewUp is a high performance command the moves the viewport down by a given number of lines height. Use Model.ViewUp to get the lines that should be rendered.

Deprecated: high performance rendering is deprecated in Bubble Tea.

Types

type KeyMap added in v0.10.0

type KeyMap struct {
	PageDown     key.Binding
	PageUp       key.Binding
	HalfPageUp   key.Binding
	HalfPageDown key.Binding
	Down         key.Binding
	Up           key.Binding
	Left         key.Binding
	Right        key.Binding
}

KeyMap defines the keybindings for the viewport. Note that you don't necessary need to use keybindings at all; the viewport can be controlled programmatically with methods like Model.LineDown(1). See the GoDocs for details.

func DefaultKeyMap added in v0.10.0

func DefaultKeyMap() KeyMap

DefaultKeyMap returns a set of pager-like default keybindings.

type Model

type Model struct {
	Width  int
	Height int
	KeyMap KeyMap

	// Whether or not to respond to the mouse. The mouse must be enabled in
	// Bubble Tea for this to work. For details, see the Bubble Tea docs.
	MouseWheelEnabled bool

	// The number of lines the mouse wheel will scroll. By default, this is 3.
	MouseWheelDelta int

	// YOffset is the vertical scroll position.
	YOffset int

	// YPosition is the position of the viewport in relation to the terminal
	// window. It's used in high performance rendering only.
	YPosition int

	// Style applies a lipgloss style to the viewport. Realistically, it's most
	// useful for setting borders, margins and padding.
	Style lipgloss.Style

	// HighPerformanceRendering bypasses the normal Bubble Tea renderer to
	// provide higher performance rendering. Most of the time the normal Bubble
	// Tea rendering methods will suffice, but if you're passing content with
	// a lot of ANSI escape codes you may see improved rendering in certain
	// terminals with this enabled.
	//
	// This should only be used in program occupying the entire terminal,
	// which is usually via the alternate screen buffer.
	//
	// Deprecated: high performance rendering is now deprecated in Bubble Tea.
	HighPerformanceRendering bool
	// contains filtered or unexported fields
}

Model is the Bubble Tea model for this viewport element.

func New added in v0.10.0

func New(width, height int) (m Model)

New returns a new model with the given width and height as well as default key mappings.

func (Model) AtBottom added in v0.3.0

func (m Model) AtBottom() bool

AtBottom returns whether or not the viewport is at or past the very bottom position.

func (Model) AtTop added in v0.3.0

func (m Model) AtTop() bool

AtTop returns whether or not the viewport is at the very top position.

func (*Model) GotoBottom added in v0.4.1

func (m *Model) GotoBottom() (lines []string)

GotoBottom sets the viewport to the bottom position.

func (*Model) GotoTop added in v0.4.1

func (m *Model) GotoTop() (lines []string)

GotoTop sets the viewport to the top position.

func (*Model) HalfPageDown added in v0.21.0

func (m *Model) HalfPageDown() (lines []string)

HalfPageDown moves the view down by half the height of the viewport.

func (*Model) HalfPageUp added in v0.21.0

func (m *Model) HalfPageUp() (lines []string)

HalfPageUp moves the view up by half the height of the viewport.

func (*Model) HalfViewDown deprecated

func (m *Model) HalfViewDown() (lines []string)

HalfViewDown moves the view down by half the height of the viewport.

Deprecated: use Model.HalfPageDown instead.

func (*Model) HalfViewUp deprecated

func (m *Model) HalfViewUp() (lines []string)

HalfViewUp moves the view up by half the height of the viewport.

Deprecated: use Model.HalfPageUp instead.

func (Model) HorizontalScrollPercent added in v0.21.0

func (m Model) HorizontalScrollPercent() float64

HorizontalScrollPercent returns the amount horizontally scrolled as a float between 0 and 1.

func (Model) Init added in v0.10.0

func (m Model) Init() tea.Cmd

Init exists to satisfy the tea.Model interface for composability purposes.

func (*Model) LineDown deprecated

func (m *Model) LineDown(n int) (lines []string)

LineDown moves the view down by the given number of lines.

Deprecated: use Model.ScrollDown instead.

func (*Model) LineUp deprecated

func (m *Model) LineUp(n int) (lines []string)

LineUp moves the view down by the given number of lines. Returns the new lines to show.

Deprecated: use Model.ScrollUp instead.

func (*Model) PageDown added in v0.21.0

func (m *Model) PageDown() []string

PageDown moves the view down by the number of lines in the viewport.

func (*Model) PageUp added in v0.21.0

func (m *Model) PageUp() []string

PageUp moves the view up by one height of the viewport.

func (Model) PastBottom added in v0.4.1

func (m Model) PastBottom() bool

PastBottom returns whether or not the viewport is scrolled beyond the last line. This can happen when adjusting the viewport height.

func (*Model) ScrollDown added in v0.21.0

func (m *Model) ScrollDown(n int) (lines []string)

ScrollDown moves the view down by the given number of lines.

func (*Model) ScrollLeft added in v0.21.0

func (m *Model) ScrollLeft(n int)

ScrollLeft moves the viewport to the left by the given number of columns.

func (Model) ScrollPercent

func (m Model) ScrollPercent() float64

ScrollPercent returns the amount scrolled as a float between 0 and 1.

func (*Model) ScrollRight added in v0.21.0

func (m *Model) ScrollRight(n int)

ScrollRight moves viewport to the right by the given number of columns.

func (*Model) ScrollUp added in v0.21.0

func (m *Model) ScrollUp(n int) (lines []string)

ScrollUp moves the view down by the given number of lines. Returns the new lines to show.

func (*Model) SetContent

func (m *Model) SetContent(s string)

SetContent set the pager's text content.

func (*Model) SetHorizontalStep added in v0.21.0

func (m *Model) SetHorizontalStep(n int)

SetHorizontalStep sets the default amount of columns to scroll left or right with the default viewport key map.

If set to 0 or less, horizontal scrolling is disabled.

On v1, horizontal scrolling is disabled by default.

func (*Model) SetXOffset added in v0.21.0

func (m *Model) SetXOffset(n int)

SetXOffset sets the X offset.

func (*Model) SetYOffset added in v0.10.0

func (m *Model) SetYOffset(n int)

SetYOffset sets the Y offset.

func (Model) TotalLineCount added in v0.15.0

func (m Model) TotalLineCount() int

TotalLineCount returns the total number of lines (both hidden and visible) within the viewport.

func (Model) Update added in v0.7.4

func (m Model) Update(msg tea.Msg) (Model, tea.Cmd)

Update handles standard message-based viewport updates.

func (Model) View added in v0.7.4

func (m Model) View() string

View renders the viewport into a string.

func (*Model) ViewDown deprecated

func (m *Model) ViewDown() []string

ViewDown moves the view down by the number of lines in the viewport. Basically, "page down".

Deprecated: use Model.PageDown instead.

func (*Model) ViewUp deprecated

func (m *Model) ViewUp() []string

ViewUp moves the view up by one height of the viewport. Basically, "page up".

Deprecated: use Model.PageUp instead.

func (Model) VisibleLineCount added in v0.15.0

func (m Model) VisibleLineCount() int

VisibleLineCount returns the number of the visible lines within the viewport.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL