342 current 2025-02-16 19:30:04 25.05.20241217.d3c42f1 6.6.66 *

This commit is contained in:
2025-02-16 19:30:20 -05:00
parent a7740af5bc
commit 88144f2c6a
4 changed files with 243 additions and 12 deletions

View File

@@ -39,6 +39,10 @@
plenary-nvim plenary-nvim
nvim-web-devicons nvim-web-devicons
# coc-nvim # coc-nvim
{
plugin = vimtex;
config = toLuaFile ./plugins/vimtex.lua;
}
{ {
plugin = goyo-vim; plugin = goyo-vim;
config = toLuaFile ./plugins/goyo.lua; config = toLuaFile ./plugins/goyo.lua;

View File

@@ -0,0 +1,42 @@
-- Enable filetype plugins, indent, and syntax highlighting.
vim.cmd("filetype plugin indent on")
vim.cmd("syntax enable")
-- Viewer options: either with a built-in viewer method or with a generic interface.
vim.g.vimtex_view_method = 'zathura'
vim.g.vimtex_view_general_viewer = 'zathura'
vim.g.vimtex_view_general_options = '--unique file:@pdf#src:@line@tex'
-- Set the TeX flavor and quickfix mode.
vim.g.tex_flavor = 'latex'
vim.g.vimtex_quickfix_mode = 0
vim.g.vimtex_quickfix_enabled = 0
-- Compiler backend.
vim.g.vimtex_compiler_method = 'latexrun'
-- Set the local leader (default is "\"; here we change it to comma).
vim.g.maplocalleader = ','
-- Configure warnings to ignore.
vim.g.Tex_IgnoredWarnings = [[
Package hyperref Warning
Token not allowed in a PDF string (Unicode)
removing math shift
removing superscript
Underfull
Overfull
specifier changed to
You have requested
Missing number, treated as zero.
There were undefined references
Citation %.%# undefined
Double space found.
]]
vim.g.Tex_IgnoreLevel = 8
-- Delete extra compilation files when a TeX buffer is deleted.
vim.api.nvim_create_autocmd("BufDelete", {
pattern = "*.tex",
command = "silent! !latexmk -c > /dev/null 2>&1 %:p",
})

View File

@@ -43,15 +43,3 @@ ls.add_snippets("lua", {
t(' end') t(' end')
}) })
}) })
ls.add_snippets("all", {
ms({
common = {snippetType = "autosnippet"},
"a",
"b"
}, {
t"a or b (but autotriggered!!)"
})
})

View File

@@ -0,0 +1,197 @@
local ls = require("luasnip")
local s = ls.snippet
local sn = ls.snippet_node
local isn = ls.indent_snippet_node
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local c = ls.choice_node
local d = ls.dynamic_node
local r = ls.restore_node
local events = require("luasnip.util.events")
local ai = require("luasnip.nodes.absolute_indexer")
local extras = require("luasnip.extras")
local l = extras.lambda
local rep = extras.rep
local p = extras.partial
local m = extras.match
local n = extras.nonempty
local dl = extras.dynamic_lambda
local fmt = require("luasnip.extras.fmt").fmt
local fmta = require("luasnip.extras.fmt").fmta
local conds = require("luasnip.extras.expand_conditions")
local postfix = require("luasnip.extras.postfix").postfix
local types = require("luasnip.util.types")
local parse = require("luasnip.util.parser").parse_snippet
local ms = ls.multi_snippet
local k = require("luasnip.nodes.key_indexer").new_key
local line_begin = require("luasnip.extras.expand_conditions").line_begin
ls.filetype_extend("plaintex", {"tex"})
local get_visual = function(args, parent)
if (#parent.snippet.env.LS_SELECT_RAW > 0) then
return sn(nil, i(1, parent.snippet.env.LS_SELECT_RAW))
else -- If LS_SELECT_RAW is empty, return a blank insert node
return sn(nil, i(1))
end
end
local in_mathzone = function()
-- The `in_mathzone` function requires the VimTeX plugin
return vim.fn['vimtex#syntax#in_mathzone']() == 1
end
-- exampe of a multiline snippet
-- ls.add_snippets("tex", {
-- s("template", fmta([[
-- <> <>
-- ]], {i(1), i(0)}, {
-- indent_string = ""
-- }))
-- })
ls.add_snippets("tex", {
s("template", fmta([[
\documentclass[11pt]{article}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{listings}
\usepackage[utf8]{inputenc}
\usepackage{parskip}
\usepackage{hyperref}
\usepackage{bookmark}
\usepackage[linguistics]{forest}
\usepackage{tikz}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{enumitem}
\usepackage{import}
\usepackage{pdfpages}
\usepackage{transparent}
\usepackage{xcolor}
\newtheorem{all}{Theorem}[section]
\newtheorem{corollary}[all]{Corollary}
\newtheorem{lemma}[all]{Lemma}
\newtheorem{definition}[all]{Definition}
\newtheorem{exercise}[all]{Exercise}
\newtheorem{proposition}[all]{Proposition}
\newtheorem{example}[all]{Example}
\newtheorem{theorem}{Theorem}
\newenvironment{lecture}[1]{
\t\section{\MakeUppercase{#1}}
\t\vspace{-0.5em}
\t\hrule
\t\vspace{1em}
\t\begin{list}{}{
\t\t\setlength{\leftmargin}{1.5em}
\t}
\t\item[]
}{
\t\end{list}
}
\title{<>}
\author{Jake Ginesin}
\date{}
\begin{document}
\maketitle
<>
\end{document}
]], {i(1), i(0)}, {
indent_string = ""
}))
})
ls.add_snippets("tex", {
s("template-math", fmta([[
\documentclass[11pt]{article}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{fullpage}
\usepackage{listings}
\usepackage[utf8]{inputenc}
\usepackage{parskip}
\usepackage{hyperref}
\usepackage{bookmark}
\usepackage[linguistics]{forest}
\usepackage{tikz}
\usepackage{enumitem}
\usepackage{euler}
\usepackage{libertine}
\usepackage{import}
\usepackage{pdfpages}
\usepackage{transparent}
\usepackage{xcolor}
\newtheoremstyle{definitionstyle}
{}
{}
{\normalfont}
{}
{\bfseries}
{:}
{0.5em}
{}
\theoremstyle{definitionstyle}
\newtheorem{definition}{Definition}[section]
\newtheorem{all}{Theorem}[section]
\newtheorem{corollary}[all]{Corollary}
\newtheorem{lemma}[all]{Lemma}
\newtheorem{exercise}[all]{Exercise}
\newtheorem{proposition}[all]{Proposition}
\newtheorem{example}[all]{Example}
\newtheorem{theorem}{Theorem}
\title{<>}
\author{Jake Ginesin}
\date{}
\begin{document}
\maketitle
<>
\end{document}
]], {i(1), i(0)}, {
indent_string = ""
}))
})
-- ----
ls.add_snippets("tex", {
s({trig = "ita", dscr = "Expands 'tii' into LaTeX's textit{} command."},
fmta("\\textit{<>}",
{
d(1, get_visual),
}
)
),
-- s({trig = "ff"},
-- fmta(
-- "\\frac{<>}{<>}",
-- {
-- i(1),
-- i(2),
-- }
-- ),
-- {condition = in_mathzone} -- `condition` option passed in the snippet `opts` table
-- ),
})