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
相关产品推荐
相关产品推荐

