cursive

2025-12-04T09:30:36.310749Z

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?

imre 2025-12-04T11:40:25.348439Z

have I got great news for you

1
imre 2025-12-04T11:41:01.995709Z

❤️ 1
imre 2025-12-04T11:41:12.792399Z

this is a general intellij action

imre 2025-12-04T11:41:21.806009Z

I use it all the time

2025-12-04T11:44:01.272749Z

Perfect, that is exactly what I wanted! Thank you!

cfleming 2025-12-04T12:15:54.960709Z

I also use this all the time!

cfleming 2025-12-04T12:16:07.944689Z

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

2
3
salam 2025-12-04T18:04:46.031449Z

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)

salam 2025-12-04T18:11:11.545139Z

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: 

salam 2025-12-04T18:12:45.774559Z

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

salam 2025-12-04T18:24:24.846969Z

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 😕:

cfleming 2025-12-04T19:51:08.674799Z

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.

1
salam 2025-12-04T20:06:41.512469Z

ah, i see. anyway, reinstalling the plug-in got me on the latest version. all good now. ✌️

scarytom 2025-12-04T12:56:58.779329Z

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.

👀 1
cfleming 2025-12-04T13:01:17.309969Z

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).

👍 1
2025-12-04T13:01:36.860579Z

I looked into this the other day. It looked like maven central wasn't returning results properly.

scarytom 2025-12-04T13:02:42.248199Z

downloads from maven central are working fine in pure java/mvn projects (at least for me -- I just checked)

cfleming 2025-12-04T13:02:49.964729Z

Interesting, what was the problem with the results? And I'd assume that would affect Java too, no?

2025-12-04T13:02:52.082779Z

yeah not the download, the search

2025-12-04T13:03:10.146169Z

yeah I assumed it would be fixed fast for this reason. let me see if I can't track down the logs again.

cfleming 2025-12-04T13:03:41.447479Z

The download is just IntelliJ, so maybe Cursive is supplying incorrect values to it, or something has changed in what it expects.

scarytom 2025-12-04T13:03:57.807219Z

that would tally with my memory that this used to work fine

cfleming 2025-12-04T13:04:16.032579Z

Yeah, it definitely did work, and still should AFAIK

cfleming 2025-12-04T13:04:23.529959Z

I'll check it.

scarytom 2025-12-04T13:04:33.065979Z

thanks

2025-12-04T13:09:29.377749Z

com.intellij.util.io.HttpRequests$HttpStatusException: Request failed with status code 502. Status=502,
Url=

2025-12-04T13:10:38.330289Z

but you change the version to 2.30.0 and it works. It's like solrsearch just isn't indexing new jars.

2025-12-04T16:50:26.593759Z

That returns results?

2025-12-04T16:50:34.896349Z

(ignore the 502)

scarytom 2025-12-04T16:51:11.344359Z

oh, sorry. it returns no results, but with a 200 response code, not 502

2025-12-04T16:51:27.552329Z

right 502 is a happy accident bc it sent the request to logs

2025-12-04T16:51:42.912799Z

but solrsearch appears to not return any new jars

scarytom 2025-12-04T16:52:15.983709Z

and solrsearch is what IDEA/Cursive are hitting under the hood?

2025-12-04T16:52:51.366569Z

apparently? (I only got there grepping through logs. I don't know anything about what's under the hood of intellij.)

👍 1
scarytom 2025-12-04T17:03:12.055159Z

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

cfleming 2025-12-04T20:20:12.229389Z

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

✅ 4
favila 2025-12-04T22:17:21.597769Z

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?

favila 2025-12-04T22:18:54.528429Z

Nevermind, I found it

favila 2025-12-04T22:20:00.575099Z

It is in Settings -> languages & frameworks -> clojure -> REPL. I was looking in project structure.

favila 2025-12-04T22:20:08.523069Z

and I definitely did this, just completely forgot

cfleming 2025-12-04T23:09:08.557309Z

Thinking about this, I should put a link to the settings in the popup.

👍 1
favila 2025-12-05T00:38:29.720779Z

That would have saved me a few minutes of confusion