Skip to content
This issue has been moved to a discussionGo to the discussion

Clojure REPL: Add Support for Clojure's nREPL #9391

@potapenko

Description

@potapenko

Summary:

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

Activity

added
languageAn umbrella label for all programming languages syntax behaviors
toolingAn umbrella label for language tools, linters, formatters, etc
clojureClojure programming language support
and removed on Mar 20, 2024
olaven

olaven commented on May 29, 2024

@olaven

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

rgbkrk

rgbkrk commented on Jul 26, 2024

@rgbkrk
Member

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

kernelp4nic commented on Jul 30, 2024

@kernelp4nic

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

rgbkrk commented on Jul 30, 2024

@rgbkrk
Member

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

shivangraina commented on Sep 2, 2024

@shivangraina

Any updates on this? Thanks.

guigomesa

guigomesa commented on Sep 12, 2024

@guigomesa

Hey any update here? thanks

rgbkrk

rgbkrk commented on Sep 13, 2024

@rgbkrk
Member

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

niquola commented on Sep 29, 2024

@niquola

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

tombarys commented on Oct 18, 2024

@tombarys

+1 here for nREPL support. Thanks!

franks42

franks42 commented on Nov 11, 2024

@franks42

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

BorisVSchmid

BorisVSchmid commented on Dec 1, 2024

@BorisVSchmid

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

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!

@kernelp4nic There are multiple methods of using clojupyter - one deprecated, one on the wishlist, and two currently active. Which of these did you use?

https://github.com/clojupyter/clojupyter/blob/master/doc/usage-scenarios.md

agriffis

agriffis commented on Dec 3, 2024

@agriffis

Could I recommend moving discussion of clojupyter to a separate issue? This issue is about clojure-native repl/nrepl needed for traditional clojure development, and it only muddies the water to discuss jupyter-based solutions.

changed the title [-]Clojure REPLAdd Support for Clojure REPL to Enhance Clojure Development[/-] [+]Clojure REPL: Add Support for Clojure's nREPL[/+] on Dec 3, 2024
rgbkrk

rgbkrk commented on Dec 3, 2024

@rgbkrk
Member

Could I recommend moving discussion of clojupyter to a separate issue?

I've updated the title to make it more explicit about supporting nrepl.

guigomesa

guigomesa commented on Jan 10, 2025

@guigomesa

+1 here for nREPL support. Thanks!

probably-neb

probably-neb commented on Jan 31, 2025

@probably-neb
Collaborator

Hey! This is definitely an interesting idea and something worth discussing further. We've decided to move feature/enhancements like this to discussions so I'm going to move this there.
Feel free to continue voicing your support for adding this to Zed.

locked and limited conversation to collaborators on Jan 31, 2025
converted this issue into a discussion #23938 on Jan 31, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    clojureClojure programming language supportfeature[core label]languageAn umbrella label for all programming languages syntax behaviorstoolingAn umbrella label for language tools, linters, formatters, etc

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @niquola@agriffis@franks42@kernelp4nic@potapenko

        Issue actions

          Clojure REPL: Add Support for Clojure's nREPL · Issue #9391 · zed-industries/zed