prompt-toolkit / prompt-toolkit/python-prompt-toolkit

Long widget scroll in ScrollablePane

Open
#1,906 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
10.6k
Forks
815
PR merge metrics
No merged PRs in 30d

Description

Currently ScrollablePane is seemingly only designed for the widget-unit scrolling, hence if widget doesn't fit in screen we're screwed.

In that case as soon as it goes beyond screen autoscrolling stops and no matter what we do on vertical_scroll it does nothing.

Animation 8

I wonder if there's way to wrap ScrollablePane in BufferControl so I can scroll it line by line, or just adding line-by-line scroll in ScrollablePane is solution. In that context could be related to #1861


So far half-broken workaround seems to be:

  • Using dummy widget at bottom of long widget so scroll follows it as widget grows, but then still can't scroll up line by line.

  • Using widget's .control.move_cursor_down() - scroll still stops

  • Using widget's .buffer.cursor_down() - scroll still stops

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating ScrollablePane and tracing how vertical_scroll behaves when a widget exceeds the screen. Compare the possible BufferControl approach with line-by-line scrolling and review related issue #1861. Done means a long widget can be scrolled vertically line by line beyond the visible screen, including upward scrolling.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.