fix: increase result height (#2282)
This commit is contained in:
@@ -534,7 +534,7 @@ M._defaults = {
|
|||||||
},
|
},
|
||||||
input = {
|
input = {
|
||||||
prefix = "> ",
|
prefix = "> ",
|
||||||
height = 8, -- Height of the input window in vertical layout
|
height = 6, -- Height of the input window in vertical layout
|
||||||
},
|
},
|
||||||
edit = {
|
edit = {
|
||||||
border = { " ", " ", " ", " ", " ", " ", " ", " " },
|
border = { " ", " ", " ", " ", " ", " ", " ", " " },
|
||||||
|
|||||||
@@ -1018,7 +1018,7 @@ function Sidebar:render_selected_code()
|
|||||||
if not Utils.is_valid_container(self.selected_code_container) then return end
|
if not Utils.is_valid_container(self.selected_code_container) then return end
|
||||||
|
|
||||||
local selected_code_lines_count = 0
|
local selected_code_lines_count = 0
|
||||||
local selected_code_max_lines_count = 12
|
local selected_code_max_lines_count = 5
|
||||||
|
|
||||||
if self.code.selection ~= nil then
|
if self.code.selection ~= nil then
|
||||||
local selected_code_lines = vim.split(self.code.selection.content, "\n")
|
local selected_code_lines = vim.split(self.code.selection.content, "\n")
|
||||||
@@ -2037,7 +2037,7 @@ function Sidebar:create_selected_code_container()
|
|||||||
self.selected_code_container = nil
|
self.selected_code_container = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
local selected_code_size = self:get_selected_code_size()
|
local height = self:get_selected_code_container_height()
|
||||||
|
|
||||||
if self.code.selection ~= nil then
|
if self.code.selection ~= nil then
|
||||||
self.selected_code_container = Split({
|
self.selected_code_container = Split({
|
||||||
@@ -2049,17 +2049,11 @@ function Sidebar:create_selected_code_container()
|
|||||||
buf_options = buf_options,
|
buf_options = buf_options,
|
||||||
win_options = vim.tbl_deep_extend("force", base_win_options, {}),
|
win_options = vim.tbl_deep_extend("force", base_win_options, {}),
|
||||||
size = {
|
size = {
|
||||||
height = selected_code_size + 3,
|
height = height,
|
||||||
},
|
},
|
||||||
position = "top",
|
position = "top",
|
||||||
})
|
})
|
||||||
self.selected_code_container:mount()
|
self.selected_code_container:mount()
|
||||||
if self:get_layout() == "horizontal" then
|
|
||||||
api.nvim_win_set_height(
|
|
||||||
self.result_container.winid,
|
|
||||||
api.nvim_win_get_height(self.result_container.winid) - selected_code_size - 3
|
|
||||||
)
|
|
||||||
end
|
|
||||||
self:adjust_layout()
|
self:adjust_layout()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -2735,11 +2729,11 @@ function Sidebar:create_input_container()
|
|||||||
height = Config.windows.input.height,
|
height = Config.windows.input.height,
|
||||||
} end
|
} end
|
||||||
|
|
||||||
local selected_code_size = self:get_selected_code_size()
|
local selected_code_container_height = self:get_selected_code_container_height()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
width = "40%",
|
width = "40%",
|
||||||
height = math.max(1, api.nvim_win_get_height(self.result_container.winid) - selected_code_size),
|
height = math.max(1, api.nvim_win_get_height(self.result_container.winid) - selected_code_container_height),
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -2911,32 +2905,20 @@ function Sidebar:get_input_value()
|
|||||||
return table.concat(lines, "\n")
|
return table.concat(lines, "\n")
|
||||||
end
|
end
|
||||||
|
|
||||||
function Sidebar:get_selected_code_size()
|
function Sidebar:get_selected_code_container_height()
|
||||||
local selected_code_max_lines_count = 10
|
local selected_code_max_lines_count = 5
|
||||||
|
|
||||||
local selected_code_size = 0
|
local selected_code_size = 0
|
||||||
|
|
||||||
if self.code.selection ~= nil then
|
if self.code.selection ~= nil then
|
||||||
local selected_code_lines = vim.split(self.code.selection.content, "\n")
|
local selected_code_lines = vim.split(self.code.selection.content, "\n")
|
||||||
local selected_code_lines_count = #selected_code_lines
|
local selected_code_lines_count = #selected_code_lines + 1
|
||||||
selected_code_size = math.min(selected_code_lines_count, selected_code_max_lines_count)
|
selected_code_size = math.min(selected_code_lines_count, selected_code_max_lines_count)
|
||||||
end
|
end
|
||||||
|
|
||||||
return selected_code_size
|
return selected_code_size
|
||||||
end
|
end
|
||||||
|
|
||||||
function Sidebar:get_selected_files_size()
|
|
||||||
if not self.file_selector then return 0 end
|
|
||||||
|
|
||||||
local selected_files_max_lines_count = 10
|
|
||||||
|
|
||||||
local selected_filepaths = self.file_selector:get_selected_filepaths()
|
|
||||||
local selected_files_size = #selected_filepaths
|
|
||||||
selected_files_size = math.min(selected_files_size, selected_files_max_lines_count)
|
|
||||||
|
|
||||||
return selected_files_size
|
|
||||||
end
|
|
||||||
|
|
||||||
function Sidebar:get_todos_container_height()
|
function Sidebar:get_todos_container_height()
|
||||||
local history = Path.history.load(self.code.bufnr)
|
local history = Path.history.load(self.code.bufnr)
|
||||||
if not history or not history.todos or #history.todos == 0 then return 0 end
|
if not history or not history.todos or #history.todos == 0 then return 0 end
|
||||||
@@ -2944,15 +2926,19 @@ function Sidebar:get_todos_container_height()
|
|||||||
end
|
end
|
||||||
|
|
||||||
function Sidebar:get_result_container_height()
|
function Sidebar:get_result_container_height()
|
||||||
local todos_height = self:get_todos_container_height()
|
local todos_container_height = self:get_todos_container_height()
|
||||||
local selected_code_size = self:get_selected_code_size()
|
local selected_code_container_height = self:get_selected_code_container_height()
|
||||||
local selected_files_size = self:get_selected_files_size()
|
local selected_files_container_height = self:get_selected_files_container_height()
|
||||||
|
|
||||||
if self:get_layout() == "horizontal" then return math.floor(Config.windows.height / 100 * vim.o.lines) end
|
if self:get_layout() == "horizontal" then return math.floor(Config.windows.height / 100 * vim.o.lines) end
|
||||||
|
|
||||||
return math.max(
|
return math.max(
|
||||||
1,
|
1,
|
||||||
api.nvim_win_get_height(self.code.winid) - selected_files_size - selected_code_size - todos_height - 3 - 8
|
api.nvim_win_get_height(self.code.winid)
|
||||||
|
- selected_files_container_height
|
||||||
|
- selected_code_container_height
|
||||||
|
- todos_container_height
|
||||||
|
- 6
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -3051,6 +3037,13 @@ function Sidebar:adjust_selected_files_container_layout()
|
|||||||
api.nvim_win_set_height(self.selected_files_container.winid, win_height)
|
api.nvim_win_set_height(self.selected_files_container.winid, win_height)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function Sidebar:adjust_selected_code_container_layout()
|
||||||
|
if not Utils.is_valid_container(self.selected_code_container, true) then return end
|
||||||
|
|
||||||
|
local win_height = self:get_selected_code_container_height()
|
||||||
|
api.nvim_win_set_height(self.selected_code_container.winid, win_height)
|
||||||
|
end
|
||||||
|
|
||||||
function Sidebar:adjust_todos_container_layout()
|
function Sidebar:adjust_todos_container_layout()
|
||||||
if not Utils.is_valid_container(self.todos_container, true) then return end
|
if not Utils.is_valid_container(self.todos_container, true) then return end
|
||||||
|
|
||||||
@@ -3262,6 +3255,7 @@ end
|
|||||||
function Sidebar:adjust_layout()
|
function Sidebar:adjust_layout()
|
||||||
self:adjust_result_container_layout()
|
self:adjust_result_container_layout()
|
||||||
self:adjust_todos_container_layout()
|
self:adjust_todos_container_layout()
|
||||||
|
self:adjust_selected_code_container_layout()
|
||||||
self:adjust_selected_files_container_layout()
|
self:adjust_selected_files_container_layout()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user