feat(snip): indent multiline visual operations

This commit is contained in:
arne314
2025-04-28 00:07:56 +02:00
parent 5297c53a56
commit b47e98e478
2 changed files with 33 additions and 26 deletions

View File

@@ -4,10 +4,11 @@ local i = ls.insert_node
local helper = require('typstar.autosnippets')
local cap = helper.cap
local markup = helper.in_markup
local visual = helper.visual
local snip = helper.snip
local start = helper.start_snip
local indent_visual = function(idx, default) return helper.visual(idx, default or '', '\t', 1) end
local ctheorems = {
{ 'tem', 'theorem' },
{ 'pro', 'proof' },
@@ -29,29 +30,24 @@ local wrappings = {
}
local document_snippets = {}
local ctheoremsstr = '#%s[\n<>\t<>\n<>]'
local ctheoremsstr = '#%s[\n<>\n<>]'
local wrappingsstr = '%s<>%s'
for _, val in pairs(ctheorems) do
local snippet = start(val[1], string.format(ctheoremsstr, val[2]), { cap(1), visual(1), cap(1) }, markup)
local snippet = start(val[1], string.format(ctheoremsstr, val[2]), { indent_visual(1), cap(1) }, markup)
table.insert(document_snippets, snippet)
end
for _, val in pairs(wrappings) do
local snippet = snip(val[1], string.format(wrappingsstr, val[2], val[3]), { visual(1, val[4]) }, markup)
local snippet = snip(val[1], string.format(wrappingsstr, val[2], val[3]), { helper.visual(1, val[4]) }, markup)
table.insert(document_snippets, snippet)
end
return {
start('dm', '$\n<>\t<>\n<>$', { cap(1), visual(1), cap(1) }, markup),
helper.start_snip_in_newl(
'dm',
'$\n<>\t<>\n<>$',
{ helper.leading_white_spaces(1), visual(1), helper.leading_white_spaces(1) },
markup
),
start('fla', '#flashcard(0)[<>][\n<>\t<>\n<>]', { i(1, 'flashcard'), cap(1), visual(2), cap(1) }, markup),
start('flA', '#flashcard(0, "<>")[\n<>\t<>\n<>]', { i(1, 'flashcard'), cap(1), visual(2), cap(1) }, markup),
start('dm', '$\n<>\n<>$', { indent_visual(1), cap(1) }, markup),
helper.start_snip_in_newl('dm', '$\n<>\n<>$', { indent_visual(1), helper.leading_white_spaces(1) }, markup),
start('fla', '#flashcard(0)[<>][\n<>\n<>]', { i(1, 'flashcard'), indent_visual(2), cap(1) }, markup),
start('flA', '#flashcard(0, "<>")[\n<>\n<>]', { i(1, 'flashcard'), indent_visual(2), cap(1) }, markup),
snip('IMP', '$==>>$ ', {}, markup),
snip('IFF', '$<<==>>$ ', {}, markup),
unpack(document_snippets),