昔は C言語で組み込みソフトウェア開発だけやっておけばよかったのだが、最近はそうも言っていられない。
Rust 言語の勉強もしないとなあ、と思いつつ、このリポジトリは TypeScript が使われていて、あのリポジトリは Go で、こっちは Windows でもビルドできるけどこちらは Linux だから WSL にするか、などなど。
テキストエディタは、統合開発環境としては Visual Studio Code、単独でファイルを見たりするときは EmEditor を使っている。昔はね、行番号が表示できる無料のテキストエディタが少なかったのだよ。
Visual Studio Code(以下、vscode)は Extension で各言語向けの機能を追加できる。
それをよいことに、それぞれの言語のプロジェクトを触るごとに Extension をどんどん追加していったのだが、一番左にある Activityバーのアイコンがどんどん増えていったので、これはなんかダメなんじゃないかという気がしてきた。
例えば C言語で言えば、Nordic Semiconductors 社の ncs 向け Extension と Espressif 社の IDF Extension は別に競合はしないのだが両方同時に使う必要はない。
また、組み込み C言語の場合はシステムに展開されているパスを参照することは少なく、そのプラットフォームごとに違うパスを見たいので Settings が別になっている方がやりやすい。
まあ、設定が面倒なので include が解決できなくても無視することが多いのだけどね。。。
ある日、Profile という機能があることに気付いた。
最初は "Default" だけあるのだが、それをコピーして新たに作ったりできる。プロジェクトを開いた後に Profile を変更すると、次回そのプロジェクトを開くと前回の Profile で開いてくれたりもする。
コピーした後も、どの設定を引き継いで使うか選ぶことができる。まあ、Default か自前かの二択だが。
私の場合、キーボードの設定以外はそれぞれ別にしたいのでそうしている。
ブログを書く以外はほとんど WSL2 側でやっているので↑のようなプロファイルになった。
タイトルの話になるが、Profile を分けたことで面倒になったことがある。
- どの Profile でも使いそうな Extension をインストールしたくても個別にインストールすることになる
- WSL2 や Remote では Local とはまた別の Extension 管理(Local の Extension を使えるようにするかどうか)なので、 Local でインストールして WSL2/Remote でもインストールすることになる
汎用な Extension、例えば JSON のソートなんかは似たような名前の Extension がいくつもある。
こっちの Profile では AAA をインストールしていたがこちらの Profile では BBB をインストールしていた、ということがしばしばある。覚えておけよって言われそうだけど、覚えてないんだから仕方ないじゃないか。
「共有」と「個別」が設定できるとよいのかもしれないけど、vscode の管理が面倒になるだけという気もする。Profile ではなく workspace ごとに設定するというのもあるが、それはそれで面倒だし。
"Default" はでは何もしなくて良いかというと、そうはいかなかった。
どれにも属さないのだからと Extension を全部 uninstall したのだが、初めて開く WSL2 や Remote のファイルは取りあえず "Default" で開かれるのでそういった Extension をインストールしていないと面倒だ。
まあ、これはインストールすればよいだけだがね。