kickstart.nvim/lua/luasnippets/tex/conditions.lua

50 lines
859 B
Lua

--[
-- LuaSnip Conditions
--]
local M = {}
-- math / not math zones
function M.in_math()
return vim.api.nvim_eval 'vimtex#syntax#in_mathzone()' == 1
end
-- comment detection
function M.in_comment()
return vim.fn['vimtex#syntax#in_comment']() == 1
end
-- document class
function M.in_beamer()
return vim.b.vimtex['documentclass'] == 'beamer'
end
-- general env function
local function env(name)
local is_inside = vim.fn['vimtex#env#is_inside'](name)
return (is_inside[1] > 0 and is_inside[2] > 0)
end
function M.in_preamble()
return not env 'document'
end
function M.in_text()
return env 'document' and not M.in_math()
end
function M.in_tikz()
return env 'tikzpicture'
end
function M.in_bullets()
return env 'itemize' or env 'enumerate'
end
function M.in_align()
return env 'align' or env 'align*' or env 'aligned'
end
return M