Skip to content

Commit

Permalink
chore
Browse files Browse the repository at this point in the history
  • Loading branch information
linrongbin16 committed Jan 25, 2024
1 parent 7f4e4cd commit e92b714
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 31 deletions.
1 change: 0 additions & 1 deletion lua/fzfx/cfg/files.lua
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,6 @@ M.actions = {

M.fzf_opts = {
consts.FZF_OPTS.MULTI,
"--border=none",
function()
return { "--prompt", paths.shorten() .. " > " }
end,
Expand Down
21 changes: 20 additions & 1 deletion lua/fzfx/detail/general.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1233,8 +1233,10 @@ local function general(name, query, bang, pipeline_configs, default_pipeline)
"right,50%",
},
})
local fzf_border_opts = consts.IS_WINDOWS and "sharp" or "rounded"
if use_builtin_previewer then
local fzf_pw_opts = {}
local fzf_border_opts = nil
for _, o in ipairs(fzf_opts) do
if
type(o) == "table"
Expand All @@ -1248,6 +1250,19 @@ local function general(name, query, bang, pipeline_configs, default_pipeline)
then
table.insert(fzf_pw_opts, o)
end
if
type(o) == "table"
and strings.not_empty(o[1])
and strings.startswith(o[1], "--border")
then
fzf_border_opts = o[2]
elseif
strings.not_empty(o)
and strings.startswith(o --[[@as string]], "--border")
then
fzf_border_opts =
string.sub(o --[[@as string]], string.len("--border") + 2)
end
end
log.debug("|general| extract fzf_pw_opts:%s", vim.inspect(fzf_pw_opts))
if #fzf_pw_opts > 0 then
Expand All @@ -1256,6 +1271,7 @@ local function general(name, query, bang, pipeline_configs, default_pipeline)
end

table.insert(fzf_opts, { "--preview-window", "hidden" })
table.insert(fzf_opts, "--border=none")
end

popup = Popup:new(
Expand Down Expand Up @@ -1287,7 +1303,10 @@ local function general(name, query, bang, pipeline_configs, default_pipeline)
end
end,
use_builtin_previewer,
fzf_preview_window_opts --[[@as fzfx.FzfPreviewWindowOpts]]
{
fzf_preview_window_opts = fzf_preview_window_opts,
fzf_border_opts = fzf_border_opts,
}
)
return popup
end
Expand Down
12 changes: 6 additions & 6 deletions lua/fzfx/detail/popup.lua
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@ local PopupWindow = {}
--- @package
--- @param win_opts fzfx.WindowOpts
--- @param window_type "fzf"|"buffer"
--- @param fzf_preview_window_opts fzfx.FzfPreviewWindowOpts
--- @param builtin_previewer_opts {fzf_preview_window_opts:fzfx.FzfPreviewWindowOpts,fzf_border_opts:string}
--- @return fzfx.PopupWindow
function PopupWindow:new(win_opts, window_type, fzf_preview_window_opts)
function PopupWindow:new(win_opts, window_type, builtin_previewer_opts)
-- check executables
fzf_helpers.nvim_exec()
fzf_helpers.fzf_exec()
Expand All @@ -35,7 +35,7 @@ function PopupWindow:new(win_opts, window_type, fzf_preview_window_opts)
elseif window_type == "buffer" then
instance = buffer_popup_window.BufferPopupWindow:new(
win_opts,
fzf_preview_window_opts
builtin_previewer_opts
)
end
PopupWindowInstances[instance:handle()] = self
Expand Down Expand Up @@ -148,7 +148,7 @@ end
--- @param context fzfx.PipelineContext
--- @param on_close fzfx.OnPopupExit?
--- @param builtin_previewer boolean?
--- @param fzf_preview_window_opts fzfx.FzfPreviewWindowOpts
--- @param builtin_previewer_opts {fzf_preview_window_opts:fzfx.FzfPreviewWindowOpts,fzf_border_opts:string}
--- @return fzfx.Popup
function Popup:new(
win_opts,
Expand All @@ -158,14 +158,14 @@ function Popup:new(
context,
on_close,
builtin_previewer,
fzf_preview_window_opts
builtin_previewer_opts
)
local result = vim.fn.tempname() --[[@as string]]
local fzf_command = _make_fzf_command(fzf_opts, actions, result)
local popup_window = PopupWindow:new(
win_opts,
builtin_previewer and "buffer" or "fzf",
fzf_preview_window_opts
builtin_previewer_opts
)

local function on_fzf_exit(jobid2, exitcode, event)
Expand Down
56 changes: 33 additions & 23 deletions lua/fzfx/detail/popup/buffer_popup_window.lua
Original file line number Diff line number Diff line change
Expand Up @@ -15,23 +15,23 @@ local M = {}
-- cursor window {

--- @param opts fzfx.WindowOpts
--- @param fzf_preview_window_opts fzfx.FzfPreviewWindowOpts
--- @param builtin_previewer_opts {fzf_preview_window_opts:fzfx.FzfPreviewWindowOpts,fzf_border_opts:string}
--- @return fzfx.NvimFloatWinOpts
M._make_provider_cursor_opts = function(opts, fzf_preview_window_opts) end
M._make_provider_cursor_opts = function(opts, builtin_previewer_opts) end

--- @param opts fzfx.WindowOpts
--- @param fzf_preview_window_opts fzfx.FzfPreviewWindowOpts
--- @param builtin_previewer_opts {fzf_preview_window_opts:fzfx.FzfPreviewWindowOpts,fzf_border_opts:string}
--- @return fzfx.NvimFloatWinOpts
M._make_previewer_cursor_opts = function(opts, fzf_preview_window_opts) end
M._make_previewer_cursor_opts = function(opts, builtin_previewer_opts) end

-- cursor window }

-- center window {

--- @param opts fzfx.WindowOpts
--- @param fzf_preview_window_opts fzfx.FzfPreviewWindowOpts
--- @param builtin_previewer_opts {fzf_preview_window_opts:fzfx.FzfPreviewWindowOpts,fzf_border_opts:string}
--- @return fzfx.NvimFloatWinOpts
M._make_provider_center_opts = function(opts, fzf_preview_window_opts)
M._make_provider_center_opts = function(opts, builtin_previewer_opts)
local relative = opts.relative or "editor" --[[@as "editor"|"win"]]

local total_width = relative == "editor" and vim.o.columns
Expand All @@ -41,6 +41,8 @@ M._make_provider_center_opts = function(opts, fzf_preview_window_opts)
local width = popup_helpers.get_window_size(opts.width, total_width)
local height = popup_helpers.get_window_size(opts.height, total_height)

local fzf_preview_window_opts = builtin_previewer_opts.fzf_preview_window_opts

local additional_row_offset = 0
local additional_col_offset = 0
if
Expand Down Expand Up @@ -122,9 +124,9 @@ M._make_provider_center_opts = function(opts, fzf_preview_window_opts)
end

--- @param opts fzfx.WindowOpts
--- @param fzf_preview_window_opts fzfx.FzfPreviewWindowOpts
--- @param builtin_previewer_opts {fzf_preview_window_opts:fzfx.FzfPreviewWindowOpts,fzf_border_opts:string}
--- @return fzfx.NvimFloatWinOpts
M._make_previewer_center_opts = function(opts, fzf_preview_window_opts)
M._make_previewer_center_opts = function(opts, builtin_previewer_opts)
local relative = opts.relative or "editor" --[[@as "editor"|"win"]]

local total_width = relative == "editor" and vim.o.columns
Expand All @@ -134,6 +136,8 @@ M._make_previewer_center_opts = function(opts, fzf_preview_window_opts)
local width = popup_helpers.get_window_size(opts.width, total_width)
local height = popup_helpers.get_window_size(opts.height, total_height)

local fzf_preview_window_opts = builtin_previewer_opts.fzf_preview_window_opts

local additional_row_offset = 0
local additional_col_offset = 0
if
Expand Down Expand Up @@ -218,9 +222,9 @@ end
-- provider window {

--- @param win_opts fzfx.WindowOpts
--- @param fzf_preview_window_opts fzfx.FzfPreviewWindowOpts
--- @param builtin_previewer_opts {fzf_preview_window_opts:fzfx.FzfPreviewWindowOpts,fzf_border_opts:string}
--- @return fzfx.NvimFloatWinOpts
M.make_provider_opts = function(win_opts, fzf_preview_window_opts)
M.make_provider_opts = function(win_opts, builtin_previewer_opts)
local opts = vim.deepcopy(win_opts)
local relative = opts.relative or "editor"
log.ensure(
Expand All @@ -229,9 +233,9 @@ M.make_provider_opts = function(win_opts, fzf_preview_window_opts)
vim.inspect(opts)
)
if relative == "cursor" then
return M._make_provider_cursor_opts(opts, fzf_preview_window_opts)
return M._make_provider_cursor_opts(opts, builtin_previewer_opts)
else
return M._make_provider_center_opts(opts, fzf_preview_window_opts)
return M._make_provider_center_opts(opts, builtin_previewer_opts)
end
end

Expand All @@ -240,9 +244,9 @@ end
-- previewer window {

--- @param win_opts fzfx.WindowOpts
--- @param fzf_preview_window_opts fzfx.FzfPreviewWindowOpts
--- @param builtin_previewer_opts {fzf_preview_window_opts:fzfx.FzfPreviewWindowOpts,fzf_border_opts:string}
--- @return fzfx.NvimFloatWinOpts
M.make_previewer_opts = function(win_opts, fzf_preview_window_opts)
M.make_previewer_opts = function(win_opts, builtin_previewer_opts)
local opts = vim.deepcopy(win_opts)
local relative = opts.relative or "editor"
log.ensure(
Expand All @@ -251,9 +255,9 @@ M.make_previewer_opts = function(win_opts, fzf_preview_window_opts)
vim.inspect(opts)
)
if relative == "cursor" then
return M._make_previewer_cursor_opts(opts, fzf_preview_window_opts)
return M._make_previewer_cursor_opts(opts, builtin_previewer_opts)
else
return M._make_previewer_center_opts(opts, fzf_preview_window_opts)
return M._make_previewer_center_opts(opts, builtin_previewer_opts)
end
end

Expand All @@ -269,16 +273,17 @@ end
--- @field previewer_winnr integer?
--- @field _saved_win_opts fzfx.WindowOpts
--- @field _saved_fzf_preview_window_opts fzfx.FzfPreviewWindowOpts
--- @field _saved_fzf_border_opts string
--- @field _resizing boolean
--- @field preview_files_queue fzfx.BuiltinFilePreviewerResult[]
--- @field preview_file_contents_queue {lines:string[],preview_result:fzfx.BuiltinFilePreviewerResult}[]
local BufferPopupWindow = {}

--- @package
--- @param win_opts fzfx.WindowOpts
--- @param fzf_preview_window_opts fzfx.FzfPreviewWindowOpts
--- @param builtin_previewer_opts {fzf_preview_window_opts:fzfx.FzfPreviewWindowOpts,fzf_border_opts:string}
--- @return fzfx.BufferPopupWindow
function BufferPopupWindow:new(win_opts, fzf_preview_window_opts)
function BufferPopupWindow:new(win_opts, builtin_previewer_opts)
-- save current window context
local window_opts_context = popup_helpers.WindowOptsContext:save()

Expand All @@ -294,11 +299,15 @@ function BufferPopupWindow:new(win_opts, fzf_preview_window_opts)
apis.set_buf_option(previewer_bufnr, "buflisted", false)
apis.set_buf_option(previewer_bufnr, "filetype", "fzf")

local provider_nvim_float_win_opts =
M.make_provider_opts(win_opts, fzf_preview_window_opts)
local provider_nvim_float_win_opts = M.make_provider_opts(
win_opts,
builtin_previewer_opts.fzf_preview_window_opts
)
provider_nvim_float_win_opts.border = "rounded"
local previewer_nvim_float_win_opts =
M.make_previewer_opts(win_opts, fzf_preview_window_opts)
local previewer_nvim_float_win_opts = M.make_previewer_opts(
win_opts,
builtin_previewer_opts.fzf_preview_window_opts
)
previewer_nvim_float_win_opts.focusable = false

local previewer_winnr =
Expand All @@ -322,7 +331,8 @@ function BufferPopupWindow:new(win_opts, fzf_preview_window_opts)
previewer_bufnr = previewer_bufnr,
previewer_winnr = previewer_winnr,
_saved_win_opts = win_opts,
_saved_fzf_preview_window_opts = fzf_preview_window_opts,
_saved_fzf_preview_window_opts = builtin_previewer_opts.fzf_preview_window_opts,
_saved_fzf_border_opts = builtin_previewer_opts.fzf_border_opts,
_resizing = false,
preview_files_queue = {},
preview_file_contents_queue = {},
Expand Down

0 comments on commit e92b714

Please sign in to comment.