| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- local M = {
- "L3MON4D3/LuaSnip",
- version = "v2.*",
- build = "make install_jsregexp",
- dependencies = {
- "rafamadriz/friendly-snippets",
- },
- }
- M.config = function()
- local ls = require("luasnip")
- local s = ls.snippet
- local t = ls.text_node
- local i = ls.insert_node
- ls.setup({
- history = true, -- Allow jumping back into snippets
- update_events = "TextChanged,TextChangedI", -- Update snippets as you type
- -- Make sure LuaSnip works well with blink.cmp
- region_check_events = "CursorMoved,CursorHold,InsertEnter",
- delete_check_events = "TextChanged,InsertLeave",
- })
- -- Markdown code block snippets with multiple language support
- local code_block_langs = {
- bash = "bash",
- go = "go",
- python = "python",
- javascript = "javascript",
- typescript = "typescript",
- rust = "rust",
- lua = "lua",
- cpp = "cpp",
- json = "json",
- html = "html",
- css = "css",
- }
- local code_block_snippets = {}
- for trigger, lang in pairs(code_block_langs) do
- table.insert(
- code_block_snippets,
- s({ trig = "`" .. trigger, regTrig = false, snippetType = "autosnippet" }, {
- t({ "", "```" .. lang }),
- t({ "", "" }),
- i(1, "# your " .. lang .. " code here"),
- t({ "", "```" }),
- })
- )
- end
- ls.add_snippets("markdown", code_block_snippets)
- require("luasnip.loaders.from_vscode").lazy_load()
- require("luasnip.loaders.from_vscode").lazy_load({ paths = vim.fn.stdpath("config") .. "/lua/plugins/snippets/" })
- end
- return M
|