This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-03-19
Channels
- # bangalore-clj (2)
- # beginners (217)
- # boot (3)
- # cider (130)
- # cljs-dev (117)
- # cljsrn (11)
- # clojure (99)
- # clojure-china (1)
- # clojure-denver (1)
- # clojure-dev (22)
- # clojure-italy (30)
- # clojure-norway (5)
- # clojure-russia (13)
- # clojure-sanfrancisco (3)
- # clojure-spec (74)
- # clojure-uk (107)
- # clojurescript (40)
- # clr (6)
- # core-async (25)
- # core-logic (4)
- # cursive (1)
- # data-science (1)
- # datomic (62)
- # duct (11)
- # editors (14)
- # figwheel (3)
- # fulcro (12)
- # funcool (1)
- # garden (12)
- # graphql (19)
- # jobs (4)
- # jobs-rus (1)
- # lein-figwheel (1)
- # leiningen (12)
- # luminus (5)
- # off-topic (45)
- # onyx (12)
- # other-languages (1)
- # parinfer (5)
- # programming-beginners (3)
- # re-frame (113)
- # reagent (63)
- # remote-jobs (10)
- # ring-swagger (1)
- # shadow-cljs (31)
- # slack-help (3)
- # spacemacs (27)
- # specter (1)
- # unrepl (44)
- # yada (16)
Is there a setting to force the *cider-inspect*
window to update it’s values when you’re debugging in another window? Gets frustrating having to navigate to it to refresh it. I’m sure there is and I’m not finding it, thanks in advance. 🙂
I'm using the boot cider repl -s wait
command and when I go to use cider-connect I have to manually enter the port. I remember it used to detect the running repl instance.
> Is there a setting to force the *cider-inspect*
window to update it’s values when you’re debugging in another window? Gets frustrating having to navigate to it to refresh it. I’m sure there is and I’m not finding it, thanks in advance. 🙂 (edited)
@iwannaseethelight No, there’s no such way currently. How do you use the inspector and the debugger together?
@theeternalpulse I think there was some port detection logic only for leiningen, that was parsing the the output of ps
or something like this. See https://github.com/clojure-emacs/cider/blob/master/cider.el#L871
I'd love to take a look at that when I have the time. I'm a bit less fluent in lisp than I am in clojure, so I need to get set up with testing and the lisp environment, but would like to take a look. Do you need an issue first @bozhidar
It’s easier than it looks. 🙂 No need for a ticket, but you can always file one if you want.
cool, do you usually just test something like this eval'ing with certain arguments piece by piece?
So I looked into it deeper last night, the boot process sadly doesn't emit the parent directory, so finding the .nrepl port can not be found. I was wondering if it would be too out of scope for me to do a secondary look up the parent project path, up to the home path for the .nrepl-port file if the initial file ends up empty?
3638 24.5 4.9 7822492 801312 pts/2 Ssl+ 08:12 0:57 java -Dboot.app.path=/usr/local/bin/boot -jar /usr/local/bin/boot -i (require 'cider.tasks) -d org.clojure/tools.nrepl:0.2.13 -d com.billpiel/sayid:0.0.15 -d refactor-nrepl:2.4.0-SNAPSHOT -d cider/cider-nrepl:0.17.0-SNAPSHOT cider.tasks/add-middleware -m com.billpiel.sayid.nrepl-middleware/wrap-sayid -m refactor-nrepl.middleware/wrap-refactor -m cider.nrepl/cider-middleware repl -s -H :: wait
that's an example of the boot process
learned a handful of lisp along the way so thanks for that lol
This and the regexp after it have to tweaked to support boot
as well., which should be super simple.
Hey @bozhidar - I have a split window in emacs, displaying local vars on one side and the code I’m debugging on the other. The ideal use case would be for the local vars to update as I step in the debugging window. Currently I have to type l
and then C-x o
back to my code to refresh the buffer.
I see. Well, you can file a feature request ticket and we can see what we can do about this.
For sure, will do
I’d also like to point out that cider
is fucking awesome 😉
It’s allowed me to stay inside emacs, thank god
@iwannaseethelight Happy to hear this!
It was my plan for myself when I started working on it, but I never actually got to using Clojure professionally. 😄
Yeah I took a gig down under writing clojure but f*ck IntelliJ 😉
Is there something changed in how cider detects piggieback? I have been using shadow-cljs happily for the past few months but after an upgrade it gives me:
error in process filter: Piggieback is not available. See for details
Btw shadow-cljs shims piggiebackI’ll update the detection to not be global. I had no idea there was another cljs nREPL eval middleware.
@mitchelkuijpers Btw, how exactly do you start the cljs repl with shadow-cljs?
I have this in my dir-locals:
(setq cider-cljs-lein-repl "(start-cljs-repl)")
But I am not sure how to configure this anymore
As for the rest - you’ll have to update the list of known cljs repls and add there some entry for shadow-cljs.
(defconst cider-cljs-repl-types
'(("Rhino" "(cemerick.piggieback/cljs-repl (cljs.repl.rhino/repl-env))"
nil)
("Nashorn" "(cemerick.piggieback/cljs-repl (cljs.repl.nashorn/repl-env))"
cider-check-nashorn-requirements)
("Figwheel" "(do (require 'figwheel-sidecar.repl-api) (figwheel-sidecar.repl-api/start-figwheel!) (figwheel-sidecar.repl-api/cljs-repl))"
cider-check-figwheel-requirements)
("Node" "(do (require 'cljs.repl.node) (cemerick.piggieback/cljs-repl (cljs.repl.node/repl-env)))"
cider-check-node-requirements)
("Weasel" "(do (require 'weasel.repl.websocket) (cemerick.piggieback/cljs-repl (weasel.repl.websocket/repl-env :ip \"127.0.0.1\" :port 9001)))"
cider-check-weasel-requirements)
("Boot" "(do (require 'adzerk.boot-cljs-repl) (adzerk.boot-cljs-repl/start-repl))"
cider-check-boot-requirements))
"A list of supported ClojureScript REPLs.
For each one we have its name, the form we need to evaluate in a Clojure
REPL to start the ClojureScript REPL and functions to very their requirements.")
And finally - set cider-default-cljs-repl
to whatever name you decide to give to this new entry you’ve added.
Ah ok the hard part is that you have to choose the build for shadow-cljs
But I will try it out thank you so much @bozhidar
I’m afraid I have no idea what this is. 🙂 I recently revamped the cljs support, but at the time I didn’t even know what shadow-cljs was.
No problem, I'll try it out. Maybe you would like a PR to add shadow-cljs support?
You can also see this related ticket - https://github.com/clojure-emacs/cider/issues/2239
Ah cool thnx
Very cool @bozhidar this works:
(add-to-list 'cider-cljs-repl-types '("Shadow CLJS" "(do (shadow.cljs.devtools.server/start!) (shadow.cljs.devtools.api/watch :app) (shadow.cljs.devtools.api/nrepl-select :app))" nil))
But the problem is that I specified the build :app
which you cannot know beforehandYes there is a shadow-cljs.edn with a :builds
key and the a map
Like this: https://shadow-cljs.github.io/docs/UsersGuide.html#_build_configuration
But you maybe already know that
Yeah. It tries to detect your project type, in the absence of a project it uses clojure
(tools.deps) Let me find the relevant section of the manual.
my emacs knowledge pretty much ends at starting it so I wouldn't even know where to start configuring it
its probably my weird project setup in shadow-cljs. I usually start a seperate process via lein with-profiles +cljs repl
As for configuration - simply put you need to add entries like (setq some-var some-value)
in your init.el
configuration file.
I don't know that I did ... but I can't for the life of me figure out why things appear in the line below M-x cider-
and I can't edit the command anymore?
I haven’t used Spacemacs, I don’t like using a setup I haven’t crafter myself, because that means I don’t know what exactly’s going on there.
its probably a key binding I'm used to using from Cursive but I can't figure out how to get out of it 😛
emacs is great because you can do everything. its also horrible because you have to do everything.
If you want something simpler - you might look into my one-file config https://github.com/bbatsov/emacs.d/blob/master/init.el
Generally all the config you need is:
(require 'package)
(add-to-list 'package-archives
'("melpa" . " ") t)
;; keep the installed packages in .emacs.d
(setq package-user-dir (expand-file-name "elpa" user-emacs-directory))
(package-initialize)
;; update the package metadata is the local cache is missing
(unless package-archive-contents
(package-refresh-contents))
(use-package cider
:ensure t
:config
(add-hook 'cider-mode-hook #'eldoc-mode)
(add-hook 'cider-repl-mode-hook #'eldoc-mode))
I have installed it manually and forgot to add a check to install it if it’s missing.
Setting ‘package-selected-packages’ temporarily since "emacs -q" would overwrite customizations
For information about GNU Emacs and the GNU system, type C-h C-a.
Contacting host:
gnutls.c: [1] (Emacs) GnuTLS library not found
Contacting host:
Opening TLS connection to ‘’...
Opening TLS connection with ‘gnutls-cli --x509cafile nil -p 443 ’...failed
Opening TLS connection with ‘gnutls-cli --x509cafile nil -p 443 --protocols ssl3’...failed
Opening TLS connection with ‘openssl s_client -connect -no_ssl2 -ign_eof’...failed
Opening TLS connection to ‘’...failed
Package refresh done
Failed to download ‘melpa’ archive.
@U4PUTN69G I thought this was fixed on the ELPA side?
? where? travis?
Oh, now I see the @thheller discussion. It looks like Emacs was installed, maybe, without gnutls support compiled in nor the gnutls-cli available… ?
Oh, interesting. I
I’m not able to resolve http://melpa.org
$ ping
PING (198.105.244.130): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
^C
and now I can:
Neils-MBP:~ neilo$ ping
PING (104.239.207.44): 56 data bytes
64 bytes from 104.239.207.44: icmp_seq=0 ttl=44 time=55.442 ms
64 bytes from 104.239.207.44: icmp_seq=1 ttl=44 time=56.520 ms
64 bytes from 104.239.207.44: icmp_seq=2 ttl=44 time=55.828 ms
^C
Different IP addresses, mind you. There is some round robin thing going on, and one of the servers is unresponsive.
I’ll check again later and report. That was Melpa, by the way, not Elpa. So that’s Steve Purcell et al.
https://gist.github.com/thheller/37318e42e91da6c8a0c15dc2859222da this is what I get on cider-jack-in
Seems that for some reason one of the deps in not downloaded or something, but I can’t imagine why.
is anyone having trouble with cider-default-cljs-repl
not being read from the dir-locals?
https://github.com/clojure-emacs/cider/commit/b460bbc7168ad4bd390d8fb9ca257b5c54a76378
CIDER ruling the world here: http://blog.cognitect.com/blog/2017/1/31/clojure-2018-results 😉
That’s nice. Seems finally Cursive stopped growing this year. Guess now we know how many people actually enjoy using Emacs, as opposed to having been forced to use it. 😄
Looking at this data it seems to me we can drop support (or at least remove the CI builds for Clojure 1.7 and Java 1.7).
morning from nz all