summaryrefslogtreecommitdiffstats
path: root/ftplugin/crystal.vim
diff options
context:
space:
mode:
authorAdam Stankiewicz <sheerun@sher.pl>2016-05-31 01:53:12 +0200
committerAdam Stankiewicz <sheerun@sher.pl>2016-05-31 01:53:12 +0200
commit44b3d860cb85ccb4edd52fb0dcf6a4102d12e82a (patch)
tree537e871f1d923c01c3d5098fd2958c198d093977 /ftplugin/crystal.vim
parent5a65ffe66d19da9989ae6b71962830ca6c80f5b5 (diff)
downloadvim-polyglot-2.9.1.tar.gz
vim-polyglot-2.9.1.zip
Updatev2.9.1
Diffstat (limited to 'ftplugin/crystal.vim')
-rw-r--r--ftplugin/crystal.vim24
1 files changed, 24 insertions, 0 deletions
diff --git a/ftplugin/crystal.vim b/ftplugin/crystal.vim
index f990a8da..29aac72d 100644
--- a/ftplugin/crystal.vim
+++ b/ftplugin/crystal.vim
@@ -40,6 +40,30 @@ setlocal errorformat=
\%C%p^,
\%-C%.%#
+let g:crystal_compiler_command = get(g:, 'crystal_compiler_command', 'crystal')
+let g:crystal_auto_format = get(g:, 'crystal_auto_format', 0)
+
+command! -buffer -nargs=* CrystalImpl echo crystal_lang#impl(expand('%'), getpos('.'), <q-args>).output
+command! -buffer -nargs=0 CrystalDef call crystal_lang#jump_to_definition(expand('%'), getpos('.'))
+command! -buffer -nargs=* CrystalContext echo crystal_lang#context(expand('%'), getpos('.'), <q-args>).output
+command! -buffer -nargs=* CrystalHierarchy echo crystal_lang#type_hierarchy(expand('%'), <q-args>)
+command! -buffer -nargs=? CrystalSpecSwitch call crystal_lang#switch_spec_file(<f-args>)
+command! -buffer -nargs=? CrystalSpecRunAll call crystal_lang#run_all_spec(<f-args>)
+command! -buffer -nargs=? CrystalSpecRunCurrent call crystal_lang#run_current_spec(<f-args>)
+command! -buffer -nargs=* -bar CrystalFormat call crystal_lang#format(<q-args>)
+
+nnoremap <Plug>(crystal-jump-to-definition) :<C-u>CrystalDef<CR>
+nnoremap <Plug>(crystal-show-context) :<C-u>CrystalContext<CR>
+nnoremap <Plug>(crystal-spec-switch) :<C-u>CrystalSpecSwitch<CR>
+nnoremap <Plug>(crystal-spec-run-all) :<C-u>CrystalSpecRunAll<CR>
+nnoremap <Plug>(crystal-spec-run-current) :<C-u>CrystalSpecRunCurrent<CR>
+nnoremap <Plug>(crystal-format) :<C-u>CrystalFormat<CR>
+
+augroup plugin-ft-crystal
+ autocmd!
+ autocmd BufWritePre <buffer> if g:crystal_auto_format | CrystalFormat | endif
+augroup END
+
if get(g:, 'crystal_define_mappings', 1)
nmap <buffer>gd <Plug>(crystal-jump-to-definition)
nmap <buffer>gc <Plug>(crystal-show-context)