diff --git a/lua/luasnip-latex-snippets/util/ts_utils.lua b/lua/luasnip-latex-snippets/util/ts_utils.lua index bbf6e31..e03a247 100644 --- a/lua/luasnip-latex-snippets/util/ts_utils.lua +++ b/lua/luasnip-latex-snippets/util/ts_utils.lua @@ -49,7 +49,7 @@ function M.in_text(check_parent) return true end -function M.in_mathzone() +local function check_in_mathzone() local node = get_node_at_cursor() while node do if node:type() == "text_mode" then @@ -62,4 +62,21 @@ function M.in_mathzone() return false end +vim.api.nvim_create_autocmd({"BufEnter", "BufWinEnter"}, + {pattern = {"*.md"}, + callback = function() + if not vim.b.tracking_math then + vim.api.nvim_buf_attach(0, false, {on_lines = function(...) + vim.b.in_mathzone = check_in_mathzone() + end}) + vim.b.in_mathzone = false + vim.b.tracking_math = true + end + end + }) + +function M.in_mathzone() + return vim.b.in_mathzone +end + return M