This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2020-02-21
Channels
- # announcements (39)
- # architecture (7)
- # aws (9)
- # babashka (111)
- # beginners (139)
- # bristol-clojurians (1)
- # calva (47)
- # chlorine-clover (5)
- # cider (17)
- # clj-kondo (26)
- # clojars (25)
- # clojure (251)
- # clojure-berlin (1)
- # clojure-dev (5)
- # clojure-europe (22)
- # clojure-france (1)
- # clojure-hungary (6)
- # clojure-losangeles (8)
- # clojure-nl (18)
- # clojure-spec (3)
- # clojure-uk (68)
- # clojured (32)
- # clojurescript (32)
- # core-async (10)
- # core-typed (120)
- # cursive (8)
- # datascript (10)
- # datomic (11)
- # docker (2)
- # emacs (6)
- # figwheel-main (4)
- # fulcro (10)
- # graalvm (92)
- # hoplon (2)
- # instaparse (9)
- # jobs (3)
- # jobs-discuss (31)
- # joker (2)
- # kaocha (1)
- # lambdaisland (5)
- # leiningen (10)
- # luminus (1)
- # lumo (14)
- # meander (30)
- # mid-cities-meetup (1)
- # midje (1)
- # off-topic (46)
- # pathom (22)
- # perun (2)
- # re-frame (10)
- # reitit (1)
- # remote-jobs (8)
- # shadow-cljs (71)
- # spacemacs (7)
- # sql (40)
- # tools-deps (31)
- # tree-sitter (11)
- # vim (14)
- # vscode (2)
- # xtdb (5)
btw, i've fetched quite a few github repositories containing clj code and run one of the grammars over the contained clj and cljc files to see how it does.
it's helped to identify a few weak spots and am working on seeing if they can be attended to.
it's also brought up a number of points regarding actual usage vs docs on http://clojure.org.
e.g. if you read: https://clojure.org/reference/reader#_symbols (also see keyword section) -- you might think that putting #
in a symbol or keyword is not a good idea (it's not listed as an allowed character).
it turns out that music-oriented code seems to like using it in keywords (e.g. :A#
) and there are a few other places #
seems to be used in keywords.
apart from what the docs say, i think use of #
in a symbol is a potential problem because of the use of #
in gensyms -- at least i think it may be likely to confuse tooling.
another thing is use of slashes. there are some folks who seem to like to use slashes in keywords for: urls, file paths, etc. -- this seems to be in conflict with the aforementioned page. another slash usage that comes up is :/
. (i'm inclined toward allowing my-ns//
to refer to something defined as /
in my-ns
.)
i'm not terribly surprised to find these things -- just wondering what to do about them 🙂
one idea is to have a grammar that is very strict -- you could use this as a kind of linter may be (not sure if tree-sitter would require some tweaking) -- and another that is more lenient.
i've been running clj-kondo on some of the files that were fetched. sometimes clj-kondo gives errors, sometimes not.
regarding :/
i learned that in june of last year, there was a discussion and iiuc it's now considered legal -- though i'm not quite sure how to interpret the conversation. it did seem to lead to changes in cljs though.
i've also tested things at the repl -- the repl is more permissive than the docs, and sometimes load-file is more permissive than the repl.