スクロールに関する違和感

バグ報告

バグがどうかは分かりませんが、違和感がありますので、報告します。

  1. 長文(画面表示行数を越える量)を貼り付けると、ペーストしたテキストが見えないほどスクロールされる。
  2. 長文が入ったノートを下までスクロールし、文字を入力すると、入力した途端に数行スクロールしてしまう。

1について

InkDropは一番したまでスクロールすると、行番号が見えないところまでスクロールするので、その仕様のためとも考えられますが、Atom及びVS Codeいずれもコピペした末行が画面表示の最下行になるように表示されます。

なお、Atomは文末が最下行以上にならない(空行でスクロールされない)ので当然の仕様ではありますが、VS Codeの場合は文末が1行目になるまで空行でスクロールされるのでInkdropに似ています。

Viewport Marginが関係しているように見えますが、設定を変えてもどこが変わったのか分からないため、何の設定かもよく分からない感じがします。

仕様かもしれませんが、VS Codeのようにペースト時には画面最下行で止まる方が自然に感じます。

2について

文字で書くよりも分かりやすいと思うので、添付画像を参照下さい。

スクロール量は、Viewport Marginの値で変化することは確認できましたが、そもそも入力した途端に画面がスクロールするのは正直、気持ちが悪いです。

スクロールバーについて

なお、Windows(Machine A)に限っては、いつの頃からか、スクロールバーが見えなくなってしまいました。

ただし、同一バージョンを動かしている他のWindowsマシンでは表示できているので、違いを確認中です。

利用環境

  • Machine A
    • Platform: Windows 10 Pro
    • Platform version: 20H2
    • App Version: 5.2.0
  • Machine B
    • Platform: macOS
    • Platform version: Catalina(10.15)
    • App Version: 5.2.0

再現方法

添付画像を参照下さい。

1について

  1. 新しいノートを作る
  2. 青空文庫から羅生門の本文をコピーしてペーストする。(もちろん長ければテキストは何でもよい)
  3. 【事象】一番下までスクロールされ、見切れた状態となる。

2について

  1. 事象1で作成したノートから別のノートに切り替える。
  2. 事象1で作成したノートに戻る。
  3. 文末までスクロールする。
  4. a(任意)の文字を入力する。
  5. 【事象】入力した途端スクロールされる。

参考

VS Codeにペーストしたときの挙動
1_vscode_paste
ペースト後、下方向へスクロールするとInkdropに似て空行でスクロールできるが、1行残したところで止まる(InkDropのように全ては消えない)

Masayukiさん

いつもご報告ありがとうございます。
長い文字列をペーストした時のScroll Past Endの挙動がおかしいという事ですね。
ご説明にある現象の再現を試みたのですが、下記の通りペースト後にスクロールが行き過ぎるような挙動はありませんでした。

当方のエディタの設定は以下の通りです:

  editor:
    cursorScrollMargin: 1
    lineNumbers: true
    styleActiveLine: true

基本的にエディタのオプションはCodeMirrorの機能を使用しているだけで、アプリ側での独自実装はありません。
Viewport Marginはカーソルが移動したり文字を入力した時に動作しますので、仕様通りです。

具体的な再現条件が分かり次第、修正したいと思います。なにか分かれば教えて下さい。