diff --git a/lua/gitlab/actions/discussions/init.lua b/lua/gitlab/actions/discussions/init.lua index 98cbfde5..51a5c7e5 100644 --- a/lua/gitlab/actions/discussions/init.lua +++ b/lua/gitlab/actions/discussions/init.lua @@ -90,6 +90,7 @@ M.initialize_discussions = function() end) reviewer.set_callback_for_buf_read(function(args) vim.api.nvim_set_option_value("modifiable", false, { buf = args.buf }) + reviewer.update_winid_for_buffer(args.buf) reviewer.set_keymaps(args.buf) reviewer.set_reviewer_autocommands(args.buf) end) diff --git a/lua/gitlab/reviewer/init.lua b/lua/gitlab/reviewer/init.lua index 28d85f5c..3b276a38 100644 --- a/lua/gitlab/reviewer/init.lua +++ b/lua/gitlab/reviewer/init.lua @@ -59,9 +59,9 @@ M.open = function() end end + M.is_open = true vim.api.nvim_command(string.format("%s %s..%s", diffview_open_command, diff_refs.base_sha, diff_refs.head_sha)) - M.is_open = true M.diffview = require("diffview.lib").get_current_view() if M.diffview == nil then u.notify("Could not find Diffview view", vim.log.levels.ERROR) @@ -304,7 +304,11 @@ M.set_callback_for_buf_read = function(callback) pattern = { "DiffviewDiffBufRead" }, group = group, callback = function(...) - if vim.api.nvim_get_current_tabpage() == M.tabid then + -- Only run the callback when we're in the MR's tabpage or when the tabpage has + -- not yet been set (tabid = nil) in a freshly started review (is_open = true). + -- TODO: This is a hacky workaround for cases when an added file is diffeed + -- against diffview://null and this autocommand fires before tabid is set. + if vim.api.nvim_get_current_tabpage() == M.tabid or (M.is_open and M.tabid == nil) then callback(...) end end,