102 lines
3.6 KiB
Lua
102 lines
3.6 KiB
Lua
return {
|
|
"9seconds/repolink.nvim",
|
|
dependencies = {
|
|
"nvim-lua/plenary.nvim"
|
|
},
|
|
cmd = {
|
|
"RepoLink"
|
|
},
|
|
|
|
config = function()
|
|
-- ssh://git@git.viessmann.com:7999/sysfunc/hemsapplication.git
|
|
-- https://git.viessmann.com/projects/SYSFUNC/repos/hemsdocumentation/browse/README.md?useDefaultHandler=true#13
|
|
viessmann = function(args)
|
|
local anchor = "#" .. tostring(args.start_line)
|
|
|
|
return string.format(
|
|
"https://%s/projects/%s/repos/%s/browse/%s#%s",
|
|
args.host,
|
|
args.host_data.user,
|
|
args.host_data.project,
|
|
args.path,
|
|
anchor
|
|
)
|
|
end
|
|
|
|
-- ssh://git@git.viessmann.com:7999/sysfunc/hemsapplication.git
|
|
-- https://git.viessmann.com/projects/SYSFUNC/repos/hemsdocumentation/browse/README.md?useDefaultHandler=true#13
|
|
url_parser = function(remote_url)
|
|
vim.pretty_print(remote_url)
|
|
local host, group, project = string.match(remote_url,
|
|
"ssh://git@([^:]+):7999/([^/]+)/([^%.]+)")
|
|
return host, { user = group, project = project }
|
|
end
|
|
|
|
require("repolink").setup({
|
|
-- By default, repolink tries to create links with short commits
|
|
-- like, 42dd21c instead of 42dd21cf54779c9175c4ff7450d91a9ad0387491
|
|
-- If you like to have full commits, please enable this flag
|
|
use_full_commit_hash = false,
|
|
|
|
-- repolink takes remote URLs from git itself and can parse
|
|
-- most common ones: from Github, Bitbucket, Sourcehut, Gitlab, Gitea, etc.
|
|
-- but sometimes you can have a quite weird configuration, made with,
|
|
-- for example, cgit, so the default one won't work for you.
|
|
--
|
|
-- If you provide this custom parser, it should be a function that
|
|
-- parses a remote URL and returns a hostname and some data blob
|
|
-- that could be used later, on URL building.
|
|
--
|
|
-- host parameter would be used to find out a function that is used
|
|
-- to convert remote URL and repository data to an HTTP permalink
|
|
--
|
|
-- data parameter can be anything but you want to use the default URL
|
|
-- builders, it should be a table of
|
|
-- { user = "YOUR USER", project = "PROJECT NAME" }
|
|
--
|
|
-- Example of parser for git@github.com:9seconds/repolink.nvim.git URL:
|
|
--
|
|
-- function(remote_url)
|
|
-- local host, user, project = string.match(
|
|
-- remote_url,
|
|
-- "^git@([^:]+):([^/]+)/(.+)%.git$")
|
|
-- if host then
|
|
-- return host, {
|
|
-- user = user,
|
|
-- project = project
|
|
-- }
|
|
-- end
|
|
-- end
|
|
custom_url_parser = url_parser,
|
|
|
|
-- By default RepoLink just notifies about generated URL but if
|
|
-- this setting is not nil, then URL could also be copied into
|
|
-- a given register.
|
|
--
|
|
-- If you want to copy it into a register, run RepoLink! (with bang).
|
|
bang_register = "+",
|
|
|
|
-- repolink runs Git. Usually, it finishes quite fast but if you have a
|
|
-- slow storage, like NFS, can take some time. This is a timeout
|
|
-- after which repolink fails.
|
|
timeout = 5000,
|
|
url_builders = {
|
|
--["git.viessmann.com"] = require("repolink").url_builder_for_bitbucket("git.viessmann.com"),
|
|
["git.viessmann.com"] = viessmann,
|
|
}
|
|
|
|
-- {
|
|
-- start_line = 1
|
|
-- end_line = 2,
|
|
-- host = "github.com",
|
|
-- host_data = {
|
|
-- user = "9seconds",
|
|
-- project = "repolink.nvim"
|
|
-- },
|
|
-- commit_hash = "42dd21c",
|
|
-- path = "doc/repolink.txt",
|
|
-- }
|
|
})
|
|
end
|
|
}
|