A Neovim plugin to generate sharable file permalinks (with line ranges) for git host websites.
gitlinker.nvim is a Neovim plugin that generates shareable permalinks to files and specific line ranges on git hosting websites. It solves the problem of manually constructing URLs to reference code, allowing developers to quickly copy or open links directly from their editor. The plugin supports multiple git hosts and provides flexible configuration for custom URL formats.
Neovim users who frequently share code snippets, collaborate on git-hosted projects, or need to reference specific lines in documentation and issue tracking.
Developers choose gitlinker.nvim for its maintainability as a forked project with active improvements, its extensive customization options via Lua, and its support for advanced features like blame links and SSH aliases without external dependencies.
Maintained fork of ruifm's gitlinker, refactored with bug fixes, ssh aliases, blame support and other improvements.
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 string templates and Lua functions for URL generation, allowing adaptation to any git host, as detailed in the 'Customize Urls' section with examples for custom line number formats.
Built-in support for GitHub, GitLab, Bitbucket, Codeberg, and Samba, with the ability to add more via PRs or custom routers, ensuring compatibility with popular and niche platforms.
Includes blame links, SSH alias resolution, and markdown plain text links (?plain=1), enhancing debugging and documentation workflows directly from the editor.
Leverages Neovim's built-in capabilities and async processing via uv.spawn, ensuring fast and reliable link generation without third-party dependencies, as highlighted in the philosophy section.
Customizing URLs requires understanding Lua scripting, git URL parsing, and router concepts, which can be intimidating for users who just want simple, pre-configured links.
Requires Neovim ≥ 0.10, locking out users on older stable versions or other editors, and may break with future Neovim updates, as noted in the 'Break Changes' section.
Does not provide default key mappings out of the box; users must manually set up commands or APIs, and configuration for custom hosts involves non-trivial Lua code, adding initial setup time.