aboutsummaryrefslogtreecommitdiff
path: root/lua/config/git-linker.lua
blob: 39f5ba21e8f8c606b0d116e97f23ae38ea687938 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
local keymap = vim.keymap
local gitlinker = require("gitlinker")

gitlinker.setup {
  callbacks = {
    ["dev.azure.com"] = function(url_data)
      vim.print(url_data)
      local url = require"gitlinker.hosts".get_base_https_url(url_data)

      if url_data.lstart then
        if url_data.lend == nil then
          url_data.lend = url_data.lstart
        end
        url = url .. "?path=/" .. url_data.file .. "&version=GC" .. url_data.rev .. "&line=" .. url_data.lstart .. "&lineEnd=" .. url_data.lend .. "&lineStartColumn=1" .. "&lineEndColumn=120"
      end
      return url
    end
  },
  mappings = nil,
}

keymap.set({ "n", "v" }, "<leader>gl", function()
  local mode = string.lower(vim.fn.mode())
  gitlinker.get_buf_range_url(mode)
end, {
  silent = true,
  desc = "get git permlink",
})

keymap.set("n", "<leader>gb", function()
  gitlinker.get_repo_url({
    action_callback = gitlinker.actions.open_in_browser
  })
end, {
  silent = true,
  desc = "browse repo in browser",
})