mirror of
				https://github.com/NotAShelf/nvf.git
				synced 2025-11-03 20:22:21 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			183 lines
		
	
	
	
		
			7.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			183 lines
		
	
	
	
		
			7.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# Release 0.6 {#sec-release-0.6}
 | 
						|
 | 
						|
Release notes for release 0.6
 | 
						|
 | 
						|
## Breaking Changes and Migration Guide {#sec-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("<cword>")
 | 
						|
    -- 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', '<leader>a', ':lua camelToSnake()<CR>', { noremap = true, silent = true })
 | 
						|
```
 | 
						|
 | 
						|
## Changelog {#sec-release-0.6-changelog}
 | 
						|
 | 
						|
[ksonj](https://github.com/ksonj):
 | 
						|
 | 
						|
- Added Terraform language support.
 | 
						|
 | 
						|
- Added `ChatGPT.nvim`, which can be enabled with
 | 
						|
  [](#opt-vim.assistant.chatgpt.enable). Do keep in mind that this option
 | 
						|
  requires `OPENAI_API_KEY` environment variable to be set.
 | 
						|
 | 
						|
[donnerinoern](https://github.com/donnerinoern):
 | 
						|
 | 
						|
- Added Gruvbox theme.
 | 
						|
 | 
						|
- Added marksman LSP for Markdown.
 | 
						|
 | 
						|
- Fixed markdown preview with Glow not working and added an option for changing
 | 
						|
  the preview keybind.
 | 
						|
 | 
						|
- colorizer.nvim: switched to a maintained fork.
 | 
						|
 | 
						|
- Added `markdown-preview.nvim`, moved `glow.nvim` to a brand new
 | 
						|
  `vim.utility.preview` category.
 | 
						|
 | 
						|
[elijahimmer](https://github.com/elijahimmer)
 | 
						|
 | 
						|
- Added rose-pine theme.
 | 
						|
 | 
						|
[poz](https://poz.pet):
 | 
						|
 | 
						|
- Added `vim.autocomplete.alwaysComplete`. Allows users to have the autocomplete
 | 
						|
  window popup only when manually activated.
 | 
						|
 | 
						|
[horriblename](https://github.com/horriblename):
 | 
						|
 | 
						|
- Fixed empty winbar when breadcrumbs are disabled.
 | 
						|
 | 
						|
- Added custom `setupOpts` for various plugins.
 | 
						|
 | 
						|
- Removed support for deprecated plugin "nvim-compe".
 | 
						|
 | 
						|
- Moved most plugins to `setupOpts` method.
 | 
						|
 | 
						|
[frothymarrow](https://github.com/frothymarrow):
 | 
						|
 | 
						|
- Added option `vim.luaPackages` to wrap neovim with extra Lua packages.
 | 
						|
 | 
						|
- Rewrote the entire `fidget.nvim` module to include extensive configuration
 | 
						|
  options. Option `vim.fidget-nvim.align.bottom` has been removed in favor of
 | 
						|
  `vim.fidget-nvim.notification.window.align`, which now supports `top` and
 | 
						|
  `bottom` values. `vim.fidget-nvim.align.right` has no longer any equivalent
 | 
						|
  and also has been removed.
 | 
						|
 | 
						|
- `which-key.nvim` categories can now be customized through
 | 
						|
  [vim.binds.whichKey.register](#opt-vim.binds.whichKey.register)
 | 
						|
 | 
						|
- Added `magick` to `vim.luaPackages` for `image.nvim`.
 | 
						|
 | 
						|
- Added `alejandra` to the default devShell.
 | 
						|
 | 
						|
- Migrated neovim-flake to `makeNeovimUnstable` wrapper.
 | 
						|
 | 
						|
[notashelf](https://github.com/notashelf):
 | 
						|
 | 
						|
- Finished moving to `nixosOptionsDoc` in the documentation and changelog. All
 | 
						|
  documentation options and files are fully free of Asciidoc, and will now use
 | 
						|
  Nixpkgs flavored markdown.
 | 
						|
 | 
						|
- Bumped plugin inputs to their latest versions.
 | 
						|
 | 
						|
- Deprecated `presence.nvim` in favor of `neocord`. This means
 | 
						|
  `vim.rich-presence.presence-nvim` is removed and will throw a warning if used.
 | 
						|
  You are recommended to rewrite your neocord configuration from scratch based
 | 
						|
  on the. [official documentation](https://github.com/IogaMaster/neocord)
 | 
						|
 | 
						|
- Removed Tabnine plugin due to the usage of imperative tarball downloads. If
 | 
						|
  you'd like to see it back, please create an issue.
 | 
						|
 | 
						|
- Added support for css and tailwindcss through
 | 
						|
  vscode-language-servers-extracted & tailwind-language-server. Those can be
 | 
						|
  enabled through `vim.languages.css` and `vim.languages.tailwind`.
 | 
						|
 | 
						|
- Lualine module now allows customizing `always_divide_middle`, `ignore_focus`
 | 
						|
  and `disabled_filetypes` through the new options:
 | 
						|
  [vim.statusline.lualine.alwaysDivideMiddle](#opt-vim.statusline.lualine.alwaysDivideMiddle),
 | 
						|
  [vim.statusline.lualine.ignoreFocus](#opt-vim.statusline.lualine.ignoreFocus)
 | 
						|
  and
 | 
						|
  [vim.statusline.lualine.disabledFiletypes](#opt-vim.statusline.lualine.disabledFiletypes).
 | 
						|
 | 
						|
- Updated all plugin inputs to their latest versions (**21.04.2024**) - this
 | 
						|
  brought minor color changes to the Catppuccin theme.
 | 
						|
 | 
						|
- Moved home-manager module entrypoint to `flake/modules` and added an
 | 
						|
  experimental Nixos module. This requires further testing before it can be
 | 
						|
  considered ready for use.
 | 
						|
 | 
						|
- Made lib calls explicit. E.g. `lib.strings.optionalString` instead of
 | 
						|
  `lib.optionalString`. This is a pattern expected to be followed by all
 | 
						|
  contributors in the future.
 | 
						|
 | 
						|
- Added `image.nvim` for image previews.
 | 
						|
 | 
						|
- The final neovim package is now exposed. This means you can build the neovim
 | 
						|
  package that will be added to your package list without rebuilding your system
 | 
						|
  to test if your configuration yields a broken package.
 | 
						|
 | 
						|
- Changed the tree structure to distinguish between core options and plugin
 | 
						|
  options.
 | 
						|
 | 
						|
- Added plugin auto-discovery from plugin inputs. This is mostly from
 | 
						|
  [JordanIsaac's neovim-flake](https://github.com/jordanisaacs/neovim-flake).
 | 
						|
  Allows contributors to add plugin inputs with the `plugin-` prefix to have
 | 
						|
  them automatically discovered for the `plugin` type in `lib/types`.
 | 
						|
 | 
						|
- Moved internal `wrapLuaConfig` to the extended library, structured its
 | 
						|
  arguments to take `luaBefore`, `luaConfig` and `luaAfter` as strings, which
 | 
						|
  are then concatted inside a lua block.
 | 
						|
 | 
						|
- Added [](#opt-vim.luaConfigPre) and [](#opt-vim.luaConfigPost) for inserting
 | 
						|
  verbatim Lua configuration before and after the resolved Lua DAG respectively.
 | 
						|
  Both of those options take strings as the type, so you may read the contents
 | 
						|
  of a Lua file from a given path.
 | 
						|
 | 
						|
- Added `vim.spellchecking.ignoredFiletypes` and
 | 
						|
  `vim.spellChecking.programmingWordlist.enable` for ignoring certain filetypes
 | 
						|
  in spellchecking and enabling `vim-dirtytalk` respectively. The previously
 | 
						|
  used `vim.spellcheck.vim-dirtytalk` aliases to the latter option.
 | 
						|
 | 
						|
- Exposed `withRuby`, `withNodeJs`, `withPython3`, and `python3Packages` from
 | 
						|
  the `makeNeovimConfig` function under their respective options.
 | 
						|
 | 
						|
- Added [](#opt-vim.extraPackages) for appending additional packages to the
 | 
						|
  wrapper PATH, making said packages available while inside the Neovim session.
 | 
						|
 | 
						|
- Made Treesitter options configurable, and moved treesitter-context to
 | 
						|
  `setupOpts` while it is enabled.
 | 
						|
 | 
						|
- Added [](#opt-vim.notify.nvim-notify.setupOpts.render) which takes either a
 | 
						|
  string of enum, or a Lua function. The default is "compact", but you may
 | 
						|
  change it according to nvim-notify documentation.
 |