Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make new error messages in Clojure 1.10 clickable #2142

Closed
cursive-ide opened this issue Mar 27, 2019 · 3 comments
Closed

Make new error messages in Clojure 1.10 clickable #2142

cursive-ide opened this issue Mar 27, 2019 · 3 comments
Labels
new Marks issues describing new features released Marks issues which have had the fixes released in a stable build
Milestone

Comments

@cursive-ide
Copy link
Owner

In Clojure 1.10 the error messages got a significant improvement. However they no longer look like stacktrace lines, so Cursive should also match those to make the source links clickable.

Example:

(/ 1 0)
Syntax error (ArithmeticException) compiling at (notification.clj:58:1).
Divide by zero
@cursive-ide cursive-ide added this to the 1.8.1 milestone Mar 27, 2019
@cursive-ide cursive-ide modified the milestones: 1.8.1, 1.8.2 May 21, 2019
@cursive-ide
Copy link
Owner Author

This is fixed for the next build. Unfortunately these error messages only have the file name, so for errors coming from e.g. core.clj the user will have to select from a dropdown when clicking on the link. It may be possible to address this with later improvements to the REPL infrastructure.

@cursive-ide cursive-ide modified the milestones: 1.8.2, 1.8.2-eap4 May 24, 2019
@puredanger
Copy link

FYI, in 1.10.1 they will have the path too. And of course, the exception sitting in *e has ex-data that includes more attributes as data.

@cursive-ide
Copy link
Owner Author

@puredanger Yes, I actually realised that after writing that comment, and fixed this appropriately. So in 1.10.1 files should hopefully not be ambiguous and navigation will just work.

I saw that *e has more info, but it's tricky to go out asynchronously for it when rendering a hyperlink. I'd really need to store *e per evaluation (and that relies on an evaluation having an ID of some kind), and then store the evaluation ID in the hyperlink so I could get the correct exception back later, or something. Unfortunately storing the information temporarily on the server is fundamentally racy, so I'm very pleased to see the path in 1.10.1.

@cursive-ide cursive-ide added the new Marks issues describing new features label Sep 22, 2020
@cursive-ide cursive-ide added the released Marks issues which have had the fixes released in a stable build label Oct 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new Marks issues describing new features released Marks issues which have had the fixes released in a stable build
Projects
None yet
Development

No branches or pull requests

2 participants