Fork me on GitHub

Also, if-let, if-some , depending on what you need.


if-some looks neat. when would one use it instead of if-let ?


@sova if-let treats both false and nil as negative conditions. if-some only treats nil as a negative condition.


So if you have an expression that can yield truthy, false, or nil, where the first two are useful values and the third means “no result”, then you want if-some rather than if-let:

dev=> (if-let [x false] x :nope)
dev=> (if-some [x false] x :nope)


Is there a way to list all namespaces in the REPL when using ClojureScript? The equivalent of all-ns in Clojure


There's, but that is only useful if you need that information in Clojure (and maybe self-hosted ClojureScript -- not sure). What are you trying to do?


Is there a cleaner and/or more idiomatic way to say this?

(filter #(and (= (:k1 %) (:k1 a-map))
              (= (:k2 %) (:k2 a-map))
              (= (:kn %) (:kn a-map))) coll-of-maps)
edit: generalized the example a bit for n keys


You could use select-keys and compare equality of resulting maps

👍 1

Or (clojure.set/join #{a-map} coll-of-maps), I suppose. 🙂

👍 1

But yeah, select-keys is probably the right answer here, unless you specifically want a set as a result.

Darin Douglass13:04:06 would work as well

👍 1

Hi I am working on project, It is a leiningen project and I am trying to using debugger on it after running project with `lein run` I installed calva on vscode and tried some steps to set up debugger, but I was out of luck I would be grateful if you tell me steps required to set up debugger 🙏


You will probably have better luck getting an answer over at #calva. Make sure you describe what being "out of luck" means specifically. Also, check out


Thanks, Yeah I checked it out, but ok I will describe in #calva

code komali14:04:43

I am using vscode+calva. So far no issues having fun hacking clojure, except for one really annoying thing. clj-kondo is drawing sqiggly lines across many useful macros and makes the entire code ugly. I tried configuring it but failed. I created a .clj-kondo folder in project root and added config.edn. The below is my simple attempt to exclude deftest

code komali14:04:29

{:linters {:unresolved-symbol {:exclude [clojure.test/deftest]}}}


@code.komali You should not have to do that, clj-kondo is aware of all built-in clojure macros. It's likely that something else is wrong.


Please lint your code on the command line with the clj-kondo command line tool to see if you get any unexpected errors.


If not, then it's a downstream tooling problem. Pasting a screenshot might also help. Come talk in #clj-kondo or #calva to discuss further problems.


I'm pretty sure i also get squiggle on deftest with cava. I assumed it just wasn't supported. Will check when i get home.

code komali14:04:51

Thanks @borkdude I'll try doing that. But, even if the command line linting worked. I am very happy with calva. Hope the calva creator(s) do something about this.


Of course. This is just a way of finding out where the problem is. It should be resolved.


It turned out it was related to :refer :all and the problem is now fixed

code komali14:04:01

@borkdude yes. thanks for helping out!


DO you mean I shouldn't use :refer :all ? This is what I see:


My ns is like this:

(ns asm.parser-test
  (:require [clojure.test :refer :all]
            [asm.parser :refer :all]))


oh yeah! If I change it to

(:require [clojure.test :refer [deftest testing is]])
It removes the wiggles, thanks!


@code.komali @qmstuart well, shouldn't use is maybe too strong, but it helps clj-kondo more if you don't do that. However, if you have populated the cache with

mkdir -p .clj-kondo
clj-kondo --lint src:test --dependencies
then it will also work (I just realized this answering a similar question in #clj-kondo)


but since Calva uses LSP under the hood I would have expected it to have populated the cache, but maybe it doesn't do that if there is no .clj-kondo dir? /cc @ericdallo