When using Claude Code or similar I often find myself wanting to reference a function. It'd be really useful to be able to right click on a function definition and 'Copy reference', so that the string "fully.qualified.namespace/var" was copied to the clipboard. Do you know if this is possible with a custom command?
have I got great news for you
this is a general intellij action
I use it all the time
Perfect, that is exactly what I wanted! Thank you!
I also use this all the time!
Cursive 2025.2.1 is out! Support for IJ 2025.3, many improvements to the clj-kondo support, fixed the exception report submitting, support for centralised licence distribution and many bug fixes. https://cursive-ide.com/blog/cursive-2025.2.1.html
hi, Colin. thanks for the release! for some reason, i’m still getting the HTTP 401 Unauthorized response from the exception reporter:
2025-12-04 09:57:24,381 [ 32453] WARN - #cursive.exception.ClojureErrorReportSubmitter - Error submitting report: 401 Unauthorized
cursive.exception.GithubException: 401 Unauthorized
at cursive.exception.ClojureErrorReportSubmitterKt.update(ClojureErrorReportSubmitter.kt:195)
at cursive.exception.ClojureErrorReportSubmitterKt.access$update(ClojureErrorReportSubmitter.kt:1)
at cursive.exception.ClojureErrorReportSubmitter$submit$1.run(ClojureErrorReportSubmitter.kt:369)
at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:498)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:119)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$7(CoreProgressManager.java:549)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:252)
at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:98)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:229)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:44)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:228)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$14(CoreProgressManager.java:681)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:756)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:712)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:680)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:78)
at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:209)
at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:98)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$5(ProgressRunner.java:252)
at com.intellij.openapi.progress.impl.ProgressRunner$ProgressRunnable.run(ProgressRunner.java:515)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$launchTask$18(ProgressRunner.java:480)
at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:167)
at com.intellij.util.concurrency.ChildContext$runInChildContext$1.invoke(propagation.kt:167)
at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:173)
at com.intellij.util.concurrency.ChildContext.runInChildContext(propagation.kt:167)
at com.intellij.openapi.progress.impl.ProgressRunner.lambda$launchTask$19(ProgressRunner.java:476)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:735)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:732)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:400)
at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:732)
at java.base/java.lang.Thread.run(Thread.java:1583)here is the original exception:
2025-12-04 09:56:58,925 [ 6997] SEVERE - #c.i.c.InspectionEngine - Inspection tool 'ClUnusedImport' (class cursive.inspections.list.ClUnusedImport) thrown exception from its buildVisitor() [Plugin: com.cursiveclojure.cursive]
com.intellij.diagnostic.PluginException: Inspection tool 'ClUnusedImport' (class cursive.inspections.list.ClUnusedImport) thrown exception from its buildVisitor() [Plugin: com.cursiveclojure.cursive]
at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23)
at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:90)
at com.intellij.codeInspection.InspectionEngine.createVisitor(InspectionEngine.java:63)
at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$inspect$11(InspectionRunner.java:155)
at com.intellij.codeInspection.InspectionEngine.withSession(InspectionEngine.java:251)
at com.intellij.codeInsight.daemon.impl.InspectionRunner.inspect(InspectionRunner.java:147)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$collectInformationWithProgress$4(LocalInspectionsPass.java:147)
at com.intellij.codeInsight.daemon.impl.HighlightInfoUpdaterImpl.lambda$runWithInvalidPsiRecycler$42(HighlightInfoUpdaterImpl.java:889)
at com.intellij.codeInsight.daemon.impl.ManagedHighlighterRecycler.runWithRecycler(ManagedHighlighterRecycler.java:87)
at com.intellij.codeInsight.daemon.impl.HighlightInfoUpdaterImpl.runWithInvalidPsiRecycler(HighlightInfoUpdaterImpl.java:870)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.collectInformationWithProgress(LocalInspectionsPass.java:159)
at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:92)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:71)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$2(PassExecutorService.java:435)
at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:29)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$3(PassExecutorService.java:431)
at com.intellij.platform.locking.impl.NestedLocksThreadingSupport.tryRunReadAction(NestedLocksThreadingSupport.kt:826)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1221)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$doRun$4(PassExecutorService.java:421)
at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$14(CoreProgressManager.java:681)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:756)
at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:712)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:680)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:78)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:420)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$0(PassExecutorService.java:395)
at com.intellij.openapi.fileTypes.impl.FileTypeManagerImpl.cacheFileTypesInside(FileTypeManagerImpl.java:852)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.lambda$run$1(PassExecutorService.java:395)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:258)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:393)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:265)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:507)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1491)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:2073)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:2035)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:187)
Caused by: java.lang.IllegalStateException: Attempting to call unbound fn: #'cursive.inspections/register-inspection-problem
at clojure.lang.Var$Unbound.throwArity(Var.java:47)
at clojure.lang.AFn.invoke(AFn.java:32)
at clojure.lang.Var.invoke(Var.java:386)
at cursive.api.DelayedFn.invoke(DelayedFn.java:31)
at cursive.inspections.ClListInspection.buildVisitor(Inspections.kt:69)
at com.intellij.codeInspection.LocalInspectionTool.buildVisitor(LocalInspectionTool.java:129)
at com.intellij.codeInspection.InspectionEngine.createVisitor(InspectionEngine.java:57)
... 33 more
2025-12-04 09:56:58,926 [ 6998] SEVERE - #c.i.c.InspectionEngine - IntelliJ IDEA 2025.2.5 Build #IU-252.28238.7
2025-12-04 09:56:58,926 [ 6998] SEVERE - #c.i.c.InspectionEngine - JDK: 21.0.9; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o.
2025-12-04 09:56:58,926 [ 6998] SEVERE - #c.i.c.InspectionEngine - OS: Mac OS X
2025-12-04 09:56:58,926 [ 6998] SEVERE - #c.i.c.InspectionEngine - Plugin to blame: Cursive version: 2025.2-252
2025-12-04 09:56:58,926 [ 6998] SEVERE - #c.i.c.InspectionEngine - Last Action: and my environment:
IntelliJ IDEA 2025.2.5 (Ultimate Edition)
Build #IU-252.28238.7, built on November 19, 2025
Source revision: 7059016f3609e
Licensed to <REDACTED>
You have a perpetual fallback license for this version.
Subscription is active until August 8, 2026.
Runtime version: 21.0.9+10-b1038.76 aarch64 (JCEF 122.1.9)
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
Toolkit: sun.lwawt.macosx.LWCToolkit
macOS 26.1
GC: G1 Young Generation, G1 Concurrent GC, G1 Old Generation
Memory: 2048M
Cores: 14
Metal Rendering is ON
Registry:
ide.experimental.ui=true
Non-Bundled Plugins:
org.intellij.plugins.hcl (252.26199.7)
com.intellij.ideolog )
com.jetbrains.restClient )
Docker )
org.jetbrains.plugins.github -IU)
com.intellij.kubernetes )
org.editorconfig.editorconfigjetbrains )
org.jetbrains.plugins.yaml )
com.intellij.properties (252.28238.9)
com.cursiveclojure.cursive (2025.2-252)
com.github.copilot (1.5.61-243)
String Manipulation (9.16.0)
name.kropp.intellij.makefile )
JavaScript )
Kotlin: 252.28238.7-IJ hmm… i thought i was on the latest version of Cursive since “Check for Updates” didn’t detect any plug-in updates. the “Built on” date made me think that i was on the latest version 😕:
Yeah, there seems to be a problem where the plugin view isn't detecting updates. Several people have reported this for EAP builds, but it's worrying that it also happens for stable releases. I'll chase JetBrains about this.
ah, i see. anyway, reinstalling the plug-in got me on the latest version. all good now. ✌️
Is there any way to get Cursive to download the source jars for maven dependencies? I might be going mad, but I swear it used to work out when I clicked the IDEA "Download..." button in the banner of a decompiled class file, but nowadays I just get an "Sources for 'xyz-2.40.0.jar' not found" error bubble. I've checked and this works in a pure java/mvn project, so it is likely a Cursive/Deps thing.
That should work, I'll check it tomorrow. I'm also planning improvements to this for the next release (allowing manual download of sources, and then automatically attaching sources when syncing after that).
I looked into this the other day. It looked like maven central wasn't returning results properly.
downloads from maven central are working fine in pure java/mvn projects (at least for me -- I just checked)
Interesting, what was the problem with the results? And I'd assume that would affect Java too, no?
yeah not the download, the search
yeah I assumed it would be fixed fast for this reason. let me see if I can't track down the logs again.
The download is just IntelliJ, so maybe Cursive is supplying incorrect values to it, or something has changed in what it expects.
that would tally with my memory that this used to work fine
Yeah, it definitely did work, and still should AFAIK
I'll check it.
thanks
com.intellij.util.io.HttpRequests$HttpStatusException: Request failed with status code 502. Status=502,
Url=but you change the version to 2.30.0 and it works. It's like solrsearch just isn't indexing new jars.
https://search.maven.org/solrsearch/select?rows=3&wt=xml&q=g:%22software.amazon.awssdk%22%20AND%20a:%22cloudformation%22%20AND%20v:%222.36.1%22%20AND%20l:%22sources%22 works fine for me @potetm
I think this is orthogonal to my issue
That returns results?
(ignore the 502)
oh, sorry. it returns no results, but with a 200 response code, not 502
right 502 is a happy accident bc it sent the request to logs
but solrsearch appears to not return any new jars
and solrsearch is what IDEA/Cursive are hitting under the hood?
apparently? (I only got there grepping through logs. I don't know anything about what's under the hood of intellij.)
Strange that it is doing a search at all, rather than just hitting the sources jar endpoint directly: https://repo1.maven.org/maven2/software/amazon/awssdk/cloudformation/2.36.1/cloudformation-2.36.1-sources.jar
I am a little late to the party, but the State of Clojure Survey for 2025 is now available! Please do take the time to fill it in, it's super helpful information for those of us making tooling. https://www.surveymonkey.com/r/clojure2025
In context of a multi-module project, attempting to evaluate a file in one module with local repl run-configuration running scoped to that module, I get red popover saying "No available REPL for [the file]. All files in module [module-with-file] are configured to use [another run configuration for a different module], but it is inactive." I don't understand why this is happening or where I might configure this differently?
Nevermind, I found it
It is in Settings -> languages & frameworks -> clojure -> REPL. I was looking in project structure.
and I definitely did this, just completely forgot
Thinking about this, I should put a link to the settings in the popup.
That would have saved me a few minutes of confusion