From 1543a063fbd3a462879d696b2885f4aa90c55896 Mon Sep 17 00:00:00 2001 From: Folke Lemaitre Date: Thu, 20 Feb 2025 11:56:56 +0100 Subject: [PATCH] feat(image): allow disabling math rendering. Closes #1247 --- lua/snacks/image/doc.lua | 16 +++++++++++++--- lua/snacks/image/init.lua | 5 ++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/lua/snacks/image/doc.lua b/lua/snacks/image/doc.lua index 883e036e..d450feed 100644 --- a/lua/snacks/image/doc.lua +++ b/lua/snacks/image/doc.lua @@ -1,6 +1,9 @@ ---@class snacks.image.doc local M = {} +---@alias TSMatch {node:TSNode, meta:vim.treesitter.query.TSMetadata} +---@alias snacks.image.transform fun(match: snacks.image.match, ctx: snacks.image.ctx) + ---@class snacks.image.Hover ---@field img snacks.image.Placement ---@field win snacks.win @@ -14,9 +17,13 @@ local M = {} ---@field src? TSMatch ---@field content? TSMatch ----@alias TSMatch {node:TSNode, meta:vim.treesitter.query.TSMetadata} ----@alias snacks.image.match {id: string, pos: snacks.image.Pos, src?: string, content?: string, ext?: string, range?:Range4} ----@alias snacks.image.transform fun(match: snacks.image.match, ctx: snacks.image.ctx) +---@class snacks.image.match +---@field id string +---@field pos snacks.image.Pos +---@field src? string +---@field content? string +---@field ext? string +---@field range? Range4 local META_EXT = "image.ext" local META_SRC = "image.src" @@ -226,6 +233,9 @@ function M._img(ctx) if img.src then img.src = M.resolve(ctx.buf, img.src) end + if not Snacks.image.config.doc.math and img.ext and img.ext:find("math") then + return + end if img.content and not img.src then local root = Snacks.image.config.cache vim.fn.mkdir(root, "p") diff --git a/lua/snacks/image/init.lua b/lua/snacks/image/init.lua index 44f55e7f..780a065e 100644 --- a/lua/snacks/image/init.lua +++ b/lua/snacks/image/init.lua @@ -67,8 +67,8 @@ local defaults = { doc = { -- enable image viewer for documents -- a treesitter parser must be available for the enabled languages. - -- supported language injections: markdown, html enabled = true, + math = true, -- enable math expression rendering -- render the image inline in the buffer -- if your env doesn't support unicode placeholders, this will be disabled -- takes precedence over `opts.float` on supported terminals @@ -79,8 +79,7 @@ local defaults = { max_width = 80, max_height = 40, -- Set to `true`, to conceal the image text when rendering inline. - -- (experimental) - conceal = false, + conceal = false, -- (experimental) }, img_dirs = { "img", "images", "assets", "static", "public", "media", "attachments" }, -- window options applied to windows displaying image buffers