linter-ui-default必须手动安装,它负责错误可视化渲染,而linter仅提供API和检查逻辑;若未启用或被冲突插件压制,将导致错误不显示。

linter-ui-default 必须手动装,不是 linter 自带的
Atom 的 linter 包只提供检查逻辑和 API,不带任何界面——错误不会自动弹出、不会在行号旁标红、也不会有底部状态栏提示。真正负责渲染错误列表、高亮、悬浮提示的是另一个独立插件:linter-ui-default。
如果你装了 linter 和 linter-eslint 却看不到任何报错,第一反应就该去装它:
- 命令行执行:
apm install linter-ui-default - 或在 Atom → Preferences → Install 里搜
linter-ui-default(作者是 steelbrain)并安装 - 装完不用重启,但建议执行
Window: Reload(Ctrl+Alt+R / Cmd+Alt+R)清掉可能的 UI 缓存
错误不显示?先看 linter-ui-default 是否启用
即使装了 linter-ui-default,也可能被意外禁用。Atom 不会默认开启所有 UI 插件,尤其在升级后或多人共用配置时容易出问题。
检查路径:Atom → Preferences → Packages → 搜索 linter-ui-default → 确认右侧开关是蓝色“Enabled”状态。
常见误操作:
- 误点了“Disable”后忘了再点回来
- 装了冲突 UI 插件(如
linter-ui-plus或旧版linter-gutter),导致linter-ui-default被压制 - 主题样式覆盖了错误标记(比如用了极简主题,把 gutter 图标设为透明)——可临时切回
one-dark-ui+one-dark-syntax排查
报错位置不准、只提示“no errors”?检查 linter 配置路径与 ESLint 版本对齐
linter-ui-default 只负责“画”,真正“找错”的是底层 provider(如 linter-eslint)。如果它没传回正确 diagnostic 对象,UI 就只能干等或显示空结果。
典型现象:
- 保存 .js 文件后,底部状态栏显示 “0 problems”,但明显有语法错误
- 错误提示出现在错误行号(比如标在第 5 行,实际错在第 12 行)
- 修改代码后错误不自动消失,需手动 reload
原因多是 ESLint 运行环境错位:
-
linter-eslint设置页里的ESLint Path没填对:必须指向项目本地node_modules/.bin/eslint(不是全局eslint命令) - 项目根目录下没有
package.json或.eslintrc.*,导致 ESLint 降级使用默认规则(几乎不报错) - ESLint 版本 ≥ 8.0 时,
linter-eslint插件若低于 v9.0.0,会出现解析失败、静默跳过——查插件版本:apm list | grep linter-eslint
Vue/TypeScript 文件报错空白?provider 需显式支持文件类型
linter-eslint 默认只处理 .js 和 .jsx。Vue 单文件组件里的 <script></script> 块、TSX 中的 JSX 片段,默认不进 lint 流程。
解决方式不是改 ESLint 配置,而是打开 provider 的对应开关:
- 进入 Atom → Settings → Packages →
linter-eslint→ Settings - 勾选
Lint HTML Files(启用 Vue/HTML 中内联 JS 的检查) - 勾选
Lint TypeScript Files(启用.ts和.tsx) - 确保项目中已安装
eslint-plugin-vue和@typescript-eslint/parser,否则即使开了开关也解析失败
注意:linter-ui-default 本身不决定“哪些文件该 lint”,它只忠实渲染 provider 返回的结果。开关开不开,全看 provider 是否把 diagnostic 数据送过来。
最常被忽略的一点:Atom 的 linter 生态是“分层协作”的——linter 是骨架,linter-ui-default 是皮肤,而每个 linter-xxx 才是器官。少一层,整个诊断链就断在中间,UI 空转是常态,不是 bug。

















