Skip to content

Clojure completion/unite-source Vim plugin, using vital.ProcessManager and Leiningen

Notifications You must be signed in to change notification settings

ujihisa/neoclojure.vim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Powered by vital.vim

neoclojure

  • Code complete (fast and sync)

  • quickrun (slow and async)

    • libraries
    • under proj: uses the project
    • outside proj: uses dummy "unnamed" project
  • ref (fast and sync)

  • leiningen? (e.g. lein run)

  • executes project.clj

  • executes dependencies (including current project)

  • parses current buffer

  • spawns dummy unnamed project by stardup asynchronously

  • debugging itself

    • logger
    • test
    • fault tolerance

neoclojure.vim

  • Java method-name completion works (type (. in your clojure buffer)
    • no automatic import insertion yet
    • (ns ...) has to be located as the first expression of the file

Requirement

Optional dependency plugins

  • neocomplete.vim
    • If you don't have neocomplete.vim, use omni-complete <C-x><C-o> to trigger manual completion.
  • NOT YET -- unite.vim

Installation

~/.vimrc

augroup vimrc-neoclojure
  autocmd!
  " If you use neocomplete
  autocmd FileType clojure setlocal omnifunc=neoclojure#complete#omni_auto
  " Otherwise
  autocmd FileType clojure setlocal omnifunc=neoclojure#complete#omni
augroup END

If you have quickrun.vim, include this as well.

let g:quickrun_config.clojure = {
      \ 'runner': 'neoclojure', 'command': 'dummy',
      \ 'tempfile'  : '%{tempname()}.clj'}

Development progress / todo

Philosophy

What neoclojure doesn't do:

  • neoclojure doesn't implement everything here.
    • It depends on embedded libraries.
    • It uses other plugins only if you already have.
    • It doesn't parse Clojure in Vim script. Let Clojure does that work; it knows more about itself.
  • neoclojure doesn't spawn Clojure daemon.
    • It just spawns Clojure process and communicate with stdout/stderr instead of socket.
    • When Vim dies, Clojure process also dies. That's what it should be.

FAQ

  • Q. neoclojure hangs for some reason!
    • A. is leiningen working? It doesn't work when clojars.org is down.

Links

http://twitter.com/neoclojure

Licence

GPL version 3 or any later version Copyright (c) Tatsuhiro Ujihisa

About

Clojure completion/unite-source Vim plugin, using vital.ProcessManager and Leiningen

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published