Add/migrate some basic lua snippets

master
Hektor Misplon 2025-05-05 23:06:00 +02:00
parent a76fd5cd62
commit 8f2787f439
6 changed files with 307 additions and 0 deletions

View File

@ -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) }),
}

119
.config/nvim/snips/css.lua Normal file
View File

@ -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 <color>;'" }, {
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),
}),
}

View File

@ -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),
}),
}

View File

@ -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),
}),
}

View File

@ -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),
})
),
}

View File

@ -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({ "<pre>" }),
i(0),
t({ "{JSON.stringify($0, 0, 2)}" }),
t({ "</pre>" }),
}),
s(":g", {
t({ ":global(" }),
i(0),
t({ ")" }),
}),
}