MNAの世界

ブログをリニューアルしました!コメント、リンク、ツイートなどはお気軽にどうぞ。

PC、技術系

【C/C++】Visual Studio Code(VSCode)のインテリセンスがイマイチ賢くないときの対処法

投稿日:2018年9月20日 更新日:

結論から言うと「WindowsSDKをアップデートしろ!」です。

事の発端

最近VSCodeを使い始めたのですが、「IDEを使えない案件の場合でも慣れ親しんだVisualStudioライクなインターフェースでコーディングができる!」ということでとても気に入っておりました。

でも一つ欠点があるんですよ。それはインテリセンスがイマイチ賢くないってこと。例えばポインタ型の変数の後ろに “.” を書いてもメンバ候補が開いてしまいます。本来なら “->” を書いたときだけ開くべきです。そのメンバ候補もソース上に存在するあらゆるシンボルが列挙されてしまっているという有様で、「まあビルドをしていない以上、文脈を理解するのは難しいのかな?」と思っていました。
だがしかし!

衝撃の事実が発覚!

業務都合でもうひとつのPCにVSCodeをインストールしたら、なんとインテリセンスがめっちゃ賢い!!!ポインタ変数の後ろに “.” を打ってもちゃんと無視してくれますし、何よりメンバ候補の列挙が的確!!!なんだこれは!どちらのPCも同じWindows10なのに挙動が違いすぎるだろ!!!

完全アンインストールを試してみたが……

こういうときまず試すのが再インストール、なのですがどうもアンインストールを実行しただけでは拡張機能などのデータが残ってしまう模様。

↓というわけで下記のサイトを参考に完全アンインストールを行い、その後再インストールを行いました。

Visual Studio Code(VScode)を完全にアンインストールするメモ

でも挙動はかわらず。ぐぬぬ。

違いは何だ?

両者の環境の違いは何なのだ?と調べているとあることに気付きました。どうもインテリセンスが賢いほうの環境には下記のフォルダが存在するようなのです。
“C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0”

このフォルダにはincludeファイルなど、開発に関わる重要なファイルが収められています。インテリセンスが賢くないほうの環境には “10.0.10240.0” までしか存在しません。
もしやこれか?

ちなみになんでそんなことに気付いたのかというと、インテリセンスが賢くないほうの環境ではなぜか開けない標準ヘッダがあったからなのです。賢いほうの環境では普通に開けていたのでそのファイルのパスを探ってみたわけです。どちらも同じようにVisualStudio2015が入っているにも関わらず不思議なもんですね。

WindowsSDKのバージョンアップを試す

↓マイクロソフトのサイトから最新のWindowsSDKを入れてみました。

するとあら不思議、インテリセンスが賢くなりましたとさ!
めでたしめでたし。

VSCodeは最新版がUbuntu14で動かなくて嵌ったり(16にしたらいけた)と、何かと最新の環境を要求してくるようです。アグレッシブに最近機能を使いまくってるんでしょうかねぇ……もしおかしいと思ったら色々最新版にアップデートしてみると治るかも?

-PC、技術系
-


comment

リンクが多数含まれていると表示されないのでご注意ください。(スパム対策)

関連記事

[Stepmania] ビルド環境を VisualC++6.0 から 2005 Express Edition へ移行

珍しく風邪を引いてしんどすぎ!!! しかも今日届く予定だった新PCは発送が遅れたとの連絡が!!! あちょー!!! 仕方が無いので布団の中からStepmaniaのビルド環境をこれまでの VisualC+… 続きを読む

no image

iPodよ、根性だ!根性!

今日はプリンセス☆フェスタ2のためにのんびり上京することに。 折角なので、滅多に通して聴く機会の無いCDとか聴きながらiPodのバッテリ駆動時間を試してみました。 確か満充電なら20時間もつはず・・・… 続きを読む

no image

mixi対策してみた

ここ最近のmixiの外部ブログに対する風当たりはますますきつくなる一方です。 具体的に言うと、RSSを巡回に来る間隔がやたら長い! mixiのヘルプには「4時間周期で巡回」と書いてあるわけですが、現状… 続きを読む

no image

iPodにトラブル発生?

会社の帰り道、いつものようにiPodで曲を聴いていると、いきなり再生が中断!!! しばらくしてまた曲の先頭から再生が再開されました。 むむ・・・?リードエラーでも起きたのか? 一応再生が止まった箇所に… 続きを読む

no image

玄箱日本語化完了

実はもうなっていたらしい。 なんで文字化けしてたかと言うと単にターミナルが対応してなかったから。 Tera Term Proを導入したらあたりまえのように表示された。 昨日までの苦労は一体・・・ まあ… 続きを読む