diff options
author | Adam Stankiewicz <sheerun@sher.pl> | 2017-05-17 11:46:19 +0200 |
---|---|---|
committer | Adam Stankiewicz <sheerun@sher.pl> | 2017-05-17 11:46:19 +0200 |
commit | d5b9c4ae84aaa98bdfbf15cba90eeafa5aded091 (patch) | |
tree | 5d6b3f74231b2c232ddfcb868ecfbc97db90019a /ftplugin | |
parent | 7dd2e1169849b7e5cae67d5056f0a379f3da67b5 (diff) | |
download | vim-polyglot-2.17.0.tar.gz vim-polyglot-2.17.0.zip |
Add racket support, #159v2.17.0
Diffstat (limited to 'ftplugin')
-rw-r--r-- | ftplugin/racket.vim | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/ftplugin/racket.vim b/ftplugin/racket.vim new file mode 100644 index 00000000..14ebdb7c --- /dev/null +++ b/ftplugin/racket.vim @@ -0,0 +1,63 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'racket') == -1 + +" Language: Racket +" Maintainer: Will Langstroth <will@langstroth.com> +" URL: http://github.com/wlangstroth/vim-racket + +setl iskeyword+=#,%,^ +setl lispwords+=module,module*,module+,parameterize,let-values,let*-values,letrec-values,local +setl lispwords+=define-values,opt-lambda,case-lambda,syntax-rules,with-syntax,syntax-case,syntax-parse +setl lispwords+=define-signature,unit,unit/sig,compund-unit/sig,define-values/invoke-unit/sig +setl lispwords+=define-opt/c,define-syntax-rule +setl lispwords+=struct + +" Racket OOP +setl lispwords+=class,define/public,define/private + +" kanren +setl lispwords+=fresh,run,run*,project,conde,condu + +" loops +setl lispwords+=for,for/list,for/fold,for*,for*/list,for*/fold,for/or,for/and +setl lispwords+=for/hash,for/sum,for/flvector,for*/flvector,for/vector + +setl lispwords+=match,match*,match/values,define/match,match-lambda,match-lambda*,match-lambda** +setl lispwords+=match-let,match-let*,match-let-values,match-let*-values +setl lispwords+=match-letrec,match-define,match-define-values +setl lisp + +" Enable auto begin new comment line when continuing from an old comment line +setl comments+=:; +setl formatoptions+=r + +setl makeprg=raco\ make\ --\ % + +" Simply setting keywordprg like this works: +" setl keywordprg=raco\ docs +" but then vim says: +" "press ENTER or type a command to continue" +" We avoid the annoyance of having to hit enter by remapping K directly. +nnoremap <buffer> K :silent !raco docs <cword><cr>:redraw!<cr> + +" For the visual mode K mapping, it's slightly more convoluted to get the +" selected text: +function! s:Racket_visual_doc() + try + let l:old_a = @a + normal! gv"ay + call system("raco docs '". @a . "'") + redraw! + return @a + finally + let @a = l:old_a + endtry +endfunction + +vnoremap <buffer> K :call <SID>Racket_visual_doc()<cr> + +nnoremap <buffer> <f9> :!racket -t %<cr> + +"setl commentstring=;;%s +setl commentstring=#\|\ %s\ \|# + +endif |