@@ -62,35 +62,47 @@ local function open_code_action_menu()
62
62
end
63
63
end
64
64
65
- local function update_selected_action ()
66
- local selected_action = menu_window_instance :get_selected_action ()
67
-
68
- if details_window_instance == nil then
69
- details_window_instance = DetailsWindow :new (selected_action )
70
- else
71
- details_window_instance :set_action (selected_action )
65
+ local function update_details_window (selected_action )
66
+ if
67
+ vim .g .code_action_menu_show_details == nil
68
+ or vim .g .code_action_menu_show_details
69
+ then
70
+ if details_window_instance == nil then
71
+ details_window_instance = DetailsWindow :new (selected_action )
72
+ else
73
+ details_window_instance :set_action (selected_action )
74
+ end
75
+
76
+ local window_stack = { anchor_window_instance , menu_window_instance }
77
+
78
+ details_window_instance :open ({ window_stack = window_stack })
72
79
end
80
+ end
73
81
74
- details_window_instance :open ({
75
- window_stack = {
76
- anchor_window_instance ,
77
- menu_window_instance ,
78
- },
79
- })
82
+ local function update_diff_window (selected_action )
83
+ if
84
+ vim .g .code_action_menu_show_diff == nil or vim .g .code_action_menu_show_diff
85
+ then
86
+ if diff_window_instance == nil then
87
+ diff_window_instance = DiffWindow :new (selected_action )
88
+ else
89
+ diff_window_instance :set_action (selected_action )
90
+ end
80
91
81
- if diff_window_instance == nil then
82
- diff_window_instance = DiffWindow :new (selected_action )
83
- else
84
- diff_window_instance :set_action (selected_action )
92
+ local window_stack = { anchor_window_instance , menu_window_instance }
93
+
94
+ if details_window_instance ~= nil then
95
+ table.insert (window_stack , details_window_instance )
96
+ end
97
+
98
+ diff_window_instance :open ({ window_stack = window_stack })
85
99
end
100
+ end
86
101
87
- diff_window_instance :open ({
88
- window_stack = {
89
- anchor_window_instance ,
90
- menu_window_instance ,
91
- details_window_instance ,
92
- },
93
- })
102
+ local function update_selected_action ()
103
+ local selected_action = menu_window_instance :get_selected_action ()
104
+ update_details_window (selected_action )
105
+ update_diff_window (selected_action )
94
106
end
95
107
96
108
local function execute_selected_action ()
0 commit comments