## 背景 `app/components/Header1.vue` ```html <script setup lang="ts"> defineProps<{ text: string; }>(); </script> <template> <h1 v-text="text"></h1> </template> ``` がある状態で `app/pages/top.vue` ```ts <template> <Header1 text="hello!" /> </template> ``` の `<Header1` で `Go to Definition` を実行すると、`Header1.vue` にジャンプするようになっていた。以前は `components.d.ts` にジャンプしていたはずなので、いつからこうなっているかを調査する。 ## 調査対象 [[Vue Language Tools]]に関連する以下2つ。 - [[Neovim]] ([[@vue language-server|@vue/language-server]]) - [[VSCode]] ([[Vue - Official (VSCode)|Vue - Official]]) ## 結論 2026/01/11 時点で最新バージョンなら、[[Neovim]]でも[[VSCode]]でも対応している。 具体的な対応バージョンは以下。 - `v3.0.0 <= version < v3.1.3` - `v3.1.6 >= version` ## v3.2.2での挙動 [[Neovim]]、[[VSCode]]どちらも直接 `.vue` ファイルに移動する。 ## サポート状況のタイムライン ### 初サポート バージョンは不明だが v3.1.3 より前であることは明らか。 ### v3.0.0でサポートされた `.d.ts` ではなく `.vue` にジャンプする対応がされた。 > - Global components now jump to their source files rather than type definitions. (PR: [#5221](https://github.com/vuejs/language-tools/pull/5221)) > > *[Releases · vuejs/language-tools](https://github.com/vuejs/language-tools/releases?page=3)* ### v3.1.3で一度サポート外になった リリースノートに削除した旨が記載されている。 > We removed the builtin support for skipping declaration files when triggering Go to Definition on auto imported components in template. Please use [https://github.com/KazariEX/dxup/tree/main/packages/unimport](https://github.com/KazariEX/dxup/tree/main/packages/unimport) instead. > > *[Release v3.1.3 · vuejs/language-tools](https://github.com/vuejs/language-tools/releases/tag/v3.1.3)* `#5221` の対応がリバートされたらしい。 <div class="link-card-v2"> <div class="link-card-v2-site"> <img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" /> <span class="link-card-v2-site-name">GitHub</span> </div> <div class="link-card-v2-title"> refactor(typescript-plugin): remove go to definition trick for auto imported components by KazariEX · Pull Request #5733 · vuejs/language-tools </div> <div class="link-card-v2-content"> Revert #5221.Please use https://github.com/KazariEX/dxup/tree/main/packages/unimport instead. </div> <img class="link-card-v2-image" src="https://opengraph.githubassets.com/4c273f326aa4c37ffde6db6e5d9b85df4bd338b927c89e4b2ba8357dcdbdb92b/vuejs/language-tools/pull/5733" /> <a href="https://github.com/vuejs/language-tools/pull/5733"></a> </div> ### v3.1.6で再びサポートされた v3.1.3でリリースされた『`#5221` のリバート』がさらにリバートされた。 > - Revert "refactor(typescript-plugin): remove go to definition trick for auto imported components ([#5733](https://github.com/vuejs/language-tools/pull/5733))" > > *[Release v3.1.6 · vuejs/language-tools](https://github.com/vuejs/language-tools/releases/tag/v3.1.6)* ## 参考 - [Nuxt auto importの挙動変化](https://gemini.google.com/share/cda2aa72c8e8)