Arei Emerges as Asynchronous IDE for Guile Scheme, Leveraging nREPL Protocol
Share this article
Developers working with Guile Scheme gain a promising new tool: Arei, an Asynchronous Reliable Extensible IDE. Designed primarily for integration with the guile-ares-rs nREPL server but compatible with any nREPL-compatible backend, Arei brings modern IDE-like functionality into the Emacs ecosystem for Scheme development.
Core Functionality & Developer Experience
Out-of-the-box, Arei provides essential features for productive Scheme coding:
- Structured Editing: Navigate and manipulate s-expressions efficiently.
- Evaluation: Evaluate code blocks or expressions directly within the editor context.
- Completion: Intelligent code completion powered by the connected nREPL server.
- Debugger Integration: Step through code execution and inspect state.
- Value Inspection: Examine results and objects returned from evaluations.
A detailed demonstration and explanation of Arei's capabilities was presented at EmacsConf 2023. Developers are encouraged to watch the talk for a comprehensive overview.
Getting Started
Installation leverages the Guix package manager, though traditional Emacs/Guile package methods are also supported. Key setup steps involve:
Launching the nREPL Server: Ensure
guile-ares-rsand project dependencies are on the load path, then start the server:guile --listen(Note: Default port is used; adjust commands if using a custom port).
Connecting from Emacs: With Arei installed and loaded (
require 'arei), open a Scheme buffer and initiate the connection:M-x sesman-start RET(orC-c C-s C-s)- Use
C-u M-x sesman-start RETto specify a non-default server port.
Pro Tip: To prevent conflicts with geiser-mode for completion (CAPF), consider setting (setq geiser-mode-auto-p nil) in your Emacs configuration.
Current Limitations & Workarounds
While offering core REPL-powered development features, Arei currently lacks built-in documentation lookup. Developers can utilize Emacs' native help system (C-h S) for exploring documentation on many Guile and Scheme functions as a practical workaround.
Community & Contribution
Development is open and community-driven. Feedback is solicited on the rde-discuss channel, and patches should be submitted to the rde-devel mailing list in the format [PATCH emacs-arei 0/3] SUBJECT-HERE.
Arei represents a significant step forward for dedicated Guile Scheme tooling within Emacs, providing an asynchronous, REPL-driven workflow that aligns with modern development expectations. Its reliance on the nREPL protocol opens avenues for interoperability beyond its initial guile-ares-rs target.
Source: ~abcdw/emacs-arei (sourcehut)