oakes / Nightlight

An embedded editor for Clojure
https://sekao.net/nightlight/
The Unlicense
788 stars 35 forks source link

Desired Features / Roadmap #5

Open BorisKourt opened 7 years ago

BorisKourt commented 7 years ago

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!

oakes commented 7 years ago

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 :-)

oakes commented 7 years ago

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.

optevo commented 7 years ago

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

coconutpalm commented 7 years ago

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

coconutpalm commented 7 years ago

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:

Thoughts welcome.

DogLooksGood commented 7 years ago

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.

oakes commented 7 years ago

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.

oakes commented 7 years ago

I made #nightlight on the Clojurians slack in case anyone wants to chat in real time.

jefffriesen commented 6 years ago

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?