Sublime Text 3.1 リリースと新しいカラースキームフォーマット

先日 Sublime Text のバージョン 3.1 がリリースされました。

ニュースサイトで紹介されているのはいくつか見かけたのですが、実際に使っている人が日本語で言及している記事が見当たらなかったので、いちユーザの観点からかんたんにまとめてみたいと思います。

Sublime Text 3.1

(もはや出ないのではないかと思われた)ひとつ前のバージョン 3.0 のリリースが 2017 年 9 月でした。 3.1 は今月 2018 年 5 月にリリースされたので、およそ 8 ヶ月ぶりのバージョンアップです。

ちなみに、 3.0 と 3.1 のビルド番号はそれぞれ次のとおりです。 ビルド番号を知っておくと、バグ情報をチェックするとき等に便利なことがあります。

  • 3.0: Build 3143
  • 3.1: Build 3170

Sublime Text 3.1 での主な変更点

バージョン 3.1 の主な変更点は次のとおりです(公式のリリース記事からの抜粋・翻訳です)。

UI 関連

  • Windows 10/8.1 における DPI 設定の異なる複数モニターへの対応
  • 対応するすべての OS における、 8k モニターや @3x 解像度を含む高 DPI のサポートに関する多数の改善

テキストレンダリング関連

  • リガチャ(合字)サポートの追加
  • Windows におけるテキストレンダリングの改善
  • 絵文字のレンダリングやテキスト選択の改善

カラースキーム関連

  • JSON ベースの新しいカラースキームフォーマットの追加
  • テキスト選択時のレンダリング設定の追加

シンタックス定義関連

  • Subime Text が Git の core.editor として使いやすくなる Git 関連のシンタックス定義の追加
  • Markdown 内の挿入コードブロックのハイライト機能の追加
  • JavaScript シンタックスに ECMAScript ( TC39-track )関連の特徴の追加

ユーザインタラクション関連

  • (定義へのリンクに加えて)参照へのポップアップリンクの追加
  • 任意のユーザ入力と複雑なインタラクションが可能となる、コマンドパレットの改善

ファイルシステム関連

  • サイドバーのファイルやフォルダをフィルタするオプションの拡張
  • ファイルシステムの通知とシンボリックリンクの取り扱いの改善

パフォーマンス関連

  • メモリ使用の大幅な改善(特定のケースでは 30% の向上)
  • 多数の小さなパフォーマンス改善とバグフィックス

リリース記事で取り上げられている変更点はこれだけですが、他にも多くの変更が行われています。 公式の Changelog には細かな変更点も含めてもろもろ記載されているので、詳細を確認したい方はそちらをご覧になってみてください(ページ内「 3.1 (BUILD 3170) 」のところです)。

所感

今回のリリースについての私の所感です。

ユーザの視点では、シンタックス定義やユーザインタラクションまわりの改善がありがたいです。 パフォーマンスについても、 3.0 のときもよほどメモリを食うパッケージを使わないかぎりメモリ使用量が多くて困ることは少なかったのですが、軽いに越したことは無いのでうれしいところです。

リガチャ(合字)対応については、おもしろいとは思うのですが、私は現状リガチャ対応のフォントを使っていないので当面は恩恵がありません。 リガチャになる演算子等は限られるので、このあたりは使っている言語等によってありがたみが変わってくるように思います。

ちなみに、現時点では「リガチャで無償・オープンソースといえば Fira Code 」なので、「リガチャって何?」という方は Fira Code の README が参考になるものと思います。

Fira Code のリガチャについて

( Fira Code リポジトリより)

パッケージを作る側の立場としては、ユーザインタラクションの「コマンドパレットの改善」というのが具体的にどんなものなのかが気になります。 こちらは近々調べてみようと思います。

全体的に改善点が少し地味な印象もありますが、「じゃあ、他に何が入っていたらいいの?」と聞かれると私は答えに困ります。 エディタもスマートフォンと同じで、近年は「行き着くところまで行き着いた」という感じで大幅に改善できるところはあまり残っていないような気がします。

新しいカラースキームフォーマット .sublime-color-scheme

上の「 JSON ベースの新しいカラースキームフォーマットの追加」について個人的に興味がありチェックしたので、取り上げてご紹介します。

Subime Text 3.1 で .sublime-color-scheme という拡張子の新しいカラースキームフォーマットが導入されました。 中身はシンプルな JSON です。

この「カラースキーム」というのは、 Sublime Text の GUI の編集エリアのスタイル設定のことです。 一方の、サイドバー・タブ・ステータスバー等のスタイル設定は「テーマ」と呼ばれています。

個人的には、従来の TextMate 由来のフォーマット .tmTheme は人間が編集するものとしてはわかりづらかったので、この .sublime-color-scheme の導入によりカラースキーム作成のハードルが大幅に下がると思います。

また、パッケージとして配布されているカラースキームの上書きも、 User ディレクトリ内に同名のファイルを作ることで一部だけ上書きできるようになったそうなので、カスタマイズのハードルもぐんと下がる感じがします。

パッケージに比べるとカラースキームの作成・配布はまだハードルが低いので、カラースキームの配布に興味があったけれどやったことがなかったという方はこれを機に試してみるとよいかもしれません。

カラースキームの具体的な作り方については、公式ドキュメントの「 Color Schemes 」に説明されているので、興味のある方はそちらをご覧ください。

ただ、公式ドキュメントには最低限のサンプルしかありません。 もっと具体的なサンプルを見てみたいという方は、 .sublime-color-scheme のサンプルファイルとテンプレートファイルを GitHub に置いたので、ご覧になってみてください。

また、この新しいカラースキームには「 Hashed Syntax Highliting 」という機能が備わっています(他のエディタや IDE では「 Semantic Highlighting 」(セマンティックハイライティング)と呼ばれる機能に相当します)。 これは、例えば「コードの中のすべての変数に同じ色を付けるのではなく、同じ名前の変数には同じ色を付けて、他の変数には別の色を付ける」といったことができる機能です。 こちらもうまく使えればコードの読みやすさが上がる便利な機能ですね。 詳しくは公式のドキュメントをご覧ください。

以上、 Sublime Text 3.1 の変更点と、新しく導入されたカラースキームフォーマットについてでした。