diff --git a/lua/diffs/init.lua b/lua/diffs/init.lua index 06b6ad9..a9551a5 100644 --- a/lua/diffs/init.lua +++ b/lua/diffs/init.lua @@ -40,6 +40,8 @@ ---@class diffs.GitsignsConfig +---@class diffs.CommittiaConfig + ---@class diffs.ConflictKeymaps ---@field ours string|false ---@field theirs string|false @@ -65,6 +67,7 @@ ---@field fugitive diffs.FugitiveConfig|false ---@field neogit diffs.NeogitConfig|false ---@field gitsigns diffs.GitsignsConfig|false +---@field committia diffs.CommittiaConfig|false ---@field conflict diffs.ConflictConfig ---@class diffs @@ -145,6 +148,7 @@ local default_config = { fugitive = false, neogit = false, gitsigns = false, + committia = false, conflict = { enabled = true, disable_diagnostics = true, @@ -599,6 +603,10 @@ local function init() opts.gitsigns = {} end + if opts.committia == true then + opts.committia = {} + end + vim.validate('debug', opts.debug, function(v) return v == nil or type(v) == 'boolean' or type(v) == 'string' end, 'boolean or string (file path)') @@ -612,6 +620,9 @@ local function init() vim.validate('gitsigns', opts.gitsigns, function(v) return v == nil or v == false or type(v) == 'table' end, 'table or false') + vim.validate('committia', opts.committia, function(v) + return v == nil or v == false or type(v) == 'table' + end, 'table or false') vim.validate('extra_filetypes', opts.extra_filetypes, 'table', true) vim.validate('highlights', opts.highlights, 'table', true) @@ -995,6 +1006,12 @@ function M.get_fugitive_config() return config.fugitive end +---@return diffs.CommittiaConfig|false +function M.get_committia_config() + init() + return config.committia +end + ---@return diffs.ConflictConfig function M.get_conflict_config() init() diff --git a/plugin/diffs.lua b/plugin/diffs.lua index 43c5564..bce599d 100644 --- a/plugin/diffs.lua +++ b/plugin/diffs.lua @@ -23,7 +23,10 @@ vim.api.nvim_create_autocmd('FileType', { callback = function(args) local diffs = require('diffs') if args.match == 'git' then - if not diffs.get_fugitive_config() or not diffs.is_fugitive_buffer(args.buf) then + local is_fugitive = diffs.get_fugitive_config() and diffs.is_fugitive_buffer(args.buf) + local is_committia = diffs.get_committia_config() + and vim.api.nvim_buf_get_name(args.buf):match('__committia_diff__$') + if not is_fugitive and not is_committia then return end end