From 12ee3ff984014dc65402e489338edc0fe4d7a79e Mon Sep 17 00:00:00 2001 From: Zhe Yu Date: Sun, 29 Jun 2025 11:17:20 +0800 Subject: [PATCH 1/5] feat(nvim): add heirline component --- lua/vectorcode/integrations/heirline.lua | 16 ++++++++++++++++ lua/vectorcode/integrations/init.lua | 1 + lua/vectorcode/integrations/lualine.lua | 7 +++++-- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 lua/vectorcode/integrations/heirline.lua diff --git a/lua/vectorcode/integrations/heirline.lua b/lua/vectorcode/integrations/heirline.lua new file mode 100644 index 00000000..4765c16e --- /dev/null +++ b/lua/vectorcode/integrations/heirline.lua @@ -0,0 +1,16 @@ +---@class VectorCode.Heirline.Opts: VectorCode.Lualine.Opts +local default_opts = { show_job_count = false } + +---@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) + return { + provider = function(_) + return lualine_comp[1]() + end, + condition = function(_) + return lualine_comp.cond() + end, + } +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..99607cd7 100644 --- a/lua/vectorcode/integrations/lualine.lua +++ b/lua/vectorcode/integrations/lualine.lua @@ -1,8 +1,11 @@ local vc_config = require("vectorcode.config") ----@param opts {show_job_count: boolean}? +---@class VectorCode.Lualine.Opts +---@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() From b0c572f1e39e1e9feab7b0e1140bbafea8afd11c Mon Sep 17 00:00:00 2001 From: Zhe Yu Date: Sun, 29 Jun 2025 11:44:43 +0800 Subject: [PATCH 2/5] feat(nvim): add `hl` field --- lua/vectorcode/integrations/heirline.lua | 5 +++++ lua/vectorcode/integrations/lualine.lua | 1 + 2 files changed, 6 insertions(+) diff --git a/lua/vectorcode/integrations/heirline.lua b/lua/vectorcode/integrations/heirline.lua index 4765c16e..af17ded5 100644 --- a/lua/vectorcode/integrations/heirline.lua +++ b/lua/vectorcode/integrations/heirline.lua @@ -1,4 +1,8 @@ ---@class VectorCode.Heirline.Opts: VectorCode.Lualine.Opts +--- Passed directly to the `hl` field of the component. +---@field hl table|string|nil + +---@type VectorCode.Heirline.Opts local default_opts = { show_job_count = false } ---@param opts VectorCode.Heirline.Opts? @@ -12,5 +16,6 @@ return function(opts) condition = function(_) return lualine_comp.cond() end, + hl = opts.hl, } end diff --git a/lua/vectorcode/integrations/lualine.lua b/lua/vectorcode/integrations/lualine.lua index 99607cd7..568b00c8 100644 --- a/lua/vectorcode/integrations/lualine.lua +++ b/lua/vectorcode/integrations/lualine.lua @@ -1,6 +1,7 @@ local vc_config = require("vectorcode.config") ---@class VectorCode.Lualine.Opts +---Whether to show the number of running async jobs. ---@field show_job_count boolean ---@param opts VectorCode.Lualine.Opts? From 8ceff827582689e51352833744d8e0804a138fe8 Mon Sep 17 00:00:00 2001 From: Zhe Yu Date: Sun, 29 Jun 2025 12:46:34 +0800 Subject: [PATCH 3/5] refactor(nvim): allow more flexible customisation via `component_opts`. --- lua/vectorcode/integrations/heirline.lua | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lua/vectorcode/integrations/heirline.lua b/lua/vectorcode/integrations/heirline.lua index af17ded5..82cbc65e 100644 --- a/lua/vectorcode/integrations/heirline.lua +++ b/lua/vectorcode/integrations/heirline.lua @@ -1,21 +1,22 @@ ---@class VectorCode.Heirline.Opts: VectorCode.Lualine.Opts ---- Passed directly to the `hl` field of the component. ----@field hl table|string|nil +--- 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 } +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) - return { + local heirline_component = { provider = function(_) return lualine_comp[1]() end, condition = function(_) return lualine_comp.cond() end, - hl = opts.hl, } + + return vim.tbl_deep_extend("force", heirline_component, opts.component_opts) end From fc26509ad51684c544ab1832cac2f43b8dfd1610 Mon Sep 17 00:00:00 2001 From: Zhe Yu Date: Sun, 29 Jun 2025 14:57:09 +0800 Subject: [PATCH 4/5] docs(nvim): mention heirline in the docs --- docs/neovim.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 From 7690781912469d0a0d8f5e69ccf1db01b108ca92 Mon Sep 17 00:00:00 2001 From: Davidyz Date: Sun, 29 Jun 2025 06:57:53 +0000 Subject: [PATCH 5/5] Auto generate docs --- doc/VectorCode.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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*