3
0

More than 1 year has passed since last update.

VSCode で拡張機能の開発をしようとしたら4歩めで詰まった

Posted at

書く事でもないと思いますが、一応引っかかって1日潰れたので書いときます。

一体何があった?

こちらのページ( VSCode 公式)↓

を参考に、取り敢えず VSCode 用の拡張機能を開発しようと思いました。
4歩めで大ハマリだぜ!

ページの内容に沿って説明すると、

  1. Node.js をインストール (Git は既に入っていたのでスルー)
  2. 1つめのコード npm install (...) を実行
  3. 2つめのコード yo code を実行。最後の選択肢で Open with `Code` (なんか registration_protocol_win.cc の102行目がエラー吐いてるけど取り敢えずスルー)
  4. F5で拡張機能開発ホストを開始し、
(x) (親側)
ターミナル プロセス "C:/WINDOWS/System32/WindowsPowerShell/v1.0/powershell.exe -Command npm run watch" が終了コード 1 で終了しました。

>Hello World を実行

Visual Studio Code (子側のポップアップウィンドウ)
コマンド 'Hello World' でエラー (command 'helloworld.helloWorld' not found) が発生しました
(x) (子側)
Activating extension 'undefined_publisher.helloworld' failed: Cannot find module '(プロジェクトディレクトリ)'
Require stack:
  (要求するスタック3つぐらい)

原因

早くも原因を書いてしまうと、プロジェクトのパスに四角括弧 [] が含まれていたからだったんですよねぇ。実際に C:\[test]\helloworld などでやってみると、本当にこうなります。

そういや心当たりというか、似た経験があったんですよね。
なにかというと、 Android Studio でプロジェクトを作成する時にディレクトリを指定しますが、そこで四角括弧が入ってしまうとプロジェクトを作成できないようになっていたと思います。

一方、ビルドはうまくいったかというと、 .\out\ が生成されていないので、残念ながら失敗していたようです。なんか何処にもビルドに失敗した旨のエラーが無いので、解決後に気付きました。
ビルドしたファイルが無ければ、そりゃあ not found しますよねぇ…。

解決方法

まあそりゃあ使えない文字があれば排除する、ってことしか無いんじゃあないですかね。
yo code はコマンドプロンプトから実行したので、コマンドプロンプトで使用できない文字を使わなければ取り敢えず大丈夫でしょう。
実際にエラーが発生したタイミングは VSCode 上なので、多分、ビルド時に低レベルなところで一連の記号が使えないようになっていたのでしょう。ビルダとか、ここら辺は調べてません。

一先ずこの修正でうまくいきました。 Hello World の通知がでてきました。

で、コマンドプロンプトで使用できない文字をちょっと調べてみたんです。こちらの記事↓

によれば、

コマンドプロンプト(cmd.exe)では「&」「(」「)」「[」「]」「{」「}」「^」「=」「;」「!」「'」「+」「,」「`」「~」がファイル名全体をダブルクオートで括らなければならない文字とされておりますので、混同しないように注意してください。

(2022/2/25 参照)

らしいです。四角括弧もこの中に含まれます。四角括弧以外もすべて試したというわけではないですが、多分、低レベルなところだとこれらの文字はファイル名に使用できない仕様になっているので、すべて使えません。なんかどっかに、正規表現とかの兼ね合いで使えないとかって書いてあった気がします。

おまけ

ファイル名に四角括弧を使う癖があるんですよね。というのも、なんというかラベル付けみたいなイメージです。子フォルダを含める分類用のフォルダとプロジェクトフォルダが同じ階層に並ぶときに、四角括弧を付けて分類用であることを示して分かり易くしています。

また、エクスプローラーで名前順にソートをすると

  • [プロジェクト]
    • [なんか凄いプロジェクト達]
    • [ノートの落書きみたいなプロジェクト]
    • うわあああああああ!!!!!!!!!!!!!!
    • サバの石窯
    • マスクメロン

といった具合に、一番上に持ってこさせられて扱いやすいのです。

便利なので、皆さんも試してみて下さい!(やめようね!)
こんなしょうもないエラーを引き起こすなんて、四角括弧マーキングも考えもんですなぁ……。

アンダースコア _ だったら、記号なので上に持ってこさせられるし、使用不可文字ではないので、条件を満たしたうえで謎エラーを引き起こさずに使用可能です。
友人もやってる方法でしたが、なんか C/C++ の違反みたいな
_hogehoge より
[hogehoge] のほうがなんか見た目よくないですか?(妥協しろ)

そういえば (おまけ2)

書き忘れそうになりましたが、記事前半で、

  1. 2つめのコード `yo code` を実行。最後の選択肢で Open with `Code` (なんか registration_protocol_win.cc の102行目がエラー吐いてるけど取り敢えずスルー)
(Markdown で途中から番号を振る方法は無いのか…?)

ってありましたよね。これはよく分からなかったのですが(ぉぃ
code -v でバージョン表示しようとした場合も同じエラーが出てたので、試しに VSCode を再インストールしたら出なくなりました。結局、これといって影響はみられなかったし、今回のビルド失敗と関係があったのかも分からずじまいでした。





(特に意味の無い余白)


以上です!!!!!!!!!!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0