added snippets for latex!

This commit is contained in:
Thies Lennart Alff 2023-11-02 13:47:26 +01:00
parent ea34c67540
commit 97629dca2d
5 changed files with 106 additions and 6 deletions

View file

@ -0,0 +1,6 @@
require('luasnip').config.set_config({
enable_autosnippets = true,
store_selection_keys = '<Tab>',
})
require('luasnip.loaders.from_lua').load({paths = {vim.fn.stdpath('config') .. '/snippets'}})

View file

@ -16,11 +16,14 @@ return {
sources = { sources = {
{ name = 'nvim_lsp' }, { name = 'nvim_lsp' },
{ name = 'nvim_lua' }, { name = 'nvim_lua' },
{ name = 'luasnip' },
}, },
mapping = cmp.mapping.preset.insert({ mapping = cmp.mapping.preset.insert({
['<Tab>'] = cmp.mapping(function(fallback) ['<Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.select_next_item() cmp.select_next_item()
elseif require('luasnip').expand_or_jumpable() then
require('luasnip').expand_or_jump()
else else
fallback() fallback()
end end
@ -28,6 +31,8 @@ return {
['<S-Tab>'] = cmp.mapping(function(fallback) ['<S-Tab>'] = cmp.mapping(function(fallback)
if cmp.visible() then if cmp.visible() then
cmp.select_prev_item() cmp.select_prev_item()
elseif require('luasnip').jumpable(-1) then
require('luasnip').jump(-1)
else else
fallback() fallback()
end end

View file

@ -5,6 +5,7 @@ return {
version = "v2.*", version = "v2.*",
build = 'make install_jsregexp', build = 'make install_jsregexp',
}, },
{ 'saadparwaiz1/cmp_luasnip' },
'lewis6991/gitsigns.nvim', 'lewis6991/gitsigns.nvim',
{ {
'nvim-telescope/telescope.nvim', 'nvim-telescope/telescope.nvim',

View file

@ -7,12 +7,12 @@
-- require('cmp_nvim_lsp').default_capabilities() -- require('cmp_nvim_lsp').default_capabilities()
--) --)
vim.api.nvim_create_autocmd('FileType', { --vim.api.nvim_create_autocmd('FileType', {
pattern = 'tex', -- pattern = 'tex',
callback = function() -- callback = function()
require('cmp').setup.buffer { sources = {{ name = 'omni' }} } -- require('cmp').setup.buffer { sources = {{ name = 'omni' }} }
end, -- end,
}) --})
vim.api.nvim_create_autocmd('LspAttach', { vim.api.nvim_create_autocmd('LspAttach', {
desc = 'LSP actions', desc = 'LSP actions',

View file

@ -0,0 +1,88 @@
local ls = require('luasnip')
local s = ls.snippet
local sn = ls.snippet_node
local t = ls.text_node
local i = ls.insert_node
local f = ls.function_node
local d = ls.dynamic_node
local fmt = require('luasnip.extras.fmt').fmt
local fmta = require('luasnip.extras.fmt').fmta
local rep = require('luasnip.extras').rep
return {
s(
{
trig = 'env',
name = 'Environment',
dscr = 'Creates generic \\begin{} \\end{} environment',
},
fmta(
[[
\begin{<>}
<>
\end{<>}
]],
{
i(1),
i(2),
rep(1),
}
)
),
s(
{
trig = 'frame',
name = 'Beamer Frame',
dscr = 'Frame environment for beamer slides',
},
fmta(
[[
\begin{frame}
\frametitle{<>}
<>
\end{frame}
]],
{
i(1),
i(2),
}
)
),
s(
{
trig = 'frame-fragile',
name = 'Frame Fragile',
dscr = 'Required for verbatim content like code listings.',
},
fmta(
[[
\begin{frame}[fragile]
\frametitle{<>}
<>
\end{frame}
]],
{
i(1),
i(2),
}
)
),
s(
{
trig = 'noindent',
name = 'No Indent',
dscr = 'Add no indent instructin for latexindent. Useful for code-blocks.'
},
fmta(
[[
% \begin{noindent}
<>
% \end{noindent}
]]
,
{
i(1),
}
)
),
}