# openingh.nvim Opens the current file or project page in GitHub. ![Lua](https://img.shields.io/badge/Made%20with%20Lua-blueviolet.svg?style=for-the-badge&logo=lua) ![GitHub release (latest by date)](https://img.shields.io/github/v/release/almo7aya/openingh.nvim?style=for-the-badge) [![lint with luacheck](https://img.shields.io/github/workflow/status/almo7aya/openingh.nvim/lint%20with%20luacheck?style=for-the-badge)](https://github.com/Almo7aya/openingh.nvim/actions/workflows/lint.yml) ![GitHub Workflow Status](https://img.shields.io/github/workflow/status/almo7aya/openingh.nvim/Tests?label=TESTS&style=for-the-badge) - Features - Supports macOS, Linux, Windows and WSL - Works with detached HEAD and supports checked out branches or forks - Automatically selects the correct line number on the file page - Supports GitHub, GitHub Enterprise, GitLab, and Bitbucket - Demo ![](./gifs/demo.gif) ## Requirements - Neovim 0.7.2+ ## Installation #### Example with Packer [wbthomason/packer.nvim](https://github.com/wbthomason/packer.nvim) ```lua -- init.lua require("packer").startup(function() use "almo7aya/openingh.nvim" end) ``` ## Commands - `:OpenInGHRepo` - Opens the project's git repository page in GitHub. - `:OpenInGHFile` - Opens the current file page in GitHub. ## Usage You can call the commands directly or define mappings them: ```lua -- for repository page vim.api.nvim_set_keymap("n", "gr", ":OpenInGHRepo ", { expr = true, noremap = true }) -- for current file page vim.api.nvim_set_keymap("n", "gf", ":OpenInGHFile ", { expr = true, noremap = true }) ``` ## TODO - [x] Support the current file cursor position - [ ] Support visual mode to open a file in range selection - [x] Support other version control websites ## Contribution Feel free to open an issue or a pull request if you have any suggestions or improvements ## License [MIT](./LICENSE)