diff --git a/doc/VectorCode.txt b/doc/VectorCode.txt index 78410ecb..65e65242 100644 --- a/doc/VectorCode.txt +++ b/doc/VectorCode.txt @@ -109,7 +109,8 @@ contains instructions to integrate VectorCode with the following plugins: - olimorris/codecompanion.nvim ; - nvim-lualine/lualine.nvim ; - CopilotC-Nvim/CopilotChat.nvim ; -- ravitemer/mcphub.nvim . +- ravitemer/mcphub.nvim ; +- rebelot/heirline.nvim . CONFIGURATION *VectorCode-neovim-plugin-configuration* diff --git a/docs/neovim.md b/docs/neovim.md index a2a3981c..e2e4339e 100644 --- a/docs/neovim.md +++ b/docs/neovim.md @@ -94,7 +94,8 @@ contains instructions to integrate VectorCode with the following plugins: - [olimorris/codecompanion.nvim](https://github.com/olimorris/codecompanion.nvim); - [nvim-lualine/lualine.nvim](https://github.com/nvim-lualine/lualine.nvim); - [CopilotC-Nvim/CopilotChat.nvim](https://github.com/CopilotC-Nvim/CopilotChat.nvim); -- [ravitemer/mcphub.nvim](https://github.com/ravitemer/mcphub.nvim). +- [ravitemer/mcphub.nvim](https://github.com/ravitemer/mcphub.nvim); +- [rebelot/heirline.nvim](https://github.com/rebelot/heirline.nvim). ## Configuration diff --git a/lua/vectorcode/integrations/heirline.lua b/lua/vectorcode/integrations/heirline.lua new file mode 100644 index 00000000..82cbc65e --- /dev/null +++ b/lua/vectorcode/integrations/heirline.lua @@ -0,0 +1,22 @@ +---@class VectorCode.Heirline.Opts: VectorCode.Lualine.Opts +--- Other heirline component fields (like `hl`, `on_click`, `update`, etc.) +---@field component_opts table + +---@type VectorCode.Heirline.Opts +local default_opts = { show_job_count = false, component_opts = {} } + +---@param opts VectorCode.Heirline.Opts? +return function(opts) + opts = vim.tbl_deep_extend("force", default_opts, opts or {}) --[[@as VectorCode.Heirline.Opts]] + local lualine_comp = require("vectorcode.integrations").lualine(opts) + local heirline_component = { + provider = function(_) + return lualine_comp[1]() + end, + condition = function(_) + return lualine_comp.cond() + end, + } + + return vim.tbl_deep_extend("force", heirline_component, opts.component_opts) +end diff --git a/lua/vectorcode/integrations/init.lua b/lua/vectorcode/integrations/init.lua index 6f080ca4..e4abe147 100644 --- a/lua/vectorcode/integrations/init.lua +++ b/lua/vectorcode/integrations/init.lua @@ -2,4 +2,5 @@ return { codecompanion = require("vectorcode.integrations.codecompanion"), copilotchat = require("vectorcode.integrations.copilotchat"), lualine = require("vectorcode.integrations.lualine"), + heirline = require("vectorcode.integrations.heirline"), } diff --git a/lua/vectorcode/integrations/lualine.lua b/lua/vectorcode/integrations/lualine.lua index 5ba96be7..568b00c8 100644 --- a/lua/vectorcode/integrations/lualine.lua +++ b/lua/vectorcode/integrations/lualine.lua @@ -1,8 +1,12 @@ local vc_config = require("vectorcode.config") ----@param opts {show_job_count: boolean}? +---@class VectorCode.Lualine.Opts +---Whether to show the number of running async jobs. +---@field show_job_count boolean + +---@param opts VectorCode.Lualine.Opts? return function(opts) - opts = vim.tbl_deep_extend("force", { show_job_count = false }, opts or {}) + opts = vim.tbl_deep_extend("force", { show_job_count = false }, opts or {}) --[[@as VectorCode.Lualine.Opts]] local cacher = vc_config.get_cacher_backend() return { function()