global !p # def math(): # return vim.eval('vimtex#syntax#in_mathzone()') == '1' def in_env(lst): try: return get_env() in lst except: return False def get_env(): return vim.eval('vimtex#env#get_inner()["name"]') def delline_exititemize(snip): cursorline = snip.cursor[0] del snip.buffer[cursorline] snip.buffer.append("\n", cursorline + 1) snip.cursor.set(cursorline + 1, 0) endglobal priority -10 context in_env(["itemize", "enumerate"]) snippet "\\item\s*\S+.*" "create next item" rb `!p snip.rv = match.group(0)` \item $0 endsnippet context in_env(["itemize", "enumerate"]) post_jump "delline_exititemize(snip)" snippet "\\item\s*$" "exit itemize_like envs" rb endsnippet snippet "\\begin\{(itemize|enumerate)\}" "multiline begin{} / end{}" rb \begin{`!p snip.rv = match.group(1)`} \item $0 \end{`!p snip.rv = match.group(1)`} endsnippet snippet "\\begin\{((?!itemize|enumerate))\}" "multiline begin{} / end{}" rb \begin{`!p snip.rv = match.group(1)`} $0 \end{`!p snip.rv = match.group(1)`} endsnippet priority -20 snippet "(?