Zenn
Open3

vim-iced Tips

uochanuochan

Use coc.nvim for jumping definition when you does not connect to nREPL

function! MyClojureDefJump() abort
  if iced#repl#is_connected()
    exe "normal \<Plug>(iced_def_jump)"
  else
    exe "normal \<Plug>(coc-definition)"
  endif
endfunction
nmap <silent> <C-]> :call MyClojureDefJump()<CR>
nmap <Nop>(disable_default_def_jump_mapping) <Plug>(iced_def_jump)
uochanuochan

Format only current top form on writing a file

function! s:auto_format_current_form() abort
  if ! iced#repl#is_connected() | return | endif
  let x = iced#format#current()
  if iced#promise#is_promise(x)
    return iced#promise#wait(x)
  endif
endfunction

aug MyClojureAutoFormat
  au!
  au BufWritePre *.clj,*.cljs,*.cljc,*.edn  call s:auto_format_current_form()
aug END
uochanuochan

Automate emitting clj-kondo configuration in malli

function! s:emit() abort
  if !iced#nrepl#is_connected() | return | endif
  call iced#nrepl#eval('(do (require ''malli.clj-kondo) (malli.clj-kondo/emit!))',
        \ {_ -> iced#message#info_str('emitted')})
endfunction

aug MyMalliSetting
  au!
  au BufWritePre *.clj,*.cljs,*.cljc,*.edn  call s:emit()
aug END
ログインするとコメントできます