Git Product home page Git Product logo

Comments (10)

arichiardi avatar arichiardi commented on August 15, 2024

from inf-clojure.

arichiardi avatar arichiardi commented on August 15, 2024

This has nothing to do with the emacs version, but basically involves the repl type detection. The first we try is lumo, but this fails because the normal Clojure nrepl does not of course has js/ in its namespaces.
I will need to add in first place code for detection nrepl and then if it is not that, try all the others. In this way we are sure to rule out attempts that cause evaluation failures like this. @bbatsov

from inf-clojure.

bbatsov avatar bbatsov commented on August 15, 2024

I will need to add in first place code for detection nrepl and then if it is not that, try all the others. In this way we are sure to rule out attempts that cause evaluation failures like this. @bbatsov

There's not such thing as nREPL here - that's actually REPLy (which uses nREPL internally, but inf-clojure can't really leverage nREpL directly so it shouldn't care about this). I REPLy repl should be treated as a regular Clojure REPL. Btw, lein and boot start exactly the same repl, so I'm pretty confused why this works with lein, but not with boot.

from inf-clojure.

bbatsov avatar bbatsov commented on August 15, 2024

This has nothing to do with the emacs version, but basically involves the repl type detection. The first we try is lumo, but this fails because the normal Clojure nrepl does not of course has js/ in its namespaces.

On a related note - shouldn't there also be some REPL type detected in the end regardless what was checked first? Seems that's the real issue here.

from inf-clojure.

arichiardi avatar arichiardi commented on August 15, 2024

from inf-clojure.

bbatsov avatar bbatsov commented on August 15, 2024

I guess they can simply add some var similar to *clojure-version* to simplify the process.

from inf-clojure.

arichiardi avatar arichiardi commented on August 15, 2024

As per discussion in linked PR, the issue is not as easy as it seems because there is no common way to detect a Repl type and folks maintening them are not willing to compromise at the moment.
There will be one once a common protocol like unrepl catches up.

So my workaround would be to kind of detect and skip the inevitable error we will receive (js/ is not defined in nrepl for instance) and return a false in the detection function.

from inf-clojure.

arichiardi avatar arichiardi commented on August 15, 2024

Another problem I found is related to the Ansi code the repls are sending. The read function fails and throws an error. I can ignore that for now but I need to get rid of the ansi codes somehow or nothing is readable otherwise. Lumo does not have this problem because we are using it in dumb mode.

from inf-clojure.

arichiardi avatar arichiardi commented on August 15, 2024

I found a package that does the ANSI filtering. This is the commit to take inspiration from.

from inf-clojure.

arichiardi avatar arichiardi commented on August 15, 2024

The error should be solved with the Caveat added to not use colors for now: boot repl -C is now used by inf-clojure

from inf-clojure.

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.