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

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

関連記事

no image

ショボいルータ使っちゃらめぇ

実家からネットに接続と言うことで、折角なので先日導入した新鯖「TS-209 II」へのインターネット経由でのアクセスをいろいろ試してみました。 基本的には全く問題なく動いていたのですが・・・ subv… 続きを読む

no image

コメントスパム対策強化

ここ数日、このブログに対する海外からのコメントスパムが急に増えました。 風邪で寝てるのに鬱陶しいったらありゃしない。 あまりにもしつこいので、以前からこっそりテストしていた「海外IP判定機能」をついに… 続きを読む

PC死亡 復活篇

仕事は17時半ダッシュでショップにマシンを引き取りに行きました。 諸悪の根源である電源とダメージを受けてしまったマザーを交換。 その場で組みなおしました。 組み立てカウンターが用意されているほか、必要… 続きを読む

no image

UDPでNAT越え 備忘録

最近は同人ゲームでもネット対戦を備えていることが多くなってきました。 対応ゲームはこれからどんどん増えていくことでしょう。 しかし、ほとんどの接続ユーザーがルータ越しに繋いでいる昨今ではNAT越えとい… 続きを読む

no image

【ワンセグ】不思議なポケット【勝手に起動】

最近当方の使っている携帯W51SHの挙動がおかしい・・・ なんと!!!ポケットに入れていると勝手にワンセグが起動していてバッテリーが無くなってしまっているのです!!! ポケットをたたくとワンセグがめん… 続きを読む