Nvim Javascript Snippets in Typescript Files
Jan 11, 2025
return {
{
"nvim-mini/mini.snippets",
dependencies = {
"rafamadriz/friendly-snippets",
},
event = "VeryLazy",
config = function()
local mini_snippets = require("mini.snippets")
local gen_loader = mini_snippets.gen_loader
-- Custom loader that loads JavaScript snippets for JS/TS files only
local function load_js_snippets(context)
local lang = context and context.lang or ""
-- From docs: "To interactively check the current language with default
-- context, execute :=MiniSnippets.default_prepare({}) and see data in
-- the second table." For .tsx files, this returns "tsx", not
-- typescriptreact
if lang == "javascript"
or lang == "javascriptreact"
or lang == "typescript"
or lang == "tsx"
then
return {
-- This matches friendly-snippets and user-defined snippets in
-- nvim/snippets/javascript
gen_loader.from_runtime("javascript/*.json")(context),
}
end
return {}
end
mini_snippets.setup({
snippets = {
-- Define a global snippets file if needed
-- gen_loader.from_file("~/.config/nvim/snippets/global.json"),
load_js_snippets,
gen_loader.from_lang(),
},
mappings = {
stop = "<Esc>",
},
})
end,
},
}