# TypeScript Plugin Deep Dive (`@volar/vue-typescript`, `@vue/language-core`) > [Docs Index](README.md) • [Repo README](../README.md) • [Plugin Authoring](plugin-authoring.md) • [Configuration & Projects](configuration-and-projects.md) • [Testing & CI](testing-and-ci.md) Volar’s superpowers come from its tight integration with TypeScript. This guide explains how the Vue/TypeScript bridge works, what hooks you can customize, and how to extend or troubleshoot it. ## Architecture Overview ``` tsserver (TypeScript LS) ▲ │ ts plugin: @volar/vue-typescript │ - understands .vue files via language plugins │ - surfaces template types to TS │ - provides extra diagnostics/completions │ Volar Language Service ▲ │ @vue/language-core (compiles SFC) │ @volar/typescript (bridge utilities) ``` ### Key Packages - `@vue/language-core`: Parses `.vue` SFCs, generates script blocks, template AST, source maps. - `@volar/vue-language-core`: Default Volar language plugin for `.vue`. - `@volar/vue-typescript`: TypeScript plugin that plugs into `tsserver` to expose `.vue` virtual files. - `@volar/typescript`: Shared helpers for creating TS hosts, merging language + TS snapshots. ## Enabling the TypeScript Plugin ### VS Code / Volar Extension Handled automatically when you install the official Volar extension. To customize: ```json { "volar.takeOverMode.enabled": true, "volar.tsPlugin": true } ``` ### Neovim / Other Editors Point the language server at the bundled TS plugin: ```lua require('lspconfig').volar.setup{ init_options = { typescript = { tsdk = '/path/to/node_modules/typescript/lib', }, }, } ``` ### `tsconfig.json` Ensure `.vue` files are included and `allowJs` or `allowNonTsExtensions` is enabled: ```json { "compilerOptions": { "allowJs": true, "allowNonTsExtensions": true, "types": ["vue"] }, "include": ["src/**/*.vue", "src/**/*.ts"] } ``` ## Plugin Internals ### Language Plugin (`@volar/vue-language-core`) Handles: - Parsing `