Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rmagatti/igs.nvim
A minimalist Neovim plugin that enhances the usage of git status inside Neovim.
https://github.com/rmagatti/igs.nvim
git lua neovim neovim-plugin
Last synced: 3 days ago
JSON representation
A minimalist Neovim plugin that enhances the usage of git status inside Neovim.
- Host: GitHub
- URL: https://github.com/rmagatti/igs.nvim
- Owner: rmagatti
- License: apache-2.0
- Created: 2021-12-02T22:55:25.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-14T07:06:04.000Z (7 months ago)
- Last Synced: 2024-08-07T18:37:40.252Z (3 months ago)
- Topics: git, lua, neovim, neovim-plugin
- Language: Lua
- Homepage:
- Size: 30.3 KB
- Stars: 36
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Interactive Git Status
A minimalist Neovim plugin that enhances the usage of git status inside Neovim.
## ⭐ Features
### Edit files
Edit modified, added, unstaged or all files
- edit_modified()
- edit_added()
- edit_unstaged()
- edit_all()### Send files to the Quickfix list
Send modified, added, unstaged or all files to the Quickfix List
- qf_modified()
- qf_added()
- qf_unstaged()
- qf_all()### Diff support
Send the diff between a particular target (branch, file) to the Quickfix list
- qf_diff_branch()
this function is slightly different than the others as it asks for an input for a target to diff with.### Conflicts support
Send the conflicting files in the merge to the Quickfix list
- qf_conflicts()
### 🚀 ShowcaseSend all changes to the Quickfix list
### 📦 Installation
Packer.nvim
```lua
use {
'rmagatti/igs.nvim',
config = function()
require('igs').setup {}
end
}
```### ⚙️ Configuration
**Default**
```lua
require('igs').setup {
debug = false, -- print debug logs
log_level = "info", -- log level for igs
run_copen = true, -- run copen after qf commands
default_mappings = false, -- set default mappings
}
```### ⌨️ Mappings
There are no mappings by default, you can set `default_mappings = true` in the config to make use of the mappings I use or define your own.
**Default**
```lua
vim.keymap.set("n", "gem", function() require('igs').edit_modified() end, { noremap = true })
vim.keymap.set("n", "ges", function() require('igs').edit_added() end, { noremap = true })
vim.keymap.set("n", "gea", function() require('igs').edit_all() end, { noremap = true })vim.keymap.set("n", "gqm", function() require('igs').qf_modified() end, { noremap = true })
vim.keymap.set("n", "gqs", function() require('igs').qf_added() end, { noremap = true })
vim.keymap.set("n", "gqa", function() require('igs').qf_all() end, { noremap = true })vim.keymap.set("n", "iqm", function() require('igs').qf_modified({ all_changes = true }) end, { noremap = true })
vim.keymap.set("n", "iqs", function() require('igs').qf_added({ all_changes = true }) end, { noremap = true })
vim.keymap.set("n", "iqa", function() require('igs').qf_all({ all_changes = true }) end, { noremap = true })
vim.keymap.set("n", "iqq", function() require('igs').qf_diff_branch({ all_changes = true }) end, { noremap = true })vim.keymap.set("n", "db", function() require('igs').qf_diff_branch({ all_changes = true }) end, { noremap = true })
vim.keymap.set("n", "dd", function() require('igs').qf_diff_branch({ all_changes = false }) end, { noremap = true })vim.keymap.set("n", "oc", function() require('igs').qf_conflicts() end, { noremap = true })
```
**Note:** the { all_changes=true } option makes it so each of the changes is individually listed in the quickfix list instead of just the first one per file.### Compatibility
```
NVIM v0.8.1
Build type: Release
LuaJIT 2.1.0-beta3
```