Giter Club home page Giter Club logo

Comments (2)

dundalek avatar dundalek commented on May 25, 2024

Hi, thanks, I'm glad you like it.

I actually use primarily clojure main and deps. Boot is only used for compiling and bundling into the final jar file. It is used mostly for historical reasons. If I find a good library that uses clojure main with deps and works well, I would replace Boot.

To start REPL you can run following from the project directory:

clojure -Sdeps "{:deps {nrepl/nrepl {:mvn/version \"RELEASE\"}}}" -m nrepl.cmdline

It will print out nREPL port to which you can connect from your favorite clojure-enabled editor. Then you can require and evaluate namespaces like usual.

I have a global alias for it so I just type clojure -Anrepl.

When you run the bundled jar it runs the rebel frontend. You can run it from sources with clojure -m closh.zero.frontend.rebel. Even simpler frontend is closh.zero.frontend.main which does not have the fancy interactive mode. So you could start there and follow functions top-to-bottom from there to get an idea how things are put together. Another helpful thing might be to look at the unit tests to see how the functions are called and what are their inputs.

The interactive editing is done using rebel-readline which does all the heavy lifting. It internally uses jline library which is written in Java, so it is not so nice to hack on.

For more advanced things like structural editing I keep my eyes on liquid which is a pure clojure text editor implementation. It is very customizable since everything is just function composition, so I think it should be possible to hook it into closh and implement all the editing features one could imagine. It sound like integrating liquid and closh might be an interesting project to you ;)

I am pretty busy preparing for a talk I will give at ClojureD conference at the end of February. But after that I suppose I could reuse some diagrams from it and write down more detailed documentation.

from closh.

dogma0 avatar dogma0 commented on May 25, 2024

Hey thanks for the reply and the links. I didn't even know there are those key bindings (with scroll-able documentation?! ). Okay, I'll take all these info in and tinker with the code and liquid - my gut tells me I can finish it or at least have some progress before for your talk ;)

from closh.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.