From bc4e9b795276117acea44c7c5175b92f6d9d2044 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Thu, 17 Mar 2022 22:10:00 +0000 Subject: [PATCH] feat(nvim): make `req` work with dots --- .../files/lua/opdavies/snippets/ft/lua.lua | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/roles/neovim/files/lua/opdavies/snippets/ft/lua.lua b/roles/neovim/files/lua/opdavies/snippets/ft/lua.lua index acdb3eb..c2abfba 100644 --- a/roles/neovim/files/lua/opdavies/snippets/ft/lua.lua +++ b/roles/neovim/files/lua/opdavies/snippets/ft/lua.lua @@ -1,16 +1,27 @@ -local fmt = require("luasnip.extras.fmt").fmt local ls = require "luasnip" + +local fmt = require("luasnip.extras.fmt").fmt local rep = require("luasnip.extras").rep -local i = ls.insert_node +local f, i = ls.function_node, ls.insert_node return { - req = fmt("local {} = require('{}')", { i(1), rep(1) }), + pcall = fmt( + [[ + local status_ok, {} = pcall(require, "{}") + if not status_ok then + return + end + ]], + { i(1), rep(1) } + ), - pcall = fmt([[ - local status_ok, {} = pcall(require, "{}") - if not status_ok then - return - end - ]], { i(1), rep(1) }) + req = fmt([[local {} = require "{}"]], { + f(function(import_name) + local parts = vim.split(import_name[1][1], ".", true) + + return parts[#parts] or "" + end, { 1 }), + i(1), + }), }