Closing the Find-Usages Gap in CIDER 0 ▲ Meta Redux 3 hours ago · Tech · hide · 0 comments Next up in the series on the notable changes in CIDER 2.0: cross-references. Or, as most people call the feature, “find usages” - for years the most commonly cited reason to run clojure-lsp alongside (or instead of) CIDER. Let’s talk about why that gap existed and how we finally closed it. Why runtime xref wasn’t enough CIDER has had runtime cross-referencing for a while: the cider/fn-refs op walks the loaded vars in your REPL and reports which functions reference the one at point. It’s a genuinely cool trick - the REPL literally knows your program - but as a “find usages” answer it has three structural problems: It only sees loaded code. Namespaces you haven’t required yet - often most of the codebase - are invisible. It reports functions, not occurrences. Each hit points at the caller’s definition, not the exact call site, and a function that calls yours three times shows up once. It’s JVM-only, so ClojureScript users got nothing. clojure-lsp, by contrast, builds a static index of… No comments yet. Log in to reply on the Fediverse. Comments will appear here.