Skip to content

Declarative cursor control (unlocked by v2) #57

Description

@acgh213

Summary

Bubble Tea v2 moves cursor control into the View struct — position, shape, color, and blink are declarative fields. This could simplify how chisel manages the editor cursor.

What it looks like in v2

v.Cursor = &tea.Cursor{
    Position: tea.Position{X: 14, Y: 0},
    Shape:    tea.CursorBlock,
    Blink:    true,
    Color:    lipgloss.Green,
}

Set v.Cursor = nil to hide. tea.NewCursor(x, y) for a quick block cursor.

Current state

chisel uses bubbles/textarea for the editor, which manages its own cursor internally. The cursor is always a blinking block in the edit area. There's no cursor in the binder, structural views, or overlays — navigation is visual (highlighted rows/cards).

Opportunity

This is a low-priority code simplification rather than a user-facing change. When v2 lands, the declarative cursor API might reduce boilerplate around terminal setup and cursor management. It also opens the door to context-sensitive cursor shapes — e.g., a thin cursor in reading mode vs. block cursor in edit mode — but that's speculative.

Depends on

Metadata

Metadata

Assignees

No one assigned

    Labels

    P4: laterFar future, heavy lift, or needs design discussionenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions