aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lua/plugins/cmp-gh-source.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/plugins/cmp-gh-source.lua')
-rw-r--r--.config/nvim/lua/plugins/cmp-gh-source.lua72
1 files changed, 0 insertions, 72 deletions
diff --git a/.config/nvim/lua/plugins/cmp-gh-source.lua b/.config/nvim/lua/plugins/cmp-gh-source.lua
deleted file mode 100644
index 05bba55..0000000
--- a/.config/nvim/lua/plugins/cmp-gh-source.lua
+++ /dev/null
@@ -1,72 +0,0 @@
-local ok, Job = pcall(require, "plenary.job")
-if not ok then
- return
-end
-
-local source = {}
-
-source.new = function()
- local self = setmetatable({ cache = {} }, { __index = source })
-
- return self
-end
-
-source.complete = function(self, _, callback)
- local bufnr = vim.api.nvim_get_current_buf()
-
- -- This just makes sure that we only hit the GH API once per session.
- --
- -- You could remove this if you wanted, but this just makes it so we're
- -- good programming citizens.
- if not self.cache[bufnr] then
- Job
- :new({
- -- Uses `gh` executable to request the issues from the remote repository.
- "gh",
- "issue",
- "list",
- "--limit",
- "1000",
- "--json",
- "title,number,body",
-
- on_exit = function(job)
- local result = job:result()
- local ok, parsed = pcall(vim.json.decode, table.concat(result, ""))
- if not ok then
- vim.notify "Failed to parse gh result"
- return
- end
-
- local items = {}
- for _, gh_item in ipairs(parsed) do
- gh_item.body = string.gsub(gh_item.body or "", "\r", "")
-
- table.insert(items, {
- label = string.format("#%s", gh_item.number),
- documentation = {
- kind = "markdown",
- value = string.format("# %s\n\n%s", gh_item.title, gh_item.body),
- },
- })
- end
-
- callback { items = items, isIncomplete = false }
- self.cache[bufnr] = items
- end,
- })
- :start()
- else
- callback { items = self.cache[bufnr], isIncomplete = false }
- end
-end
-
-source.get_trigger_characters = function()
- return { "#" }
-end
-
-source.is_available = function()
- return vim.bo.filetype == "gitcommit"
-end
-
-require("cmp").register_source("gh_issues", source.new())