Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intellisense for components are not available #2586

Open
kongku opened this issue Mar 16, 2024 · 1 comment
Open

Intellisense for components are not available #2586

kongku opened this issue Mar 16, 2024 · 1 comment

Comments

@kongku
Copy link

kongku commented Mar 16, 2024

Environment

  • Operating System: Windows_NT
  • Node Version: v20.10.0
  • Nuxt Version: 3.10.3
  • CLI Version: 3.10.1
  • Nitro Version: 2.9.3
  • Package Manager: pnpm@8.15.1
  • Builder: -
  • User Config: modules
  • Runtime Modules: @nuxt/content@2.12.1
  • Build Modules: -

Reproduction

no

Describe the bug

With the exception of the ContentRendererMarkdown component, all components are written using the options style and defineComponent function without lang="ts", and the relevant declares in the components.d.ts file in the .nuxt directory are as follows, which loads not a d.ts file, but a .vue file, causing vscode's intellisense to fail on these components。
image
image
image

Looking at the source code, there is a lang="ts". I tried to compile the source code, same thing. Is this a bug in @nuxt/module-builder?
image

So I need to add the declarations for these components myself。

declare module 'vue' {
  export interface GlobalComponents {
    ContentDoc: typeof import('./node_modules/@nuxt/content/dist/runtime/components/ContentDoc')['default']
    ContentList: typeof import('./node_modules/@nuxt/content/dist/runtime/components/ContentList')['default']
    ContentNavigation: typeof import('./node_modules/@nuxt/content/dist/runtime/components/ContentNavigation')['default']
    ContentQuery: typeof import('./node_modules/@nuxt/content/dist/runtime/components/ContentQuery')['default']
    ContentRenderer: typeof import('./node_modules/@nuxt/content/dist/runtime/components/ContentRenderer')['default']
    ContentSlot: typeof import('./node_modules/@nuxt/content/dist/runtime/components/ContentSlot')['default']
    DocumentDrivenEmpty: typeof import('./node_modules/@nuxt/content/dist/runtime/components/DocumentDrivenEmpty')['default']
    DocumentDrivenNotFound: typeof import('./node_modules/@nuxt/content/dist/runtime/components/DocumentDrivenNotFound')['default']
    Markdown: typeof import('./node_modules/@nuxt/content/dist/runtime/components/Markdown')['default']
  }
}
export {}

Additional context

No response

Logs

No response

@kongku kongku changed the title Wrong name in component declaration file invalidates component's intellisense Intellisense for components are not available Mar 16, 2024
@Coiggahou2002
Copy link
Contributor

Normally things may happens like this (let's say your project directory is 'src'):

  1. The TypeScript language server in your VS Code loads the src/tsconfig.json
  2. src/tsconfig.json extends src/.nuxt/tsconfig.json
  3. src/.nuxt/tsconfig.json includes src/.nuxt/nuxt.d.ts
  4. src/.nuxt/nuxt.d.ts references the src/.nuxt/components.d.ts
  5. src/.nuxt/components.d.ts who declares an interface _GlobalComponents {...} which holds the auto-imported components including <ContentDoc/>
  6. There should be something like 'ContentDoc': typeof import("../node_modules/@nuxt/content/dist/runtime/components/ContentDoc.vue")['default'] inside components.d.ts
  7. Also, there should be a ContentDoc.vue.d.ts who goes along with the ContentDoc.vue in node_modules/@nuxt/content/dist/runtime/components/ which will be imported when the .vue file being imported
stateDiagram-v2
  A: src/tsconfig.json
  B: src/.nuxt/tsconfig.json
  C: src/.nuxt/nuxt.d.ts
  D: src/.nuxt/components.d.ts
  A -->B
  B --> C
  C --> D
Loading

In conclusion, I don't think this is a bug related to Nuxt Content or its build system. It's more likely related to the Vue Plugin you used in your VS Code or the TypeScript language server in your VS Code. If every steps above looks good, please have a try to restart your TS server.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants