Interactive REPL environment for Neovim that allows code execution without leaving the editor buffer.
iron.nvim is a Neovim plugin that provides interactive REPL (Read-Eval-Print Loop) functionality directly within the editor. It enables developers to execute code snippets, send selections to REPLs, and interact with various programming languages without switching contexts, enhancing workflow efficiency.
Neovim users who work with interpreted or REPL-driven languages like Python, Haskell, or Shell and want to execute code without leaving their editor. It's particularly suited for developers who value a seamless, integrated coding workflow.
Developers choose iron.nvim for its deep integration with Neovim's editing workflow, extensive customization options for window management and keymaps, and its dual nature as both a ready-to-use plugin and an extensible library for advanced users.
Interactive Repl Over Neovim
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports both splits and floating windows with dynamic sizing options, including percentages and helper functions like view.split and view.float, allowing precise control over REPL placement.
Allows full control over keybindings for all operations, such as sending lines, visual selections, or files to the REPL, as shown in the detailed keymaps configuration section.
Configurable REPL definitions for languages like Python, Shell, and Haskell, with support for custom command functions, enabling project-specific setups.
Optionally sends selections to the Debug Adapter Protocol REPL when nvim-dap is active, enhancing debugging workflows without leaving Neovim.
The plugin no longer sets default keymaps, requiring users to manually define all keybindings, which can be time-consuming and error-prone for new users.
Configuration involves Lua functions and metatables for window management, such as view.offset with helper functions, which may be daunting for those unfamiliar with Neovim's Lua API.
Each language's REPL must be explicitly defined in the config, and advanced setups (e.g., Haskell with custom cabal commands) require additional coding, limiting out-of-the-box usability.