Skip to content

sudo-tee/changesets.nvim

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

changesets.nvim

Fork of bennypowers/changesets.nvim

Easily create changesets using your favourite editor.

changesets.nvim.webm

Screencast showing how to use changesets.nvim to:

  1. pick package(s) from your project repo
  2. pick a release type (patch, minor, or major)
  3. pick a file name (trivial)
  4. write your changeset
  5. Add any other packages to the changeset

🛌 Installation (Lazy)

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',
    },
  },
}

⚙️ Configuration

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

})

About

Easily create changesets using your favourite editor

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Lua 100.0%