From 9e8449d13b02108af74058bfa7a40db5b1b27bff Mon Sep 17 00:00:00 2001 From: Munif Tanjim Date: Thu, 25 May 2023 19:27:41 +0600 Subject: [PATCH 1/2] fix: give priority to provided remote --- lua/gitlinker.lua | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lua/gitlinker.lua b/lua/gitlinker.lua index c1b64fcb..cfcca01d 100644 --- a/lua/gitlinker.lua +++ b/lua/gitlinker.lua @@ -51,7 +51,7 @@ local function get_buf_range_url_data(mode, user_opts) return nil end mode = mode or "n" - local remote = git.get_branch_remote() or user_opts.remote + local remote = user_opts.remote or git.get_branch_remote() local repo_url_data = git.get_repo_data(remote) if not repo_url_data then return nil @@ -137,9 +137,8 @@ end function M.get_repo_url(user_opts) user_opts = vim.tbl_deep_extend("force", opts.get(), user_opts or {}) - local repo_url_data = git.get_repo_data( - git.get_branch_remote() or user_opts.remote - ) + local remote = user_opts.remote or git.get_branch_remote() + local repo_url_data = git.get_repo_data(remote) if not repo_url_data then return nil end From 592c1fa306e09079f6efc5fb0eb3bf2559be8f56 Mon Sep 17 00:00:00 2001 From: Munif Tanjim Date: Thu, 25 May 2023 19:40:38 +0600 Subject: [PATCH 2/2] feat: support function for option - remote --- doc/gitlinker.txt | 3 ++- lua/gitlinker.lua | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/doc/gitlinker.txt b/doc/gitlinker.txt index 478133c1..0641d88c 100644 --- a/doc/gitlinker.txt +++ b/doc/gitlinker.txt @@ -223,7 +223,8 @@ remote *gitlinker-remote* If `remote = nil` (default), the relevant remote will be auto-detected. If you have multiple git remotes configured and want to use a specific -one (e.g. `myfork`), do `remote = "myfork"`. +one (e.g. `myfork`), do `remote = "myfork"`. It can also be a `function`, +the return value will be used as `remote`. add_current_line_on_normal_mode *gitlinker-add_current_line_on_normal_mode* diff --git a/lua/gitlinker.lua b/lua/gitlinker.lua index cfcca01d..499c60b2 100644 --- a/lua/gitlinker.lua +++ b/lua/gitlinker.lua @@ -51,7 +51,9 @@ local function get_buf_range_url_data(mode, user_opts) return nil end mode = mode or "n" - local remote = user_opts.remote or git.get_branch_remote() + local remote = type(user_opts.remote) == "function" and user_opts.remote() + or user_opts.remote + or git.get_branch_remote() local repo_url_data = git.get_repo_data(remote) if not repo_url_data then return nil @@ -137,7 +139,9 @@ end function M.get_repo_url(user_opts) user_opts = vim.tbl_deep_extend("force", opts.get(), user_opts or {}) - local remote = user_opts.remote or git.get_branch_remote() + local remote = type(user_opts.remote) == "function" and user_opts.remote() + or user_opts.remote + or git.get_branch_remote() local repo_url_data = git.get_repo_data(remote) if not repo_url_data then return nil