48 lines
1.4 KiB
Lua
48 lines
1.4 KiB
Lua
local open_repo = function()
|
|
require("gitlinker").get_repo_url {
|
|
action_callback = require("gitlinker.actions").open_in_browser,
|
|
}
|
|
end
|
|
|
|
local browser = function(mode)
|
|
return function()
|
|
require("gitlinker").get_buf_range_url(mode, {
|
|
action_callback = require("gitlinker.actions").open_in_browser,
|
|
})
|
|
end
|
|
end
|
|
|
|
local clipboard = function(mode)
|
|
return function()
|
|
require("gitlinker").get_buf_range_url(mode, {
|
|
action_callback = require("gitlinker.actions").copy_to_clipboard,
|
|
})
|
|
end
|
|
end
|
|
|
|
local icon = require("fschauen.util.icons").ui.Git
|
|
|
|
return {
|
|
"ruifm/gitlinker.nvim",
|
|
|
|
dependencies = "nvim-lua/plenary.nvim",
|
|
|
|
keys = {
|
|
-- stylua: ignore start
|
|
{ "<leader>gr", open_repo, desc = icon.." open [r]epository in browser" },
|
|
{ "<leader>gl", clipboard("n"), desc = icon.." copy perma[l]ink to clipboard" },
|
|
{ "<leader>gl", clipboard("v"), desc = icon.." copy perma[l]ink to clipboard", mode = "v" },
|
|
{ "<leader>gL", browser("n"), desc = icon.." open perma[L]ink in browser" },
|
|
{ "<leader>gL", browser("v"), desc = icon.." open perma[L]ink in browser", mode = "v" },
|
|
-- stylua: ignore end
|
|
},
|
|
|
|
opts = function(_, opts)
|
|
return vim.tbl_deep_extend("force", opts or {}, {
|
|
mappings = nil, -- I'm defining my own mappings above.
|
|
callbacks = {
|
|
["git.schauenburg.me"] = require("gitlinker.hosts").get_gitea_type_url,
|
|
},
|
|
})
|
|
end,
|
|
}
|