Surface Windows の Visual Studio Code のスクロールがスムーズじゃなかったので調べてみました

Windows で Visual Studio Code を使っています。 以前から気になっていたのですが、スクロールがスムーズじゃないので、調べてみました。

環境

  • Windows 10
  • Visual Studio Code 1.23.1

エディターのスクロール

[ファイル]-[基本設定]-[設定]を選択します。

ユーザー設定とワークスペースの設定があるようです。 ユーザー設定はユーザーの全体の設定のようです。 ワークスペースの設定は開いているワークスペース(プロジェクト)に固有の設定のようです。 今回はワークスペースごとに設定するのではなく、自分の使っているユーザーの全体の設定をしてみます。

既存のユーザー設定

エディター

// アニメーションでエディターをスクロールするかどうかを制御します
"editor.smoothScrolling": false,

アニメーションってよくわからないですが、設定してみました。

{
  "editor.smoothScrolling": true
}

設定したらよくなったようにも思いました。

ウィンドウのスクロール

既存のユーザー設定

ウィンドウ

// 最小化した VS Code ウィンドウを元のサイズに戻したあと、スクロールが滑らかにならない場合はこの回避策を有効にしてください。これは Microsoft Surface のような高精度タッチパッドを備えたデバイスで、スクロールの開始が遅れる問題 (https://github.com/Microsoft/vscode/issues/13612) の回避策です。有効にすると、最小化の状態からウィンドウを元に戻したあとに少しレイアウトがちらつきますが、そうでなければ無害です。
"window.smoothScrollingWorkaround": false,

ウィンドウの設定もあるようでした。 スクロールの開始が遅れる問題があるようです。 この問題が再現するか確認するために、記載されているように最小化してからスクロールしてみました。 すると、再現してしまいました。 なので、次の設定をしました。

{
  "editor.smoothScrolling": true,
  "window.smoothScrollingWorkaround": true
}

スムーズになったようでした。 “Microsoft Surface のような高精度タッチパッドを備えたデバイスで” と記載されているので、 Surface で Visual Studio Code を使っている場合はこの設定をしておいた方がいいのかもしれません。

最後の行を超えてスクロール

// エディターで最後の行を越えてスクロールするかどうかを制御します
"editor.scrollBeyondLastLine": true,

それから、設定を見ていて、最後の行を超えてスクロールするのも気になっていたので、併せて設定しておきました。

{
  "editor.scrollBeyondLastLine": false,
  "editor.smoothScrolling": true,
  "window.smoothScrollingWorkaround": true
}

最後の行でスクロールが止まるようになりました。

空白

// エディターで空白文字を表示する方法を制御します。'none'、'boundary' および 'all' が使用可能です。'boundary' オプションでは、単語間の単一スペースは表示されません。
"editor.renderWhitespace": "none",

空白を見えるようにしておきたかったので次のように設定しました。

{
  "editor.renderWhitespace": "all",
}

空白が “・” で表示されるようになりました。

既定の改行文字

// 既定の改行文字。LF の場合には \n を CRLF の場合には \r\n を使用してください。
"files.eol": "\r\n",

既定の改行文字を LF にしました。

{
  "files.eol": "\n"
}

新しくファイルを作ったときの改行文字が LF になりました。

終わり

気になっていたものの放置していたのですが、設定してみてよかったです。 頻繁に小さく固まるような感じだったのでストレスでした。