yarepl.nvim  by milanglacier

Neovim REPL and CLI manager

Created 3 years ago
252 stars

Top 99.5% on SourcePulse

GitHubView on GitHub
Project Summary

Summary

yarepl.nvim addresses the need for flexible and powerful management of REPL/CLI applications within Neovim. It targets developers requiring parallel sessions, cross-language support, and seamless integration with AI coding assistants, offering enhanced productivity through advanced REPL interaction paradigms.

How It Works

The plugin employs a multi-paradigm approach, enabling users to send code from single or multiple buffers to one or more REPLs, attach buffers to dedicated REPL processes, and leverage source_syntax for efficient handling of large code blocks via temporary files. Its design prioritizes flexibility, parallelism, and extensibility, integrating AI tools and offering native dot-repeat functionality.

Quick Start & Requirements

  • Installation: Requires Neovim 0.9+. Install via lazy.nvim ({ 'milanglacier/yarepl.nvim', config = true }) or rocks.nvim (Rocks install yarepl.nvim).
  • Prerequisites: No core dependencies, but telescope.nvim or fzf-lua enhance fuzzy finder integration.
  • Setup: Configuration involves defining REPL "metas" with commands and formatters.

Highlighted Details

  • AI Integration: Built-in extensions for Aider, OpenAI Codex, OpenCode, and Pi.
  • Flexible Sending: Supports sending visual selections, lines, or operator motions to single or multiple REPLs.
  • Buffer Management: Allows attaching buffers to specific REPLs for context-aware execution.
  • Project-Level Configs: Enables project-specific REPL configurations using .nvim.lua and exrc.
  • Advanced Features: Native dot-repeat, code cell text objects, cross-language REPL support (Python, R, etc.), and persistent tmux REPLs.
  • Large Code Handling: source_syntax feature writes code to temp files for sourcing, mitigating issues with large stdin on Windows.

Maintenance & Community

The project has undergone a breaking change regarding <Plug> mapping names and plans to deprecate legacy commands by June 1, 2026. No specific community links or contributor details are provided in the README.

Licensing & Compatibility

The license type is not explicitly stated in the provided README.

Limitations & Caveats

Requires Neovim 0.9+; nvim 0.8 compatibility is not guaranteed. Lazy loading requires careful configuration (e.g., event = 'VeryLazy'). Yarepl send_visual may not correctly handle counts when used with which-key.nvim, defaulting to the first REPL. Does not support block-wise visual selections, falling back to line-wise. source_visual and source_operator involve temporary file creation, posing potential security considerations.

Health Check
Last Commit

1 month ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
2 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.