If anyone's using neovim I've been working on a port of clj-refactor.el
. Feedback, suggestions, contributions welcome here: https://github.com/snoe/clj-refactor.nvim
@snoe: Interesting. I have implemented few features here using pure Vimscript: https://github.com/Deraen/vim-cider
Looks like using Cljs/Node on neovim allows implementing threading nicely
@juhoteperi: yeah I think the ability to script vim with cljs is pretty huge (as in, it could end up being a better story than writing clojure plugins with emacs lisp) . I had actually looked at your project before starting but the thought of doing the transformations in vimscript put me off. On the other hand, I also really like the direction that the emacs project is taking and I figured I might be able get vim to catch up.
Yeah using Cljs is definitely good idea. Will have to test to see how well it works.
Is your plugin async?
yeah - although I'm using a weird mix of maintaining my own nrepl connection and using fireplace ... I'll have to clean that up while keeping it async
Would be great to add async support to Fireplace or to provide alternative plugin
heh I was about to link to the fireplace issue but I see you raised it. I've tried diving into the problem a few times but I haven't had much luck grokking what tpope was saying there. https://github.com/tpope/vim-fireplace/issues/202
Yeah I think the easiest way would be to test how it should work in a new plugin, and then to see how or if it can be added to fireplace
Quite hard to refactor existing plugin to add async support, even though the architecture should support it
Wohoo! I got it working!
Maybe this will finally convince me to use Nvim
haha great, I've been using it for about a year now, and I've noticed very few differences or problems
Hm, clean-ns is compaining about repl connection
yeah it looks up the dir tree for a .nrepl-port file
goes back to my fireplace comment
Strange, the file should exist
hrm darn maybe lein npm install
inside the plugin dir
Ah, I was trying on cljc file and connect is only running on clj files
Works great on clj file
Basically a client for refactor-nrepl in cljs too afaik
@snoe: I have async Fireplace working, I think. Or some stuff working anyway.
I wish Neovim had async omnicomplete, I've had to switch my omnicomplete to manual for Clojure.
https://github.com/radenling/vim-dispatch-neovim there we are
Fireplace uses Dispatch to execute commands. I do appreciate having my repl be launched in a tab.
Fugitive can use that too, which is nice when I notice it.
You might be interested in my push to here last night btw https://github.com/SevereOverfl0w/vim-cljrefactor
Afaik async omnicomplete can be achieved with some autocommands and calling complete from plugin when results are ready
deraen: Deoplete has got async omnicomplete, but not with omnifunc sources.
So yeah, the problem is perhaps more about being able to call omnifunc asynchronously.
Hmm okey.
@dominicm: What stuff does vim-dispatch-neovim affect in fireplace?
@juhoteperi: The most obvious one is ":Console" which will spawn in a neovim terminal, instead of a new window.
When I evaluate Thread/sleep it''s not async 😞
Hmh, I don't care about that, I always open repl manually on separate terminal
I almost always do also
But for a while I wasn't, and it was super useful.
I'm not sure if fireplace spawns out to dispatch for anything else.