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'
---@type changesets.Opts
opts = {
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 packages
preferred_picker = 'telescope', 'telescope'|'fzf'|'mini.pick'|'snacks'|nil
})