From 4ed15e1414a0e03ec2dc5b97abcbc33fff14cc30 Mon Sep 17 00:00:00 2001 From: Yeri Date: Mon, 6 Apr 2026 20:51:10 +0700 Subject: [PATCH 1/2] fix(configs): prevent plugin-level setup() from overriding user configuration The plugin automatically calls setup() in @plugin/gitlinker.lua without arguments. If users also call setup() with custom router configs in their Neovim config, the plugin-level call runs AFTER and overwrites the user's configuration. Fix by adding early return in configs.setup() if Configs is already initialized. --- lua/gitlinker/configs.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lua/gitlinker/configs.lua b/lua/gitlinker/configs.lua index e5e531c..638c6cb 100644 --- a/lua/gitlinker/configs.lua +++ b/lua/gitlinker/configs.lua @@ -277,6 +277,9 @@ end --- @param opts gitlinker.Options? --- @return gitlinker.Options M.setup = function(opts) + if Configs and Configs._routers and next(Configs._routers) then + return Configs + end local merged_routers = M._merge_routers(opts or {}) Configs = vim.tbl_deep_extend("force", vim.deepcopy(Defaults), opts or {}) Configs._routers = merged_routers From d9f275e71ab558bfc22a32d8da8a45988d24115b Mon Sep 17 00:00:00 2001 From: linrongbin16 Date: Tue, 7 Apr 2026 09:57:33 +0800 Subject: [PATCH 2/2] Use "vim.g.loaded_gitlinker" global variable to detect --- lua/gitlinker.lua | 1 + lua/gitlinker/configs.lua | 3 --- plugin/gitlinker.lua | 4 +++- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lua/gitlinker.lua b/lua/gitlinker.lua index ed34d69..1ee3466 100644 --- a/lua/gitlinker.lua +++ b/lua/gitlinker.lua @@ -305,6 +305,7 @@ end --- @param opts gitlinker.Options? local function setup(opts) + vim.g.loaded_gitlinker = 1 local confs = configs.setup(opts) -- logger diff --git a/lua/gitlinker/configs.lua b/lua/gitlinker/configs.lua index 638c6cb..e5e531c 100644 --- a/lua/gitlinker/configs.lua +++ b/lua/gitlinker/configs.lua @@ -277,9 +277,6 @@ end --- @param opts gitlinker.Options? --- @return gitlinker.Options M.setup = function(opts) - if Configs and Configs._routers and next(Configs._routers) then - return Configs - end local merged_routers = M._merge_routers(opts or {}) Configs = vim.tbl_deep_extend("force", vim.deepcopy(Defaults), opts or {}) Configs._routers = merged_routers diff --git a/plugin/gitlinker.lua b/plugin/gitlinker.lua index 64a9678..a98fe7e 100644 --- a/plugin/gitlinker.lua +++ b/plugin/gitlinker.lua @@ -1 +1,3 @@ -require("gitlinker").setup() +if vim.fn.exists("g:loaded_gitlinker") == 0 then + require("gitlinker").setup() +end