VS Code Extension の contributes.typescriptServerPlugins
Vue の VS Code Extension で使われてる
TypeScript Language Server が .vue を処理できるようにする plugin を読み込んでる
利用可能なオプション
name, enableForWorkspaceTypeScriptVersionsの2つのオプションが指定できる (ように見える)
公式の JSON スキーマもある
実はlanguages, configNamespaceオプションも指定できる!!!
VS Code 公式ドキュメントに記載がないのは、多分追記するの忘れてるだけ
mizdra.icon VS Code のドキュメントへの contribution チャンスかも?
configNamespaceは何だろ
extension configuration (.vscode/settings.json などに書いてるアレ) の namespace (typescript.suggest.autoImportsでいうところのtypescriptの部分) を指定するオプションらしい
TypeScript Language Server と対話してる (VS Code 組み込みの) Extension が、この extension configuration を読んでるらしい
で、読んだ値を TypeScript Language Server に渡してる?
多分こういうことだろう
configNamespace === "typescript"とすると、TypeScript Language Service Plugin にtypescript.suggest.autoImportsが渡る
configNamespace === "vue"とすると、TypeScript Language Service Plugin にvue.suggest.autoImportsが渡る
vue ではconfigNamespace === "typescript"にしてるっぽい
しかし VS Code Extension から TypeScript Language Server の振る舞いを変えられるの、かなり hacky な感じがする
これどういう経緯で実装されたんだろう
Keep in mind though this is not an official API. We added it for the angular folks to experiment with and it has not been actively maintained and may be changed/removed in the future
Angular 用に用意された API なの!
「not an official API」シブい