「さっきまで出ていた赤波線が、いつの間にか出なくなっている」— Antigravity で開発していると、ある瞬間からエディタが何も指摘してくれなくなることがあります。コードは明らかに壊れているのに、Problems パネルも空、保存しても何も起きありません。私自身、AI エージェントに大きめのリファクタを依頼したあとにこの状態に陥り、原因を切り分けるのに半日溶かしたことがあります。
ここではその経験から得た「先に確認すべき順番」を5つにまとめました。原因の8割は最初の2つで解決します。残りの3つは、AI エージェントを多用する開発スタイルだからこそ起きやすい落とし穴です。
まず症状を切り分ける(5秒で済む確認)
赤波線が出ないと一口に言っても、原因によって出方が違います。最初に下記のどれに当てはまるか確認してください。
- TypeScript の型エラーだけ消えた(
numberに文字列を代入しても無反応) - ESLint の警告だけ消えた(未使用変数や
console.logが指摘されない) - 両方とも消えた
- 特定のファイルだけ消えた(他のファイルでは正常)
切り分けの一番早い方法は、わざとシンタックスエラーを書くことです。const x: number = "abc" と書いて赤波線が出るかを確認します。出なければ TypeScript 側、出るなら ESLint 側の問題です。両方消えていれば、エディタの言語サーバそのものが落ちているか、設定ファイルが壊れています。
「特定のファイルだけ消えた」場合は、後述する4番目のポイント(include 設定)が原因のことが多いので、そこから読み進めてください。
1. TypeScript Server を再起動する
体感で6割の症状は、これで治ります。Antigravity は VS Code 系のエディタなので、コマンドパレット(macOS なら Cmd+Shift+P、Windows/Linux なら Ctrl+Shift+P)から TypeScript: Restart TS Server を実行してください。
なぜこれで治るかと言うと、TS Server は内部にプロジェクト全体の型情報をキャッシュしているのですが、長時間の編集や AI エージェントによる大量のファイル書き換えがあると、そのキャッシュが現実のファイルとずれることがあるからです。再起動するとファイルを読み直し、整合性が取れた状態に戻ります。
// .vscode/settings.json — TS Server をやや頑丈に運用したい時の設定例
{
// 大規模プロジェクトで TS Server が落ちにくくなる
"typescript.tsserver.maxTsServerMemory": 4096,
// モノレポやワークスペース機能を使うときは true 推奨
"typescript.enablePromptUseWorkspaceTsdk": true,
// 編集中の自動キャッシュ更新が効かない時のフォールバック
"typescript.tsserver.experimental.enableProjectDiagnostics": false
}maxTsServerMemory を 4096 MB まで上げると、ファイル数が数千を超えるプロジェクトでもクラッシュしにくくなります。逆にメモリを取りすぎる場合は 2048 MB あたりまで下げて、頻繁に再起動する運用にする方が安定することもあります。私はノート PC では 2048、デスクトップでは 4096 と分けています。
2. ESLint 拡張機能の Output を見る
ESLint 側の波線が消えた時は、まず ESLint 拡張機能のログを開きます。下部パネルの「出力(Output)」タブを開き、ドロップダウンから ESLint を選択してください。
赤い [Error] 行があれば、たいていそこに原因が書かれています。よく見るのはこの3パターンです。
Failed to load config xxx:.eslintrc.*で読み込んでいる共有設定が壊れているか、依存パッケージが入っていありません。npm installで解決することが多いParsing error: Cannot find module 'typescript': モノレポでルートに TypeScript が入っていないケース。各パッケージで個別に typescript を入れているとこうなるRule '...' was not found: 使っていないプラグインのextendsが残っています。設定ファイルから該当行を削除する
# プロジェクトルートで依存関係をきれいに作り直す
rm -rf node_modules package-lock.json
npm install
# その後、Antigravity を再起動するか「Developer: Reload Window」を実行ESLint v9 系に上げた直後の症状なら、Flat Config(eslint.config.js)への移行が原因かもしれません。旧来の .eslintrc.json と Flat Config が両方プロジェクトに存在すると、ESLint 拡張機能が混乱して何も検知しなくなる挙動を確認しています。どちらか片方に統一してください。
3. ステータスバーの言語インジケータを確認する
エディタの右下にある言語名(TypeScript JSX など)の表示部分が、思ったより重要です。ここをクリックすると現在のファイルがどの言語モードで認識されているかが分かります。
たまに Plain Text になっていて、それが原因で全く診断が走っていないことがあります。.tsx ファイルが Plain Text 扱いになる典型的な原因は、ファイル冒頭にある // @ts-nocheck コメントや、files.associations の設定漏れです。
// .vscode/settings.json — 言語の関連付けを明示する
{
"files.associations": {
"*.tsx": "typescriptreact",
"*.ts": "typescript",
"*.mdx": "mdx"
}
}@ts-nocheck は AI エージェントが「型エラーを早く消したい」時に勝手に追加することがあります。ファイル冒頭にこの行が入っていないかは、診断が動かないファイルでまず確認したいポイントです。
4. tsconfig.json と eslintrc の include 設定を見直す
「特定のファイルだけ波線が出ない」症状の主犯は、ほぼこれです。tsconfig.json の include / exclude、または .eslintrc の ignorePatterns に該当ファイルが含まれてしまっています。
// tsconfig.json — よくある「気づかない exclude」の例
{
"compilerOptions": { "strict": true },
"include": ["src/**/*"],
// ↓ これが原因で src 外のファイルは型チェックされない
"exclude": ["node_modules", "dist", "scripts/**"]
}scripts/ 以下に書いた .ts ファイルが診断されない、というケースで何度かハマりました。include/exclude は明示しなければデフォルトで全 .ts ファイルが含まれますが、書き始めた瞬間に他のファイルが暗黙的に除外されていきます。
新規ディレクトリを追加した時は、両方の設定ファイルで対象範囲を確認するクセをつけておくと安全です。
5. AI エージェントが触った設定ファイルを git で復元する
最後の関門です。AI エージェントに「型エラーを直して」とお願いしたあと、なぜか他のファイルでも診断が出なくなる現象。これは、エージェントが tsconfig.json の strict を false にしたり、noImplicitAny を消したり、.eslintrc の extends を削ったりしているケースが疑われます。
# 直近の設定ファイル変更を確認する
git log --oneline -10 tsconfig.json .eslintrc.json eslint.config.js
# 直前のコミット時点に戻す
git checkout HEAD -- tsconfig.json .eslintrc.jsonエージェントの差分は便利ですが、設定ファイルへの変更だけは PR を分けて目視レビューする運用に切り替えるのが、長期的にはおすすめです。私は tsconfig.* と .eslintrc*、eslint.config.* を .cursorignore ならぬ「エージェント自動編集対象外」として運用しています。
エディタ系のトラブルでは、Antigravity の Language Server (LSP) が応答しない時の修正手順、Antigravity の Format on Save が動かない時の対処、Antigravity のタブ補完が効かない時の修正 もあわせて読むと、診断・補完・整形の3点セットで対処の引き出しが揃います。
tsconfig の各オプションが何を意味するかを腹落ちさせておくと、こうしたトラブルの切り分けが速くなります。
今日できる一歩
赤波線が出ない状態でコードを書き続けるのは、ヘルメットなしで自転車に乗るくらい怖い行為です。今日はまず、Cmd+Shift+P → TypeScript: Restart TS Server のキーバインドを覚えるところから始めてみてください。これだけで、明日からのデバッグ時間が確実に短くなります。