Awesome
neovcs.vim 🌱
VCS support for Neovim
Basic support for:
- Git
- Subversion
- Darcs - just VCS name for now
- Bazaar - just VCS name for now
- Mercurial - just VCS name for now
- Grace
Installation 🧙
Lazy
Add the following lines on the NeoVim config file (Lua):
require('lazy').setup({
{
'https://github.com/adelarsq/neovcs.vim',
keys = {
'<leader>v',
},
config = function ()
require('neovcs').setup()
end
},
}, {})
Plug
Add the following lines on the Vim/NeoVim config file:
Plug 'https://github.com/adelarsq/neovcs.vim'
lua require('neovcs').setup()
Then open the editor and install with PlugInstall
.
Dein
Add the following lines on the Vim/NeoVim config file:
call dein#add('adelarsq/neovcs.vim')
lua require('neovcs').setup()
Then open the editor and install with call dein#install()
.
Packer
use 'adelarsq/neovcs.vim'
require('neovcs').setup()
Configurations 🧩
Emojis on commit messages are disabled by default. Enabled with vim.g.neovcs_enable_emojis == true
.
Mappings 🗺
<leader>v
- help<leader>va
- add file. Parameters:1
Changelist name (just for SVN at moment)
<leader>vA
- add all files<leader>vb
- blame line<leader>vB
- blame file<leader>vc
- commit. Parameters:1
Message2
Changelist name (just for SVN at moment)
<leader>vC
- commit with amend. Parameters:1
Message
<leader>vd
- hunk diff<leader>vD
- file diff. Parameters:1
Revision (just for SVN at moment)
<leader>vo
- open URL for current line<leader>vO
- open URL for repository<leader>vm
- mark conflict as resolved for current file<leader>vn
- go to next hunk<leader>vN
- go to previous hunk<leader>vl
- log for current file<leader>vL
- log for the project<leader>vr
- reload changes (get/send changes from/to remote)<leader>vp
- get changes from remote<leader>vP
- send changes to remote<leader>vs
- status<leader>vt
- show branchs<leader>vu
- hunk undo<leader>vU
- undo last commit<leader>vx
- remove file<leader>vX
- revert last commit
Commands 🕹
VcsName()
- get the VCS name. Can be used on status line plugins to show the VCS name for the current repositoryVcsStatusLine()
- get the repository status to use on status linesVcsBranchName()
- get the name for the current branch
Supported Plugins 🧩
- rcarriga/nvim-notify
- nvim-tree.lua. Mappings:
<leader>va
- add file or directory under cursor<leader>vx
- remove file or directory under cursor
- stevearc/oil.nvim. Mappings:
<leader>va
- add file or directory under cursor<leader>vx
- remove file or directory under cursor
Features
Emoji Support for Commits
Just add a prefix based on the table:
Commit Type | Title | Description | Emoji | Release | Include in changelog |
---|---|---|---|---|---|
feat | Features | A new feature | ✨ | minor | wip |
fix | Bug Fixes | A bug Fix | 🐛 | patch | wip |
docs | Documentation | Documentation only changes | 📚 | patch if scope is readme | wip |
style | Styles | Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc) | 💎 | - | wip |
refactor | Code Refactoring | A code change that neither fixes a bug nor adds a feature | 📦 | - | wip |
perf | Performance Improvements | A code change that improves performance | 🚀 | patch | wip |
test | Tests | Adding missing tests or correcting existing tests | 🚨 | - | wip |
build | Builds | Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm) | 🛠 | patch | wip |
ci | Continuous Integrations | Changes to our CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs) | ⚙️ | - | wip |
chore | Chores | Other changes that don't modify src or test files | ♻️ | - | wip |
revert | Reverts | Reverts a previous commit | 🗑 | - | wip |
Todo 🚧
- Remove Gitsigns dependency [wip]
- Root folder based on the current file [wip]
- Convert all source code to Fennel/Lua
- Telescope integration
- Show commit for current line. Based on 1.
- Hightlight itens on quickfix with diferent colors
- Support all commands on:
- On repository for modified files show the lines status, like
+3-2~1M
Acknowledgments 💡
Thanks goes to these people/projects for inspiration:
Self-plug 🔌
If you liked this plugin, also check out:
- vim-emoji-icon-theme - Emoji/Unicode Icons Theme for Vim and Neovim with support for 40+ plugins and 300+ filetypes
- neoline.vim - Status Line for Neovim focused on beauty and performance