「コードをどう強調表示するか」を、どれだけ気にかけるかに基づいて決めてみた

Highlighting My Code Based on How Much I Care

著者は、Nikita Prokopovの「シンタックスハイライトは間違っている」という記事に触発され、自分のコードハイライトのあり方を見直す。デフォルトのVSCode Dark Themeに慣れすぎて色を覚えていないことに気づき、色数を減らしたテーマ作りに挑戦するが、ライトテーマの難しさに直面。そこで、そもそもなぜハイライトが必要なのかを問い直し、色を使わずトーンのみでどこまで表現できるかを実験。最終的に、コメントや定義、制御フローなど「注目すべき要素」を優先し、逆にキーワードや句読点は目立たなくするという、自分の関心に基づいたハイライト方式を提案する。

ハイライトは、読むときに最も重要な部分の間を目が跳べるようにし、意味的な部分に集中して純粋に構文的な部分を読み飛ばせるようにするべきだ。
  1. nrabulinski

    nrabulinski:

    > クラス名に使っているカラーテーマの色を思い出そうとしてみてください。

    この記事と引用されている記事の主旨には概ね同意しますが、このような事実を能動的に思い出せる必要があるという前提には同意できません。私が個人的に使っているテーマはかなり落ち着いたものですが、変数、キーワード、引数、型名、その他いくつかのトークンの種類に異なる色を使っています。コード中で引数を探すときに「あれ、引数の色は何色だっけ」と意識的に考えることはありません。ただ見えるだけで、長年の経験で学習しており、今では筋肉記憶になっていて、コードを読むのに役立っています。アパートの鍵の番号を覚えていないのに、毎日何度も入力しているのと同じです。

  2. wzdd

    wzdd:

    こうしたハイライト再考の記事はいつも間違った前提から始まります。私のコードのクラス名の色は、すべてのクラス名が持つ色です。コードをしばらく使っていれば、一つでもおかしな色があれば気づくでしょう。

    脳は本当に効率的です。文脈から外れたランダムな想起のために最適化するのは、よほど努力しない限りありません。それは配色の有効性について何も語っていません。

  3. sph

    sph:

    私は誰もがシンタックスハイライトを間違っていると確信していますが、この記事はそれを裏付けています。

    私の気になる点:

    - 現代のエディタで人気のある非意味的な虹色のテーマで、どうやって生産性を上げられるのかさっぱりわかりません。私はADHD気味で、役に立たない情報で過剰に刺激されたくありません。

    - GitHubでZigのコードを見るとき、よく嫌な思いをします。彼らのテーマはすべてを茶色に変えてしまうからです。ああ、それは構造体のメンバーだからか。おい、Zigではほとんどすべてが構造体のメンバーだぞ。ソースコードの90%に鮮やかな色を割り当てるのは馬鹿げている。ブラウザ履歴からランダムな例を挙げると:https://github.com/foxnne/aftersun/blob/main/src/time/enviro...

    - 昨日、KDEのKWriteテキストエディタでLispのコードを開いたら、すべてのデフォルトテーマが括弧を太字と鮮やかな色で強調して目立たせていました。Lispの括弧は背景に溶け込むべきで、目に飛び込んでくるべきではありません。完全に使い物にならなかったので、シンタックスハイライトをオフにせざるを得ませんでした。

    私は常に、優れたミニマルで落ち着いたカラーテーマをエディタに求めています。使いやすさと快適さのためにテーマをデザインする真面目なデザイナーがいてほしい。色で遊ぶのが好きなだけの人ではなく。

    シンタックスハイライトをオフにしてコードを書いていた同僚を思い出します。それは風変わりな選択だと思っていました。年を重ねるにつれて、彼の知恵をありがたく思うようになりました。悪いシンタックスハイライトがないよりは、むしろない方がいい。少なくとも、構造だけでコードを解析しやすくしようとするでしょう。

  4. mattlondon

    mattlondon:

    うーん、これは期待していたものとは違いました。

    複雑さやリスク、重要度に基づいたハイライトかと思っていました。それはすぐに「なぜ思いつかなかったんだ?」という瞬間になるはずなのに、実際には彼らも思いついていなかった。

    IDEで反復作業をしながらLLMエージェントの差分をレビューするシナリオを想像できます。差分は人間のレビューのために重要度や複雑さに応じてハイライトされるでしょう。getterやsetterのような些細なものはグレーに。非常に複雑で難しい、またはリスクの高いコードは、高コントラストの太字(重要度に応じて輝度を変える)でハイライトされるでしょう。エージェントからの差分をレビューするとき、最も注意が必要な重要な部分に即座に目が行き、集中できます。

    それは本当に便利だと思います。

  5. FridgeSeal

    FridgeSeal:

    自分の関数や構造構文の色が何色かは言えませんが、コードを見たとき、その色があるおかげで、その瞬間に気になるテキストの部分にすぐにたどり着けることは言えます。

この日のほかの記事

2026-08-31