A Neovim plugin to quickly navigate between related files using regex patterns, with support for Telescope and fzf-lua.
telescope-alternate is a Neovim plugin that allows developers to quickly jump between related files in a project using user-defined regex patterns. It solves the problem of tedious manual navigation between files like tests and implementations or services and contracts by mapping these relationships once.
Neovim users working on structured projects (e.g., Rails, NestJS, Angular) who frequently switch between related files and want to optimize their workflow.
It offers a flexible, pattern-driven approach to file navigation with support for multiple pickers (Telescope/fzf-lua), automatic file creation, and pre-built presets, reducing friction in large codebases.
Alternate between common files using pre-defined regexp. Just map the patterns and starting navigating between files that are related.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows custom regex patterns to define any file relationship, such as linking Rails models to tests or NestJS modules to services, enabling tailored navigation for complex codebases.
Supports both Telescope and fzf-lua as selection interfaces, giving users choice and flexibility, as highlighted in the configuration options and installation notes.
Can create missing destination files on the fly, including those with regex placeholders, which streamlines development when adding new related files, as demonstrated in the demo and mappings.
Includes ready-made mappings for Rails, RSpec, NestJS, and Angular, reducing setup time for common project structures, as listed in the presets section.
Setting up custom regex mappings requires detailed Lua patterns, which can be error-prone and time-consuming, especially for users unfamiliar with regex or the plugin's syntax, as seen in the lengthy configuration examples.
Relies on Telescope or fzf-lua being installed and configured, adding to plugin bloat and setup complexity, and it does not work with other pickers or vanilla Neovim out of the box.
Less effective for projects without clear file naming or directory patterns, as the regex-based approach assumes consistency, making it cumbersome for ad-hoc or legacy codebases.