diff options
author | Squibid <me@zacharyscheiman.com> | 2023-02-15 23:11:33 -0500 |
---|---|---|
committer | Squibid <me@zacharyscheiman.com> | 2023-02-15 23:11:33 -0500 |
commit | 70abc1f30f772757088b13d97256423385156080 (patch) | |
tree | 15d71d3973c41d8566304e5943a966e2d1e10d91 /lua/core/snippets | |
parent | 74c846a7b6461c2be572c3778d67d5df682a34e9 (diff) | |
download | nvim-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.lua | 29 | ||||
-rw-r--r-- | lua/core/snippets/init.lua | 35 | ||||
-rw-r--r-- | lua/core/snippets/lua.lua | 14 | ||||
-rw-r--r-- | lua/core/snippets/makefile.lua | 41 |
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), + } + ) + ), +}) |