atom代码补全需启用autocomplete-plus并安装对应语言provider(如atom-ternjs),右下角语法必须正确识别为javascript等,否则console.、arr.等属性补全不生效。

autocomplete-plus 必须启用,但它本身不提供任何属性补全
Atom 的自动补全能力不是“开个开关就出来属性”,autocomplete-plus 只是调度器——它负责弹窗、排序、确认,但不生成 document.getElementById 这类建议。真正吐出属性、方法、事件名的,是绑定在当前语法(grammar)上的 provider 插件。
常见错误现象:console. 没下拉、arr. 不提示 map 或 filter、event. 不列 preventDefault —— 这些都不是 autocomplete-plus 没开,而是 provider 缺失或没激活。
- 右下角状态栏必须显示 JavaScript(不是 Plain Text、Text、JavaScript (JSX) 或 Babel JavaScript)
- 文件必须保存为
.js后缀,否则language-javascript不加载,provider 就不会挂载 - 确保
autocomplete-plus在 Settings → Packages 中是蓝色 Enabled 状态 - 禁用所有名字含
autocomplete-atom-api、ternjs(非atom-ternjs)的插件,它们会覆盖getSuggestions导致控制台报Uncaught TypeError: Cannot read property 'getSuggestions' of undefined
JavaScript 属性补全靠 atom-ternjs,不是 autocomplete-javascript
autocomplete-javascript 只补全局变量、内置构造函数(Date、Array)和历史词,它不解析 AST,无法知道 fetch() 返回 Promise、document 有 querySelector 方法。要补 DOM 属性、ES6+ API、jQuery 方法、甚至你项目里 import 的模块导出,得用 atom-ternjs。
- 安装命令:
apm install atom-ternjs,依赖系统已装node和git - 首次使用需配置项目:菜单 → Packages → Atom Ternjs → Configure project → Save & Restart Server,生成
.tern-project - 在设置页勾选
ecma6、browser、jquery等支持项(默认不全开) - 对
import/export补全弱?换ide-typescript+atom-ide-ui,它走 tsserver,能推导类型和成员,但内存占用高、启动慢
HTML 标签和属性补全别搜 auto-complete-html
直接搜 auto-complete-html 在 apm 上基本无结果——这不是一个有效插件名。HTML 补全实际由两套机制承担:Emmet 负责缩写展开(div.container#app → <div class="container" id="app"></div>),而标签/属性级补全靠 autocomplete-html(官方维护)或 html-tag-auto-complete(更轻量)。
- 确认 Emmet 已启用:Settings → Packages → emmet → 勾选
Enable Emmet,且Supported Grammars包含text.html.basic - 输入
<di> 后按 <code>Tab没反应?检查右下角是否为HTML,不是Plain Text - 想补
<input type="...">的type值(email、number)?装autocomplete-html,它支持标准属性枚举 - 需要闭合标签自动补全(
<div> → <code><div></div>并把光标放中间)?装atom-double-tag,比html-tag-auto-complete更精准Python、PHP 等语言的属性补全有硬限制
像
os.path.补join、dirname这类模块级补全,autocomplete-python或atom-autocomplete-php能做到;但补你自己定义的类实例属性(user.name)、函数参数(def foo(x: str):里x.提示字符串方法),它们做不到——这是设计使然,不是配置问题。- Python 要参数/变量级补全:必须配
ide-python+python-language-server(pip install python-language-server),状态栏出现连接图标才算生效 - PHP 补自定义类方法失败?单装
atom-autocomplete-php不够,得装php-integrator-base(AST 解析)+php-integrator-reflection(Composer 类加载),且 PHP CLI 路径要填对(which php输出为准) - 所有 provider 都依赖 scope 精确匹配:
source.js对 JS、source.python对 Python、text.html.basic对 HTML——写错 scope 字符串,补全就静默失效
补全链里任一环断掉——插件未启用、grammar 错误、scope 不匹配、provider 冲突——都会导致属性不出现。最常被忽略的是右下角语法名和重启 Atom 这两步,Windows/macOS 后台进程不退出,新插件根本没加载。
- Python 要参数/变量级补全:必须配











