posit-dev / posit-dev/positron

Console: Pasting a very long chunk of code into the console breaks scroll

Open
#4,585 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

area: console bug
Dominant language
TypeScript
Stars
4.3k
Forks
184
Avg merge
1d 9h
Merged PRs (30d)
195

Description

System details:

Positron Version: 2024.08.0 (Universal) build 73

Code - OSS Version: 1.92.0
Commit: a7d014c7dc468b1ba094b0096fa89749dab2b273
Date: 2024-08-27T02:35:55.231Z
Electron: 30.1.2
Chromium: 124.0.6367.243
Node.js: 20.14.0
V8: 12.4.254.20-electron.0
OS: Darwin arm64 23.5.0

Interpreter details:

R 4.3.2 or Python 3.12.0 (agnostic towards language)

Describe the issue:

As reported by @thomasp85

If you send a multiline statement to the console that takes up more space than the console occupies you can suddenly no longer scroll. For example: copy-pasting a very long and complicated ggplot definition into the console

https://github.com/user-attachments/assets/77894a59-5661-4eb7-ac7b-187d12cf51ce

Steps to reproduce the issue:

Shrink the console down vertically into a relatively "short" area, and then paste in a long chunk of code. This breaks scrolling on the console area, however you can work around it by scrolling with the mouse wheel on the scrollbar area

# Libraries
library(ggplot2)

# example ggplot2
p2 <- ggplot(
  
  # diamonds dataset
  data=diamonds, 
  
  # split by price and cut
  aes(
    x = price, 
    group=cut, 
    fill=cut
  )
  ) +
    geom_density(

      # adjust and transparency
      adjust=1.5, 
      alpha=.4
    ) +
    theme_minimal() +
  labs(

    # set a bunch of labels
    x = "Price",
    y = "Density",
    title = "Diamonds",
    subtitle = "by Cut",
    caption = "diamonds dataset"
  ) +
  geom_hline(

    # custom x-axis
    yintercept = 0,
    color = "black",
    linewidth = 1
  )

p2

Expected or desired behavior:

Should be able to scroll on long code blocks in the console

Were there any error messages in the UI, Output panel, or Developer Tools console?

Contributor guide

Open the contributing guide

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 reproducing the issue in the console area: shrink it vertically, paste the provided long R example, and test scrolling both in the console and on the scrollbar. Trace the console's scroll handling for long pasted multiline input. Done means long code blocks remain scrollable through the console area without requiring the scrollbar.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.