You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Neovim LSP新语法配置fortls与texlab失效问题求助

Neovim LSP新语法迁移异常问题

正在将Neovim LSP配置从已废弃的旧语法require('lspconfig').name.setup({})迁移到新语法vim.lsp.config(name, {}),pyright和clangd迁移后正常运行,但fortls(示例)和texlab出现异常:语言服务器连接后立即断开,通过:LspInfo和:LspLog可确认该现象。fortls官方文档显示暂未适配新语法,需沿用旧写法,但怀疑问题出在自身配置上。

无法工作的新语法配置

vim.lsp.config('fortls', {
  cmd = { fortls_path, '--hover_signature', '--hover_language=fortran', '--use_signature_help' },
  filetypes = { 'fortran' },
  root_dir = function(fname)
    return vim.fs.root(fname, {'.fortls', '.git'}) or vim.fs.dirname(fname)
  end,
  capabilities = capabilities,
})
vim.lsp.enable('fortls')

可正常工作的旧语法配置

require('lspconfig').fortls.setup({
  cmd = { fortls_path, '--hover_signature', '--hover_language=fortran', '--use_signature_help' },
  filetypes = { 'fortran' },
  capabilities = capabilities,
  root_dir = require('lspconfig.util').root_pattern('.fortls', '.git'),
  single_file_support = true,
})

问题定位与日志信息

疑似问题出在vim.lsp.enable('fortls'),无法正常挂载语言服务器。:LspLog日志内容如下:

[START][2025-12-02 09:59:12] LSP logging initiated                                                                                                                                        19520
[ERROR][2025-12-02 09:59:12] ...p/_transport.lua:36 "rpc" "fortls"  "stderr"  "[INFO - 09:59:12] fortls - Fortran Language Server 3.2.2 Initialized\n"

排查与解决建议

  • 补全缺失配置项:旧配置中包含single_file_support = true,新语法配置里未添加,尝试加入该字段后重新启用服务
  • 对齐root_dir逻辑:新语法的vim.fs.root与旧语法root_pattern的行为可能存在差异,可替换为旧逻辑测试:
    root_dir = require('lspconfig.util').root_pattern('.fortls', '.git'),
    
  • 检查服务触发条件:确认当前打开的文件类型确实是fortran,且工作目录下存在.fortls或.git文件(或手动指定root_dir测试)
  • 临时回退兼容:若上述调整无效,可针对fortls和texlab暂时保留旧语法配置,待官方适配后再迁移

内容的提问来源于stack exchange,提问作者olafwx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 04:02:47