解决 “Error in decoration provider line (ns=nvim.treesitter.highlighter)” 错误:让Neovim与LunarVim版本统一

Posted on May 10, 2025

问题背景

最近在使用 LunarVim 时遇到了一个棘手的问题:每次打开文件都会出现 Error in decoration provider “line” (ns=nvim.treesitter.highlighter) 的错误提示。经过一番排查,发现问题源于 Neovim 版本与插件之间的兼容性问题。

核心原因

  1. Neovim 版本过高: Arch Linux 源中最新版是 Neovim (v0.11.1),在安装 LunarVim 时,没有注意到其安装页面上有 “Release (Neovim 0.9.5)” 这一关键提示
  2. 插件兼容性问题:某些插件(特别是 tree-sitter 相关插件)尚未完全适配新版 Neovim

相关讨论中得知,这并非插件本身的问题,而是Neovim版本过新导致的。“clason”这位贡献者提到“Don’t use nightly”。

解决办法:降级Neovim及相关依赖

解决这个问题的核心思路是将Neovim及其相关依赖包降级到LunarVim推荐的版本,即Neovim 0.9.5。在arch系统中,我们可以借助“downgrade”工具来实现这一目标。

安装“downgrade”工具

downgrade工具包含在archlinuxcn源中,需要先参照Arch Linux CN 软件仓库镜像站使用帮助配置archlinuxcn源。

在终端输入以下命令,使用“paru”包管理器安装“downgrade”:

paru downgrade

选择安装archlinuxcn/downgrade 11.5.1-1,安装过程中按提示输入密码并确认安装。安装完成后,“downgrade”工具就可以帮助我们降低软件包版本了。

降级Neovim

安装好“downgrade”后,使用以下命令将Neovim降级到0.9.5版本:

sudo downgrade neovim
# 选择降级到 0.9.5-6 版本

在执行该命令时,系统会提示下载旧版本的Neovim以及相关依赖包,同时会显示版本降级信息,例如“warning: downgrading package neovim (0.11.1-2 => 0.9.5-6)”。确认继续安装后,等待下载和安装完成。此时Neovim成功降级到0.9.5-6版本。

处理其他依赖问题

在降级Neovim的过程中,可能会遇到其他依赖包的问题。比如,我在操作过程中就遇到了“libmsgpackc.so.2”和“libtree-sitter.so.0”相关的错误。

对于“libmsgpackc.so.2”问题,这是因为最新版本的msgpack-c库版本与Neovim不兼容。可以使用以下命令检查msgpack-c的安装情况:

pacman -Qi msgpack-c

然后使用“downgrade”工具降级msgpack-c:

sudo downgrade msgpack-c
# 选择降级到 5.0.0-2 版本

执行该命令后,msgpack-c从6.1.0-2版本降级到5.0.0-2版本。

对于“libtree-sitter.so.0”问题,同样先检查tree-sitter的安装情况:

pacman -Qi tree-sitter

再使用“downgrade”工具降级tree-sitter:

sudo downgrade tree-sitter
# 选择降级到 0.22.1-1 版本

在多次尝试降级后,tree-sitter最终从0.25.3-1版本先降级到0.22.1-1版本,此时相关错误得以解决。

忽略升级(可选)

为了防止后续系统更新再次将这些包升级到不兼容的版本,可以在降级完成后,选择将这些包添加到“IgnorePkg”列表中。当系统提示“add [package name] to IgnorePkg? [y/N]”时,输入“y”确认即可。这样,pacman在进行系统更新时,就会跳过这些包,维持系统的稳定。

总结

最终使用的版本列表

包名 降级后的版本
Neovim 0.9.5-6
msgpack-c 5.0.0-2
tree-sitter 0.22.1-1
libtermkey 0.22-3

降级完成后,执行以下命令验证:

nvim --version
# 确认版本为 0.9.5,且不输出其他报错

lunarvim
# 打开不应再出现装饰器错误

注意事项

  1. ​插件兼容性​​:LunarVim 官方文档 明确标注了支持的 Neovim 版本,建议对后续更新保持关注,始终参考官方推荐配置

  2. ​降级风险​​:降级系统包可能影响其他软件的运行,建议在降级前充分考虑其他软件包对被降级软件包的依赖关系。