VSCodeでC言語のフォーマットが効かない問題【解決済】

久方ぶりの記事が簡単。

 

マイコンファームウェアを実装する時、だいたいC言語な訳です。今回はPICを使おうとしておりまして純正のMPLAB Xを…と言いたいところですが、MPLABはビルド作業だけに集中させてコード編集はVSCodeで行っています。

MPLAB XはNetBeansがベースになったお陰もあり、Ver8系に比べてかなり最近のIDEという感じがしますが見た目とか軽さ、ドキュメントフォーマットやgit対応とか含めて最近はVSCode推しです。

 

余談はここまでにして、具体的にソースコードを編集しようとしていたらドキュメントフォーマットが効かない事に気が付きました。拡張機能のメッセージを見てね!とVSCodeから言われたのですが、まずそのメッセージは何処ぞ?と探す作業から。いろいろ探した結果、出力を表示させ、右上のドロップダウンリストから「C/C++」を選べばいいみたいです。

 

f:id:nitteru:20190122161021p:plain

C/C++拡張のメッセージ

この時点ではErrorレベルのメッセージしか出ませんので、設定の検索欄で「debug」と入力して「C/C++」を選んでからLogging LevelをDebugに変更しました。これで細かい情報が流れてくるようになりました。

 

この状態でソースコードを開き、ドキュメントのフォーマットを行うと「Failed to spawn process. Error: 267」やら「Unable to start child process !」と言ったエラーが散見されます。前者のエラー番号はGoogle先生にお伺いを立てたところ、どうもディレクトリ関係のエラーだそうです。

エラーメッセージの他の部分も眺めていると、対象となるソースコードのパスに日本語が含まれていてエンコードされておりました。エンコードされた部分が悪いのか、パスが長くなりすぎたのか不明ですが、日本語を含まないパスに変更して、再度フォーマットをかけると…成功!

あとはLogging Levelをもとに戻して無事に作業に戻ることができました。

 

今頃になって日本語にやられるとは思いませんでしたし、真の原因は不明ですがとりあえず動き出したので良しとします。昔とは根本的な原因は違うと思いますが、今頃日本語に悩まされるとは。

 

いずれまたやらかしそうなので、メモとして残します。