feat(nvim): improve pythondef
snippet
This commit is contained in:
parent
3a11699976
commit
050354d11a
@ -46,6 +46,9 @@ return {
|
|||||||
|
|
||||||
-- Load Snippets
|
-- Load Snippets
|
||||||
require("luasnip.loaders.from_vscode").lazy_load()
|
require("luasnip.loaders.from_vscode").lazy_load()
|
||||||
|
require("luasnip.loaders.from_lua").load({
|
||||||
|
paths = vim.fn.stdpath("config") .. "/lua/plugins/snippets"
|
||||||
|
})
|
||||||
|
|
||||||
local colors_bg_color = vim.api.nvim_get_hl(0, { name = "CmpCustomSelectionColor" }).bg
|
local colors_bg_color = vim.api.nvim_get_hl(0, { name = "CmpCustomSelectionColor" }).bg
|
||||||
local cached_colors = {}
|
local cached_colors = {}
|
||||||
@ -107,8 +110,8 @@ return {
|
|||||||
local standard_sources = function(sources)
|
local standard_sources = function(sources)
|
||||||
sources = sources or {}
|
sources = sources or {}
|
||||||
local default_sources = {
|
local default_sources = {
|
||||||
{ name = "nvim_lsp", priority = 11 },
|
{ name = "nvim_lsp", priority = 11 },
|
||||||
{ name = "luasnip", priority = 10 }, -- For luasnip users.
|
{ name = "luasnip", priority = 10 }, -- For luasnip users.
|
||||||
{ name = "fuzzy_buffer", priority = 9, keyword_length = 3, max_item_count = 10 },
|
{ name = "fuzzy_buffer", priority = 9, keyword_length = 3, max_item_count = 10 },
|
||||||
{
|
{
|
||||||
name = "rg",
|
name = "rg",
|
||||||
@ -117,12 +120,12 @@ return {
|
|||||||
max_item_count = 10,
|
max_item_count = 10,
|
||||||
},
|
},
|
||||||
{ name = "async_path", priority = 6 },
|
{ name = "async_path", priority = 6 },
|
||||||
{ name = "zsh", priority = 5 },
|
{ name = "zsh", priority = 5 },
|
||||||
{ name = "emoji", keyword_length = 2 },
|
{ name = "emoji", keyword_length = 2 },
|
||||||
{ name = "neorg" },
|
{ name = "neorg" },
|
||||||
{ name = "calc" },
|
{ name = "calc" },
|
||||||
{ name = "npm", keyword_length = 2 },
|
{ name = "npm", keyword_length = 2 },
|
||||||
{ name = "spell", keyword_length = 2 },
|
{ name = "spell", keyword_length = 2 },
|
||||||
}
|
}
|
||||||
|
|
||||||
return vim.tbl_deep_extend("force", default_sources, sources)
|
return vim.tbl_deep_extend("force", default_sources, sources)
|
||||||
|
45
dots/.config/nvim/lua/plugins/snippets/python.lua
Normal file
45
dots/.config/nvim/lua/plugins/snippets/python.lua
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
-- Thanks u/1linguini1
|
||||||
|
return {
|
||||||
|
s({ trig = "main", name = "Main gaurd.", dscr = "Python __main__ gaurd." }, {
|
||||||
|
t({ 'if __name__ == "__main__":', "\t" }),
|
||||||
|
c(1, {
|
||||||
|
t(""),
|
||||||
|
t("main()"),
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
s({ trig = "def", dscr = "Create a function/method definition with standard parameters." }, {
|
||||||
|
t({ "def " }),
|
||||||
|
i(1, "fn_name"),
|
||||||
|
d(2, function(_)
|
||||||
|
-- Immediate parent must be a class definition (first method created in a class will have the current node
|
||||||
|
-- as a class definition)
|
||||||
|
local in_class = false
|
||||||
|
local node = vim.treesitter.get_node()
|
||||||
|
if node then
|
||||||
|
in_class = node:type() == "class_definition" or node:parent():type() == "class_definition"
|
||||||
|
end
|
||||||
|
|
||||||
|
local pos = vim.api.nvim_win_get_cursor(0)
|
||||||
|
local decorator = vim.api.nvim_buf_get_lines(0, pos[1] - 3, pos[1] - 2, false)
|
||||||
|
|
||||||
|
-- Decide default arguments based on nodes
|
||||||
|
local arguments = "("
|
||||||
|
if in_class then
|
||||||
|
if string.find(decorator[1], "classmethod") then
|
||||||
|
arguments = arguments .. "cls, "
|
||||||
|
elseif not string.find(decorator[1], "staticmethod") then
|
||||||
|
arguments = arguments .. "self, "
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return sn(nil, {
|
||||||
|
t({ arguments }),
|
||||||
|
i(1, ""),
|
||||||
|
t({ ") -> " }),
|
||||||
|
})
|
||||||
|
end),
|
||||||
|
i(3, "None"),
|
||||||
|
t({ ":", "\t" }),
|
||||||
|
i(0, "pass"),
|
||||||
|
}),
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user