Major changes including better ui and more keybinds :)

This commit is contained in:
2023-02-15 23:11:33 -05:00
parent 52ba49ec82
commit 8c8512386b
24 changed files with 664 additions and 118 deletions

29
lua/core/snippets/c.lua Normal file
View File

@ -0,0 +1,29 @@
ls.add_snippets('c', {
s('trip', {
-- cond ? then : else statment
i(1, 'cond'), t(' ? '), i(2, 'then'), t(' : '), i(3, 'else')
}),
s('stdlibs', {
-- cond ? then : else statment
t('#include <stdio.h>'),
t({'', '#include <stdlib.h>'})
}),
s('die', {
t({
'void die(const char *fmt, ...) {', '',
'va_list ap;',
'',
'va_start(ap, fmt);',
'vfprintf(stderr, fmt, ap);',
'va_end(ap);',
'',
[[if (fmt[0] && fmt[strlen(fmt)-1] == ':') {]],
[[ fputc(' ', stderr);]],
' perror(NULL);',
'} else',
[[ fputc('\n', stderr);]],
' exit(1);',
'}',
})
})
})

View File

@ -0,0 +1,35 @@
ls = require("luasnip")
s = ls.snippet
sn = ls.snippet_node
isn = ls.indent_snippet_node
t = ls.text_node
i = ls.insert_node
f = ls.function_node
c = ls.choice_node
d = ls.dynamic_node
r = ls.restore_node
events = require("luasnip.util.events")
ai = require("luasnip.nodes.absolute_indexer")
extras = require("luasnip.extras")
l = extras.lambda
rep = extras.rep
p = extras.partial
m = extras.match
n = extras.nonempty
dl = extras.dynamic_lambda
fmt = require("luasnip.extras.fmt").fmt
fmta = require("luasnip.extras.fmt").fmta
conds = require("luasnip.extras.expand_conditions")
postfix = require("luasnip.extras.postfix").postfix
types = require("luasnip.util.types")
parse = require("luasnip.util.parser").parse_snippet
-- Repeat Insernode text
-- @param insert_node_id The id of the insert node to repeat (the first line from)
ri = function (insert_node_id)
return f(function (args) return args[1][1] end, insert_node_id)
end
require('core.snippets.c')
require('core.snippets.makefile')
require('core.snippets.lua')

14
lua/core/snippets/lua.lua Normal file
View File

@ -0,0 +1,14 @@
ls.add_snippets('lua', {
s({
name = "local require",
trig = "req",
dscr = "simple lua require"
},
fmt("local {} = require('{}')",
{
i(1, "default"),
ri(1),
}
)
)
})

View File

@ -0,0 +1,41 @@
ls.add_snippets('make', {
s({
name = "Start Makefile",
trig = "make",
dscr = "simple starter make file"
},
fmta(
[[
# flags and incs
CFLAGS = <FLAGS>
INCS = <MAIN>.c
PREFIX = <PREFIX>
# compiler and linker
CC = cc
all: <MAINA>
<MAINA>: <MAINA>.o
$(CC) <MAINA>.o $(CFLAGS) -o $@
<MAINA>.o: $(INCS)
clean:
rm -f <MAINA> *.o
install: <MAINA>
mkdir -p $(PREFIX)/bin
cp -f <MAINA> $(PREFIX)/bin
chmod 755 $(PREFIX)/bin/<MAINA>
uninstall: <MAINA>
rm -f $(PREFIX)/bin/<MAINA>
]],
{
FLAGS = i(1, "-Wall"),
MAIN = i(2, "main"),
PREFIX = i(3, "/usr/local"),
MAINA = ri(2),
}
)
),
})