Fork me on GitHub
#vim
<
2016-12-12
>
dominicm16:12:53

Finally merged Acid.nvim support into async-clj-omni

dominicm16:12:59

Also, have a blog post on Vim hitting the JUXT blog tomorrow containing an overview of the tools in our ecosystem. Including the quieter projects, that will syndicate through Planet Clojure too.

dominicm16:12:24

@jebberjeb neovim-client didn't escape my mention.

jebberjeb16:12:46

glad to hear it — Happy to see increasing activity surrounding vim clojure tooling.

dominicm16:12:39

I'm like, a pent up frustrated bear of vim at work. Every time something goes wrong with Emacs, I'm all like "That's odd, in vim we just..." 😆

jebberjeb16:12:25

now, if we just hard org-mode 😉

dominicm16:12:27

Really think I want to revisit the idea of building a mega-pack for vim / setup guide for vim with all this stuff in & explained.

dominicm16:12:39

Someone waas porting org-mode to python. But then the org-mode syntax changed again.

dominicm16:12:07

I don't like org-mode tbh. Simply because it's not a "standard" it will never fix. Great for an OS, not great as a universal format.

jebberjeb16:12:24

Yeah, having a modern guide for vim/clojure would be useful. On the project I’m on right now, we have a few people using vim. Seems like I heard about it more and more these days in the Clojure world.

jebberjeb16:12:13

That’s true. Well, doesn’t have to be org-mode, just a lot of the functionality. I get most of what I need for doing a logbook w/ vim-outliner, but that’s just scratching the surface.

dominicm16:12:37

https://github.com/jceb/vim-orgmode I believe that this uses the python library (or is one...) I used it for a while, it's okay.

jebberjeb16:12:57

I tried it a while back, but I can’t remember why I left it.

jebberjeb16:12:09

Maybe it has matured since then.

dominicm16:12:07

I only used it a while back. For interop with emacs users.

dominicm16:12:50

RE the modern guide for vim/clojure, my blog post isn't a tutorial, but definitely a "look on the horizon" of modern vim/clojure.

dominicm16:12:09

So for more investigative members of your team, it should let them know where to look & what everything does

jebberjeb16:12:43

I think they’d be interested in knowing that there’s a world beyond vanilla vim-fireplace (not to take anything away from vim-fireplace).

dominicm16:12:09

vim-fireplace is great. But it's essentially a "backbone" which other plugins should/are built on top of.

dominicm16:12:33

Acid / Neovim-client could be better backbones.

jebberjeb16:12:29

Exactly. My thought was always, put lisp into the hands of vim plugin authors (especially the ones who are also Clojure users) and good things will happen. Arguably there was support for mzscheme / racket, but it was shoddy. Also, projects like Hy.

jebberjeb16:12:57

Now, having implemented it, it’s not that simple. I think neovim-client needs to do more than simply wrap the neovim api to be a good plugin authoring tool. Obviously it needs to be faster (maybe cljs), but more than that. I think it should expose/wrap some well-used set of vim functionality (via vimscript?) as a set of Clojure functions. In other words, you’d have a function to split the screen, rather than having to call (vim-command “:split”). That type of thing.

dominicm16:12:31

Yeah. I think @ingvij actually released the result of starting to do that in Python. I will question whether or not we're getting into vital.vim territory there perhaps.

dominicm16:12:52

https://github.com/vim-jp/vital.vim very popular, apparently it has some generators now, so that the user doesn't have to install vital.vim

dominicm16:12:37

Oh, actually, I may have slightly missed your point there. I think vital.vim is still relevant though.

jebberjeb16:12:36

vital.vim looks pretty great

dominicm16:12:58

The vim-jp community is pretty great. It's times like this that I'm glad that we have a lingua franca online (even if I slightly dislike that it's English)

jebberjeb16:12:10

ah, Shougo is there

hkupty16:12:31

I think acid.nvim is trying to fill a gap where we have no async nrepl communication on neovim/vim land.

hkupty16:12:14

Hopefully, we can have freeze-free development for clojure with neovim

dominicm16:12:37

I'd actually be happy to have a vim-clojure plugin of some kind, which implements all the "standard" features for fireplace or acid.nvim

jebberjeb16:12:45

@dominicm a subset of acid.vim?

dominicm16:12:56

@jebberjeb Not really. Basically it would just use fireplace/acid as a generic nREPL backend for sending "stuff" to, and implement the doc, goto source, etc. features on top

dominicm16:12:28

So that when super-cool-new-repl-client comes out, it would just write a backend for this (and optionally add some new features specific to itself)

dominicm16:12:22

It's probably not viable really, nor that useful. How many times will a new nrepl client get written (not many I hope!)

dominicm16:12:47

I suppose there's potential for a vim8 uprising of some kind, where some implements an nREPL client using pure vimscript and channels.

jebberjeb16:12:16

some sadist 🙂

dominicm16:12:40

> sadist So, a vim user?

dominicm16:12:22

Then again, Emacs has a built-in therapist. So maybe that says something about them too 😛

hkupty17:12:16

acid.nvim simple exposes the nrepl in a sane, async way.. For those implementing the plugins in python (sorry about that), you can create both commands and handlers to deal with nrepl. Some exemples included. For those who develop on other languages, acid.nvim exposes a handler that calls a vim function, so any vim fn (VimL or RPC) can be used.

hkupty17:12:52

A command is something that sends data to the nrepl and a handler is a function that gets called once the nrepl returns..

hkupty17:12:03

Anything can be implemented on top of those

dominicm17:12:34

Callbacks & Fun for Python, all is good.

jebberjeb17:12:38

Python seems like the most logical choice to me.