Custom Snippets
user/init.lua
:
Be sure to read the comments in order to understand how to use this code for your environment.
return { plugins = { { "L3MON4D3/LuaSnip", config = function(plugin, opts) -- include the default astronvim config that calls the setup call require "plugins.configs.luasnip"(plugin, opts) -- load snippets paths require("luasnip.loaders.from_vscode").lazy_load { -- this can be used if your configuration lives in ~/.config/nvim -- if your configuration lives in ~/.config/astronvim, the full path -- must be specified in the next line paths = { "./lua/user/snippets" } } end, }, },}
Depending on the location of your configuration, create a subdirectory named snippets
under lua/user
.
Custom snippets will be added to this snippets
directory. They will follow the vscode style as described in the documentation
This example Vue snippet is added as snippets/vue.json
:
{ "setup": { "prefix": ["setup", "template"], "body": [ "<template>", "\t$1", "</template>", "", "<script lang=\"ts\" setup>", "\t$2", "</script>", "", "<style lang=\"sass\">", "\t$3", "</style>", "" ], "description": "My standard setup Vue3 + TS" }}
In order for Luasnip to see the newly added snippet, it must be cataloged in snippets/package.json
:
{ "name": "user snippets", "engines": { "vscode": "^1.11.0" }, "contributes": { "snippets": [ { "language": "vue", "path": "./vue.json" } ] }}
To verify the newly added snippet works, create a new vue file and type any string represented in the snippet’s prefix; in this case, setup
. You can also use :LuaSnipListAvailable
to see a list of all snippets available.