50 lines
859 B
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
|