Skip to content

Commit e4d0d8b

Browse files
committed
fix(ProjectDiffScreen): Refresh gutter on quit
Dispatch sync event to git_buffer_store when exiting to a file, ensuring gutter signs reflect any staging changes made in the screen.
1 parent a7ddcb2 commit e4d0d8b

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

  • lua/vgit/features/screens/ProjectDiffScreen

lua/vgit/features/screens/ProjectDiffScreen/init.lua

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ local DiffView = require('vgit.ui.views.DiffView')
1010
local StatusListView = require('vgit.ui.views.StatusListView')
1111
local KeyHelpBarView = require('vgit.ui.views.KeyHelpBarView')
1212
local Model = require('vgit.features.screens.ProjectDiffScreen.Model')
13+
local git_buffer_store = require('vgit.git.git_buffer_store')
1314
local project_diff_preview_setting = require('vgit.settings.project_diff_preview')
1415

1516
local ProjectDiffScreen = Object:extend()
@@ -476,6 +477,12 @@ function ProjectDiffScreen:enter_view()
476477

477478
fs.open(filepath)
478479
Window(0):set_lnum(mark.top_relative):position_cursor('center')
480+
481+
-- Refresh gutter signs for the opened buffer
482+
local git_buffer = git_buffer_store.current()
483+
if git_buffer then
484+
git_buffer_store.dispatch(git_buffer, 'sync')
485+
end
479486
end
480487

481488
function ProjectDiffScreen:open_file()
@@ -496,6 +503,12 @@ function ProjectDiffScreen:open_file()
496503
end
497504

498505
Window(0):set_lnum(mark.top_relative):position_cursor('center')
506+
507+
-- Refresh gutter signs for the opened buffer
508+
local git_buffer = git_buffer_store.current()
509+
if git_buffer then
510+
git_buffer_store.dispatch(git_buffer, 'sync')
511+
end
499512
end
500513

501514
function ProjectDiffScreen:render(on_status_list_render)
@@ -966,6 +979,12 @@ function ProjectDiffScreen:on_quit()
966979
Window(0):set_lnum(file_lnum):position_cursor('center')
967980
end
968981

982+
-- Refresh gutter signs for the opened buffer
983+
local git_buffer = git_buffer_store.current()
984+
if git_buffer then
985+
git_buffer_store.dispatch(git_buffer, 'sync')
986+
end
987+
969988
return true
970989
end
971990

0 commit comments

Comments
 (0)