Atom 无法真正支持 Vue 3 的 script setup 语法补全,因 language-vue 插件已于 2021 年停止更新,不解析 defineProps、ref 等宏,无 AST 支持与 TextMate scope 注册,所有“补全”仅源于符号记忆,非语义推导。

Atom 无法真正支持 Vue 3 的 script setup 语法补全——这不是配置问题,而是 language-vue 插件已停止更新,对 defineProps、ref、defineEmits 等零解析能力,连基础跳转和 ESLint 都失效。强行配置只能做到“看着像有补全”,实际语义层完全缺失。
为什么装了插件还是没 defineProps 补全
language-vue 插件最后一次更新在 2021 年,不识别 script setup 的 AST 结构,也不注册对应 TextMate scope(比如 support.function.vue)。autocomplete-plus 没有 provider 提供这层建议,自然不会弹出 defineProps。你看到的任何“补全”大概率来自 autocomplete-plus 自带的符号记忆(比如之前手动输过),不是语义推导。
- 打开
Ctrl+Shift+P→ 输入Editor: Log Cursor Scope,光标停在defineProps上,看输出里有没有support.function.vue或类似 scope —— 基本没有 - 装了
atom-ide-vue也无用,它依赖的vue-language-server已不再维护,且 Atom 的 ide-ui 生态在 2022 年后全面失效 - 试图用
autocomplete-javascript或atom-ternjs替代?它们根本不认识defineProps是 Vue 特有宏,会当成未声明变量报错
customFileTypes 配置能解决高亮但救不了补全
config.cson 中加 "source.ts": ["vue"] 只能让 <script lang="ts"></script> 区域启用 TypeScript 高亮和基础符号补全(如 const、ref()),但 ref 本身仍无类型提示,defineProps 不进补全列表,props.xxx 也无法 Ctrl+Click 跳转。
Element Plus Vue3 桌面组件库。在开发 Vue 3.x 页面时调用,使用 Element Plus 组件(如 el-button、el-input、el-form、el-table 等)。
- 必须配:在
~/.atom/config.cson的core:下写入customFileTypes: {"source.ts": ["vue"], "source.js": ["vue"], "source.jsx": ["vue"]} - 必须重启 Atom —— 不重启,
lang="ts"仍被当普通 JS 解析 - 别指望
language-typescript插件能补上缺口:它只管 TS 语法,不处理 Vue 宏的类型展开逻辑
唯一可操作的“补全”是手写 snippet
如果你只需要快速输入 defineProps 或 const { a, b } = defineProps 这类固定结构,可以用 snippets.cson 写静态片段,但它不感知上下文、不校验类型、不随 props 变化自动更新。
- 路径必须是
~/.atom/snippets.cson(Windows 是%USERPROFILE%\.atom\snippets.cson) - scope 必须写成
source.js.vue或source.ts.vue(不是text.html.vue,那是 template 区域) - 示例片段:
'.source.js.vue': 'defineProps': 'prefix': 'dp' 'body': "const { $1 } = defineProps()" - 改完后按
Ctrl+Alt+R重载窗口,否则不生效
复杂点在于:所有这些操作都绕不开一个事实——Atom 的 Vue 支持停留在 Vue 2 Options API 时代。哪怕你把 snippets、customFileTypes、provider 全配齐,script setup 的响应式绑定、类型推导、组件通信语义依然不可见。这不是调参能解决的,是底层解析器已死亡。真要开发 Vue 3,换编辑器是唯一可靠路径。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










