summaryrefslogtreecommitdiffstats
path: root/lua/core/snippets
diff options
context:
space:
mode:
authorSquibid <me@zacharyscheiman.com>2023-02-15 23:11:33 -0500
committerSquibid <me@zacharyscheiman.com>2023-02-15 23:11:33 -0500
commit70abc1f30f772757088b13d97256423385156080 (patch)
tree15d71d3973c41d8566304e5943a966e2d1e10d91 /lua/core/snippets
parent74c846a7b6461c2be572c3778d67d5df682a34e9 (diff)
downloadnvim-70abc1f30f772757088b13d97256423385156080.tar.gz
nvim-70abc1f30f772757088b13d97256423385156080.tar.bz2
nvim-70abc1f30f772757088b13d97256423385156080.zip
Major changes including better ui and more keybinds :)
Diffstat (limited to '')
-rw-r--r--lua/core/snippets/c.lua29
-rw-r--r--lua/core/snippets/init.lua35
-rw-r--r--lua/core/snippets/lua.lua14
-rw-r--r--lua/core/snippets/makefile.lua41
4 files changed, 119 insertions, 0 deletions
diff --git a/lua/core/snippets/c.lua b/lua/core/snippets/c.lua
new file mode 100644
index 0000000..c45f556
--- /dev/null
+++ b/lua/core/snippets/c.lua
@@ -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);',
+ '}',
+ })
+ })
+})
diff --git a/lua/core/snippets/init.lua b/lua/core/snippets/init.lua
new file mode 100644
index 0000000..a7824e2
--- /dev/null
+++ b/lua/core/snippets/init.lua
@@ -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')
diff --git a/lua/core/snippets/lua.lua b/lua/core/snippets/lua.lua
new file mode 100644
index 0000000..c5466ff
--- /dev/null
+++ b/lua/core/snippets/lua.lua
@@ -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),
+ }
+ )
+ )
+})
diff --git a/lua/core/snippets/makefile.lua b/lua/core/snippets/makefile.lua
new file mode 100644
index 0000000..d15ef8d
--- /dev/null
+++ b/lua/core/snippets/makefile.lua
@@ -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),
+ }
+ )
+ ),
+})