From 01f34758a269d3833a33dfd1dfd69e8b3d22434d Mon Sep 17 00:00:00 2001 From: Fernando Schauenburg Date: Wed, 14 Feb 2024 01:44:12 +0100 Subject: [PATCH] vim: add plugin 'ruifm/gitlinker.nvim' --- config/nvim/lazy-lock.json | 1 + .../nvim/lua/fschauen/plugins/gitlinker.lua | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 config/nvim/lua/fschauen/plugins/gitlinker.lua diff --git a/config/nvim/lazy-lock.json b/config/nvim/lazy-lock.json index 4927233..6f2a31f 100644 --- a/config/nvim/lazy-lock.json +++ b/config/nvim/lazy-lock.json @@ -7,6 +7,7 @@ "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, "fidget.nvim": { "branch": "legacy", "commit": "2f7c08f45639a64a5c0abcf67321d52c3f499ae6" }, + "gitlinker.nvim": { "branch": "master", "commit": "cc59f732f3d043b626c8702cb725c82e54d35c25" }, "indent-blankline.nvim": { "branch": "master", "commit": "12e92044d313c54c438bd786d11684c88f6f78cd" }, "lazy.nvim": { "branch": "main", "commit": "28126922c9b54e35a192ac415788f202c3944c9f" }, "lspkind-nvim": { "branch": "master", "commit": "1735dd5a5054c1fb7feaf8e8658dbab925f4f0cf" }, diff --git a/config/nvim/lua/fschauen/plugins/gitlinker.lua b/config/nvim/lua/fschauen/plugins/gitlinker.lua new file mode 100644 index 0000000..1a9adfe --- /dev/null +++ b/config/nvim/lua/fschauen/plugins/gitlinker.lua @@ -0,0 +1,40 @@ +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 +