コードを見やすく色分けしてくれるシンタックスハイライトは、開発作業の効率とミスの防止に役立つ機能です。
ところが、急に色が付かなくなったり、一部のファイルだけ白黒表示になったりすると、原因が分からず作業が止まってしまうこともあるでしょう。
問題の多くは、ファイル拡張子の認識、言語モード、拡張機能、テーマ、設定ファイルのいずれかにあります。
この記事では、Visual Studio Codeを中心に、シンタックスハイライトが効かない時に確認したい原因と対処法を順番に解説します。
シンタックスハイライトが効かない場合の結論

それではまずシンタックスハイライトが効かない場合の結論について解説していきます。
確認順序の基本
最初に確認したいのは、開いているファイルが正しいプログラミング言語として認識されているかどうかです。
エディタの右下に表示される言語モードが「Plain Text」や「プレーンテキスト」になっている場合、コードが記述されていても色分けは行われません。
この表示をクリックして、JavaScript、Python、HTML、CSS、PHPなど、対象ファイルに合う言語を選択してください。
次に、ファイル名の末尾にある拡張子が適切かを見直します。
たとえばHTMLを記述していても、ファイル名が sample.txt のままであれば、通常はHTMLとして判断されません。
sample.html のように拡張子を変更し、保存後にファイルを開き直すと改善するケースがあります。
最短で切り分けるなら、言語モード、ファイル拡張子、拡張機能の有効状態、テーマの順に確認する方法が有効です。
設定をいきなり初期化すると原因の特定が難しくなるため、簡単な確認から進めるとよいでしょう。
よくある原因の全体像
シンタックスハイライトの不具合は、コードそのものの誤りではなく、表示側の設定で発生することが少なくありません。
代表的な原因として、言語拡張機能が無効になっている、テーマの配色が背景色に近い、設定ファイルに無効な記述がある、といった項目が挙げられます。
独自拡張子を使う業務用ファイルやテンプレートファイルでは、対応する言語が自動判定されないこともあります。
また、拡張機能同士の競合により、特定の言語だけ色分けが崩れる場合もあります。
特定のファイルだけで起こるのか、すべてのファイルで起こるのかを分けて考えると、確認範囲を絞り込みやすくなります。
| 症状 | 考えられる原因 | 優先する対処 |
|---|---|---|
| すべて白黒で表示される | 言語モードがプレーンテキスト | 右下の言語モードを変更 |
| 特定のファイルだけ色が付かない | 拡張子や関連付けの問題 | 拡張子と files.associations を確認 |
| 色が薄く読みにくい | カラーテーマの配色 | 別テーマへ切り替え |
| 更新後から表示がおかしい | 拡張機能や設定の競合 | 拡張機能の無効化と再読み込み |
| 一部の構文だけ色が付かない | 言語サポート不足や構文エラー | 対応拡張機能と記述内容を確認 |
再起動前に行う操作
設定を変更した後は、ファイルを閉じて開き直すだけで反映されることがあります。
改善しない場合は、コマンドパレットからウィンドウの再読み込みを実行すると、エディタ本体を終了せずに拡張機能や表示処理を再起動できます。
ワークスペース単位の設定が影響している可能性もあるため、別のフォルダーで新規ファイルを作り、同じ拡張子で試す方法も有効です。
新規ファイルでは正常に色が付くなら、元のプロジェクト内にある設定ファイルや拡張機能の推奨設定を疑う流れになります。
確認用として test.html、test.js、test.py などの小さなファイルを新規作成し、各言語で色分けされるか確認してください。
新規ファイルが正常なら、アプリ全体の故障よりもプロジェクト固有の設定が原因である可能性が高まります。
ファイル拡張子と言語モードの確認
続いてはファイル拡張子と言語モードの確認を進めていきます。
拡張子による自動判定
多くのエディタは、ファイル名の拡張子を手掛かりにして言語を自動判定します。
たとえば .html はHTML、.css はCSS、.js はJavaScript、.json はJSONとして扱われるため、対応する構文ルールで文字色が変わります。
しかし、拡張子が付いていないファイル、独自の拡張子、誤った拡張子を持つファイルでは、自動判定が期待どおりに働きません。
Windowsでは拡張子が非表示になっていることもあるため、index.html.txt のように実際はテキストファイルだった、という例にも注意が必要です。
エクスプローラーで拡張子を表示する設定にして、ファイル名の末尾まで確認してください。
言語モードの手動指定
拡張子を変更できないファイルでも、エディタ上で言語モードを手動指定すれば、一時的にシンタックスハイライトを利用できます。
Visual Studio Codeでは右下の言語名を選択し、候補一覧から該当する言語をクリックします。
テンプレートファイルにHTMLとPHPが混在している場合は、PHPを選ぶことでHTML部分もある程度見やすく表示されることがあります。
ただし、混在形式の構文を完全に解析するには、専用拡張機能が必要になることもあります。
言語モードを変更してすぐに色分けが戻るなら、原因はエディタの表示機能ではなく、ファイル判定にあったと考えられます。
ファイルが .vue、.svelte、.twig、.blade.php のような形式なら、標準状態では十分に認識されない場合があります。
言語名を一時的に選んで表示を確認し、必要に応じて各フレームワーク用の拡張機能を追加してください。
関連付け設定の見直し
何度も手動指定が必要になる場合は、ファイルと特定言語の関連付け設定を行うと便利です。
Visual Studio Codeでは settings.json の files.associations に拡張子と対象言語を登録できます。
たとえば独自の .template ファイルをHTMLとして扱いたい場合は、関連付けを追加することで、次回から自動的に色分けされます。
設定を編集する際には、カンマの位置や引用符の閉じ忘れに注意してください。
設定ファイルの書式が崩れると、関連付けだけでなく他のエディタ設定にも影響する可能性があります。
設定例
{
“files.associations” は独自拡張子と使用する言語を結び付ける設定項目です。
“*.template” を “html” として登録すると、template拡張子のファイルをHTMLとして表示できます。
}
拡張機能の有効状態と競合
続いては拡張機能の有効状態と競合を確認していきます。
言語サポート拡張機能
HTMLやCSS、JavaScriptなどは標準機能で色分けされることが一般的です。
一方で、Rust、Go、Vue、Dockerfile、Terraform、Markdown拡張記法などでは、拡張機能が構文解析や補完、色分けを補助する場合があります。
拡張機能一覧を開き、対象言語の拡張機能がインストール済みであるか、有効になっているかを確認してください。
組織やプロジェクトの設定によっては、ワークスペース単位で拡張機能が無効化されていることもあります。
インストール済みであることと、有効化されていることは別の確認項目です。
競合を切り分ける方法
複数のテーマ拡張機能、言語拡張機能、フォーマッターを入れている環境では、競合の可能性を考える必要があります。
特に同じファイル形式を対象とする拡張機能を複数導入すると、構文定義の優先順位が想定と異なることがあります。
問題が起きた直後に追加した拡張機能があれば、まず無効化して変化を確認しましょう。
一つずつ無効化する手間はかかりますが、原因を特定しながら安全に戻せる方法です。
すべての拡張機能を無効にした状態で正常なら、エディタ本体よりも追加機能側に原因があると判断できます。
拡張機能の削除は最後の手段にしてください。
まず無効化して再読み込みを行い、改善した拡張機能だけを更新、再設定、削除の順に扱うと復旧しやすくなります。
更新と再インストール
拡張機能が古いバージョンのままだと、エディタ本体の更新後に表示不具合が起こることがあります。
更新可能な拡張機能がないか確認し、対象の言語サポート拡張機能を最新版へ更新してください。
更新後も改善しない場合は、拡張機能を一度アンインストールし、エディタを再起動してから再インストールする方法があります。
ただし、拡張機能独自の設定がある場合は、削除前に内容を控えておくと安心です。
拡張機能のレビューや更新履歴を見ると、同じ不具合が報告されているか判断しやすくなります。
テーマと配色設定の影響
続いてはテーマと配色設定の影響を確認していきます。
テーマ変更による確認
色分けが効いていないように見えても、実際にはテーマの配色が背景色や通常の文字色に近いだけという場合があります。
コメント、文字列、予約語の色がわずかに違うものの、画面の明るさやディスプレイ環境によって判別しにくいこともあるでしょう。
いったん標準的なダークテーマまたはライトテーマに切り替え、色の変化を確認してください。
テーマを変更して構文ごとの色がはっきり分かれるなら、シンタックスハイライトの機能自体は正常に動作しています。
テーマの問題と構文解析の問題を混同しないことが、遠回りを避けるポイントです。
セマンティックハイライト設定
最近のエディタでは、単純な構文色分けに加えて、変数、関数、型、クラスなどの意味を解析して色を変えるセマンティックハイライトが使われることがあります。
この機能は言語サーバーやテーマの対応状況によって見え方が変わります。
通常のシンタックスハイライトはあるのに、関数名や変数名だけ期待した色にならない場合は、この設定を確認するとよいでしょう。
テーマがセマンティックトークンに対応していないと、構文色分けとは異なる印象になることがあります。
設定を切り替えた後は、対象ファイルを再読み込みして表示を比較してください。
独自配色の設定ミス
settings.json で tokenColorCustomizations などの独自配色を設定している場合、意図せず特定の文字種を背景と同じ色にしている可能性があります。
過去にコピーした設定やチーム共有の設定が残っていると、テーマを切り替えても見え方が変わらないことがあります。
独自配色の項目を一時的に無効化し、標準テーマの表示へ戻して確認しましょう。
その後、必要な色だけを少しずつ追加すると、どの設定が影響していたか把握できます。
見た目の調整用設定は、表示不具合の原因にもなり得ます。
テーマを変えても改善しない時は、テーマ本体だけでなく個人設定とワークスペース設定の両方を確認してください。
ワークスペース設定が優先される環境では、プロジェクトごとに表示結果が異なることがあります。
設定リセットとキャッシュの対処
続いては設定リセットとキャッシュの対処を確認していきます。
設定ファイルのエラー確認
エディタの設定ファイルには、テーマ、拡張機能、ファイル関連付け、フォント、保存時の処理など多くの項目が記録されています。
JSON形式の設定でカンマや括弧の記述を誤ると、一部の設定が正しく読み込まれないことがあります。
設定画面からJSONを開き、警告の下線やエラーメッセージがないか確認してください。
最近編集した箇所があるなら、そこを一度元に戻して表示が改善するか試す方法が安全です。
設定全体を消去する前に、現在の内容を別ファイルへバックアップしておくことをおすすめします。
段階的な設定リセット
原因が特定できない場合でも、いきなり全設定を初期化する必要はありません。
まずテーマ関連、次にファイル関連付け、続いて拡張機能設定というように、影響範囲の小さい項目から一時的に外して確認します。
個人設定では正常なのに特定プロジェクトでだけ不具合が出るなら、プロジェクト内の .vscode フォルダーにある設定を確認してください。
共有リポジトリでは、チーム用設定を独断で変更せず、個人設定との違いを比較して原因を探すとトラブルを防げます。
段階的な確認の順番
テーマ設定を外す。
ファイル関連付けを外す。
言語ごとの拡張機能設定を外す。
ワークスペース設定を一時的に退避する。
最後に個人設定の初期化を検討する。
再読み込みとプロファイル活用
設定変更後に画面表示が古い状態のままに見える場合は、ウィンドウの再読み込みを実行してください。
エディタを完全に終了して再起動することで、拡張機能の読み込み状態や内部キャッシュが更新される場合もあります。
さらに、プロファイル機能を使って最小構成の環境を作ると、設定や拡張機能の影響を切り分けやすくなります。
最小構成のプロファイルで正常にハイライトされるなら、普段使っているプロファイルの設定に問題がある可能性が高いでしょう。
この方法なら既存環境を消さずに検証できるため、設定リセットに不安がある人にも向いています。
コード記述と対応言語の確認
続いてはコード記述と対応言語の確認を確認していきます。
構文エラーによる表示崩れ
シンタックスハイライトは、ファイル内の記号や予約語を一定のルールで解析して色を付けています。
引用符、括弧、コメントの閉じ忘れがあると、以降の広い範囲が文字列やコメントとして扱われ、色分けが崩れることがあります。
たとえばJavaScriptで開始したダブルクォーテーションを閉じ忘れると、その後のコードまで文字列色になる場合があります。
急に途中から色が変わらなくなった時は、表示が崩れ始めた直前の行を重点的に確認してください。
フォーマッターや構文チェック機能を実行すると、閉じ忘れを見つけやすくなります。
埋め込みコードの扱い
HTML内のJavaScript、CSS内のテンプレート記法、PHP内のHTMLのように、複数言語が混在するファイルでは解析が複雑になります。
標準のハイライトだけでは一部の記法に対応できず、色が付かない部分が残ることも珍しくありません。
フレームワーク固有のコンポーネントファイルを扱う場合は、その形式に対応した拡張機能を導入する必要があります。
拡張機能の説明欄で、対応する拡張子と利用条件を確認すると、導入後の認識違いを減らせます。
コードの実行結果が正常でも、エディタの言語サポートが不足していれば表示だけが不完全になることがあります。
ファイルの文字コードと大容量ファイル
文字コードが一般的なUTF-8以外の場合、エディタが内容を期待どおりに読み取れず、表示処理に影響する可能性があります。
特に外部ツールで生成されたファイルや古いシステムから受け取ったソースコードでは、文字コードの確認が重要です。
また、非常に大きなログファイルや自動生成ファイルでは、動作速度を優先してシンタックスハイライトが制限される場合があります。
大容量ファイルだけで起こる現象なら、ファイルを分割する、不要な生成物を開かない、といった対処も検討してください。
コード量とエディタのパフォーマンス設定が関係するケースもあります。
途中から色分けが崩れた場合は、拡張機能より先に、直前の引用符、コメント記号、波括弧、タグの閉じ忘れを確認してください。
記述ミスを直すだけで復旧するケースは少なくありません。
シンタックスハイライト不具合のまとめ
シンタックスハイライトが効かない時は、まず言語モードとファイル拡張子を確認することが基本です。
次に拡張機能の有効状態、テーマの配色、ワークスペース設定、設定ファイルの記述エラーを順番に確認すると、原因を効率よく絞り込めます。
特定のファイルだけで発生する場合は、独自拡張子、混在コード、構文エラー、文字コードなどを疑うとよいでしょう。
設定を消す前にバックアップを取り、簡単な確認から段階的に試すことが安全な対処につながります。
適切な言語認識と表示環境を整え、読みやすくミスを見つけやすいコーディング環境を取り戻してください。