local M = { 'ruifm/gitlinker.nvim' } M.dependencies = { 'nvim-lua/plenary.nvim' } 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 M.keys = { { 'gr', open_repo, desc = ' open [r]epository in browser' }, { 'gl', clipboard('n'), desc = ' copy perma[l]ink to clipboard' }, { 'gl', clipboard('v'), desc = ' copy perma[l]ink to clipboard', mode = 'v' }, { 'gL', browser('n'), desc = ' open perma[L]ink in browser' }, { 'gL', browser('v'), desc = ' open perma[L]ink in browser', mode = 'v' }, } M.config = function() require('gitlinker').setup { mappings = nil, -- I'm defining me own mappings above. callbacks = { ['git.schauenburg.me'] = require('gitlinker.hosts').get_gitea_type_url, }, } end return M