-- 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 = { 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" } }, }, }, }, -- 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. local function date_input(fmt) local format = fmt or "%Y-%m-%d" return sn(nil, i(1, os.date(format))) 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" })