Discussion about all editors used for Clojure/ClojureScript
dominicm 2016-12-05T08:08:51.000002Z

In my understanding, that's how CIDER works. It runs in your repl, but instead of connecting to a web server from your browser, you connect to the nrepl from emacs

bcbradley 2016-12-05T08:49:29.000003Z

@dominicm I think CIDER and nightlight are different. Nightlight's approach is to make the ide a dependency of your code. In other words, you have to open up some kind of basic text editor so you can set nightlight as a literal dependency of your project. Then when you run your project, nightlight steals the process and gives you an IDE. It literally runs inside the process.

dominicm 2016-12-05T09:00:12.000004Z

@bcbradley CIDER is a dependency, in your profile.clj. When you run your repl, it jumps in and provides a IDE api. I'm not sure it's a good idea for a project to include nightlight by default, I'd be inclined to put it in my profile file.

benedek 2016-12-05T09:57:19.000005Z

to be more precise @bcbradley and @dominicm the backend for cider is a dependency (called cider-nrepl) which is implemented as an nrepl middleware. there is an emacs lisp part of cider as well, even possible that some functionality is available in cider without the middleware and repl running. thatโ€™s said in cider we eventually decided to inject the cider dependencies using the command line options to add deps in both leiningen and boot

benedek 2016-12-05T09:58:43.000006Z

so you only need add cider deps to your profile.clj or project file if you plan to start up a repl process and then connect to it with cider. if you jack in, so cider controls the repl process therefore can inject deps you donโ€™t need to do that anymore

dominicm 2016-12-05T09:58:57.000007Z

As a vim user, I do not use that feature. ๐Ÿ˜› It would be too magic for me.

benedek 2016-12-05T10:00:06.000008Z

fair enoughโ€ฆ is not there a fireplace related plugin (sorry if use the wrong vim lingo) which gives you embedded repl?

benedek 2016-12-05T10:00:29.000009Z

feature would make sense there

dominicm 2016-12-05T10:01:41.000010Z

@benedek not sure if you know of https://github.com/clojure-vim/clj-refactor.nvim it takes advantage of the editor agnostic API you guys designed, and it allows my life to be much better because of it. Thought it might show what this tiny foresight allows.

benedek 2016-12-05T10:02:17.000012Z

yup i am aware might have even starred it on github ๐Ÿ˜‰

benedek 2016-12-05T10:02:51.000013Z

really happy it happened too ๐Ÿ™‚

dominicm 2016-12-05T10:07:11.000014Z

There isn't. For two reasons: - in plain vim, it's technically difficult due to lack of great async (though this may change) - vim doesn't have a way to display terminal ops inside a buffer afaik There's also a social problem: Vim users hate magic. I don't think auto injection would be appreciated. Vim isn't an IDE, an OS or a terminal multiplexer. It's an editor. Also, vim tends to be an editor you kill often as part of a workflow, so having applications inside it turns out badly.

benedek 2016-12-05T10:08:34.000015Z

fair. i guess slight differences between emacs and vim view of the world ๐Ÿ˜‰

dominicm 2016-12-05T10:10:56.000016Z

It very much is! I think my favourite example is this: Emacs 25 will ship with an embedded copy of webkit, presumably for things like markdown preview. Vim was embedded inside electron to achieve a similar thing: https://github.com/rhysd/NyaoVim

dominicm 2016-12-05T10:11:30.000018Z

I feel like the approach is inverted, which isn't bad, just a different means to the same goal. Not entirely incompatible either.

benedek 2016-12-05T10:14:14.000019Z

well emacs is a bit chaotic, messy I guess.. I love that chaos tho obviously ๐Ÿ˜‰

dominicm 2016-12-05T14:30:28.000020Z

@benedek also way more "kitchen sink" Everything is a plugin in vim. Usually several. And you've often got to stick them together (or use another plugin which has...). It's another form of chaos!

benedek 2016-12-05T14:31:10.000021Z

haha, i prefer these to any IDE tho

dominicm 2016-12-05T14:32:10.000022Z