diff options
Diffstat (limited to '')
-rw-r--r-- | lua/git-yodel.lua | 21 | ||||
-rw-r--r-- | lua/modules/buf.lua | 15 | ||||
-rw-r--r-- | lua/utils/simple.lua | 22 | ||||
-rw-r--r-- | plugin/git-yodel.lua | 7 |
4 files changed, 65 insertions, 0 deletions
diff --git a/lua/git-yodel.lua b/lua/git-yodel.lua new file mode 100644 index 0000000..5f9a711 --- /dev/null +++ b/lua/git-yodel.lua @@ -0,0 +1,21 @@ +local buf = require('modules.buf') +local sim = require('utils.simple') + +local M = {} + +local function commitdiff() + local bufa = buf.create(true, false, 'Commit Diff') + local conta = sim.cmdcontent('git diff --cached') + if conta == nil then return end -- make sure we're setting from nothing + vim.api.nvim_buf_set_option(bufa, 'ft', 'diff') + vim.api.nvim_buf_set_lines(bufa, 0, -1, false, conta) + buf.lock(bufa) +end + +vim.api.nvim_create_autocmd('FileType', { + group = 'bufcheck', + papttern = { 'gitcommit', 'gitrebase' }, + callback = commitdiff() +}) + +return M diff --git a/lua/modules/buf.lua b/lua/modules/buf.lua new file mode 100644 index 0000000..458e202 --- /dev/null +++ b/lua/modules/buf.lua @@ -0,0 +1,15 @@ +local M = {} + +function M.create(a, b, n) + local buf = vim.api.nvim_create_buf(a, b) + vim.api.nvim_buf_set_name(buf, n) + return buf +end + +function M.lock(a) + a.nvim_buf_set_option(a, 'readonly', true) + a.nvim_buf_set_option(a, 'modifiable', false) + a.nvim_buf_set_option(a, 'modified', false) +end + +return M diff --git a/lua/utils/simple.lua b/lua/utils/simple.lua new file mode 100644 index 0000000..637dcde --- /dev/null +++ b/lua/utils/simple.lua @@ -0,0 +1,22 @@ +local M = {} + +function M.lower(a, b) + if a > b then return b else return a end +end + +function M.tablelength(T) + local c = 0 + for _ in pairs(T) do c = c + 1 end + return c +end + +function M.cmdcontent(cmd) + local b = {} + local a = io.popen(cmd, 'r') + if a == nil then return end + for _ in a:lines() do table.insert(b, _) end + a:close() + return b +end + +return M diff --git a/plugin/git-yodel.lua b/plugin/git-yodel.lua new file mode 100644 index 0000000..1c807c2 --- /dev/null +++ b/plugin/git-yodel.lua @@ -0,0 +1,7 @@ +if vim.g.loaded_gityodel == 1 then + return +end + +vim.g.loaded_gityodel = 1 + +local gityodel = require('git-yodel') |