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
|
then
|
||||||
ln -fs $PWD/wezterm.lua $HOME/.wezterm.lua
|
ln -fs $PWD/wezterm.lua $HOME/.wezterm.lua
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ ! -L $HOME/.config/nvim/snippets ]
|
||||||
|
then
|
||||||
|
ln -fs $PWD/nvim/snippets $HOME/.config/nvim/snippets
|
||||||
|
fi
|
||||||
|
|||||||
@ -1,7 +1,23 @@
|
|||||||
return {
|
return {
|
||||||
'L3MON4D3/LuaSnip',
|
'L3MON4D3/LuaSnip',
|
||||||
config = function()
|
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_vscode').lazy_load()
|
||||||
|
require('luasnip.loaders.from_lua').lazy_load({paths = "./snippets"})
|
||||||
end,
|
end,
|
||||||
dependencies = {
|
dependencies = {
|
||||||
'saadparwaiz1/cmp_luasnip', -- Wrapper to load snippets in nvim-cmp
|
'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