A VS Code extension that adds Go to Definition support for Astro/Vue components used in .mdx files.
Features
- In an
.mdxfile, place cursor on component tag like<Projects />and run Go to Definition (F12). - In an
.mdxfile, typeimportand get component import completion suggestions. Selecting one insertsimport ComponentName from '...';.- Prioritizes components under
src/componentsandcomponents. - Uses
@/import paths when target file is under<workspace>/src.
- Prioritizes components under
- In an
.mdxcomponent tag, typing a prop prefix (for example<Projects a) suggests matching props from imported.astro/.vuecomponent definitions.- Already-used props in the same tag are filtered out from suggestions.
- Completion details show prop type when it can be inferred from component definitions.
- In an
.mdxfile, top-level ESM lines get semantic highlighting for common patterns:import Component from 'path'import { A, B as C } from 'path'import type { A, B as C } from 'path'import * as NS from 'path'export const X = Yexport { A, B as C } from 'path'export type { A, B as C } from 'path'export * from 'path'export * as NS from 'path'- Multiline brace forms, e.g.
import { A, \n B } from 'path'
- In an
.mdxfile, place cursor on Astro component props like<Projects title="x" />and run Go to Definition (F12) to jump to thePropsdeclaration in the.astrofile. - In an
.mdxfile, using a non-existent prop on imported Astro/Vue components shows a diagnostic error. - Resolves default imports such as:
- Relative paths:
../../components/Projects.vue - Aliased paths:
@/components/...(tries<workspace>/srcfirst, then workspace root)
- Relative paths:
- Supports target file extensions:
.astro,.vue,.tsx,.ts,.jsx,.js
- For
.astrofiles, prop definition jump supports:interface Props { ... }type Props = { ... }
- For
.vuefiles, prop definition jump supports:defineProps<{ ... }>()defineProps({ ... })props: { ... }(Options API)
Quick Start (Local)
- Open this folder in VS Code
- Install deps:
pnpm install
- Build:
pnpm run build
- Press
F5to launch Extension Development Host. - Open an
.mdxfile in the host window and test on component tags.
Publish Checklist
- Replace placeholders in
package.json:repository.urlbugs.urlhomepage
- Create a publisher in Visual Studio Marketplace.
- Create an Azure DevOps PAT with Marketplace publish permission.
- Add repository secret in GitHub:
VSCE_PAT. - Push to
mainto trigger auto publish (workflow will auto bump patch version).
Manual publish (optional):
npx @vscode/vsce login <publisher>
npx @vscode/vsce publish
You can also package first:
npx @vscode/vsce package
Notes
- This extension is intentionally lightweight and regex-based.
- It currently focuses on default imports + PascalCase component tags.
- Named imports and tsconfig path mappings can be added in later versions.