diff --git a/config/nvim/after/ftplugin/lua.lua b/config/nvim/after/ftplugin/lua.lua index 04491f1..9885ba7 100644 --- a/config/nvim/after/ftplugin/lua.lua +++ b/config/nvim/after/ftplugin/lua.lua @@ -1,11 +1,19 @@ vim.bo.tabstop = 2 -local nmap = require 'fs.util'.nmap local buffer = { buffer = true } --- execute the current line -nmap { 'x', [[call luaeval(getline("."))]], buffer } +local exec_current_lua_line = function() + vim.fn.luaeval(vim.fn.getline('.')) +end --- save and execute the current file -nmap { 'x', 'silent write | luafile %', buffer } +local exec_current_lua_selection = function() + local selection = { vim.fn.line('v'), vim.fn.line('.') } + local first, last = vim.fn.min(selection), vim.fn.max(selection) + local code = vim.fn.join(vim.fn.getline(first, last), '\n') + loadstring(code)() +end + +vim.keymap.set('n', 'x', exec_current_lua_line, buffer) +vim.keymap.set('x', 'x', exec_current_lua_selection, buffer) +vim.keymap.set('n', 'x', 'write | luafile %', buffer)