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

Clojure REPLAdd Support for Clojure REPL to Enhance Clojure Development #9391

Open
1 task done
potapenko opened this issue Mar 15, 2024 · 10 comments
Open
1 task done
Labels
clojure Clojure programming language support enhancement [core label] language An umbrella label for all programming languages syntax behaviors tooling An umbrella label for language tools, linters, formatters, etc

Comments

@potapenko
Copy link

potapenko commented Mar 15, 2024

Check for existing issues

  • Completed

Describe the feature

Feature Request: Integration of Clojure REPL for Enhanced Development Experience

Title: Add Support for Clojure REPL to Enhance Clojure Development

Description:

Greetings, Zed development team,

I recently explored Zed for my Clojure projects and was truly impressed by its capabilities. The tool's intuitive design and robust feature set prompted me to consider transitioning my entire Clojure workflow into Zed. However, during my exploration, I identified a critical gap that significantly impacts the usability of Zed for Clojure development - the absence of Clojure REPL integration.

The Issue:

Clojure development is heavily reliant on the Read-Eval-Print Loop (REPL), a fundamental tool that enables developers to interactively write and test their code. The ability to connect to an already running REPL or initiate a new REPL session directly within the editor is not just a convenience; it's a necessity. This feature facilitates the execution of entire files (namespaces) or selective code snippets, allowing developers to immediately observe and analyze the outcomes of their code execution.

The Request:

I kindly urge the Zed development team to consider integrating Clojure REPL support into the editor. Such integration should enable:

  • Connection to an existing REPL session or initiation of a new session within Zed.
  • Execution of entire Clojure files (namespaces) or specific code snippets directly from the editor.
  • Real-time observation of code execution results within the editor environment.

For a practical example of this functionality, please refer to how the Spacemacs Clojure layer REPL is implemented. This feature set is a cornerstone of Spacemacs' popularity among Clojure developers, despite common performance grievances.

Why This Matters:

Spacemacs, a popular editor among Clojure developers, already incorporates these functionalities, resulting in its widespread adoption within the Clojure community. However, Spacemacs users often report performance issues, particularly on Mac systems, which are prevalent among our community. By integrating Clojure REPL support, Zed has the potential to attract a significant portion of these users, enhancing their development experience while addressing performance concerns.

Conclusion:

The integration of Clojure REPL would mark a significant step forward in making Zed a comprehensive tool for Clojure development. It addresses a crucial need within the community and could dramatically increase Zed's adoption among Clojure developers. Thank you for considering this request, and I am excited about the potential improvements in future versions of Zed.

If applicable, add mockups / screenshots to help present your vision of the feature

image
@potapenko potapenko added admin read Pending admin review enhancement [core label] triage Maintainer needs to classify the issue labels Mar 15, 2024
@Moshyfawn Moshyfawn added language An umbrella label for all programming languages syntax behaviors tooling An umbrella label for language tools, linters, formatters, etc clojure Clojure programming language support and removed triage Maintainer needs to classify the issue labels Mar 19, 2024
@JosephTLyons JosephTLyons removed the admin read Pending admin review label Mar 25, 2024
@olaven
Copy link

olaven commented May 29, 2024

👋 Chiming in to show support for this request! This is the main thing holding me back from using zed as my "general editor".

@rgbkrk
Copy link
Member

rgbkrk commented Jul 26, 2024

We just added REPL support to Zed Preview through Jupyter kernels. Let me know if IClojure works for your needs or if there's another kernel you'd recommend.

@kernelp4nic
Copy link

Let me know if IClojure works for your needs or if there's another kernel you'd recommend.

In my case it didn't work (doesn't connect to the kernel) but https://github.com/clojupyter/clojupyter worked properly

CleanShot 2024-07-29 at 15 43 26
CleanShot 2024-07-29 at 15 43 36

I'm going to try to include clojupyter as a lib of our app to see if I can integrate the REPL inside our env.
Thanks for your work!

@rgbkrk
Copy link
Member

rgbkrk commented Jul 29, 2024

Sweet. I'm going to work on getting more logs visible for end users without having to run a development copy. Hopefully we can figure out why some kernels work and some don't.

@shivangraina
Copy link

Any updates on this? Thanks.

@guigomesa
Copy link

Hey any update here? thanks

@rgbkrk
Copy link
Member

rgbkrk commented Sep 12, 2024

There are more logs available in the Zed log, which you can open via the command palette. I'll need some help with someone who is (or can become) familar with IClojure.

@niquola
Copy link

niquola commented Sep 28, 2024

I would love to see first-class support for nREPL (https://github.com/nrepl/nrepl), rather than IClojure, as that’s not how we typically work with Clojure code.

https://docs.cider.mx/cider/index.html is an idiomatic repl for clojure.

Can zed's REPL feature be extended to use nREPL?

PS:
Just an illustration how REPL driven development work in Clojure - https://www.parens-of-the-dead.com/

@tombarys
Copy link

+1 here for nREPL support. Thanks!

@franks42
Copy link

Unfortunately, without proper integrated repl (nREPL) support, ZED is not a viable coding environment for clojure... please...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clojure Clojure programming language support enhancement [core label] language An umbrella label for all programming languages syntax behaviors tooling An umbrella label for language tools, linters, formatters, etc
Projects
None yet
Development

No branches or pull requests