Neovim 0.10升级后如何将Treesitter高亮组@module.javascript链接到@module
解决Neovim 0.10中Treesitter @module.javascript高亮链接失效的问题
你遇到的问题大概率是Neovim 0.10中Treesitter高亮组的初始化顺序或优先级变化导致你的nvim_set_hl设置被后续加载的配置(比如配色方案或Treesitter自身规则)覆盖了。试试以下几种方案:
方案1:通过Treesitter自身配置设置自定义高亮
这是最可靠的方式,直接在Treesitter的setup中指定高亮组链接,优先级更高:
require('nvim-treesitter.configs').setup({ highlight = { enable = true, custom_highlights = { ['@module.javascript'] = { link = '@module' }, }, }, })
方案2:延迟执行高亮设置
如果方案1不生效,确保你的设置在配色方案和Treesitter初始化完成后执行,用自动命令实现:
vim.api.nvim_create_autocmd({ 'BufEnter', 'ColorScheme' }, { pattern = '*.js', callback = function() vim.api.nvim_set_hl(0, '@module.javascript', { link = '@module' }) end, })
这样每次打开JS文件或切换配色方案时,都会重新应用你的高亮链接设置,避免被覆盖。
方案3:检查配色方案配置
部分配色方案在适配Neovim 0.10时可能修改了@module.javascript的高亮链接,你可以查看配色方案代码中是否有相关设置。如果有,要么在配色方案加载后再执行你的设置,要么修改配色方案中该组的链接规则。
内容的提问来源于stack exchange,提问作者rschristian
相关产品推荐
相关产品推荐

