Skip to content

Commit

Permalink
full backwoard compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
michaelb committed Mar 28, 2021
1 parent 2a0ea6e commit 21f28e9
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 32 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ Sniprun is a code runner plugin for neovim. It aims to provide stupidly fast par

I know that this README is exhaustively long (for the sake of clarity, bear with me), but Sniprun itself is and will remain rather simple: don't be afraid, questions are welcome too.

###### TLDR: ```Plug 'michaelb/sniprun', {'do': 'bash install.sh'} ```, ```:SnipRun```, ```:'<'>SnipRun```
###### TLDR: ```Plug 'michaelb/sniprun', {'do': 'bash install.sh'} ```, ```:lua require'sniprun'.setup()```



Expand Down
18 changes: 17 additions & 1 deletion lua/sniprun.lua
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ M.config_values = {
inline_messages = 0
}

M.config_up=0

function M.load_vimscript_config()
vimscript_config = {}
vimscript_config["repl_enable"] = vim.g.SnipRun_repl_behavior_enable or M.config_values["repl_enable"]
Expand All @@ -35,6 +37,13 @@ function M.load_vimscript_config()
end


function M.initial_setup()
if M.config_up == 1 then return end
M.setup()
M.config_up = 0
end



function M.setup(opts)
opts = opts or M.load_vimscript_config()
Expand All @@ -59,16 +68,23 @@ function M.setup(opts)
end
end
M.configure_keymaps()
M.config_up = 1
end

function M.configure_keymaps()
vim.api.nvim_set_keymap("v", "<Plug>SnipRun", ":lua require'sniprun'.run('v')<CR>", {silent=true})
vim.api.nvim_set_keymap("n", "<Plug>SnipRun", ":lua require'sniprun'.run()<CR>",{silent=true})
vim.api.nvim_set_keymap("n", "<Plug>SnipRTerminate", ":lua require'sniprun'.terminate()<CR>",{silent=true})
vim.api.nvim_set_keymap("n", "<Plug>SnipReset", ":lua require'sniprun'.reset()<CR>",{silent=true})
-- vim.api.nvim_set_keymap("n", "<Plug>SnipInfo", ":lua require'sniprun'.run()<CR>",{})
vim.api.nvim_set_keymap("n", "<Plug>SnipInfo", ":lua require'sniprun'.info()<CR>",{})
vim.api.nvim_set_keymap("n", "<Plug>SnipReplMemoryClean", ":lua require'sniprun'.clear_repl()<CR>",{silent=true})
vim.cmd("command! SnipTerminate :lua require'sniprun'.terminate()")
vim.cmd("command! SnipReset :lua require'sniprun'.reset()")
vim.cmd("command! SnipInfo :lua require'sniprun'.info()")
vim.cmd("command! SnipReplMemoryClean :lua require'sniprun'.clear_repl()")

vim.cmd("function! SnipRunLauncher() range \n if a:firstline == a:lastline \n lua require'sniprun'.run() \n else \n lua require'sniprun'.run('v') \n endif \n endfunction")
vim.cmd("command! -range SnipRun <line1>,<line2>call SnipRunLauncher()")
end

local function start()
Expand Down
33 changes: 3 additions & 30 deletions plugin/sniprun.vim
Original file line number Diff line number Diff line change
@@ -1,30 +1,3 @@

function! s:configure_commands()
command! SnipRun :lua require'sniprun'.run()
command! SnipTerminate :lua require'sniprun'.terminate()
command! SnipReset :lua require'sniprun'.reset()
command! SnipInfo :call s:showinfo()
command! SnipReplMemoryClean :lua require'sniprun'.clear_repl()

" " <Plug> mappings
" nnoremap <silent> <Plug>SnipRun :lua require'sniprun'.run()
" vnoremap <silent> <Plug>SnipRun lua require'sniprun'.run('v')
" nnoremap <silent> <Plug>SnipTerminate lua require'sniprun'.terminate()
" nnoremap <silent> <Plug>SnipReset lua require'sniprun'.clean()
nnoremap <silent> <Plug>SnipInfo :call <SID>showinfo()<CR>
" nnoremap <silent> <Plug>SnipReplMemoryClean lua require'sniprun'.clean_repl()
endfunction

function! s:showinfo()
let s:scriptdir = resolve(expand('<sfile>:p:h') . '/..')
silent execute '!sh' s:scriptdir.'/ressources/infoscript.sh' s:scriptdir.'/src/interpreters' '>' s:scriptdir.'/ressources/infofile.txt'
let infofile = s:scriptdir."/ressources/infofile.txt"
let lines = readfile(infofile)
for line in lines
echomsg line
endfor
endfunction

call s:configure_commands()

silent! call repeat#set("\<Plug>SnipRun", v:count)
lua require'sniprun'.initial_setup()
" will NOT erase an user configuration setup before or after this call,
" and will define commands necessary to backward compatibility

0 comments on commit 21f28e9

Please sign in to comment.