atom代码提示需语法识别、补全引擎、语言服务三者协同:autocomplete-plus为必装调度壳,真正补全依赖匹配的provider(如atom-ternjs或ide-typescript)、正确grammar(如source.js)及作用域配置,缺一不可。

Atom 的代码提示不是装一个插件就完事,而是语法识别、补全引擎、语言服务三者必须严丝合缝——选错 provider、配错 scope、漏掉依赖,补全就静默失效。
autocomplete-plus 是必装但不够用的“壳”
它只负责弹窗、排序和快捷键响应,不分析语法、不推导类型、不读 tsconfig.json 或 composer.json。装了它却没提示,不是它坏了,是没接上真正的“大脑”。
- 确认状态栏右下角显示的 grammar 是
source.js(不是JavaScript (JSX)),否则 provider 不触发 - Settings → Packages →
autocomplete-plus必须为 Enabled,且重启 Atom(GUI 启动的进程常不继承终端 PATH) - 默认禁用
core.excludeVcsIgnoredPaths以外的路径,node_modules和__pycache__里文件不会补全
JavaScript/TypeScript 该用 atom-ternjs 还是 ide-typescript?
关键看项目结构:老式 CommonJS + Webpack 别名?用 atom-ternjs;ESM + Vite/Next.js/pnpm monorepo?必须切 ide-typescript。
-
atom-ternjs需手动配置.tern-project或jsconfig.json,否则退化为符号级匹配;对import('./foo')或alias: { "@": "./src" }支持弱 -
ide-typescript依赖本地tsserver,要求项目含node_modules/typescript或全局安装;支持跳转定义、签名帮助、类型悬停,但内存占用高 - 两者不能共存——
atom-ternjs和ide-typescript注册的 scope 冲突,后启用的会覆盖前者的补全入口
PHP 补全必须三件套齐活
单装 autocomplete-php 或 atom-autocomplete-php 都不行,它们各自缺关键解析能力,且互斥。
-
atom-autocomplete-php依赖php-integrator-base(AST 解析)+php-integrator-reflection(类加载),三者缺一不可 - 系统
php -v必须可用,插件设置里的 PHP CLI 路径要填which php输出的绝对路径 - PHP ≥ 8.1 时若报
ReflectionException,说明php-integrator-reflection未更新到 v3.0+ 分支 - 项目根目录有空
composer.json会被误判为 Laravel,触发冗余分析拖慢响应
别被“自动生效”骗了:后缀绑定和 scope 才是命门
Atom 不认识 .tsx、.jsx、.env 这些后缀,除非你手动告诉它——语法包和 provider 插件都按 scope 工作,不是按文件名。
- 装了
language-typescript但.tsx文件仍是 Plain Text?在config.cson加:"source.tsx": ["tsx"] -
language-babel对.jsx支持有限,需强制绑定:"*.jsx": "source.js.jsx" - 自定义后缀如
.conf想用 INI 高亮,必须写"source.ini": ["conf"],写成"ini": ["conf"]Atom 直接忽略 -
config.cson缩进必须是两个空格,多一个空格或少一个引号,整个配置失效
真正卡住补全的,往往不是插件没装,而是 scope 没对上、PATH 没继承、config.cson 格式错了——这些地方没报错,但补全就是不动,得一个个去核对右下角 grammar 和插件设置里的 scope 列表。











