From 685176e94a21fefb22774019dace28c7c5da7bc1 Mon Sep 17 00:00:00 2001 From: Ching Pei Yang Date: Sat, 20 Apr 2024 02:53:59 +0200 Subject: [PATCH] docs: crude migration guide --- docs/release-notes/rl-0.6.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/docs/release-notes/rl-0.6.md b/docs/release-notes/rl-0.6.md index 50a95cd..28a4cfd 100644 --- a/docs/release-notes/rl-0.6.md +++ b/docs/release-notes/rl-0.6.md @@ -2,6 +2,41 @@ Release notes for release 0.6 +## Breaking Changes and Migration Guide + +In v0.6 we are introducing `setupOpts`: many plugin related options are moved into their respective `setupOpts` +submodule, e.g. `nvimTree.disableNetrw` is renamed to `nvimTree.setupOpts.disable_netrw`. + +_Why?_ in short, you can now pass in anything to setupOpts and it will be passed to your `require'plugin'.setup{...}`. +No need to wait for us to support every single plugin option. + +The warnings when you rebuild your config should be enough to guide you through what you need to do, if there's an +option that was renamed but wasn't listed in the warning, please file a bug report! + +To make your migration process less annoying, here's a keybind that will help you with renaming stuff from camelCase to +snake_case (you'll be doing that a lot): + +```lua +-- paste this in a temp.lua file and load it in vim with :source /path/to/temp.lua +function camelToSnake() + -- Get the current word under the cursor + local word = vim.fn.expand("") + -- Replace each capital letter with an underscore followed by its lowercase equivalent + local snakeCase = string.gsub(word, "%u", function(match) + return "_" .. string.lower(match) + end) + -- Remove the leading underscore if present + if string.sub(snakeCase, 1, 1) == "_" then + snakeCase = string.sub(snakeCase, 2) + end + vim.fn.setreg(vim.v.register, snakeCase) + -- Select the word under the cursor and paste + vim.cmd("normal! viwP") +end + +vim.api.nvim_set_keymap('n', 'a', ':lua camelToSnake()', { noremap = true, silent = true }) +``` + ## Changelog {#sec-release-0.6-changelog} [ksonj](https://github.com/ksonj):