mirror of
https://github.com/folke/snacks.nvim
synced 2025-12-23 08:47:57 +00:00
feat(win): allow setting ft just for highlighting without actually changing the filetype
This commit is contained in:
parent
d62faa35b6
commit
cad236f9bb
3 changed files with 6 additions and 7 deletions
|
|
@ -8,7 +8,7 @@ Snacks.config.style("blame_line", {
|
|||
border = "rounded",
|
||||
title = " Git Blame ",
|
||||
title_pos = "center",
|
||||
bo = { filetype = "git" },
|
||||
ft = "git",
|
||||
})
|
||||
|
||||
--- Gets the git root for a buffer or path.
|
||||
|
|
|
|||
|
|
@ -60,11 +60,12 @@ local M = setmetatable({}, {
|
|||
Snacks.config.style("notification", {
|
||||
border = "rounded",
|
||||
zindex = 100,
|
||||
ft = "markdown",
|
||||
wo = {
|
||||
winblend = 5,
|
||||
wrap = false,
|
||||
},
|
||||
bo = { filetype = "markdown" },
|
||||
bo = { filetype = "snacks_notif" },
|
||||
})
|
||||
|
||||
---@class snacks.notifier.Config
|
||||
|
|
@ -309,7 +310,7 @@ function N:render(notif)
|
|||
style = "notification",
|
||||
enter = false,
|
||||
backdrop = false,
|
||||
bo = { filetype = notif.ft },
|
||||
ft = notif.ft,
|
||||
noautocmd = true,
|
||||
wo = {
|
||||
winhighlight = table.concat({
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@ local M = setmetatable({}, {
|
|||
---@field backdrop? number|false Opacity of the backdrop (default: 60)
|
||||
---@field wo? vim.wo window options
|
||||
---@field bo? vim.bo buffer options
|
||||
---@field ft? string filetype to use for treesitter/syntax highlighting. Won't override existing filetype
|
||||
---@field keys? table<string, false|string|fun(self: snacks.win)|snacks.win.Keys> Key mappings
|
||||
---@field on_buf? fun(self: snacks.win) Callback after opening the buffer
|
||||
---@field on_win? fun(self: snacks.win) Callback after opening the window
|
||||
|
|
@ -338,7 +339,7 @@ function M:show()
|
|||
self.opts.on_win(self)
|
||||
end
|
||||
|
||||
local ft = vim.bo[self.buf].filetype
|
||||
local ft = self.opts.ft or vim.bo[self.buf].filetype
|
||||
if ft then
|
||||
local lang = ft and vim.treesitter.language.get_lang(ft)
|
||||
if lang and not vim.b[self.buf].ts_highlight and not pcall(vim.treesitter.start, self.buf, lang) then
|
||||
|
|
@ -492,8 +493,6 @@ end
|
|||
---@private
|
||||
---@param type "win" | "buf"
|
||||
function M:set_options(type)
|
||||
local ei = vim.o.eventignore
|
||||
vim.o.eventignore = "all"
|
||||
local opts = type == "win" and self.opts.wo or self.opts.bo
|
||||
---@diagnostic disable-next-line: no-unknown
|
||||
for k, v in pairs(opts or {}) do
|
||||
|
|
@ -509,7 +508,6 @@ function M:set_options(type)
|
|||
)
|
||||
end
|
||||
end
|
||||
vim.o.eventignore = ei
|
||||
end
|
||||
|
||||
function M:buf_valid()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue