diff options
| author | srdusr <trevorgray@srdusr.com> | 2025-09-24 02:56:53 +0200 |
|---|---|---|
| committer | srdusr <trevorgray@srdusr.com> | 2025-09-24 02:56:53 +0200 |
| commit | 0f6cee92221dc517bd756083e260dd9373851b82 (patch) | |
| tree | c6d929fa5832d17a2d1fe3c85744bae7621ed447 /common/nvim/lua/plugins/cmp-gh-source.lua | |
| parent | 3cf613ec7c90ab4933728b0f19e49b0c955c17bb (diff) | |
| download | dotfiles-0f6cee92221dc517bd756083e260dd9373851b82.tar.gz dotfiles-0f6cee92221dc517bd756083e260dd9373851b82.zip | |
Moved files to common/
Diffstat (limited to 'common/nvim/lua/plugins/cmp-gh-source.lua')
| -rwxr-xr-x | common/nvim/lua/plugins/cmp-gh-source.lua | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/common/nvim/lua/plugins/cmp-gh-source.lua b/common/nvim/lua/plugins/cmp-gh-source.lua deleted file mode 100755 index 4990c35..0000000 --- a/common/nvim/lua/plugins/cmp-gh-source.lua +++ /dev/null @@ -1,70 +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()) |
