This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-04-20
Channels
- # beginners (35)
- # boot (81)
- # braveandtrue (7)
- # cider (74)
- # cljs-dev (52)
- # cljsrn (5)
- # clojure (114)
- # clojure-austin (1)
- # clojure-belgium (3)
- # clojure-brasil (8)
- # clojure-czech (7)
- # clojure-greece (18)
- # clojure-ireland (1)
- # clojure-russia (67)
- # clojure-uk (11)
- # clojurescript (52)
- # core-async (5)
- # core-matrix (3)
- # cursive (13)
- # data-science (3)
- # datomic (8)
- # emacs (80)
- # events (2)
- # hoplon (8)
- # immutant (7)
- # jobs-discuss (3)
- # juxt (25)
- # ldnproclodo (21)
- # leiningen (27)
- # mount (24)
- # off-topic (6)
- # om (23)
- # onyx (48)
- # parinfer (1)
- # proton (4)
- # re-frame (41)
- # reagent (9)
- # spacemacs (8)
- # untangled (122)
i'm working on a patch for cider to issue a warning if the clojure version is not supported by looking through project.clj and build.boot files. My regex: "org.clojure/clojure\s-*\".*\""
works just fine. But when i add the capturing group, it can break: "org.clojure/clojure\s-*\"\\(.*\\)\""
. Does anyone have any thoughts on this?
it breaks on the build.boot file for cprop which has the line: :dependencies '[[org.clojure/clojure "1.8.0"]
but it works without the capturing group. The capturing group version works on all other examples that i have
i've got this one now. It seems to work when i call it directly but not when my functions do: "org.clojure/clojure\s-*\"\([\.0-9]+\)\""
Well, in the future, if you are wondering, emacs regexes are dumb and require many slashes. "org.clojure/clojure\\s-*\"\\([.0-9]+\\)\""
so if you want a regexp with a backslash, (like \(
), you need to escape that backslash
thanks malabarba. I'm gonna write a few tests tonight and then submit the pull request
i've also seen that if you are lacking boot and try to run cider-jack-in, you get back a wrong argument stringp message instead of something useful
yeah the hammer dropped on me when you explained that. I understand the significance of different syntaxes for regexes in other languages now
as for the clojure-version thingy. I feel almost bad saying this, considering the pain you had with regexps, but I think there's a better way to do it.
If you jack-in to a project with an old clojure-version, does evaluation still work?
i thought about that but worried that if there was an error it may not be able to report it
Then I think the best approach is to run (cider-nrepl-sync-request:eval "*clojure-version*")
and then it looks like those responses are put into a dictionary or hashmap somewhere, is that correct?
(let* ((response (cider-nrepl-sync-request:eval "*clojure-version*"))
(clojure-version (nrepl-dict-get response "value")))
(complain about clojure-version))
I also saw that there is a version<
function out there. I see that explicitly clojure versions 1.7.0 and 1.8.0 are supported. I used these values explicitly rather than set a benchmark of > 1.7.0 as i'm not sure how many point releases of clojure are released, and if it would ever be possible to support say 1.7.0, not 1.7.1, 1.8.0, etc
but i may just make it along the lines get clojure version, complain if version< cider-minimum-clojure-version
and huge thanks for all your work on the debugger and general help on the dev mailing list. you are a rockstar man
After the recence talk about types at Clojure/West, I would like to ask here how and what folks use for racket in emacs? There in geiser and racket-mode. Ideally I would like to keep the cider workflow :)
you create a server, connect over sockets, and emacs nicely sends info back and forth
I tried geiser but I think I will need to add quack and change a lot of key bindings
oh too bad, Paredit does not like typed clojure
oh yeah. that's why i had to get rid of lispy. the [ characters are a navigation command and not a printing character in that mode.
smartparens works and oh...did not know about modules, that is why it was not finding my symbols 😄
I use geiser and it’s nice enough. i don’t code in Racket that often though
@malabarba: The problem is that you can’t really check the version this way
frankly I don’t remember what exactly happens on 1.6, but I remember it wasn’t pretty
I don't code a lot of Racket, but when I have I've used DrRacket. In Emacs, I found quack to be the easiest to set up.
I was hacking a lot in Chicken Scheme for a while, and quack was pretty usable for that.
@nkraft: thanks for the suggestion, but I found quack and it did not actually add much, so for now it is disabled, in favor of geiser
, but maybe I am missing something...what does it actually provide?