misc/vim: intro NitExecute to interpret the current file with `nit`
[nit.git] / misc / vim / plugin / nit.vim
index 2917756..6824882 100644 (file)
@@ -53,7 +53,7 @@ function NitComplete()
                let g:acp_behaviorKeywordIgnores = ['new', 'var', 'in', 'do', 'els', 'end', 'ret', 'for', 'fun']
 
                " Use nitls to compute all interesting files from the current directory and the standard library
-               for file in split(system('nitls -M standard .', '\n'))
+               for file in split(system('nitls -M core .', '\n'))
                        silent let &complete = &complete . ',s' . file
                        silent set complete?
                endfor
@@ -318,6 +318,7 @@ fun Nitdoc(...)
 
        " Found no doc, give up
        if empty(docs) || !(join(docs, '') =~ '\w')
+               echo 'Nitdoc found nothing for "' . word . '"'
                return
        endif
 
@@ -381,8 +382,23 @@ fun NitGitGrep()
        redraw!
 endfun
 
-" Activate the omnifunc on Nit files
-autocmd FileType nit set omnifunc=NitOmnifunc
+" Call `nit` on the current file
+fun NitExecute()
+       let path = expand('%')
+
+       if &modified
+               let path = tempname() . '.nit'
+               execute '%write '. path
+       endif
+
+       execute '!nit "' . path . '"'
+endfun
+command NitExecute call NitExecute()
+
+if !exists("g:nit_disable_omnifunc") || !g:nit_disable_omnifunc
+       " Activate the omnifunc on Nit files
+       autocmd FileType nit set omnifunc=NitOmnifunc
+endif
 
 " Define the user command Nitdoc for ease of use
 command -nargs=* Nitdoc call Nitdoc("<args>")