feat(preview)!: add opts.preview.highlight_limit with default 1MB (#2715)

This commit is contained in:
LW
2023-10-02 08:51:34 -07:00
committed by GitHub
parent 7d51950854
commit 8c69f58427
2 changed files with 11 additions and 2 deletions

View File

@@ -535,6 +535,7 @@ append(
{ {
check_mime_type = not has_win, check_mime_type = not has_win,
filesize_limit = 25, filesize_limit = 25,
highlight_limit = 1,
timeout = 250, timeout = 250,
treesitter = true, treesitter = true,
msg_bg_fillchar = "", msg_bg_fillchar = "",
@@ -559,6 +560,9 @@ append(
- filesize_limit: The maximum file size in MB attempted to be previewed. - filesize_limit: The maximum file size in MB attempted to be previewed.
Set to false to attempt to preview any file size. Set to false to attempt to preview any file size.
Default: 25 Default: 25
- highlight_limit: The maximum file size in MB attempted to be highlighted.
Set to false to attempt to highlight any file size.
Default: 1
- timeout: Timeout the previewer if the preview did not - timeout: Timeout the previewer if the preview did not
complete within `timeout` milliseconds. complete within `timeout` milliseconds.
Set to false to not timeout preview. Set to false to not timeout preview.

View File

@@ -182,8 +182,8 @@ local handle_file_preview = function(filepath, bufnr, stat, opts)
end end
end end
local mb_filesize = stat.size / bytes_to_megabytes
if opts.preview.filesize_limit then if opts.preview.filesize_limit then
local mb_filesize = math.floor(stat.size / bytes_to_megabytes)
if mb_filesize > opts.preview.filesize_limit then if mb_filesize > opts.preview.filesize_limit then
if type(opts.preview.filesize_hook) == "function" then if type(opts.preview.filesize_hook) == "function" then
opts.preview.filesize_hook(filepath, bufnr, opts) opts.preview.filesize_hook(filepath, bufnr, opts)
@@ -228,7 +228,10 @@ local handle_file_preview = function(filepath, bufnr, stat, opts)
if opts.callback then if opts.callback then
opts.callback(bufnr) opts.callback(bufnr)
end end
putils.highlighter(bufnr, opts.ft, opts)
if not (opts.preview.highlight_limit and mb_filesize > opts.preview.highlight_limit) then
putils.highlighter(bufnr, opts.ft, opts)
end
else else
if type(opts.preview.timeout_hook) == "function" then if type(opts.preview.timeout_hook) == "function" then
opts.preview.timeout_hook(filepath, bufnr, opts) opts.preview.timeout_hook(filepath, bufnr, opts)
@@ -243,12 +246,14 @@ end
local PREVIEW_TIMEOUT_MS = 250 local PREVIEW_TIMEOUT_MS = 250
local PREVIEW_FILESIZE_MB = 25 local PREVIEW_FILESIZE_MB = 25
local PREVIEW_HIGHLIGHT_MB = 1
previewers.file_maker = function(filepath, bufnr, opts) previewers.file_maker = function(filepath, bufnr, opts)
opts = vim.F.if_nil(opts, {}) opts = vim.F.if_nil(opts, {})
opts.preview = vim.F.if_nil(opts.preview, {}) opts.preview = vim.F.if_nil(opts.preview, {})
opts.preview.timeout = vim.F.if_nil(opts.preview.timeout, PREVIEW_TIMEOUT_MS) opts.preview.timeout = vim.F.if_nil(opts.preview.timeout, PREVIEW_TIMEOUT_MS)
opts.preview.filesize_limit = vim.F.if_nil(opts.preview.filesize_limit, PREVIEW_FILESIZE_MB) opts.preview.filesize_limit = vim.F.if_nil(opts.preview.filesize_limit, PREVIEW_FILESIZE_MB)
opts.preview.highlight_limit = vim.F.if_nil(opts.preview.highlight_limit, PREVIEW_HIGHLIGHT_MB)
opts.preview.msg_bg_fillchar = vim.F.if_nil(opts.preview.msg_bg_fillchar, "") opts.preview.msg_bg_fillchar = vim.F.if_nil(opts.preview.msg_bg_fillchar, "")
opts.preview.treesitter = vim.F.if_nil(opts.preview.treesitter, true) opts.preview.treesitter = vim.F.if_nil(opts.preview.treesitter, true)
if opts.use_ft_detect == nil then if opts.use_ft_detect == nil then