summaryrefslogtreecommitdiffstats
path: root/autoload
diff options
context:
space:
mode:
Diffstat (limited to 'autoload')
-rw-r--r--autoload/smt2.vim34
1 files changed, 34 insertions, 0 deletions
diff --git a/autoload/smt2.vim b/autoload/smt2.vim
new file mode 100644
index 00000000..fd87febe
--- /dev/null
+++ b/autoload/smt2.vim
@@ -0,0 +1,34 @@
+if exists('g:polyglot_disabled') && index(g:polyglot_disabled, 'smt2') != -1
+ finish
+endif
+
+" Invokes the solver on current file
+function! smt2#RunSolver()
+ silent !clear
+ execute "!" . g:smt2_solver_command . " " . bufname("%")
+endfunction
+
+" Puts the solver's output in new split (replaces old split)
+function! smt2#RunSolverAndShowResult()
+ let output = system(g:smt2_solver_command . " " . bufname("%") . " 2>&1")
+
+ " Create split (or reuse existent)
+ if exists("s:outputbufnr") && bufwinnr(s:outputbufnr) > 0
+ execute bufwinnr(s:outputbufnr) . 'wincmd w'
+ else
+ silent! vnew
+ let s:outputbufnr=bufnr('%')
+ endif
+
+ " Clear & (re-)fill contents
+ silent! normal! ggdG
+ setlocal filetype=smt2 buftype=nofile nobuflisted noswapfile
+ call append(0, split(output, '\v\n'))
+ normal! gg
+endfunction
+
+" Requests the solver's version
+function! smt2#PrintSolverVersion()
+ silent !clear
+ execute "!" . g:smt2_solver_command . " " . g:smt2_solver_version_switch
+endfunction