From e47f40c95cf2410db206a3f5f24f6dba64e38832 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20L=C3=B3pez?= Date: Fri, 23 Jul 2021 12:15:54 -0500 Subject: [PATCH] make things less verbose. --- plugin/luadev.vim | 30 +++++------------------------- 1 file changed, 5 insertions(+), 25 deletions(-) diff --git a/plugin/luadev.vim b/plugin/luadev.vim index 27db001..4941658 100644 --- a/plugin/luadev.vim +++ b/plugin/luadev.vim @@ -1,42 +1,22 @@ command! Luadev lua require'luadev'.start() noremap (Luadev-RunLine) lua require'luadev'.exec(vim.api.nvim_get_current_line()) -vnoremap (Luadev-Run) :call luadev_run_operator('visual') +vnoremap (Luadev-Run) :call luadev_run_operator(v:true) noremap (Luadev-RunOperator) :set opfunc=luadev_run_operatorg@ noremap (Luadev-RunWord) :call luaeval("require'luadev'.exec(_A)", get_current_word()) inoremap (Luadev-Complete) lua require'luadev.complete'() - " thanks to @xolox on stackoverflow -" same function for visual and normal. Except visual passes a parameter. -function! s:luadev_run_operator(type = '') - if a:type == "visual" - let mode = "visual" - else - let mode = "normal" - end - - if mode == 'visual' - let [lnum1, col1] = getpos("'<")[1:2] - let [lnum2, col2] = getpos("'>")[1:2] - elseif mode == 'normal' - let [lnum1, col1] = getpos("'[")[1:2] - let [lnum2, col2] = getpos("']")[1:2] - endif +function! s:luadev_run_operator(is_op) + let [lnum1, col1] = getpos(a:is_op ? "'<" : "'[")[1:2] + let [lnum2, col2] = getpos(a:is_op ? "'>" : "']")[1:2] if lnum1 > lnum2 let [lnum1, col1, lnum2, col2] = [lnum2, col2, lnum1, col1] endif - " Normal motions that are more than one line are forced to linewise - if lnum1 != lnum2 && mode =="normal" - let linewise = v:true - else - let linewise = v:false - end - let lines = getline(lnum1, lnum2) - if linewise == v:false + if a:is_op == v:true || lnum1 == lnum2 let lines[-1] = lines[-1][: col2 - (&selection == 'inclusive' ? 1 : 2)] let lines[0] = lines[0][col1 - 1:] end