Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(v2) feat: use the cursed ferocious renderer #1267

Open
wants to merge 19 commits into
base: v2-exp
Choose a base branch
from

Conversation

aymanbagabas
Copy link
Member

@aymanbagabas aymanbagabas commented Dec 9, 2024

This implements the new cursed ferocious renderer. This is based on the new cellbuf.Screen renderer. This renderer is more efficient and flexible than the previous renderer.

The renderer controls the altscreen buffer and cursor visibility which means we don't need to do so in Bubble Tea. Instead, Bubble Tea can focus on the event loop and the application state.

This also removes the experimental flags and changes the renderer
interface to be more explicit about the methods that are available.

@aymanbagabas aymanbagabas marked this pull request as draft December 9, 2024 20:54
@aymanbagabas aymanbagabas changed the title feat: use the cursed ferocious renderer (v2) feat: use the cursed ferocious renderer Dec 9, 2024
@bashbunni
Copy link
Member

How should we test this?

This implements the new cursed ferocious renderer. This is based on the
new `cellbuf.Screen` renderer. This renderer is more efficient and
flexible than the previous renderer.

The renderer controls the altscreen buffer and cursor visibility which
means we don't need to do so in Bubble Tea. Instead, Bubble Tea can
focus on the event loop and the application state.
@aymanbagabas
Copy link
Member Author

aymanbagabas commented Dec 9, 2024

How should we test this?

You can use TEA_EXPERIMENTAL=ferocious to make Bubble Tea applications use the new renderer

export TEA_EXPERIMENTAL=ferocious
// run bubble tea applications

EDIT: This is no longer needed as the ferocious cursed renderer is now the default and only available renderer.

…rd renderer

This also removes the experimental flags and changes the renderer
interface to be more explicit about the methods that are available.
@aymanbagabas aymanbagabas force-pushed the v2-ferocious2 branch 2 times, most recently from 5ca08e7 to 6922e33 Compare December 12, 2024 18:21
@aymanbagabas aymanbagabas marked this pull request as ready for review December 12, 2024 18:29
@bashbunni
Copy link
Member

bashbunni commented Dec 16, 2024

Testing Ferocious Renderer

  • altscreen-toggle
  • autocomplete
    • ISSUE video attached.
  • capability
    • should I see any output when I enter a capability?
  • cellbuffer
    • lost mouse support; try and drag the circle around. Mouse clicks work fine.
  • chat
    • first message loses last character
    • textarea width is off by 1
  • colorprofile
  • composable-views
    • spinner positioning seems to change
  • credit-card-form
    • LGTM
  • cursor-style
    • Ctrl+c doesn't work
  • debounce
  • exec
    • duplicate printing when out of alt screen. repro: open and close editor
  • file-picker
  • focus-blur
  • fullscreen
  • glamour
    • long pause, tables are broken (same on main)
  • help
  • http
  • list-default
    • wrong styles applied to filtered list item? text is colored up until match
    • selector gets distorted in filter
  • list-fancy
    • same as above
  • list-simple
    • G doesn't go to the end of the list
  • mouse
  • package-manager
  • pager
    • height miscalculation when width gets smaller
    • out of range error when resized to be bigger
      TODO check this on main
  • paginator
  • pipe
    • cursor misrendered at last character
  • prevent-quit
  • print-key
  • progress-animated
  • progress-download
  • progress-static
  • query-term
    • "not an ansi escape sequence" missing final 'e'
  • realtime
  • result
    • additional line added at the bottom
  • send-msg
  • sequence
    • did not work; printed a ton of whitespace around the results
  • set-terminal-color
  • set-window-title
  • simple
  • spinner
  • spinners
  • split-editors
    • line numbers are grey instead of white (white on main)
  • stopwatch
  • suspend
  • table
  • table-resize
  • tabs
  • textarea
  • textinput
  • textinputs
  • timer
  • tui-daemon-combo
  • views
  • window-size
    • losing some characters + getting duplicate printing on resize

IMAGES

chat:
image

list-default:
image

query-term:
image

result:
image


VIDEOS

2024-12-16.07-14-22.mov
2024-12-16.06-50-40.mov

@aymanbagabas aymanbagabas force-pushed the v2-ferocious2 branch 2 times, most recently from 319cbe8 to fdf22bc Compare December 20, 2024 08:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants