config/nvim/lua/snippets.lua (view raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
local snip_status_ok, ls = pcall(require, 'luasnip') if not snip_status_ok then return end local s = ls.snippet local fmt = require('luasnip.extras.fmt').fmt -- local sn = ls.snippet_node -- local isn = ls.indent_snippet_node local t = ls.text_node local i = ls.insert_node local f = ls.function_node -- local c = ls.choice_node -- local d = ls.dynamic_node local get_title = function(nodes) local url = nodes[1][1] vim.notify('Url: ' .. url) local out = '' local jobid = vim.fn.jobstart({ 'fetchtitle', url }, { stdout_buffered = true, on_stdout = function(_, data) if data then print(vim.inspect(data)) out = data[1] end end, }) vim.fn.jobwait({ jobid }, 3000) return out end ls.add_snippets('markdown', { s( 'mdlink', fmt('[{}]({})', { f(get_title, { 1 }), i(1), }) ), s( 'll', fmt('#### {}', { f(function() return os.date '%Y-%m-%d %H:%M' end), }) ), }) |