lsp插件默认关闭诊断功能,需手动开启全局及语言特定设置中的diagnostics,并确保语言服务器正确安装、配置tsconfig.json/jsconfig.json、命令路径准确、主题支持markup.error作用域,python还需避免插件冲突并指定正确环境。

安装LSP插件后为什么没有错误下划线?
Sublime Text 默认不启用 LSP 的诊断功能,即使已安装 LSP 插件并配置了语言服务器,diagnostics(错误/警告标记)也不会自动显示。关键在于:LSP 插件默认关闭实时诊断,且需为每种语言显式启用。
- 打开
Preferences → Package Settings → LSP → Settings,确认"diagnostics_enabled": true已设为true(全局开关) - 再打开
Preferences → Package Settings → LSP → Language-specific Settings → javascript(或其他语言),确保其中也包含"enabled": true和"diagnostics": true - 部分语言服务器(如
pylsp、typescript-language-server)要求额外参数才能开启诊断,例如在settings中加"initializationOptions": {"diagnostics": true}
如何让 TypeScript/JavaScript 文件真正显示语法错误?
仅靠 LSP 插件 + typescript-language-server 不够,常见问题包括路径未识别、tsconfig.json 缺失或 server 启动失败。错误通常静默发生,不会弹窗提示。
- 先验证 server 是否运行:在 Sublime 控制台(
Ctrl+`)中搜索"typescript-language-server"或"stderr",看是否有启动失败日志 - 确保项目根目录存在
tsconfig.json或jsconfig.json;否则 server 可能降级为无类型检查模式 - 在 LSP 的 language-specific 设置中指定
"command"绝对路径,例如["/usr/local/bin/typescript-language-server", "--stdio"],避免 PATH 查找失败 - 若使用 pnpm,需改用
"command": ["pnpm", "exec", "typescript-language-server", "--stdio"],否则找不到二进制
LSP 错误下划线颜色太淡或不显示?
Sublime 的 diagnostics 标记依赖主题的 markup.error、markup.warning 作用域样式。很多默认或第三方主题未定义这些作用域,导致下划线不可见。
- 临时验证:在命令面板(
Ctrl+Shift+P)运行Developer: Show Scope Name,把光标停在报错行,看是否出现markup.error.lsp类似作用域 - 手动补全样式:编辑当前主题文件(
Preferences → Browse Packages → Theme - Default → Adaptive.sublime-theme),在"rules"数组末尾添加:
[
{
"class": "markup.error.lsp",
"foreground": "var(red)",
"underline": true,
"underline_color": "var(red)"
}
]
注意:修改主题后需重启 Sublime 或切换一次主题生效。
Python 文件诊断始终不工作?
Python 场景下最常踩的坑是服务器选型和环境隔离问题。pylsp 是推荐选择,但 pyright 或 mypy-lsp 需额外配置且兼容性更敏感。
- 不要混用多个 Python LSP 服务;禁用其他 Python 相关插件(如 Anaconda、Jedi),它们会干扰 LSP 的进程管理
- 用
pipx install python-lsp-server[all]安装完整版pylsp,避免因缺少插件(如rope、autopep8)导致 diagnostics 初始化失败 - 在 LSP 设置中指定
"env"确保使用正确 Python 解释器,例如:"env": {"PYTHONPATH": "/path/to/venv/lib/python3.11/site-packages"} - 如果项目用 Poetry,需在
"settings"中加"poetry_path": "poetry"并确保poetry shell能正常激活依赖
诊断功能本身不复杂,难的是每个环节都得对上:插件开关、server 存在性、project 配置、主题渲染、环境变量——漏掉任意一环,错误就安静地消失在编辑器里。











