できない.dev

VSCode で IntelliSense(コード補完)が効かない

言語拡張や言語サーバが起動していない、ファイルが正しい言語モードでない、tsconfig/jsconfig がプロジェクトを認識していないと補完候補が出ない。
言語サーバの状態とプロジェクト設定を順に確認する。

#vscode#intellisense#completion#language-server#settings

要約

VSCode で IntelliSense(コード補完)が出ない ときは、補完を供給する 言語サーバが動いていない か、ファイルが正しい言語として認識されていない かのどちらかが大半。
言語拡張の有無、言語サーバの状態、言語モード、プロジェクト設定の順に切り分けると早い。

よくある原因

  1. 言語拡張が無い / 無効: Python なら ms-python.python、TypeScript は標準同梱だが別プロファイルで無効化されていることがある
  2. 言語サーバのクラッシュ: Pylance や tsserver が落ちると補完だけ静かに止まる
  3. 言語モードのズレ: ファイルが Plain Text 扱いになっていて、言語機能が一切働かない
  4. プロジェクト未認識: tsconfig.json / jsconfig.json が無く、import 解決や型情報が効かない

解決策

1. 拡張機能を入れて再読み込み

Ctrl+Shift+X で対象言語の拡張機能を確認・インストールし、Developer: Reload Window を実行する。
プロファイルを使っている場合は、有効なプロファイルに拡張が入っているかも確認する。

2. 言語サーバを再起動する

Ctrl+Shift+P -> TypeScript: Restart TS Server
Ctrl+Shift+P -> Python: Restart Language Server

公式の IntelliSense ドキュメント のとおり、補完は言語サーバが供給する。Output パネルで対象サーバのログを開くとクラッシュ原因が分かる。

3. 言語モードを合わせる

ステータスバー右下の言語表示をクリックし、Change Language Mode で正しい言語を選ぶ。
拡張子が独自の場合は files.associations で言語に関連付ける。

4. プロジェクト設定を置く

{
  "compilerOptions": { "module": "esnext", "baseUrl": "." },
  "include": ["src/**/*"]
}

素の JavaScript でも、プロジェクト直下に jsconfig.json を置くと VSCode が対象範囲と解決方法を把握でき、import 補完が効くようになる(公式の jsconfig ガイド)。

この記事は役立ちましたか?