Nightlight
Nightlight copied to clipboard
Desired Features / Roadmap
Hi Zach,
It could be helpful to start a roadmap or a list of project goals. Features/extensions/interactions that you are envisioning for the project, aside from requests or issues submitted by others.
I would like to contribute, but think that it would be easier to do that with some high level goals or ambitions as reference.
And thanks for bringing another great project to life!
Hello Boris. Right now I'm working on adding a clojurescript REPL. It's turning out to be pretty complex because there are a lot of moving parts involved in setting one up. I'd also like clojurescript code completion and instaREPL, both of which are probably reliant on me first getting the standard REPL working. Other than that, I'm looking for ideas :-)
BTW I have my current clojurescript work on the cljs branch. The cljs REPL works but it has no knowledge of the project. Not sure if I can accomplish that but we'll see.
Hi Zach,
A cljs REPL would be great. I would also assume that if that works, support for *.cljc / reader macros would be easier.
As a suggestion for the roadmap, rather than trying to add every feature that everyone (including yourself) might want, perhaps focus on making Nightlight easily extensible. For example, add hooks to that can enable live changes to UI and behaviour and have a plugin management system. This worked nicely for tools like emacs and jEdit. Nightcode could then become an environment to hack itself (live!) as well as your own code... It would also let the community build the features they want more easily, as well as taking the burden off you.
Regards, Richard
I've been working on something like this for awhile now and would love to join forces.
For example, add hooks to that can enable live changes to UI and behaviour and have a plugin management system. This worked nicely for tools like emacs and jEdit. Nightcode could then become an environment to hack itself (live!) as well as your own code...
This is the angle I've been considering first.
I was an active Eclipse Platform committer for 7 years so I'm very biased toward this part. :-)
I chose Hoplon specifically because I think the spreadsheet/cell metaphor is very easy to understand, particularly for less technical users and because I have hopes (ambitions?) that this could grow into something nontechnical users would want.
Server-side scalability really needs classloader isolation for each sub-dependency or you wind up with conflicting dependencies pretty fast. I haven't solved that problem for Clojure yet. Eclipse uses OSGi for this but it seems not to be well-supported by the Clojure ecosystem. Boot with its pods comes closest.
WIP code is on Github at https://github.com/coconutpalm/datainmotion-server
For example, add hooks to that can enable live changes to UI and behaviour and have a plugin management system.
Here are a few things I've run into along these lines:
- UI scalability - The UI needs to be able to do things we didn't imagine.
- JS dynamism - I've been teaching myself js while doing this so maybe someone knows of an existing solution for this. What I mean by this is that the front-end layer needs to be dynamically extensible by JS living on any CDN. But JS is so dynamic, this implies the need for something like Clojure's System to start/stop/restart JS modules. requirejs seems close but right now I don't see a way to do this at runtime with requirejs (links/hints welcome).
- Polyglot. I want the extensibility layer to feel native to JS developers. There are a lot of JS developers. ;-) My focus is on Clojure/script, but I don't want to cut off developers from other communities (Yes, I'm looking at you, ScalaJS too).
Thoughts welcome.
Is it possible to just combine the cljs code of nightlight and the code of project into a single build. Then completion can be resolved. Another advantage is that UI preview in edtior become possible.
I just released version 1.1.0 which adds some initial support for ClojureScript. It includes a UI preview in the editor, @DogLooksGood =) Check out the website -- I added a new section there that explains how it works.
I made #nightlight on the Clojurians slack in case anyone wants to chat in real time.
Any chance that keybindings can be added? This would help people coming from other languages and editors feel more productive. For me, that's Atom. Nightlight is a lot more robust than Proto-repl and it would be awesome to feel productive in it. Even some simple things like cmd-x ;; cut line cmd-l ;; select line cmd-j ;; join cmd-[ ;; indent cmd-] ;; dedent
I would be happy to add Atom key bindings if there was a place to add them. People who use other editors could add their own. Then maybe there's a way to have your own local keybindings file.
Is this something you're interested in?