From cc6504f9938a5253017869c672744545ef5b0b88 Mon Sep 17 00:00:00 2001 From: Hektor Misplon Date: Wed, 11 May 2022 01:13:54 +0200 Subject: [PATCH] Add R5RS REPL support --- .vim/ftplugin/scheme/icp1.vim | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .vim/ftplugin/scheme/icp1.vim diff --git a/.vim/ftplugin/scheme/icp1.vim b/.vim/ftplugin/scheme/icp1.vim new file mode 100644 index 0000000..851fbe7 --- /dev/null +++ b/.vim/ftplugin/scheme/icp1.vim @@ -0,0 +1,31 @@ +" +" Originally from: +" https://github.com/ward/dotfiles/blob/master/vim/ftplugin/scheme/icp1.vim +" + +fu! s:OpenR5RS(path) + let prelude = [ + \ "(#%require xrepl)", + \ "(load \"" . a:path . "\")", + \ "\" + \ ]->join("") + let s:term = term_start("plt-r5rs --no-prim", {"term_finish": "close", "vertical": 1}) + call term_sendkeys("", prelude) +endfu + +fu! s:GetVisualSelection() + try + let a_save = @a + normal! gv"ay + return @a + finally + let @a = a_save + endtry +endfu + +fu! s:SendR5RSkeys() + call term_sendkeys(s:term, s:GetVisualSelection()) +endfu + +nnoremap o :call OpenR5RS(@%) +vnoremap r :call SendR5RSkeys()