diff --git a/.config/nvim/snips/all.lua b/.config/nvim/snips/all.lua new file mode 100644 index 0000000..3591da0 --- /dev/null +++ b/.config/nvim/snips/all.lua @@ -0,0 +1,27 @@ +local ls = require("luasnip") +local s = ls.snippet +local t = ls.text_node +local f = ls.function_node + +local TM_FILENAME = function(_, snip) + return snip.env.TM_FILENAME +end + +local TM_FILENAME_BASE = function(_, snip) + return snip.env.TM_FILENAME_BASE +end + +local NAME = "Hektor Misplon" +local LOCALHOST = "localhost" +local LOCALHOST_IP = "127.0.0.1" + +return { + s({ trig = "fn", desc = "Filename" }, { f(TM_FILENAME_BASE) }), + s({ trig = "fne", dscr = "Filename (+extension)" }, { f(TM_FILENAME) }), + s({ trig = "hm" }, { t(NAME) }), + s({ trig = "loho" }, { t(LOCALHOST) }), + s({ trig = "lohoi" }, { t(LOCALHOST_IP) }), + s({ trig = "date" }, { f(function() + return os.date("%Y-%m-%d") + end) }), +} diff --git a/.config/nvim/snips/css.lua b/.config/nvim/snips/css.lua new file mode 100644 index 0000000..233e536 --- /dev/null +++ b/.config/nvim/snips/css.lua @@ -0,0 +1,119 @@ +local ls = require("luasnip") +local s = ls.snippet +local t = ls.text_node +local i = ls.insert_node + +return { + -- Flex + s({ trig = "b1", dscr = "Add 'border: 1px ;'" }, { + t("border: 1px solid "), + i(1), + t(";"), + i(0), + }), + s({ trig = "dfl", dscr = "Add 'display: flex;'" }, { + t("display: flex;"), + i(0), + }), + s({ trig = "flr", dscr = "Add 'flex-direction: row;'" }, { + t("flex-direction: row;"), + i(0), + }), + s({ trig = "flc", dscr = "Add 'flex-direction: column;'" }, { + t("flex-direction: column;"), + i(0), + }), + s({ trig = "flw", dscr = "Add 'flex-wrap: wrap;'" }, { + t("flex-wrap: wrap;"), + i(0), + }), + s({ trig = "dfc", dscr = "Display flex column" }, { + t("display: flex;"), + t("flex-direction: column;"), + i(0), + }), + -- Grid + s({ trig = "dg", dscr = "Add 'display: grid;'" }, { + t("display: grid;"), + i(0), + }), + -- Block + s({ trig = "db", dscr = "Add 'display: block;'" }, { + t("display: block;"), + i(0), + }), + -- None + s({ trig = "dn", dscr = "Add 'display: none;'" }, { + t("display: none;"), + i(0), + }), + -- CSS Variables + s({ trig = "v", dscr = "Add CSS variable" }, { + t("var(--"), + i(1), + t(")"), + i(0), + }), + -- Margin + s({ trig = "m", dscr = "Add 'margin: ;'" }, { + t("margin: "), + i(1), + t(";"), + i(0), + }), + s({ trig = "mt", dscr = "Add 'margin-top: ;'" }, { + t("margin-top: "), + i(1), + t(";"), + i(0), + }), + s({ trig = "mr", dscr = "Add 'margin-right: ;'" }, { + t("margin-right: "), + i(1), + t(";"), + i(0), + }), + s({ trig = "mb", dscr = "Add 'margin-bottom: ;'" }, { + t("margin-bottom: "), + i(1), + t(";"), + i(0), + }), + s({ trig = "ml", dscr = "Add 'margin-left: ;'" }, { + t("margin-left: "), + i(1), + t(";"), + i(0), + }), + -- Padding + s({ trig = "p", dscr = "Add 'padding: ;'" }, { + t("padding: "), + i(1), + t(";"), + i(0), + }), + s({ trig = "pt", dscr = "Add 'padding-top: ;'" }, { + t("padding-top: "), + i(1), + t(";"), + i(0), + }), + s({ trig = "pr", dscr = "Add 'padding-right: ;'" }, { + t("padding-right: "), + i(1), + t(";"), + i(0), + }), + s({ trig = "pb", dscr = "Add 'padding-bottom: ;'" }, { + t("padding-bottom: "), + i(1), + t(";"), + i(0), + }), + s({ trig = "pl", dscr = "Add 'padding-left: ;'" }, { + t("padding-left: "), + i(1), + t(";"), + i(0), + }), +} diff --git a/.config/nvim/snips/glsl.lua b/.config/nvim/snips/glsl.lua new file mode 100644 index 0000000..7978ace --- /dev/null +++ b/.config/nvim/snips/glsl.lua @@ -0,0 +1,67 @@ +local ls = require("luasnip") +local s = ls.snippet +local t = ls.text_node +local i = ls.insert_node + +return { + s({ trig = "ifdef" }, { + t("#ifdef GL_ES"), + t("precision mediump float;"), + i(1), + t("#endif"), + }), + s({ trig = "defpi" }, { + t("#define PI 3.14159265359"), + }), + s({ trig = "main" }, { + t("void main() {"), + i(1), + t("}"), + }), + s({ trig = "uni" }, { + t("uniform "), + i(1), + t(";"), + }), + s({ trig = "unif" }, { + t("uniform float "), + i(1), + t(";"), + }), + s({ trig = "univ" }, { + t("uniform vec"), + i(1), + t(" float "), + i(2), + t(";"), + }), + s({ trig = "univ2" }, { + t("uniform vec2 float "), + i(1), + t(";"), + }), + s({ trig = "univ3" }, { + t("uniform vec3 float "), + i(1), + t(";"), + }), + s({ trig = "univ4" }, { + t("uniform vec4 float "), + i(1), + t(";"), + }), + s({ trig = "f" }, { + t("float "), + i(1), + t(";"), + }), + s({ trig = "v" }, { + t("vec"), + }), + s({ trig = "ss" }, { + t("smoothstep("), + i(1), + t(")"), + i(2), + }), +} diff --git a/.config/nvim/snips/javascript.lua b/.config/nvim/snips/javascript.lua new file mode 100644 index 0000000..788e2a8 --- /dev/null +++ b/.config/nvim/snips/javascript.lua @@ -0,0 +1,25 @@ +local ls = require("luasnip") +local s = ls.snippet +local t = ls.text_node +local i = ls.insert_node + +return { + s({ trig = "clg", dscr = "console.log" }, { + t("console.log("), + i(1), + t(")"), + i(0), + }), + s({ trig = "Js", dscr = "JSON.stringify" }, { + t("JSON.stringify("), + i(1), + t(")"), + i(0), + }), + s({ trig = "Jsf", dscr = "JSON.stringify (formatted)" }, { + t("JSON.stringify("), + i(1), + t(", 0, 2)"), + i(0), + }), +} diff --git a/.config/nvim/snips/pandoc.lua b/.config/nvim/snips/pandoc.lua new file mode 100644 index 0000000..d636602 --- /dev/null +++ b/.config/nvim/snips/pandoc.lua @@ -0,0 +1,39 @@ +local ls = require("luasnip") +local s = ls.snippet +local i = ls.insert_node +local d = ls.dynamic_node +local sn = ls.snippet_node +local fmta = require("luasnip.extras.fmt").fmta + +-- Taken from https://ejmastnak.com/tutorials/vim-latex/luasnip/#anatomy +local get_visual = function(_, parent) + if #parent.snippet.env.LS_SELECT_RAW > 0 then + return sn(nil, i(1, parent.snippet.env.LS_SELECT_RAW)) + else + return sn(nil, i(1)) + end +end + +return { + s( + { trig = "^h", regTrig = true, dscr = "Markdown header" }, + fmta("# <><>", { + d(1, get_visual), + i(0), + }) + ), + s( + { trig = "^sec", regTrig = true, dscr = "Markdown header" }, + fmta("## <><>", { + d(1, get_visual), + i(0), + }) + ), + s( + { trig = "^ssec", regTrig = true, dscr = "Markdown header" }, + fmta("### <><>", { + d(1, get_visual), + i(0), + }) + ), +} diff --git a/.config/nvim/snips/svelte.lua b/.config/nvim/snips/svelte.lua new file mode 100644 index 0000000..cdf6217 --- /dev/null +++ b/.config/nvim/snips/svelte.lua @@ -0,0 +1,30 @@ +local ls = require("luasnip") +local s = ls.snippet +local t = ls.text_node +local i = ls.insert_node + +-- TODO: extends html, javascript, css + +return { + s("oM", { + t({ "onMount(() => {" }), + i(0), + t({ "})" }), + }), + s("oD", { + t({ "onDestroy(() => {" }), + i(0), + t({ "})" }), + }), + s("preJsf", { + t({ "
" }),
+    i(0),
+    t({ "{JSON.stringify($0, 0, 2)}" }),
+    t({ "
" }), + }), + s(":g", { + t({ ":global(" }), + i(0), + t({ ")" }), + }), +}