A Telescope integration of Conventional Commits.
# vim-plug
Plug 'olacin/telescope-cc.nvim'
# packer
use 'olacin/telescope-cc.nvim'
# lazy.nvim
{ "olacin/telescope-cc.nvim" }
# As a command
:Telescope conventional_commits
# As a lua function
require('telescope').extensions.conventional_commits.conventional_commits()
You can customize action on selection within Telescope setup()
function.
telescope.setup({
...
extensions = {
conventional_commits = {
theme = "ivy", -- custom theme
action = function(entry)
-- entry = {
-- display = "feat A new feature",
-- index = 7,
-- ordinal = "feat",
-- value = feat"
-- }
vim.print(entry)
end,
include_body_and_footer = true, -- Add prompts for commit body and footer
},
},
})
telescope.load_extension("conventional_commits")
Default action is cc_actions.commit
and can be found here.
The easiest way is to add include_body_and_footer
within telescope setup like shown above.
If however you wish to do something more advanced, you can create a command to initiate the extension with the include_body_and_footer
flag.
local function create_conventional_commit()
local actions = require("telescope._extensions.conventional_commits.actions")
local picker = require("telescope._extensions.conventional_commits.picker")
local themes = require("telescope.themes")
-- if you use the picker directly you have to provide your theme manually
local opts = {
action = actions.prompt,
include_body_and_footer = true,
}
opts = vim.tbl_extend("force", opts, themes["get_ivy"]())
picker(opts)
end
vim.keymap.set(
"n",
"cc",
create_conventional_commit,
{ desc = "Create conventional commit" }
)