2021-11-20 15:35:07 +01:00
|
|
|
-- Author : swytch
|
|
|
|
-- Created : Friday Nov. 19, 2021 23:27:24 CET
|
|
|
|
-- License : GPLv3
|
|
|
|
-- Description : luasnip config file
|
|
|
|
|
|
|
|
local ls = require("luasnip")
|
|
|
|
-- some shorthands...
|
|
|
|
local s = ls.snippet
|
|
|
|
local sn = ls.snippet_node
|
|
|
|
local t = ls.text_node
|
|
|
|
local i = ls.insert_node
|
|
|
|
local f = ls.function_node
|
|
|
|
local c = ls.choice_node
|
|
|
|
local d = ls.dynamic_node
|
|
|
|
local l = require("luasnip.extras").lambda
|
|
|
|
local r = require("luasnip.extras").rep
|
|
|
|
local p = require("luasnip.extras").partial
|
|
|
|
local m = require("luasnip.extras").match
|
|
|
|
local n = require("luasnip.extras").nonempty
|
|
|
|
local dl = require("luasnip.extras").dynamic_lambda
|
|
|
|
local fmt = require("luasnip.extras.fmt").fmt
|
|
|
|
local fmta = require("luasnip.extras.fmt").fmta
|
|
|
|
local types = require("luasnip.util.types")
|
|
|
|
local conds = require("luasnip.extras.expand_conditions")
|
|
|
|
|
|
|
|
-- Every unspecified option will be set to the default.
|
|
|
|
ls.config.set_config({
|
|
|
|
history = true,
|
|
|
|
-- Update more often, :h events for more info.
|
|
|
|
updateevents = "TextChanged,TextChangedI",
|
|
|
|
ext_opts = {
|
|
|
|
[types.choiceNode] = {
|
|
|
|
active = {
|
2022-04-29 00:23:08 +02:00
|
|
|
virt_text = { { "●", "LuaSnipChoice" } },
|
|
|
|
},
|
|
|
|
inactive = {
|
|
|
|
virt_text = { { "●", "LuaSnipInactive" } },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
[types.functionNode] = {
|
|
|
|
active = {
|
|
|
|
virt_text = { { "●", "LuaSnipFunction" } },
|
|
|
|
},
|
|
|
|
inactive = {
|
|
|
|
virt_text = { { "●", "LuaSnipInactive" } },
|
|
|
|
},
|
|
|
|
},
|
|
|
|
[types.insertNode] = {
|
|
|
|
active = {
|
|
|
|
virt_text = { { "●", "LuaSnipInsert" } },
|
|
|
|
},
|
|
|
|
inactive = {
|
|
|
|
virt_text = { { "●", "LuaSnipInactive" } },
|
2021-11-20 15:35:07 +01:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
-- treesitter-hl has 100, use something higher (default is 200).
|
|
|
|
ext_base_prio = 200,
|
|
|
|
-- minimal increase in priority.
|
|
|
|
ext_prio_increase = 1,
|
|
|
|
enable_autosnippets = true,
|
|
|
|
})
|
|
|
|
|
|
|
|
-- Make sure to not pass an invalid command, as io.popen() may write over nvim-text.
|
|
|
|
local function bash(_, _, command)
|
|
|
|
local file = io.popen(command, "r")
|
|
|
|
local res = {}
|
|
|
|
for line in file:lines() do
|
|
|
|
table.insert(res, line)
|
|
|
|
end
|
|
|
|
return res
|
|
|
|
end
|
|
|
|
|
|
|
|
-- Returns a snippet_node wrapped around an insert_node whose initial
|
|
|
|
-- text value is set to the current date in the desired format.
|
2021-12-09 16:30:30 +01:00
|
|
|
local function date_input(fmt)
|
2022-05-01 14:42:05 +02:00
|
|
|
local format = fmt or "%Y-%m-%d"
|
|
|
|
return sn(nil, i(1, os.date(format)))
|
2021-11-20 15:35:07 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
-- in a lua file: search lua-, then c-, then all-snippets.
|
|
|
|
ls.filetype_extend("lua", { "c" })
|
|
|
|
-- in a cpp file: search c-snippets, then all-snippets only (no cpp-snippets!!).
|
|
|
|
ls.filetype_set("cpp", { "c" })
|