luozhiya / fittencode.nvim

Fitten Code AI Programming Assistant for Neovim
49 stars 8 forks source link

与nvim-treesitter存在冲突 #88

Closed Kaiser-Yang closed 1 week ago

Kaiser-Yang commented 1 week ago

按照主页的方法使用lazy安装后启动nvim会提示以下的报错:

Error detected while processing /home/kaiser/.config/nvim/init.lua..FileType Autocommands for "*":
Error executing lua callback: ...64/share/nvim/runtime/lua/vim/treesitter/highlighter.lua:164: Invalid 'group': 'syntaxset'
stack traceback:
        [C]: in function 'nvim_exec_autocmds'
        ...64/share/nvim/runtime/lua/vim/treesitter/highlighter.lua:164: in function 'destroy'
        /opt/nvim-linux64/share/nvim/runtime/lua/vim/treesitter.lua:427: in function 'stop'
        ...m/lazy/nvim-treesitter/lua/nvim-treesitter/highlight.lua:28: in function 'detach'
        ...vim/lazy/nvim-treesitter/lua/nvim-treesitter/configs.lua:522: in function 'detach_module'
        ...vim/lazy/nvim-treesitter/lua/nvim-treesitter/configs.lua:531: in function 'reattach_module'
        ...vim/lazy/nvim-treesitter/lua/nvim-treesitter/configs.lua:133: in function <...vim/lazy/nvim-treesitter/lua/nvim-treesitter/configs.lua:132>
        [C]: in function 'nvim_set_option_value'
        .../nvim/lazy/fittencode.nvim/lua/fittencode/views/chat.lua:86: in function 'set_option_value_buf'
        .../nvim/lazy/fittencode.nvim/lua/fittencode/views/chat.lua:168: in function 'create'
        .../fittencode.nvim/lua/fittencode/engines/actions/init.lua:793: in function 'setup'
        ...
        .../.local/share/nvim/lazy/lazy.nvim/lua/lazy/core/util.lua:130: in function 'try'
        ...local/share/nvim/lazy/lazy.nvim/lua/lazy/core/loader.lua:391: in function 'config'
        ...local/share/nvim/lazy/lazy.nvim/lua/lazy/core/loader.lua:358: in function '_load'
        ...local/share/nvim/lazy/lazy.nvim/lua/lazy/core/loader.lua:197: in function 'load'
        ...local/share/nvim/lazy/lazy.nvim/lua/lazy/core/loader.lua:127: in function 'startup'
        ...aiser/.local/share/nvim/lazy/lazy.nvim/lua/lazy/init.lua:112: in function 'setup'
        /home/kaiser/.config/nvim/lua/lazy_nvim.lua:14: in main chunk
        [C]: at 0x55b0586c6860
        [C]: in function 'pcall'
        /home/kaiser/.config/nvim/init.lua:14: in main chunk 
Press ENTER or type command to continue 

其中init.lua的第十四行是:

pcall(require, 'lazy_nvim')

lazy-nvim的相关配置(已经验证注释掉fittencode部分后不会出现报错):

    {
        'luozhiya/fittencode.nvim',
        config = function() require('plugin_config/fittencode_config') end,
    },

-- treesitter related
    {
        'stevearc/aerial.nvim',
        config = function() require'plugin_config/aerial_config' end,
        dependencies = {
            "nvim-treesitter/nvim-treesitter",
            "nvim-tree/nvim-web-devicons"
        },
    },
    {
        'stevearc/aerial.nvim',
        config = function() require'plugin_config/aerial_config' end,
        dependencies = {
            "nvim-treesitter/nvim-treesitter",
            "nvim-tree/nvim-web-devicons"
        },
    },

fittencode_config.lua:

require('fittencode').setup({})

nvimtree_config.lua:

require'nvim-treesitter.configs'.setup {
  ensure_installed = {"c", "cpp", "cmake", "lua", "python", "html", "javascript", "css", "json",
    "bash", "regex", "markdown", "diff", "vimdoc", "java"},
  sync_install = false,
  highlight = {
      enable = true,
      additional_vim_regex_highlighting = false,
  },
  indent = {
      enable = true,
  },
  rainbow = {
    enable = true,
    extended_mode = true, -- Also highlight non-bracket delimiters like html tags, boolean or table: lang -> boolean
    max_file_lines = nil, -- Do not enable for files with more than n lines, int
    -- disable = { "jsx", "cpp" }, list of languages you want to disable the plugin for
    -- colors = {}, -- table of hex strings
    -- termcolors = {} -- table of colour name strings
  },
}

其他的配置可以在dotfiles仓库中查看。

luozhiya commented 1 week ago

看上去好像是因为 Lazy 初始化顺序引起的。

@Kaiser-Yang 您试一下,给 fittencode 添加 treesitter 的依赖,看能否解决问题。

{
    'luozhiya/fittencode.nvim',
    config = function() require('plugin_config/fittencode_config') end,
    dependencies = {
        "nvim-treesitter/nvim-treesitter"
    },
},
Kaiser-Yang commented 1 week ago

尝试了但是还是不行,我也尝试过移动插件的顺序。

luozhiya commented 1 week ago

@Kaiser-Yang

麻烦您再试一下 https://github.com/luozhiya/fittencode.nvim/tree/ts_-buffer 这个分支,避免了在初始化阶段创建buffer。

Kaiser-Yang commented 1 week ago

我测试了这个分支,这个分支目前不会出现这个报错 image

luozhiya commented 1 week ago

@Kaiser-Yang

您能否测一下 Action 功能,v模式下选择代码,然后输入 :Fitten document_code 看看 Chat 输出是否正常

Kaiser-Yang commented 1 week ago

正常工作: image

luozhiya commented 1 week ago

@Kaiser-Yang

谢谢,那可以合并到 master 了

Kaiser-Yang commented 1 week ago

OK

Kaiser-Yang commented 1 week ago

Fixed by #91