summaryrefslogtreecommitdiff
path: root/.vim/miniplugins/code_terminal.vim
diff options
context:
space:
mode:
Diffstat (limited to '.vim/miniplugins/code_terminal.vim')
-rw-r--r--.vim/miniplugins/code_terminal.vim85
1 files changed, 0 insertions, 85 deletions
diff --git a/.vim/miniplugins/code_terminal.vim b/.vim/miniplugins/code_terminal.vim
deleted file mode 100644
index 4ddc1ae..0000000
--- a/.vim/miniplugins/code_terminal.vim
+++ /dev/null
@@ -1,85 +0,0 @@
-" Program in which build actions are executed. If no value, build commands are executes as bash commands.
-" This is only really useful in languages with interpreters
-let g:codeenvs = {
-\ 'scheme' : 'racket',
-\ 'lisp' : 'rlwrap sbcl --noinform',
-\ }
-
-" The following two dictionaries support certain substitutions:
-" %F - location of current file (relative path)
-" %D - directory of current file (full path)
-
-" Building the current file only
-let g:codebuildsingle = {
-\ 'scheme' : '(enter! "%F")',
-\ 'cpp' : "g++ -g -pedantic '%F' && ./a.out",
-\ 'yacc' : 'bison -t -d %F',
-\ 'lex' : 'flex %F',
-\ 'haskell' : 'runhaskell "%F"',
-\ 'lisp' : '(load "%F")',
-\ }
-" Building all files in the directory (and subdirectories) of the current file
-let g:codebuildproject = {
-\ 'cpp' : "g++ -g -pedantic '%D/'**/*.cpp && ./a.out"
-\ }
-
-noremap <F3> :call CodeTerminal(g:codebuildsingle)<CR>
-noremap <F4> :call CodeTerminal(g:codebuildproject)<CR>
-inoremap <F3> <C-O>:call CodeTerminal(g:codebuildsingle)<CR>
-inoremap <F4> <C-O>:call CodeTerminal(g:codebuildproject)<CR>
-" We assume that the last accessed window is the one with the source code, otherwise it gets complicated
-tnoremap <F3> <C-W><C-P>:call CodeTerminal(g:codebuildsingle)<CR><C-W><C-P>
-tnoremap <F4> <C-W><C-P>:call CodeTerminal(g:codebuildproject)<CR><C-W><C-P>
-
-au TabNew * call CTCreateTabVars()
-
-function! CTCreateTabVars()
- let t:codetermbufnr = -1
- let t:codetermft = ""
- let t:codetermhadenv = 0
-endfunction
-call CTCreateTabVars()
-
-function! OpenCodeTerminal()
- if !bufexists(t:codetermbufnr)
- term
- " Latest buffer is the terminal buffer we just opened
- let t:codetermbufnr = bufnr("$")
- " We go back to the file from which this was called
- wincmd p
- let t:codetermft = ""
- let t:codetermhadenv = 0
- endif
-
- if &filetype != t:codetermft
- if t:codetermhadenv
- " This is kinda bad, since certain environments might not close with this only
- call term_sendkeys(t:codetermbufnr, "\<C-D>")
- " The sleep is kinda bad, but it fixes the next term_sendkeys not working properly
- sleep 500m
- endif
-
- let t:codetermft = &filetype
- if has_key(g:codeenvs, &filetype)
- call term_sendkeys(t:codetermbufnr, g:codeenvs[&filetype] . "\<CR>")
- let t:codetermhadenv = 1
- else
- let t:codetermhadenv = 0
- endif
- endif
-endfunction
-
-function! CodeTerminal(builddict)
- call OpenCodeTerminal()
-
- if has_key(a:builddict, &filetype)
- let buildcomm = a:builddict[&filetype] . "\<CR>"
- let buildcomm = substitute(buildcomm, "%F", @%, "")
- let buildcomm = substitute(buildcomm, "%D", expand('%:p:h'), "")
- call term_sendkeys(t:codetermbufnr, buildcomm)
- echo "[CodeTerminal] Sent build command!"
- else
- call term_sendkeys(t:codetermbufnr, "\<Up>\<CR>")
- echo "[CodeTerminal] No value in build dictionary!"
- endif
-endfunction