emacs

Consider also joining #cider, #lsp and #inf-clojure, where most of the tool-specific discussions are happening.
seancorfield 2020-08-28T17:05:55.051100Z

Quick Q about inf-clojure: if I start a REPL manually, with a Socket REPL running too, I can inf-clojure-connect to it just fine, type into it, and eval code into it (C-c C-e); if I use inf-clojure and give it the clojure command to start a REPL, I get a plain REPL (as expected) and can type into it just fine to eval stuff manually, but when I try to eval into it (C-c C-e) I just get a long line of ^G^G^G^G... in the REPL and then I can't even type into it any more. What am I doing wrong?

seancorfield 2020-08-28T17:07:44.051900Z

(if it helps debug the problem, I also see Redirection Redirection Redirection Redirection Redirection in the status line for the REPL buffer at this point) [this was not relevant]

dpsutton 2020-08-28T17:37:53.052400Z

@seancorfield can you file an issue? i can look into it over the weekend or later today. and sorry about that hangup 😞

dpsutton 2020-08-28T17:38:16.052800Z

tag me on it (@dpsutton) if you do make the issue

seancorfield 2020-08-28T17:38:50.053Z

File an issue where?

seancorfield 2020-08-28T17:39:56.053800Z

This is my first time trying to use inf-clojure so I'm not very familiar with the ecosystem (and it's been several years now since I last used Emacs πŸ™‚ ).

dpsutton 2020-08-28T17:40:47.054100Z

https://github.com/clojure-emacs/inf-clojure/issues

seancorfield 2020-08-28T17:41:03.054700Z

Oh, I didn't know there was a #inf-clojure channel. Sorry, I should have asked there I guess.

dpsutton 2020-08-28T17:41:05.054900Z

i did a big refactor recently so it should be much easier to use and easier to extend

dpsutton 2020-08-28T17:41:17.055200Z

ah no worries. probably higher traffic here and i wouldn't have seen it there. joining now πŸ™‚

seancorfield 2020-08-28T17:56:58.057500Z

After helping a beginner yesterday navigate REBL stuff with Emacs/CIDER/nREPL, I wanted to try Emacs with just a plain REBL (REPL) or a Socket REPL. Pretty sure last time I'd tried Emacs there wasn't a way to connect to a plain Socket REPL so that's really good to see it work seamlessly. It's also a nice test of my https://github.com/seancorfield/socket-rebl lib, so everything Emacs sends to the Socket REPL gets submitted to REBL, which is the workflow I'm used to from Atom/Chlorine.

1
dpsutton 2020-08-28T18:22:30.058400Z

that's part of what motivated me. there's no real good socket option for emacs. i don't think inf-clojure is ready for full time development. needs a bit better story for auto completion but i really dig it for small simple things

seancorfield 2020-08-28T18:30:46.060Z

I don't think I'll ever go back to Emacs for real development work -- it's just too painful/primitive after using Atom for nearly five years -- but at least now I know something that works without CIDER/nREPL.

πŸ˜• 1
1
dpsutton 2020-08-28T18:41:07.061Z

I do like the idea of ditching nrepl just most projects I work on professionally are nrepl and usually lein based

seancorfield 2020-08-28T18:45:10.061900Z

Our main reason for wanting a workflow that avoided CIDER/nREPL was that we connect to REPLs in production and didn't want those dev dependencies baked into our production environment.

seancorfield 2020-08-28T18:46:12.063100Z

We have our services set up in production so there can be a .jvm_opts file next to the JAR and our service script uses the contents when (re)starting a service, so we can easily spawn a Socket REPL on any port.

dpsutton 2020-08-28T18:46:55.065300Z

Yeah. There’s some stuff with subscribing to out that can be a bit hanky. Also classloader stuff with nrepl I think. Metabase has a fix for nrepl making a new classloader for each form I think

seancorfield 2020-08-28T19:07:46.066200Z

This way we can use telnet etc to interact with the production process. And possibly unrepl/unravel if we really want some luxury (since it can side-load compliment). And then we have the exact same dev UX for local and remote processes (although I have REBL running locally, always).