about summary refs log tree commit diff stats
path: root/modules/by-name/nv/nvim/plgs/luasnip/lua
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-05-04 21:54:07 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-05-04 21:54:07 +0200
commitee174d9de0d926572acaaeca781b40e826ec4bcb (patch)
treed880b7e33bd44c4dc26ea1f8c53dc98b68f73d1e /modules/by-name/nv/nvim/plgs/luasnip/lua
parentmodules/nvim/plgs/luasnip/snippets: Simplify and add spdx-snippets (diff)
downloadnixos-config-ee174d9de0d926572acaaeca781b40e826ec4bcb.zip
modules/nvim/plgs/luasnip: Remove useless `./lua` directory
Diffstat (limited to 'modules/by-name/nv/nvim/plgs/luasnip/lua')
-rw-r--r--modules/by-name/nv/nvim/plgs/luasnip/lua/snippets/all.lua338
-rw-r--r--modules/by-name/nv/nvim/plgs/luasnip/lua/snippets/tex/delimiter.lua41
-rw-r--r--modules/by-name/nv/nvim/plgs/luasnip/lua/snippets/tex/greek.lua49
3 files changed, 0 insertions, 428 deletions
diff --git a/modules/by-name/nv/nvim/plgs/luasnip/lua/snippets/all.lua b/modules/by-name/nv/nvim/plgs/luasnip/lua/snippets/all.lua
deleted file mode 100644
index 371f5539..00000000
--- a/modules/by-name/nv/nvim/plgs/luasnip/lua/snippets/all.lua
+++ /dev/null
@@ -1,338 +0,0 @@
--- nixos-config - My current NixOS configuration
---
--- Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
--- SPDX-License-Identifier: GPL-3.0-or-later
---
--- This file is part of my nixos-config.
---
--- You should have received a copy of the License along with this program.
--- If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
-
-local ls = require("luasnip")
-local fmt = require("luasnip.extras.fmt").fmt
-
---- Get the comment string {begin,end} table
----
----@param comment_type integer 1 for `line`-comment and 2 for `block`-comment
----@return table comment_strings {["begin"]=begin_comment_string, ["end"]=end_comment_string}
-local get_comment_string = function(comment_type)
-  local calculate_comment_string = require("Comment.ft").calculate
-  local utils = require("Comment.utils")
-
-  -- use the `Comments.nvim` API to fetch the comment string for the region (eq. '--%s' or '--[[%s]]' for `lua`)
-  local cstring =
-    calculate_comment_string({ ctype = comment_type; range = utils.get_region(); })
-
-  if cstring == nil then
-    -- TODO: Use `vim.bo.commentstring` <2025-05-02>
-
-    -- Use some useful default values.
-    return { ["begin"] = "#"; ["end"] = ""; }
-  end
-
-  -- as we want only the strings themselves and not strings ready for using `format` we want to split the left and right side
-  local left, right = utils.unwrap_cstr(cstring)
-
-  -- create a `{left, right}` table for it
-  return { ["begin"] = left; ["end"] = right; }
-end
-
---- Wraps a table of snippet nodes in two comment function nodes.
----
----@param comment_type integer 1 for `line`-comment and 2 for `block`-comment
----@param nodes table The nodes that should be wrapped
----@return table wrapped_nodes The now wrapped `nodes` table.
-local wrap_snippet_in_comments = function(comment_type, nodes)
-  local output = {}
-
-  table.insert(output, ls.function_node(function()
-    return get_comment_string(comment_type)["begin"]
-  end))
-
-
-  for _, v in ipairs(nodes) do
-    table.insert(output, v)
-  end
-
-  table.insert(output, ls.function_node(function()
-    return get_comment_string(comment_type)["end"]
-  end))
-
-  return output
-end
-
--- auto_pairs  {{{
-local get_visual = function(_, parent)
-  if #parent.snippet.env.SELECT_RAW > 0 then
-    return ls.snippet_node(nil, ls.insert_node(1, parent.snippet.env.SELECT_RAW))
-  else
-    return ls.snippet_node(nil, ls.insert_node(1, ""))
-  end
-end
-
-local function char_count_same(c1, c2)
-  local line = vim.api.nvim_get_current_line()
-  -- '%'-escape chars to force explicit match (gsub accepts patterns).
-  -- second return value is number of substitutions.
-  local _, ct1 = string.gsub(line, "%" .. c1, "")
-  local _, ct2 = string.gsub(line, "%" .. c2, "")
-  return ct1 == ct2
-end
-
-local function even_count(c, ...)
-  local line = vim.api.nvim_get_current_line()
-  local _, ct = string.gsub(line, c, "")
-  return ct % 2 == 0
-end
-
--- This makes creation of pair-type snippets easier.
-local function pair(pair_begin, pair_end, file_types, condition_function)
-  -- FIXME(@Soispha): This only works if file_types == nil, otherwise the snippet does not expand.
-  -- It would be nice, if it would support both an empty array (`{}`) and nil <2023-08-27>
-  -- file_types = file_types or {};
-
-  return ls.snippet(
-    {
-      trig = pair_begin;
-      wordTrig = false;
-      snippetType = "autosnippet";
-    },
-    {
-      ls.text_node({ pair_begin; });
-      ls.dynamic_node(1, get_visual);
-      ls.text_node({ pair_end; });
-    },
-    {
-      condition = function()
-        local filetype_check = true
-
-        if file_types ~= nil then
-          filetype_check = file_types[vim.bo.filetype] or false
-        end
-
-        return (not condition_function(pair_begin, pair_end)) and filetype_check
-      end;
-    }
-  )
-end
-
-local auto_pairs = {
-  pair("(", ")", nil, char_count_same);
-  pair("{", "}", nil, char_count_same);
-  pair("[", "]", nil, char_count_same);
-  pair("<", ">", { ["rust"] = true; ["tex"] = true; }, char_count_same);
-  pair("'", "'", nil, even_count);
-  pair("\"", "\"", nil, even_count);
-  pair("`", "`", nil, even_count);
-}
-
-ls.add_snippets("all", auto_pairs, { type = "snippets"; key = "auto_pairs"; })
--- }}}
-
--- todo_comments {{{
-local read_git_config = function(config_value)
-  local command = string.format("git config \"%s\"", config_value)
-
-  local handle = io.popen(command)
-  if handle == nil then
-    return error(string.format("Failed to call `%s`.", command))
-  end
-
-  local result = handle:read("*a")
-  handle:close()
-
-  -- stripped = string.gsub(str, '%s+', '')
-  return string.gsub(result, "\n", "")
-end
-
---- Create a @handle from a full name.
----
---- Example:
---- “Benedikt Peetz” -> “@bpeetz”
-local handle_from_name = function(name)
-  -- from: https://stackoverflow.com/a/7615129
-  local split = function(inputstr, sep)
-    local t = {}
-    for str in string.gmatch(inputstr, "([^" .. sep .. "]+)") do
-      table.insert(t, str)
-    end
-    return t
-  end
-
-  -- Split on spaces
-  local parts = split(name, "%s")
-
-  local output_name = ""
-
-  if #parts > 2 then
-    -- Only use the first chars.
-    --
-    -- Example:
-    -- “Richard Matthew Stallman” -> “rms”
-    for _, val in ipairs(parts) do
-      output_name = string.format("%s%s", output_name, val:sub(1, 1))
-    end
-  elseif #parts == 2 then
-    output_name = string.format("%s%s", parts[1]:sub(1, 1), parts[2])
-  elseif #parts == 1 then
-    output_name = parts[1]
-  elseif #parts == 0 then
-    output_name = "<NoName>"
-  end
-
-  return string.format("@%s", output_name:lower())
-end
-
---- Generate a comment snippet
----
----@param trig string The trigger
----@param name string name for the comment (ex.: {FIX, ISSUE, FIXIT, BUG})
----@param comment_type integer The comment type.
----@param mark_function function: The function used to get the marks
-local todo_snippet = function(trig, name, comment_type, mark_function)
-  assert(trig, "context doesn't include a `trig` key which is mandatory")
-  assert(comment_type == 1 or comment_type == 2)
-
-  local context = {}
-  context.name = name .. " comment"
-  context.trig = trig
-
-  local date_node, signature_node = mark_function()
-
-  local nodes = fmt("{} {}{}: {} {} {}", wrap_snippet_in_comments(comment_type, {
-    ls.text_node(name);
-    signature_node;
-    ls.insert_node(1, "content");
-    date_node;
-  }))
-
-  return ls.snippet(context, nodes, { ctype = comment_type; })
-end
-
----@param trigger string: The luasnip trigger
----@param comment_type integer: The luasnip comment type
----@param name string: All aliases for a name
----@return table: All possible snippets build from the marks
-local process_marks = function(trigger, name, comment_type)
-  local username = function()
-    return handle_from_name(read_git_config("user.name"))
-  end
-
-  local marks = {
-    signature = function()
-      return ls.text_node("(" .. username() .. ")"), ls.text_node("")
-    end;
-
-    date_signature = function()
-      return ls.text_node("<" .. os.date("%Y-%m-%d") .. ">"), ls.text_node("(" .. username() .. ")")
-    end;
-
-    date = function()
-      return ls.text_node("<" .. os.date("%Y-%m-%d") .. ">"), ls.text_node("")
-    end;
-
-    empty = function()
-      return ls.text_node(""), ls.text_node("")
-    end;
-  }
-
-  local output = {}
-  for mark_name, mark_function in pairs(marks) do
-    local trig = trigger .. "-" .. mark_name
-
-    output[#output + 1] = todo_snippet(trig, name, comment_type, mark_function)
-  end
-
-  return output
-end
-
-local todo_snippet_specs = {
-  { { trig = "todo"; };  { "TODO"; };                                     { ctype = 1; }; };
-  { { trig = "fix"; };   { "FIXME"; "ISSUE"; };                           { ctype = 1; }; };
-  { { trig = "hack"; };  { "HACK"; };                                     { ctype = 1; }; };
-  { { trig = "warn"; };  { "WARNING"; };                                  { ctype = 1; }; };
-  { { trig = "perf"; };  { "PERFORMANCE"; "OPTIMIZE"; };                  { ctype = 1; }; };
-  { { trig = "note"; };  { "NOTE"; "INFO"; };                             { ctype = 1; }; };
-
-  -- NOTE: Block commented todo-comments
-  { { trig = "todob"; }; { "TODO"; };                                     { ctype = 2; }; };
-  { { trig = "fixb"; };  { "FIXME"; "ISSUE"; };                           { ctype = 2; }; };
-  { { trig = "hackb"; }; { "HACK"; };                                     { ctype = 2; }; };
-  { { trig = "warnb"; }; { "WARNING"; };                                  { ctype = 2; }; };
-  { { trig = "perfb"; }; { "PERF"; "PERFORMANCE"; "OPTIM"; "OPTIMIZE"; }; { ctype = 2; }; };
-  { { trig = "noteb"; }; { "NOTE"; "INFO"; };                             { ctype = 2; }; };
-}
-
-local todo_comment_snippets = {}
-for _, v in ipairs(todo_snippet_specs) do
-  local snippets = process_marks(v[1].trig, v[2][1], v[3].ctype)
-  for _, value in pairs(snippets) do
-    table.insert(todo_comment_snippets, value)
-  end
-end
-
-ls.add_snippets("all", todo_comment_snippets, { type = "snippets"; key = "todo_comments"; })
--- }}}
-
--- spdx snippets {{{
-local generate_spdx_snippet = function(comment_type, spdx_license_expr, trigger)
-  assert(trigger, "context doesn't include a `trig` key which is mandatory")
-  assert(comment_type == 1 or comment_type == 2)
-
-  local context = {}
-  context.name = trigger .. " spdx snippet expr"
-  context.trig = trigger
-
-
-  local nodes = {
-    fmt("{} SPDX-SnippetBegin {}", wrap_snippet_in_comments(comment_type, {}));
-
-    fmt("{} SPDX-SnippetCopyrightText: {} {} <{}> {}",
-        wrap_snippet_in_comments(comment_type, {
-          ls.insert_node(1, "year");
-          ls.insert_node(2, "author");
-          ls.insert_node(3, "email");
-        })
-    );
-
-    fmt("{} SPDX-License-Identifier: {} {}", wrap_snippet_in_comments(comment_type, {
-      ls.text_node(spdx_license_expr);
-    }));
-
-    { ls.insert_node(4, "content"); };
-
-    fmt("{} SPDX-SnippetEnd {}", wrap_snippet_in_comments(comment_type, {}));
-
-    { ls.insert_node(0); };
-  }
-
-  local newline_nodes = {}
-  for _, sub_nodes in ipairs(nodes) do
-    for _, node in ipairs(sub_nodes) do
-      table.insert(newline_nodes, node)
-    end
-
-    -- luasnip requires newlines to be encoded like this:
-    table.insert(newline_nodes, ls.text_node({ ""; ""; }))
-  end
-
-  return ls.snippet(context, newline_nodes, { ctype = comment_type; })
-end
-
-local spdx = {
-  { trigger = "spdx-AGPL3+"; license = "AGPL-3.0-or-later"; };
-  { trigger = "spdx-GPL3+";  license = "GPL-3.0-or-later"; };
-  { trigger = "spdx-MIT";    license = "MIT"; };
-}
-
-local spdx_snippets = {}
-for _, value in ipairs(spdx) do
-  local snippet = generate_spdx_snippet(1, value.license, value.trigger)
-  table.insert(spdx_snippets, snippet)
-
-  snippet = generate_spdx_snippet(2, value.license, value.trigger .. "-block")
-  table.insert(spdx_snippets, snippet)
-end
-
-ls.add_snippets("all", spdx_snippets, { type = "snippets"; key = "spdx_snippets"; })
--- }}}
diff --git a/modules/by-name/nv/nvim/plgs/luasnip/lua/snippets/tex/delimiter.lua b/modules/by-name/nv/nvim/plgs/luasnip/lua/snippets/tex/delimiter.lua
deleted file mode 100644
index bcd128f7..00000000
--- a/modules/by-name/nv/nvim/plgs/luasnip/lua/snippets/tex/delimiter.lua
+++ /dev/null
@@ -1,41 +0,0 @@
--- nixos-config - My current NixOS configuration
---
--- Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
--- SPDX-License-Identifier: GPL-3.0-or-later
---
--- This file is part of my nixos-config.
---
--- You should have received a copy of the License along with this program.
--- If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
-
-local ls = require("luasnip")
-local fmt = require("luasnip.extras.fmt").fmt
-
-local get_visual = function(_, parent)
-  if #parent.snippet.env.SELECT_RAW > 0 then
-    return ls.snippet_node(nil, ls.insert_node(1, parent.snippet.env.SELECT_RAW))
-  else
-    return ls.snippet_node(nil, ls.insert_node(1, ""))
-  end
-end
-
-local translation_table = { ["("] = ")"; ["{"] = "}"; ["["] = "]"; }
-
--- Return snippet tables
-return {
-  -- LEFT/RIGHT ALL BRACES
-  ls.snippet(
-    {
-      trig = "([^%a])l([%(%[%{])";
-      regTrig = true;
-      wordTrig = false;
-      snippetType = "autosnippet";
-    },
-    fmt("{}\\left{}{}\\right{}", {
-      ls.function_node(function(_, snip) return snip.captures[1] end);
-      ls.function_node(function(_, snip) return snip.captures[2] end);
-      ls.dynamic_node(1, get_visual);
-      ls.function_node(function(_, snip) return translation_table[snip.captures[2]] end);
-    })
-  );
-}
diff --git a/modules/by-name/nv/nvim/plgs/luasnip/lua/snippets/tex/greek.lua b/modules/by-name/nv/nvim/plgs/luasnip/lua/snippets/tex/greek.lua
deleted file mode 100644
index 21aa7414..00000000
--- a/modules/by-name/nv/nvim/plgs/luasnip/lua/snippets/tex/greek.lua
+++ /dev/null
@@ -1,49 +0,0 @@
--- nixos-config - My current NixOS configuration
---
--- Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
--- SPDX-License-Identifier: GPL-3.0-or-later
---
--- This file is part of my nixos-config.
---
--- You should have received a copy of the License along with this program.
--- If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
-
-local ls = require("luasnip")
-
--- Return snippet tables
-return {
-  ls.snippet({ trig = ";a"; snippetType = "autosnippet"; }, { ls.text_node("\\alpha"); });
-  ls.snippet({ trig = ";b"; snippetType = "autosnippet"; }, { ls.text_node("\\beta"); });
-  ls.snippet({ trig = ";g"; snippetType = "autosnippet"; }, { ls.text_node("\\gamma"); });
-  ls.snippet({ trig = ";G"; snippetType = "autosnippet"; }, { ls.text_node("\\Gamma"); });
-  ls.snippet({ trig = ";d"; snippetType = "autosnippet"; }, { ls.text_node("\\delta"); });
-  ls.snippet({ trig = ";D"; snippetType = "autosnippet"; }, { ls.text_node("\\Delta"); });
-  ls.snippet({ trig = ";e"; snippetType = "autosnippet"; }, { ls.text_node("\\epsilon"); });
-  ls.snippet({ trig = ";ve"; snippetType = "autosnippet"; }, { ls.text_node("\\varepsilon"); });
-  ls.snippet({ trig = ";z"; snippetType = "autosnippet"; }, { ls.text_node("\\zeta"); });
-  ls.snippet({ trig = ";h"; snippetType = "autosnippet"; }, { ls.text_node("\\eta"); });
-  ls.snippet({ trig = ";o"; snippetType = "autosnippet"; }, { ls.text_node("\\theta"); });
-  ls.snippet({ trig = ";vo"; snippetType = "autosnippet"; }, { ls.text_node("\\vartheta"); });
-  ls.snippet({ trig = ";O"; snippetType = "autosnippet"; }, { ls.text_node("\\Theta"); });
-  ls.snippet({ trig = ";k"; snippetType = "autosnippet"; }, { ls.text_node("\\kappa"); });
-  ls.snippet({ trig = ";l"; snippetType = "autosnippet"; }, { ls.text_node("\\lambda"); });
-  ls.snippet({ trig = ";L"; snippetType = "autosnippet"; }, { ls.text_node("\\Lambda"); });
-  ls.snippet({ trig = ";m"; snippetType = "autosnippet"; }, { ls.text_node("\\mu"); });
-  ls.snippet({ trig = ";n"; snippetType = "autosnippet"; }, { ls.text_node("\\nu"); });
-  ls.snippet({ trig = ";x"; snippetType = "autosnippet"; }, { ls.text_node("\\xi"); });
-  ls.snippet({ trig = ";X"; snippetType = "autosnippet"; }, { ls.text_node("\\Xi"); });
-  ls.snippet({ trig = ";i"; snippetType = "autosnippet"; }, { ls.text_node("\\pi"); });
-  ls.snippet({ trig = ";I"; snippetType = "autosnippet"; }, { ls.text_node("\\Pi"); });
-  ls.snippet({ trig = ";r"; snippetType = "autosnippet"; }, { ls.text_node("\\rho"); });
-  ls.snippet({ trig = ";s"; snippetType = "autosnippet"; }, { ls.text_node("\\sigma"); });
-  ls.snippet({ trig = ";S"; snippetType = "autosnippet"; }, { ls.text_node("\\Sigma"); });
-  ls.snippet({ trig = ";t"; snippetType = "autosnippet"; }, { ls.text_node("\\tau"); });
-  ls.snippet({ trig = ";f"; snippetType = "autosnippet"; }, { ls.text_node("\\phi"); });
-  ls.snippet({ trig = ";vf"; snippetType = "autosnippet"; }, { ls.text_node("\\varphi"); });
-  ls.snippet({ trig = ";F"; snippetType = "autosnippet"; }, { ls.text_node("\\Phi"); });
-  ls.snippet({ trig = ";c"; snippetType = "autosnippet"; }, { ls.text_node("\\chi"); });
-  ls.snippet({ trig = ";p"; snippetType = "autosnippet"; }, { ls.text_node("\\psi"); });
-  ls.snippet({ trig = ";P"; snippetType = "autosnippet"; }, { ls.text_node("\\Psi"); });
-  ls.snippet({ trig = ";w"; snippetType = "autosnippet"; }, { ls.text_node("\\omega"); });
-  ls.snippet({ trig = ";W"; snippetType = "autosnippet"; }, { ls.text_node("\\Omega"); });
-}