summaryrefslogtreecommitdiffstats
path: root/ftplugin
diff options
context:
space:
mode:
Diffstat (limited to 'ftplugin')
-rw-r--r--ftplugin/crystal.vim24
-rw-r--r--ftplugin/javascript.vim3
-rw-r--r--ftplugin/slim.vim12
3 files changed, 39 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)
diff --git a/ftplugin/javascript.vim b/ftplugin/javascript.vim
index f89932f2..2b085bc1 100644
--- a/ftplugin/javascript.vim
+++ b/ftplugin/javascript.vim
@@ -1,5 +1,8 @@
if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'javascript') == -1
setlocal suffixesadd+=.js
+if (v:version < 704 || (v:version == 704 && !has('patch002'))) && exists('&regexpengine')
+ set re=1
+end
endif
diff --git a/ftplugin/slim.vim b/ftplugin/slim.vim
new file mode 100644
index 00000000..b3c71187
--- /dev/null
+++ b/ftplugin/slim.vim
@@ -0,0 +1,12 @@
+if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'slim') == -1
+
+if exists("b:did_ftplugin")
+ finish
+endif
+let b:did_ftplugin = 1
+
+let b:undo_ftplugin = "setl isk<"
+
+setlocal iskeyword+=-
+
+endif