autocommand to disable diagnostics on git conflict

This commit is contained in:
Baipyrus 2024-06-01 17:10:52 +02:00
parent d0714ea011
commit 36ea0ce279

View File

@ -12,4 +12,32 @@ vim.cmd 'highlight ConflictMarkerTheirs guibg=#344f69'
vim.cmd 'highlight ConflictMarkerEnd guibg=#2f628e'
vim.cmd 'highlight ConflictMarkerCommonAncestorsHunk guibg=#754a81'
return { 'rhysd/conflict-marker.vim' }
-- Git conflict marker management plugin
return {
'rhysd/conflict-marker.vim',
config = function()
-- Read all lines in buffer, check if there is any conflict marker
function git_conflict_detection()
local lines = vim.api.nvim_buf_get_lines(0, 0, -1, false)
-- Check if strict regex is contained in any line
local beginning = vim.fn.match(lines, vim.g.conflict_marker_begin)
local ending = vim.fn.match(lines, vim.g.conflict_marker_end)
if beginning > -1 or ending > -1 then
vim.diagnostic.enable(false)
else
vim.diagnostic.enable(true)
end
end
-- Autocommand to disable diagnostics on buffer enter
vim.api.nvim_create_autocmd('BufRead', {
group = vim.api.nvim_create_augroup('git-conflict-lsp-disable', { clear = true }),
callback = git_conflict_detection,
})
-- Autocommand to disable diagnostics on save
vim.api.nvim_create_autocmd('BufWritePre', {
group = vim.api.nvim_create_augroup('git-conflict-lsp-disable', { clear = false }),
callback = git_conflict_detection,
})
end,
}