Astro VS Code 官方扩展(astro-vscode)演进史与语言工具链技术全解析
【免费下载链接】astroThe web framework for content-driven websites. ⭐️ Star to support our work!项目地址: https://gitcode.com/GitHub_Trending/as/astro
导读
astro-vscode是 Astro 官方为 Visual Studio Code 提供的.astro文件语言支持扩展,由 Astro 仓库内 packages/language-tools/vscode 目录维护,其当前版本为 2.16.20。本文以该目录下的 CHANGELOG.md 为主线骨架,结合 package.json、README.md 与 src/client.ts 等源码,梳理扩展从 0.4.0 到 2.16.20 的功能演进、底层架构(Volar 化)与可配置项全貌。读完你将清楚理解:Astro 编辑体验由哪些组件构成、各个关键版本引入了什么能力、语法高亮与智能提示的边界在哪里,以及如何按需调优自己的编辑器配置。
一、扩展全景:astr-vscode 由什么组成
从 package.json 可以完整还原这个扩展的"零件清单":
- 发布形态:
name: astro-vscode,displayName: Astro,发布者astro-build,类别为 Programming Languages / Formatters / Linters,许可证 MIT; - 版本与宿主要求:当前
version为2.16.20,engines.vscode声明为^1.101.0(对应 VS Code 2025 年 5 月版本,详见下文"最低版本演进"); - 激活条件:
activationEvents为workspaceContains:astro.config.*,即打开包含astro.config.mjs/astro.config.ts等工作区时扩展才被激活; - 扩展入口:
main指向./dist/node/client.js,构建产物由scripts/build.mjs生成(支持--minify与--watch模式); - 贡献的能力(
contributes):- 代码片段:
languages/astro.code-snippets(作用于astroscope),提供如getStaticPaths、Propsinterface、prerender语句等补全片段(见 2.3.0 版本"Add completions snippets for getStaticPaths, the Props interface and prerender statements"); - TypeScript 服务器插件:注册
astro-ts-plugin-bundle(即 @astrojs/ts-plugin 的打包版),并enableForWorkspaceTypeScriptVersions: true,负责让 TS/JS 文件能正确导入.astro组件; - 命令:
Astro: Reload Projects、Astro: Find File References、Astro: Select TypeScript Version...、Astro: Open TypeScript config,其中astro.findFileReferences还出现在编辑器右键菜单(4_search分组)、文件标题菜单与资源管理器右键菜单; - 断点:
.astro语言被注册为可打断点的语言(0.29.4 起支持断点); - 语言声明:
.astro扩展名映射astro语言 id,语言配置来自languages/astro-language-configuration.json,语言图标使用assets/下的深色/浅色两套 SVG; - TextMate 文法(
syntaxes/*.tmLanguage.json),详见下文第六节。
- 代码片段:
二、能力地图:从 CHANGELOG 归纳的完整功能清单
README.md 给出的 Feature 列表,在 CHANGELOG 中几乎逐条都能找到对应的引入版本,形成"功能 ↔ 发布节点"的对照证据:
| 能力 | 说明 | CHANGELOG 中的关键证据 |
|---|---|---|
| 语法高亮 + 语义高亮 | .astro内 HTML/CSS/TS/MDX 等区域高亮 | 0.7.3 组件名高亮、0.28.2 HTML 属性内数字高亮、2.8.2text.astroscope 应用等 |
| 诊断(Diagnostics) | 错误与警告 | 0.7.2 "Adds diagnostics (errors and warnings)" |
| 补全 IntelliSense | 含自动导入、路径补全、Astro 专属属性 | 0.4.0 导入建议、2.8.4/2.16.19 等持续修复 |
| Emmet 补全 | HTML/CSS 内 | 0.9.1 引入、2.12.7/2.12.8 修正范围 |
| 组件 props 补全 | JSX/TSX、Vue(Composition API)、Svelte | 0.8.5 Fragment/插槽补全、2.0.0-next.8 修复 Vue/Svelte 补全 |
| Code Actions | 快速修复、排序导入 | 2.16.9 修复 Find All References 等 TS 特性 |
| 格式化 | 由 Prettier + prettier-plugin-astro 驱动 | 0.18.0 "Add support for formatting" |
| 符号 / Outline / 面包屑 | Go to Symbol 等 | 依赖 Volar 2.x 提供 |
| Hover 信息 | 类型悬停、HTML 文档 | 0.13.0 "Add HTML hover info" |
| 跳转 | Go to Definition / Type Definition / Implementation / References | 0.13.x、0.27.0 "Add support for Go to References / Go to Implementation" |
| Inlay Hints | TS 类型内联提示 | 0.19.0 引入,0.18.x 曾实验性加入后回滚 |
| 代码折叠 | 折叠区域 | 随 Volar 2.x 提供 |
| Snippets 与文件模板 | 新建文件自动模板 | 0.29.8、2.16.13(模板作用域限定.astro) |
| 文件重命名联动 | 移动/重命名更新 import | 2.15.0 起默认关闭,交由 TS 插件处理 |
| Content Collection Intellisense | MD/MDX/Markdoc 内内容集智能提示 | 2.14.0 引入、2.15.3/2.14.2 等修复 |
2.1 兼容的"外挂"生态:HTML/CSS/TS 设置复用
README 特别指出:Astro 扩展复用 VS Code 的 HTML、CSS 与 TypeScript 设置体系。HTML/CSS 相关设置以html.*/css.*前缀配置,例如关闭悬停文档用"html.hover.documentation": false;TypeScript 设置在较新 VS Code 的 Settings UI 中归入JavaScript and TypeScript (js/ts)分类,但实际 JSON 键仍为typescript.*命名空间,如"typescript.preferences.importModuleSpecifier": "non-relative"。格式化行为则完全交给 Prettier 的各类配置方法(.prettierrc、prettier.config、editorconfig等)控制。
三、架构演进主线:三次决定性跃迁
把 CHANGELOG 纵向摊开,astro-vscode 的演进可以压缩为三个时代:
3.1 拓荒期(0.x,2021 年前后):自研 + 编译器 TSX
早期版本直接依赖自研的astro-languageserver/@astrojs/language-server,功能从零到一快速补齐:
- 0.4.0:导入建议(import suggestions),依赖同步更新;
- 0.6.0:修复组件脚本区 signature help、为脚本区
Astro.*API 提供补全与悬停、修复组件 Go to Definition; - 0.7.2:诊断(错误/警告)上线;
- 0.7.20:支持作为Web Extension运行;
- 0.8.0:所有 Markdown 文件中的 Astro fenced codeblock 语法高亮(对应文法
markdown.astro.tmLanguage.json,注入到text.html.markdown); - 0.13.x:HTML hover、Astro 指令不再产生误报错误、JSX 框架组件
children属性修复; - 0.16.0:移除 Node 12 支持(VS Code 1.56 以下);
- 0.19.0:Inlay Hints支持,最低 VS Code 提升到 1.67.0(2022 年 4 月);
- 0.21.x:移除
<Markdown>组件支持、新增查看当前文档 TSX 输出的调试命令; - 0.24.0:语言服务器改为随扩展打包,提升性能与 Web 端兼容;TypeScript 改由 VS Code/工作区加载(不再内嵌到语言服务器);
- 0.29.0:语言服务器迁移到基于Astro 编译器的新 TSX 输出,props 简写、
is:raw等此前不可用的 Astro 特性得到支持,并完善.astro/.md/.mdx在 TS/JS 中的路径补全与引用查找。
3.2 1.0 时代:正式发布 + TS 插件成型
- 1.0.0为官方正式发布(无新特性,仅结束 pre-release 周期);此间维护重点是@astrojs/ts-plugin的稳定性——修复打包错误、TS 5.0+ 下
.ts导入.astro、类型误包含等问题。
3.3 2.0+ 时代:全面 Volar 化(当前架构基石)
- 2.0.0(Major):扩展与语言服务器彻底切换为 Volar 驱动。CHANGELOG 明确说明,这次换芯带来选区范围(selection ranges)、文档高亮(document highlights)、内联 JavaScript IntelliSense、
Astro.glob的 CodeLens 辅助等大量能力;同时团队"自己需要维护的底层代码大幅减少",得以把精力投向 Astro 专属功能。CHANGELOG 的原话将 Volar 与 Astro 的关系类比为"Vite for editor tooling"(Volar 之于编辑器工具链,如同 Vite 之于构建)。 - 2.1.0:TypeScript 插件同样改为 Volar 驱动。
- 2.7.0:升级到 Volar 2.0(重大后端换代)。
- 2.9.0 / 2.10.0 / 2.11.0:持续跟进 Volar 2.2 与最新版,其中 2.11.0 重点修复 script 标签内 IntelliSense 的近期问题。
- 2.14.x ~ 2.16.x:进入"稳定 + 精修"周期,详见第四节。
四、最新形态(2.16.x)逐项技术拆解
4.1 语法高亮的持续修复:script/style 标签是"重灾区"
.astro单文件内混合 frontmatter、模板表达式、<script>与<style>,边界极易破坏语法高亮。2.16.x 的 Patch 多数集中于此:
- 2.16.20:修复带
lang或type属性的多行<script>/<style>标签的高亮; - 2.16.17:
<style>中出现 CSS@propertyat-rule 时高亮不再错乱,</style>结束标签及后续块能被正确识别; - 2.16.13:修复三元/逻辑运算等表达式内部的 script/style 标签高亮;修复
href属性内补全偶发失效;文件模板作用域限定到.astro; - 2.16.16:MDX 中缩进 Astro 代码块的高亮修复;
- 2.16.15:最低 VS Code 提升至 1.101.0;
- 2.16.14:最低 VS Code 提升至 1.92.0(2024 年 7 月)之后又被 2.16.15 覆盖。
4.2 内容集合 IntelliSense(Content Collection Intellisense)
这是 2.x 中期最重要的功能增量:
- 2.14.0:引入 Content Collection Intellisense;
- 2.14.2:修复 Markdoc 文件(
markdoclanguage id)中内容智能提示失效,及 MDX 中 Astro 代码块高亮; - 2.15.3:修复更新 content schema 后某些场景不重载的问题。
它的开关是双重的:package.json 中astro.content-intellisense设置为true(默认false,标记为 experimental),同时要求项目 Astro 配置中开启对应开关(Astro 4.14+ 的experimental.contentIntellisense)。开启后,语言服务器才会把markdown、mdx、markdoc三类文档纳入文档选择器(见 src/client.ts 中documentSelector的按条件展开逻辑)。
4.3 TS 类型系统协同:Find All References / 语义特性
- 2.16.9(含同名 beta 预发布)两次提及"确保插件 bundle 正确包含,以修复 Find All References 等 TypeScript 特性",根源是
astro-ts-plugin-bundle的打包产物偶尔缺失; - 2.16.8:修复 TypeScript 插件不工作;
- 2.15.5:更新
export const prerender=的自动补全选项,移除已在 Astro 4.14 删掉的import.meta.env; - 2.15.4:改善 TS 5.6 下的性能(仍弱于 5.5 但"可用");
- 2.13.2:修复文件含多字节字符时 script/style 内错误偏移几个字符的问题。
4.4 格式化:Prettier 生态深度绑定
- 格式化由 Prettier +
prettier-plugin-astro驱动(当前package.json依赖prettier ^3.9.0与prettier-plugin-astro ^0.14.1); - 2.8.3:修复
.prettierignore/.editorconfig失效,并在 Prettier 配置加载失败时给出明确 LSP 告警; - 2.8.1 / 2.15.0:内部同步升级
volar-service-prettier; - 2.3.1:无 Prettier 配置时回退到编辑器格式化设置;2.3.3修复特定场景下不尊重 Prettier overrides。
4.5 编辑器体验细节
- 2.5.2:inline 事件(
onclick等)内格式化不再产生非法代码;2.8.5 / 2.5.4修复事件属性插值高亮与错误外溢;2.8.6修复表达式内注释快捷键; - 2.6.3 / 2.1.2:为
transition:persist、transition:name、transition:animate增加补全(对应 Astro 视图过渡特性); - 2.12.0/2.12.1:大幅改进 script/style 标签处理,修复其存在导致文件其它区域 IntelliSense 失效的多处问题,并避免其被错误包含进生成的 TSX;
- 2.13.0:
<style>内支持 SCSS / LESS 智能提示;并修复Astro.glob的 CodeLens。
五、配置项完整说明
package.json中contributes.configuration声明的 Astro 专属设置如下(可直接写入 VS Code 的settings.json):
| 设置键 | 类型 / 默认值 | 作用与注意事项 |
|---|---|---|
astro.language-server.ls-path | string(无默认) | 语言服务器可执行文件路径。多数场景无需配置;需要固定特定语言服务器版本时才使用。若为相对路径,client.ts 会以工作区根目录为基准解析为绝对路径 |
astro.language-server.runtime | string,scope: application | 用于执行语言服务器的 Node 可执行文件路径。通常不需要 |
astro.trace.server | off/messages/verbose,默认off | 追踪 VS Code 与语言服务器之间的 LSP 通信(astro.trace.server曾在 2.0.14 修复失效问题),排查通信问题时很有用 |
astro.content-intellisense | boolean,默认false(experimental) | Markdown / MDX / Markdoc 中的内容集合智能提示;需同时在 Astro 项目配置(Astro 4.14+)开启对应实验项 |
astro.auto-import-cache.enabled | boolean,默认true | 自动导入缓存开关。缓存带来更快的自动导入补全,但某些场景下会导致新建文件无法被自动导入(仓库中记录于 issue #14642);改动需重启生效。对应 2.16.0 引入的新设置 |
astro.updateImportsOnFileMove.enabled | boolean,默认false | 移动/重命名文件时是否由扩展更新 import。默认关闭——因为 Astro TypeScript 插件已能正确完成该工作,多个工具同时改 import 可能损坏文件(对应 2.15.0 的"默认关闭"变更) |
5.1 工作区级语言服务器协商(源码级细节)
src/client.ts 的getConfiguredServerPath展示了一个有趣机制:当工作区内存在自己的 Astro 语言服务器版本(如 monorepo 内安装了不同版本的语言服务器)时,扩展会弹出询问是否使用工作区版本,用户的"Allow / Dismiss / Never in This Workspace"选择被记录在workspaceState。此外astro.typescript.allowArbitraryAttributes(0.19.5 引入)用于放行任意自定义属性,tsdk由 VS Code 提供(getTsdk),TypeScript 不再随语言服务器打包。
六、语法高亮工程与测试佐证
syntaxes/目录是文法的实现层:
- astro.tmLanguage.json(源 YAML 为 astro.tmLanguage.src.yaml):
scopeName: source.astro,通过embeddedLanguages声明了 HTML、CSS(含 less/scss/sass/stylus)、JS/TS、JSON、TSX、meta.tag.*等多区域映射,并显式列出unbalancedBracketScopes以兼容 VS Code 1.70 之后的不平衡括号行为(见 0.23.0 相关修复); - markdown.astro.tmLanguage.json:注入
text.html.markdown与source.astro,负责 Markdown 内 Astro 代码块高亮; - mdx.astro.tmLanguage.json:注入
source.mdx,负责 MDX 内 Astro 片段高亮(0.8.0 / 2.11.0 的"astrotagged code block inside MDX"即指此)。
文法由scripts/build-grammar.mjs从 YAML 构建(pnpm build:grammar),并通过vscode-tmgrammar-test做快照式回归测试:package.json 中test:grammar脚本先生成文法再运行test/grammar/test.mjs,update-grammar-snapshots用于更新快照;除此之外还有基于vscode-test的 test/extension.test.mts 集成测试。这条流水线解释了为何大量 Patch 都是围绕高亮边界反复打磨——任何对 YAML 文法的改动都可通过快照对比防止回归。
七、最低支持版本与"发布事故"史
CHANGELOG 忠实记录了工程的版本策略与发布运维细节,可作为了解 VS Code 兼容性演进的参考:
- VS Code engine 下限:约 1.56(0.16.0 移除 Node 12 隐含)→ 1.67.0(0.19.0 引入 Inlay Hints)→ 1.92.0(2.16.14)→1.101.0(2.16.15,2025 年 5 月版);
- OpenVSX 发布:0.9.2/0.9.3 开始启用 OpenVSX 发布通道,其后多次围绕 OpenVSX 修复发布问题(2.10.1/2.10.2、2.15.2),
package.json的 devDependencies 也包含ovsx与@vscode/vsce; - 发布运维插曲:从 2.12.2~2.12.6、2.16.3/2.16.4/2.16.5、2.16.10/2.16.11 等多轮"Try publishing / Fixes publishing / Retry failed publish"可见自动发布流水线在 2024-2025 年经历了多次波折,这些记录本身对理解 monorepo 发布机制有参考价值。
八、Inlay Hints 排障(来自官方 README)
扩展虽支持 Inlay Hints,但只支持 TypeScript 提供的 inlay hints,且 TS 的 inlay hints 默认关闭,需通过typescript.inlayHints命名空间开启。例如显示参数名提示:
{ "typescript.inlayHints.parameterNames.enabled": "all" }图形界面路径为TypeScript > Inlay Hints > Parameter Names。注意必须改 TypeScript(而非 JavaScript)分组——Astro 的脚本语言是 TypeScript-only。
附:版本迭代速查(0.4.0 → 2.16.20 关键内容)
以下为 CHANGELOG 中各版本的压缩记录(含重复发布的修复;beta/next 预发布合并叙述):
| 版本 | 核心内容 |
|---|---|
| 2.16.20 | 修复带lang/type的多行<script>/<style>高亮 |
| 2.16.19 | 修复扩展先加载时 Vue 模板自动导入补全缺失 |
| 2.16.18 | 依赖js-yaml升级至 4.3.0 |
| 2.16.17 | 修复<style>内 CSS@property破坏高亮与结束标签识别 |
| 2.16.16 | 修复 MDX 缩进 Astro 代码块高亮 |
| 2.16.15 | 最低 VS Code 提升到 1.101.0(2025-05) |
| 2.16.14 | 最低 VS Code 提升到 1.92.0(2024-07) |
| 2.16.13 | 表达式内 script/style 高亮、href属性补全、模板限定.astro |
| 2.16.12 | Volar services 更新至 0.0.70,消除 yaml-language-server 的 lodash 漏洞告警 |
| 2.16.11 / 2.16.10 | 修复发布失败 |
| 2.16.9 | 修复 Find All References 等 TS 特性、frontmatter/script 结尾类型构造导致高亮失效、小写 style/script 开头组件名高亮 |
| 2.16.8 | 修复 TypeScript 插件不工作 |
| 2.16.7 | 修复扩展向 VS Code 询问了错误版本 |
| 2.16.6 | 修复 Find All References(bundle 包含)、frontmatter/script 结尾高亮 |
| 2.16.5 ~ 2.16.2 | 发布重试与修复(borked publish 等) |
| 2.16.1 | 修复仓库迁移后的文档链接;修正 Content-intellisense 设置描述指向错误的配置文件项 |
| 2.16.0 | 新增astro.auto-import-cache.enabled(自动导入缓存开关) |
| 2.15.5 | prerender补全移除import.meta.env;升级 Volar |
| 2.15.4 | 改善 TS 5.6 性能 |
| 2.15.3 | 修复 content schema 更新后不重载 |
| 2.15.2 | 修复 OpenVSX 发布 |
| 2.15.1 | 修复发布 |
| 2.15.0 | 文件重命名时处理 import 的开关默认关闭;修复部分场景格式化不生效 |
| 2.14.2 | MDX 内 Astro 代码块高亮、Markdoc 内容提示修复 |
| 2.14.1 | 升级到 Volar 稳定版 2.4.0 |
| 2.14.0 | Content Collection Intellisense 支持 |
| 2.13.4 / 2.13.3 | 内部依赖更新 |
| 2.13.2 | 修复多字节字符导致 script/style 内错误偏移 |
| 2.13.1 | 回滚可能影响函数返回类型推断的 top-level return 变更 |
| 2.13.0 | <style>内SCSS/LESS 智能提示;Astro.globCodeLens 修复 |
| 2.12.8 | 回滚 Emmet 补全改动(特定场景生成错误补全) |
| 2.12.7 | 修复 script/style 内错误误报/漏报回归、Emmet 补全越界 |
| 2.12.1~2.12.6 | script/style 标签不再被错误包含进 TSX(2.12.1)+ 多轮发布重试 |
| 2.12.0 | 大幅改进 script/style 标签处理,修复其对文件其它区域 IntelliSense 的破坏 |
| 2.11.0 | 升级 Volar(修复 script 内 IntelliSense);MDX 内astro代码块高亮 |
| 2.10.0 ~ 2.10.2 | 语言服务器升级到最新 Volar;修复 OpenVSX 发布 |
| 2.9.1 | 修复特定场景下 code actions 损坏 Vue/Svelte 文件 |
| 2.9.0 | 语言服务器升级至 Volar 2.2 |
| 2.8.6 | 修复表达式内注释快捷键 |
| 2.8.5 | 修复 HTML 事件属性(onload 等)插值高亮 |
| 2.8.4 | Volar 更新(修缓存问题);移除重复 Prettier 缺失通知;修复 script 内自动导入文本更新与 Astro 属性补全 |
| 2.8.3 | 修复.prettierignore/.editorconfig,改进 Prettier 错误日志 |
| 2.8.2 | 修复 Organize Imports;text.astroscope 应用于顶层文本节点 |
| 2.8.1 | HTML 实体(<)高亮对齐 HTML;volar-service-prettier重构 |
| 2.8.0 | 最新 Volar;修复缺 Prettier 导致语言服务器崩溃等 |
| 2.7.7 | 改善is:raw、set:html等 Astro 专属属性描述 |
| 2.7.5 | Volar services 更新(typescript.validate设置生效);compiler 位置 → LSP 范围映射修复 |
| 2.7.4 | 修复.ts(x)语义高亮、Windows 下 Svelte/Vue 集成 |
| 2.7.3 | 修复特定包导入 |
| 2.7.1 | 修复 script 标签内 TypeScript 不工作 |
| 2.7.0 | 升级至Volar 2.0(重大后端更换,需反馈回归) |
| 2.6.3 | transition:persist补全 |
| 2.6.2 | 修复 fallback types 在某些上下文(如扩展内)未包含 |
| 2.6.1 | 修复安装了 React 类型时、Astro < 4.0.8 的 Astro 类型问题 |
| 2.6.0 | 更精确的 JSX 框架类型(内部重构,对大多数用户透明) |
| 2.5.6 | 模板字符串属性内转义插值的高亮 |
| 2.5.4 | inline 事件属性错误外溢、标签内括号自动闭合修复 |
| 2.5.3 | 畸形文件不再导致崩溃;define:vars+type=module误报修复;复杂 monorepo 中 Astro 检测改进 |
| 2.5.2 | inline 事件格式化安全性;TS 5.3 支持;getStaticPaths推断 union 自动展平 |
| 2.5.1 | 编辑器集成加载失败原因完整展示 |
| 2.5.0 | Astro.self智能提示;getStaticPaths的 props 自动推断 |
| 2.4.1 | JSON script 标签错误、无 prettier-plugin-astro 时插件使用 |
| 2.4.0 / 2.3.4 | 依赖更新;嵌套 script/style 标签 IntelliSense |
| 2.3.3 / 2.3.1 | Prettier overrides;编辑器格式化设置回退;TSServer 崩溃修复 |
| 2.3.0 | getStaticPaths/Props/prerender补全片段;astro:*补全优先级提升 |
| 2.1.4 | 格式化修复 |
| 2.1.3 | Volar 更新(node_modules内 Astro 文件解析等) |
| 2.1.2 | 使用配置的 tsdk;transition:name/transition:animate属性 |
| 2.1.0 | TS 插件 Volar 化;type="module"的 script 独立作用域;Prettier 3 支持;扩展体积显著减小 |
| 2.0.18 ~ 2.0.13 | 打包与插件修复(404.astro 崩溃、astro.trace.server、Astro.props解构误报等) |
| 2.0.0 | 全面 Volar 化:选区范围、文档高亮、内联 JS IntelliSense、Astro.globCodeLens 等 |
| 1.0.x | 正式发布后稳定性修复(TS 5.0+.astro导入、打包、Prettier 插件升级) |
| 0.29.x | 编译器驱动的新 TSX、文件引用查找、路径补全、.astro导入改进、文件模板 |
| 0.28.x | 重命名/删除/移动的误报修复、未保存文件(Astro/Svelte/Vue)取码、.md/.mdx/.html导入补全 |
| 0.27.0 | Go to References / File References / Go to Implementation |
| 0.26.x / 0.24.x | 语言服务器更新、Web 端打包(0.24.0)、TS 改为外部加载 |
| 0.23.x | 语言服务器跟随发布、VS Code 1.70 不平衡括号回归 |
| 0.22.0 | 新增语言服务器路径与运行时设置 |
| 0.21.x | 移除<Markdown>组件、TSX 输出调试命令 |
| 0.20.x | 配置变更通知、特殊字符组件名高亮 |
| 0.19.x | Inlay Hints(0.19.0)、任意属性设置、语法高亮/自动缩进/自动闭合优化 |
| 0.18.x | 格式化支持(0.18.0)、LSP 升级与 Inlay Hints |
| 0.16.x | 移除 Node 12(VS Code < 1.56) |
| 0.13.x | HTML hover、Astro 指令修复、JSX children 修复 |
| 0.12.0 | 语言服务器重构、多 style 标签补全 |
| 0.11.0 / 0.9.x | 生产 bug 修复;OpenVSX 发布启用;Emmet 支持 |
| 0.8.x | 多版本语法高亮修复、引用自带的 astro.d.ts 改为使用 Astro 自带类型 |
| 0.7.x | Web Extension(0.7.20)、@前缀属性、组件名高亮(0.7.3)、诊断(0.7.2) |
| 0.6.x / 0.5.x | 组件脚本区签名/补全/hover、Go to Definition 修复 |
| 0.4.x | 导入建议、<Markdown>组件支持、Marketplace banner 更新 |
结语
从 CHANGELOG 看,astro-vscode 的关键并非某个单一"杀手功能",而是围绕.astro混合语法不断收敛边界问题的工程积累:从自研语言服务器到 Volar 化,从编译器 TSX 到内容集合 IntelliSense,每一次架构跃迁都服务于"让前端组件里混写 HTML/CSS/TS/MDX 时不失语"。若想继续深入,可阅读语言服务器侧实现 packages/language-tools/language-server/src、TS 插件侧实现 packages/language-tools/ts-plugin/src 以及独立的 CLI 类型检查工具 astro-check,这三者与本文的 VS Code 扩展共同构成 Astro 完整的编辑期语言工具链。
【免费下载链接】astroThe web framework for content-driven websites. ⭐️ Star to support our work!项目地址: https://gitcode.com/GitHub_Trending/as/astro
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考