This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2024-03-10
Channels
- # aleph (1)
- # beginners (4)
- # biff (7)
- # calva (7)
- # cider (8)
- # clara (17)
- # clerk (19)
- # clj-kondo (30)
- # clojure (12)
- # clojure-austin (1)
- # clojure-europe (12)
- # clojure-losangeles (1)
- # clojure-norway (21)
- # clojurescript (2)
- # datalevin (1)
- # datomic (24)
- # duct (3)
- # fulcro (8)
- # hyperfiddle (8)
- # lambdaisland (4)
- # membrane (6)
- # missionary (7)
- # off-topic (55)
- # overtone (2)
- # reagent (4)
- # reitit (4)
- # releases (6)
- # shadow-cljs (80)
Hi I'm not sure where I'm going wrong (or if it it even is cider's problem) but could someone give me an idea why certain completions show up but others don't? As you can see from this example, for some reason aero's read-config or anything doesn't show up. But io is required the same way and its completions show up. I'm currently using doom emacs if it matters.
Usually I start debugging by looking at (`C-h v`) the completion-at-point-functions
to figure out what functions are providing completion candidates (e.g. cider-complete-at-point
or lsp-completion-at-point
).
lsp's completions are from the static analysis that clj-kondo does, and macros often defeat that analysis. areo wraps a lot of definitions in some custom macros which kondo doesn't understand.
I have a suspicion that you haven't evaluated your ns form, so the completion backend doesn't know yet that aero
is an alias to aero.core
. Could that be the case?
That was my initial thought so I tried to load all the namespaces. It turned out to be lsp issue. Everything worked as expected once I turned off the lsp and just used cider
you can also check if there's a difference when using lsp-mode
vs eglot
. I've had some hard-to-reproduce problems with lsp-mode
wrt. completions, where (similar to your issue) I sometimes get no completions until I modify the file a little bit. eglot
seems to work better in that regard (but might have other issues).