Fork of bennypowers/changesets.nvim
Easily create changesets using your favourite editor.
changesets.nvim.webm
Screencast showing how to use changesets.nvim to:
- pick package(s) from your project repo
- pick a release type (
patch,minor, ormajor) - pick a file name (trivial)
- write your changeset
- Add any other packages to the changeset
return { 'sudo-tee/changesets.nvim',
dependencies= { 'nvim-telescope/telescope.nvim', 'folke/snacks.nvim', 'echasnovski/mini.pick', 'ibhagwan/fzf-lua' }, -- choose only one for multi-select---@module'changesets'---@typechangesets.Optsopts= {
changeset_dir='.changesets',
},
keys= {
{ '<leader>cxx',
function() require'changesets'.create() end,
mode='n',
desc='Create a changeset',
},
{ '<leader>cxa',
function() require'changesets'.add_package() end,
mode='n',
desc='Add a package to the changeset in the current buffer',
},
},
}The following options can be set when calling setup or in your opts table:
require('changesets').setup({
-- Root directory of your project (default: current working directory)cwd=vim.fn.getcwd(),
-- Directory where changesets are stored (default: '.changesets')changeset_dir='.changesets',
-- Marker shown next to changed packages (default: '~')changed_packages_marker='~',
-- Highlight group for changed packages (default: 'Added')changed_packages_highlight='Added',
-- Function that returns default text for new changesets (default: returns empty string)get_default_text=function()
return''end,
-- List of known monorepo files (default: {'pnpm-workspace.yaml', 'lerna.json', 'turbo.json', 'nx.json', 'rush.json'})monorepo_files= { 'pnpm-workspace.yaml', 'lerna.json', 'turbo.json', 'nx.json', 'rush.json' },
-- Function to modify or filter the list of found packages (default: nil)filter_packages=nil, -- function(packages: Package[]): Package[]|nil-- set your preferred picker for selecting packagespreferred_picker='telescope', 'telescope'|'fzf'|'mini.pick'|'snacks'|nil
})