Add --find-ipkg flag

This means the Idris instance will look for an ipkg file in parent
directories and use that as the root, processing any options.
This commit is contained in:
Edwin Brady 2020-02-23 12:56:29 +00:00
parent 0db674ff18
commit 7a0b10df22
2 changed files with 11 additions and 7 deletions

View File

@ -4,7 +4,13 @@ Idris 2 mode for vim
This is an [Idris2][] mode for vim which features interactive editing,
syntax highlighting, indentation and optional syntax checking via
[Syntastic][]. If you need a REPL I recommend using [Vimshell][].
It is mostly cloned from the original [idris-mode][].
It is mostly cloned from the original [idris-mode][]. Unlike the Idris 1
mode, there is no need to have an Idris REPL running - it invokes Idris 2
directly.
If there is a `.ipkg` file in any of the parent directories, the mode will
use that as the root of the source tree, and process any options declared
in it (for example, to load packages).
Not all of the commands work yet. Note that the keyboard shortcuts have
been updated since Idris 1 to be consistent with the Atom mode (e.g.
@ -50,8 +56,6 @@ commands are supported.
`<LocalLeader>a` Create an initial clause for a type declaration.
`<LocalLeader>b` Same as \d but for an initial typeclass method impl.
`<LocalLeader>c` case split
`<LocalLeader>mc` make case

View File

@ -34,7 +34,7 @@ endfunction
function! s:IdrisCommand(...)
let idriscmd = shellescape(join(a:000))
" echo("idris2 " . expand ('%:t') . " --client " . idriscmd)
return system("idris2 " . expand ('%:t') . " --client " . idriscmd)
return system("idris2 --find-ipkg " . expand ('%:t') . " --client " . idriscmd)
endfunction
function! IdrisDocFold(lineNum)
@ -95,7 +95,7 @@ endfunction
function! IdrisReload(q)
w
let file = expand("%:p")
let tc = system("idris2 " . expand ('%:t') . " --client ''")
let tc = system("idris2 --find-ipkg " . expand ('%:t') . " --client ''")
if (! (tc is ""))
call IWrite(tc)
else
@ -318,12 +318,12 @@ menu Idris.Reload <LocalLeader>r
menu Idris.Show\ Type <LocalLeader>t
menu Idris.Evaluate <LocalLeader>e
menu Idris.-SEP0- :
menu Idris.Add\ Clause <LocalLeader>d
menu Idris.Add\ Clause <LocalLeader>a
menu Idris.Generate\ Definition <LocalLeader>g
menu Idris.Add\ with <LocalLeader>w
menu Idris.Case\ Split <LocalLeader>c
menu Idris.Add\ missing\ cases <LocalLeader>m
menu Idris.Proof\ Search <LocalLeader>o
menu Idris.Proof\ Search <LocalLeader>s
menu Idris.Proof\ Search\ with\ hints <LocalLeader>p
au BufHidden idris-response call IdrisHideResponseWin()