feat: Adding some additions to the luasnip code for nvim to start building out a snippet library for common actions, starting with docstrings in python.
This commit is contained in:
parent
1ad3cef941
commit
37d2389ed8
@ -26,3 +26,8 @@ if [ ! -L $HOME/.wezterm.lua ]
|
||||
then
|
||||
ln -fs $PWD/wezterm.lua $HOME/.wezterm.lua
|
||||
fi
|
||||
|
||||
if [ ! -L $HOME/.config/nvim/snippets ]
|
||||
then
|
||||
ln -fs $PWD/nvim/snippets $HOME/.config/nvim/snippets
|
||||
fi
|
||||
|
||||
@ -1,7 +1,23 @@
|
||||
return {
|
||||
'L3MON4D3/LuaSnip',
|
||||
config = function()
|
||||
local ls = require('luasnip')
|
||||
local extras = require('luasnip.extras')
|
||||
local l = extras.lambda
|
||||
ls.setup({
|
||||
snip_env = {
|
||||
s = function(...)
|
||||
local snip = ls.s(...)
|
||||
table.insert(getfenv(2).ls_file_snippets, snip)
|
||||
end,
|
||||
parse = function(...)
|
||||
local snip = ls.parser.parse_snippet(...)
|
||||
table.insert(getfenv(2).ls_file_snippets, snip)
|
||||
end,
|
||||
},
|
||||
})
|
||||
require('luasnip.loaders.from_vscode').lazy_load()
|
||||
require('luasnip.loaders.from_lua').lazy_load({paths = "./snippets"})
|
||||
end,
|
||||
dependencies = {
|
||||
'saadparwaiz1/cmp_luasnip', -- Wrapper to load snippets in nvim-cmp
|
||||
|
||||
45
nvim/snippets/python.lua
Normal file
45
nvim/snippets/python.lua
Normal file
@ -0,0 +1,45 @@
|
||||
local ls = require('luasnip')
|
||||
local s = ls.snippet
|
||||
local i = ls.insert_node
|
||||
local t = ls.text_node
|
||||
local l = require('luasnip.extras').lambda
|
||||
local fmt = require('luasnip.extras.fmt').fmt
|
||||
local ts_post = require('luasnip.extras.treesitter_postfix').treesitter_postfix
|
||||
|
||||
return {
|
||||
ts_post({
|
||||
matchTSNode = {
|
||||
query = [[
|
||||
(function_definition
|
||||
parameters: (parameters) @params
|
||||
return_type: (type) @return
|
||||
) @prefix
|
||||
]],
|
||||
query_lang = "python",
|
||||
},
|
||||
trig = "docstring",
|
||||
}, fmt([[
|
||||
''' {}
|
||||
|
||||
Parameters:
|
||||
{} () -
|
||||
|
||||
Returns:
|
||||
{} -
|
||||
{}
|
||||
'''
|
||||
]], {
|
||||
i(1),
|
||||
l(l.LS_TSCAPTURE_PARAMS),
|
||||
l(l.LS_TSCAPTURE_RETURN),
|
||||
l(l.LS_TSDATA),
|
||||
})),
|
||||
s(
|
||||
{ trig = "thingy" },
|
||||
{ t('Woot!') }
|
||||
),
|
||||
s(
|
||||
{ trig = 'thingy2' },
|
||||
{ t('Woot2!') }
|
||||
)
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user