uiwjs / react-codemirror

CodeMirror 6 component for React. @codemirror https://uiwjs.github.io/react-codemirror/
https://uiwjs.github.io/react-codemirror/
MIT License
1.5k stars 125 forks source link

Disable Virtual Scrolling in @uiw/react-codemirror #662

Open smeetagrawal opened 2 weeks ago

smeetagrawal commented 2 weeks ago

Hello,

I am currently using @uiw/react-codemirror to implement key selection functionality in my project. Upon inspecting the elements in the browser's developer tools, I noticed that virtual scrolling is enabled, which leads to DOM manipulations during user scrolls. Specifically, some div elements are being removed and new ones are added dynamically.

While I understand and appreciate the efficiency that virtual scrolling offers, I would like to know if there is a way to disable this feature. My requirement is to maintain the scroll functionality without the DOM manipulations. Ideally, once the ReactCodeMirror component loads, all the div elements should be rendered at once without any further modifications during scrolling.

Version Details @uiw/react-codemirror: ^4.22.1

Code Example

<ReactCodeMirror
  value={value}
  height="30vh"
  language="json"
  readOnly
  placeholder="Enter URL and hit send to get a response"
  onChange={onChange}
  extensions={[json()]}
  padding={15}
  style={{
    fontFamily: "ui-monospace,SFMono-Regular,SF Mono,Consolas,Liberation Mono,Menlo,monospace",
    border: "0 !important",
    borderRadius: 12,
  }}
  onClick={handleOnClickApiResponse}
/>
jaywcjlove commented 6 days ago

@smeetagrawal I think you have already got the answer. https://discuss.codemirror.net/t/how-to-disable-virtual-scroll-in-code-mirror/8339/2