## 背景
`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)