nvf/release-notes.html
2024-07-10 21:03:36 +00:00

181 lines
48 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Appendix C. Release Notes</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<script src="highlightjs/highlight.pack.js" type="text/javascript"></script><script src="highlightjs/loader.js" type="text/javascript"></script>
<meta name="generator" content="nixos-render-docs" />
<link rel="home" href="index.xhtml" title="nvf manual" />
<link rel="up" href="index.xhtml" title="nvf manual" /><link rel="prev" href="options.html" title="Appendix B. Neovim Flake Configuration Options" />
</head>
<body>
<div class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Appendix C. Release Notes</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="options.html">Prev</a>&nbsp;</td>
<th width="60%" align="center">&nbsp;</th>
<td width="20%" align="right">&nbsp;</td>
</tr>
</table>
<hr />
</div><div class="appendix"> <div class="titlepage"> <div> <div> <h1 id="ch-release-notes" class="title" >Appendix C. Release Notes </h1> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="chapter"> <a href="release-notes.html#sec-release-0.1">Release 0.1</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.html#sec-release-0.2">Release 0.2</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.html#sec-release-0.3">Release 0.3</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.html#sec-release-0.4">Release 0.4</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.html#sec-release-0.5">Release 0.5</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.html#sec-release-0.6">Release 0.6</a> </span></dt><dt> <span class="chapter"> <a href="release-notes.html#sec-release-0.7">Release 0.7</a> </span></dt> </dl></div><p>This section lists the release notes for tagged version of <span class="strong"><strong>nvf</strong></span> and
the current main current main branch</p><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.1" class="title" >Release 0.1 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.html#sec-release-0.1-changelog">Changelog</a> </span></dt> </dl></div><p>This is the current master branch and information here is not final. These are changes from the v0.01 tag.</p><p>Special thanks to <a class="link" href="https://github.com/nix-community/home-manager/" target="_top">home-manager</a> for this release.
Docs/manual generation, the new module evaluation system, and DAG implementation are from them.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.1-changelog" class="title" style="clear: both">Changelog </h2> </div> </div></div><p><a class="link" href="https://github.com/jordanisaacs" target="_top">jordanisaacs</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Removed hare language support (lsp/tree-sitter/etc). <code class="literal">vim.lsp.hare</code> is no longer defined.
If you use hare and would like it added back, please file an issue.</p></li><li class="listitem"><p><a class="link" href="opt-vim.startPlugins" target="_top">vim.stratPlugins</a> &amp; <a class="link" href="opt-vim.optPlugins" target="_top">vim.optPlugins</a> are now
an enum of <code class="literal">string</code> for options sourced from the flake inputs. Users can still provide vim
plugin packages.</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle;"><li class="listitem"><p>If you are contributing and adding a new plugin, add the plugin name to <code class="literal">availablePlugins</code> in
<a class="link" href="https://github.com/jordanisaacs/neovim-flake/blob/20cec032bd74bc3d20ac17ce36cd84786a04fd3e/modules/lib/types-plugin.nix" target="_top">types-plugin.nix</a>.</p></li></ul></div></li><li class="listitem"><p><code class="literal">neovimBuilder</code> has been removed for configuration. Using an overlay is no longer required.
See the manual for the new way to configuration.</p></li><li class="listitem"><p>Treesitter grammars are now configurable with <a class="link" href="opt-vim.treesitter.grammars" target="_top">vim.treesitter.grammars</a>.
Utilizes the nixpkgs <code class="literal">nvim-treesitter</code> plugin rather than a custom input in order to take advantage of build support of pinned versions.
See <a class="link" href="https://discourse.nixos.org/t/psa-if-you-are-on-unstable-try-out-nvim-treesitter-withallgrammars/23321?u=snowytrees" target="_top">relevant discourse post</a>
for more information. Packages can be found under the <code class="literal">vimPlugins.nvim-treesitter.builtGrammars</code> namespace.</p></li><li class="listitem"><p><a class="link" href="opt-vim.configRC" target="_top">vim.configRC</a> and <a class="link" href="opt-vim.luaConfigRC" target="_top">vim.luaConfigRC</a> are now of type DAG lines.
This allows for ordering of the config. Usage is the same is in home-managers <code class="literal">home.activation</code> option.</p></li></ul></div><pre><code class="programlisting nix">vim.luaConfigRC = lib.nvim.dag.entryAnywhere &quot;config here&quot;
</code></pre><p><a class="link" href="https://github.com/MoritzBoehme" target="_top">MoritzBoehme</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p><code class="literal">catppuccin</code> theme is now available as a neovim theme <a class="link" href="opt-vim.theme.style" target="_top">vim.theme.style</a> and lualine theme
<a class="link" href="opt-vim.statusline.lualine.theme" target="_top">vim.statusline.lualine.theme</a>.</p></li></ul></div>
</div>
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.2" class="title" >Release 0.2 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.html#sec-release-0.2-changelog">Changelog</a> </span></dt> </dl></div><p>Release notes for release 0.2</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.2-changelog" class="title" style="clear: both">Changelog </h2> </div> </div></div><p><a class="link" href="https://github.com/notashelf" target="_top">notashelf</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added two minimap plugins under <code class="literal">vim.minimap</code>. <code class="literal">codewindow.nvim</code> is enabled by default, while <code class="literal">minimap.vim</code> is
available with its code-minimap dependency.</p></li><li class="listitem"><p>A complementary plugin, <code class="literal">obsidian.nvim</code> and the Neovim alternative for Emacs orgmode with <code class="literal">orgmode.nvim</code> have been
added. Both will be disabled by default.</p></li><li class="listitem"><p>Smooth scrolling for ANY movement command is now available with <code class="literal">cinnamon.nvim</code></p></li><li class="listitem"><p>You will now notice a dashboard on startup. This is provided by the <code class="literal">alpha.nvim</code> plugin. You can use any of the
three available dashboard plugins, or disable them entirely.</p></li><li class="listitem"><p>There is now a scrollbar on active buffers, which can highlight errors by hooking to your LSPs. This is on by
default, but can be toggled off under <code class="literal">vim.visuals</code> if seen necessary.</p></li><li class="listitem"><p>Discord Rich Presence has been added through <code class="literal">presence.nvim</code> for those who want to flex that they are using
the <span class="emphasis"><em>superior</em></span> text editor.</p></li><li class="listitem"><p>An icon picker is now available with telescope integration. You can use <code class="literal">:IconPickerInsert</code> or <code class="literal">:IconPickerYank</code>
to add icons to your code.</p></li><li class="listitem"><p>A general-purpose cheatsheet has been added through <code class="literal">cheatsheet.nvim</code>. Forget no longer!</p></li><li class="listitem"><p><code class="literal">ccc.nvim</code> has been added to the default plugins to allow picking colors with ease.</p></li><li class="listitem"><p>Most UI components of Neovim have been replaced through the help of <code class="literal">noice.nvim</code>. There are also notifications
and custom UI elements available for Neovim messages and prompts.</p></li><li class="listitem"><p>A (floating by default) terminal has been added through <code class="literal">toggleterm.nvim</code>.</p></li><li class="listitem"><p>Harness the power of ethical (<code class="literal">tabnine.nvim</code>) and not-so-ethical (<code class="literal">copilot.lua</code>) AI by those new assistant plugins.
Both are off by default, TabNine needs to be wrapped before its working.</p></li><li class="listitem"><p>Experimental mouse gestures have been added through <code class="literal">gesture.nvim</code>. See plugin page and the relevant module for
more details on how to use.</p></li><li class="listitem"><p>Re-open last visited buffers via <code class="literal">nvim-session-manager</code>. Disabled by default as deleting buffers seems to be
problematic at the moment.</p></li><li class="listitem"><p>Most of NvimTrees configuration options have been changed with some options being toggled to off by default.</p></li><li class="listitem"><p>Lualine had its configuration simplified and style toned down. Less color, more info.</p></li><li class="listitem"><p>Modules where multiple plugin configurations were in the same directory have been simplified. Each plugin inside
a single module gets its directory to be imported.</p></li><li class="listitem"><p>Separate config options with the same parent attribute have been merged into one for simplicity.</p></li></ul></div>
</div>
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.3" class="title" >Release 0.3 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.html#sec-release-0.3-changelog">Changelog</a> </span></dt> </dl></div><p>Release 0.3 had to come out beore I wanted it to due to Neovim 0.9 dropping into nixpkgs-unstable.
The treesitter changes have prompted a treesitter rework, which was followed by reworking the languages system.
Most of the changes to those are downstreamed from the original repository. The feature requests that was originally
planned for 0.3 have been moved to 0.4, which should come out soon.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.3-changelog" class="title" style="clear: both">Changelog </h2> </div> </div></div><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>We have transitioned to flake-parts, from flake-utils to extend the flexibility of this flake. This means the flake structure
is different than usual, but the functionality remains the same.</p></li><li class="listitem"><p>We now provide a home-manager module. Do note that it is still far from perfect, but it works.</p></li><li class="listitem"><p><code class="literal">nodejs_16</code> is now bundled with <code class="literal">Copilot.lua</code> if the user has enabled Copilot assistant.</p></li><li class="listitem"><p>which-key section titles have been fixed. This is to be changed once again in a possible keybind rewrite, but now it should
display the correct titles instad of <code class="literal">+prefix</code></p></li><li class="listitem"><p>Most of <code class="literal">presence.nvim</code>s options have been made fully configurable through your configuration file.</p></li><li class="listitem"><p>Most of the modules have been refactored to separate <code class="literal">config</code> and <code class="literal">options</code> attributes.</p></li><li class="listitem"><p>Darwin has been deprecated as the zig package is marked as broken. We will attempt to use the zig overlay to return Darwin
support.</p></li><li class="listitem"><p><code class="literal">Fidget.nvim</code> has been added as a neat visual addition for LSP installations.</p></li><li class="listitem"><p><code class="literal">diffview.nvim</code> has been added to provide a convenient diff utility.</p></li><li class="listitem"><p>Treesitter grammars are now configurable with <a class="link" href="vim.treesitter.grammars" target="_top">vim.treesitter.grammars</a>.
Utilizes the nixpkgs <code class="literal">nvim-treesitter</code> plugin rather than a custom input in order to take advantage of build support of pinned versions.
See <a class="link" href="https://discourse.nixos.org/t/psa-if-you-are-on-unstable-try-out-nvim-treesitter-withallgrammars/23321?u=snowytrees" target="_top">discourse</a> for more information.
Packages can be found under the <code class="literal">pkgs.vimPlugins.nvim-treesitter.builtGrammars</code> attribute. Treesitter grammars for supported languages should be
enabled within the module. By default no grammars are installed, thus the following grammars which do not have a language section are not included anymore:
<span class="strong"><strong>comment</strong></span>, <span class="strong"><strong>toml</strong></span>, <span class="strong"><strong>make</strong></span>, <span class="strong"><strong>html</strong></span>, <span class="strong"><strong>css</strong></span>, <span class="strong"><strong>graphql</strong></span>, <span class="strong"><strong>json</strong></span>.</p></li><li class="listitem"><p>A new section has been added for language support: <code class="literal">vim.languages.&lt;language&gt;</code>.</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: circle;"><li class="listitem"><p>The options <a class="link" href="vim.languages.enableLSP" target="_top">vim.languages.enableLSP</a>, <a class="link" href="vim.languages.enableTreesitter" target="_top">vim.languages.enableTreesitter</a>, etc.
will enable the respective section for all languages that have been enabled.</p></li><li class="listitem"><p>All LSP languages have been moved here</p></li><li class="listitem"><p><code class="literal">plantuml</code> and <code class="literal">markdown</code> have been moved here</p></li><li class="listitem"><p>A new section has been added for <code class="literal">html</code>. The old <code class="literal">vim.treesitter.autotagHtml</code> can be found at &lt;&lt;opt-vim.languages.html.treesitter.autotagHtml&gt;&gt;.</p></li></ul></div></li><li class="listitem"><p><a class="link" href="vim.git.gitsigns.codeActions" target="_top">vim.git.gitsigns.codeActions</a> has been added allowing you to turn on gitsigns codeactions.</p></li><li class="listitem"><p>Removed the plugins document in the docs. Was too unwieldy to keep updated.</p></li><li class="listitem"><p><code class="literal">vim.visual.lspkind</code> has been moved to <a class="link" href="vim.lsp.lspkind.enable" target="_top">vim.lsp.lspkind.enable</a></p></li><li class="listitem"><p>Improved handling of completion formatting. When setting <a class="link" href="vim.autocomplete.sources" target="_top">vim.autocomplete.sources</a>, can also include optional menu mapping.
And can provide your own function with <a class="link" href="vim.autocomplete.formatting.format" target="_top">vim.autocomplete.formatting.format</a>.</p></li><li class="listitem"><p>For <a class="link" href="vim.visuals.indentBlankline.fillChar" target="_top">vim.visuals.indentBlankline.fillChar</a> and <a class="link" href="vim.visuals.indentBlankline.eolChar" target="_top">vim.visuals.indentBlankline.eolChar</a>
turning them off should use <code class="literal">null</code> rather than <code class="literal">&quot;&quot;</code> now.</p></li><li class="listitem"><p>Transparency has been made optional and has been disabled by default. <a class="link" href="vim.theme.transparent" target="_top">vim.theme.transparent</a> option can be used to enable or
disable transparency for your configuration.</p></li><li class="listitem"><p>Fixed deprecated configuration method for Tokyonight, and added new style “moon”</p></li><li class="listitem"><p>Dart language support as well as extended flutter support has been added. Thanks to @FlafyDev for his contributions towards Dart
language support.</p></li><li class="listitem"><p>Elixir language support has been added through <code class="literal">elixir-tools.nvim</code>.</p></li><li class="listitem"><p><code class="literal">hop.nvim</code> and <code class="literal">leap.nvim</code> have been added for fast navigation.</p></li><li class="listitem"><p><code class="literal">modes.nvim</code> has been added to the UI plugins as a minor error highlighter.</p></li><li class="listitem"><p><code class="literal">smartcollumn.nvim</code> has been added to dynamically display a colorcolumn when the limit has been exceeded, providing
per-buftype column position and more.</p></li><li class="listitem"><p><code class="literal">project.nvim</code> has been added for better project management inside Neovim.</p></li><li class="listitem"><p>More configuration options have been added to <code class="literal">nvim-session-manager</code>.</p></li><li class="listitem"><p>Editorconfig support has been added to the core functionality, with an enable option.</p></li><li class="listitem"><p><code class="literal">venn-nvim</code> has been dropped due to broken keybinds.</p></li></ul></div>
</div>
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.4" class="title" >Release 0.4 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.html#sec-release-0.4-changelog">Changelog</a> </span></dt> </dl></div><p>Following the release of v0.3, I have decided to release v0.4 with a massive new change: customizable keybinds.
As of the 0.4 release, keybinds will no longer be hardcoded and instead provided by each modules own keybinds section.
The old keybind system (<code class="literal">vim.keybinds = {}</code>) is now considered deprecated and the new lib functions are recommended to be
used for adding keybinds for new plugins, or adding keybinds to existing plugins.</p><p>Alongside customizable keybinds, there are a few quality of life updates, such as <code class="literal">lazygit</code> integration and the
new experimental Lua loader of Neovim 0.9 thanks to our awesome contributors who made this update possible during my absence.</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.4-changelog" class="title" style="clear: both">Changelog </h2> </div> </div></div><p><a class="link" href="https://github.com/n3oney" target="_top">n3oney</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Streamlined keybind adding process towards new functions in extended stdlib.</p></li><li class="listitem"><p>Moved default keybinds into keybinds section of each module</p></li><li class="listitem"><p>Simplified luaConfigRC and configRC setting - they can now just take strings</p></li><li class="listitem"><p>Refactored the resolveDag function - you can just provide a string now, which will default to dag.entryAnywhere</p></li><li class="listitem"><p>Fixed formatting sometimes removing parts of files</p></li><li class="listitem"><p>Made formatting synchronous</p></li><li class="listitem"><p>Gave null-ls priority over other formatters</p></li></ul></div><p><a class="link" href="https://github.com/horriblename" target="_top">horriblename</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added <code class="literal">clangd</code> as alternative lsp for C/++.</p></li><li class="listitem"><p>Added <code class="literal">toggleterm</code> integration for <code class="literal">lazygit</code>.</p></li><li class="listitem"><p>Added new option <code class="literal">enableluaLoader</code> to enable neovims experimental module loader for faster startup time.</p></li><li class="listitem"><p>Fixed bug where flutter-tools cant find <code class="literal">dart</code> LSP</p></li><li class="listitem"><p>Added Debug Adapter (DAP) support for clang, rust, go, python and dart.</p></li></ul></div><p><a class="link" href="https://github.com/notashelf" target="_top">notashelf</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Made Copilots Node package configurable. It is recommended to keep as default, but providing a different NodeJS version is now possible.</p></li><li class="listitem"><p>Added <a class="link" href="vim.cursorlineOpt" target="_top">vim.cursorlineOpt</a> for configuring Neovims cursorlineOpt.</p></li><li class="listitem"><p>Added <code class="literal">filetree.nvimTreeLua.view.cursorline</code>, default false, to enable cursorline in nvimtre.</p></li><li class="listitem"><p>Added Fidget.nvim support for the Catppuccin theme.</p></li><li class="listitem"><p>Updated bundled NodeJS version used by <code class="literal">Copilot.lua</code>. v16 is now marked as insecure on Nixpkgs, and we updated to v18</p></li><li class="listitem"><p>Enabled Catppuccin modules for plugins available by default.</p></li><li class="listitem"><p>Added experimental Svelte support under <code class="literal">vim.languages</code>.</p></li><li class="listitem"><p>Removed unnecessary scrollbar element from notifications and codeaction warning UI.</p></li><li class="listitem"><p><code class="literal">vim.utility.colorizer</code> has been renamed to <code class="literal">vim.utility.ccc</code> after the plugin it uses</p></li><li class="listitem"><p>Color preview via <code class="literal">nvim-colorizer.lua</code></p></li><li class="listitem"><p>Updated Lualine statusline UI</p></li><li class="listitem"><p>Added vim-illuminate for smart highlighting</p></li><li class="listitem"><p>Added a module for enabling Neovims spellchecker</p></li><li class="listitem"><p>Added prettierd as an alternative formatter to prettier - currently defaults to prettier</p></li><li class="listitem"><p>Fixed presence.nvim inheriting the wrong client id</p></li><li class="listitem"><p>Cleaned up documentation</p></li></ul></div>
</div>
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.5" class="title" >Release 0.5 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.html#sec-release-0.5-changelog">Changelog</a> </span></dt> </dl></div><p>Release notes for release 0.5</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.5-changelog" class="title" style="clear: both">Changelog </h2> </div> </div></div><p><a class="link" href="https://github.com/vagahbond" target="_top">vagahbond</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added phan language server for PHP</p></li><li class="listitem"><p>Added phpactor language server for PHP</p></li></ul></div><p><a class="link" href="https://github.com/horriblename" target="_top">horriblename</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added transparency support for tokyonight theme</p></li><li class="listitem"><p>Fixed a bug where cmps close and scrollDocs mappings wasnt working</p></li><li class="listitem"><p>Streamlined and simplified extra plugin API with the addition of <a class="link" href="vim.extraPlugins" target="_top">vim.extraPlugins</a></p></li><li class="listitem"><p>Allow using command names in place of LSP packages to avoid automatic installation</p></li><li class="listitem"><p>Add lua LSP and treesitter support, and neodev.nvim plugin support</p></li><li class="listitem"><p>Add <a class="link" href="vim.lsp.mappings.toggleFormatOnSave" target="_top">vim.lsp.mappings.toggleFormatOnSave</a> keybind</p></li></ul></div><p><a class="link" href="https://github.com/amanse" target="_top">amanse</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added daily notes options for obsidian plugin</p></li><li class="listitem"><p>Added jdt-language-server for Java</p></li></ul></div><p><a class="link" href="https://github.com/yavko" target="_top">yavko</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added Deno Language Server for javascript/typescript</p></li><li class="listitem"><p>Added support for multiple languages <a class="link" href="vim.spellChecking.languages" target="_top">vim.spellChecking.languages</a>, and added
vim-dirtytalk through <a class="link" href="vim.spellChecking.enableProgrammingWordList" target="_top">vim.spellChecking.enableProgrammingWordList</a></p></li></ul></div><p><a class="link" href="https://github.com/FrothyMarrow" target="_top">frothymarrow</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Renamed <code class="literal">vim.visuals.cursorWordline</code> to <a class="link" href="vim.visuals.cursorline.enable" target="_top">vim.visuals.cursorline.enable</a></p></li><li class="listitem"><p>Added <a class="link" href="vim.visuals.cursorline.lineNumbersOnly" target="_top">vim.visuals.cursorline.lineNumbersOnly</a> to display cursorline
only in the presence of line numbers</p></li><li class="listitem"><p>Added Oxocarbon to the list of available themes.</p></li></ul></div><p><a class="link" href="https://github.com/notashelf" target="_top">notashelf</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added GitHub Copilot to nvim-cmp completion sources.</p></li><li class="listitem"><p>Added <a class="link" href="vim.ui.borders.enable" target="_top">vim.ui.borders.enable</a> for global and individual plugin border configuration.</p></li><li class="listitem"><p>LSP integrated breadcrumbs with <a class="link" href="vim.ui.breadcrumbs.enable" target="_top">vim.ui.breadcrumbs.enable</a> through nvim-navic</p></li><li class="listitem"><p>LSP navigation helper with nvim-navbuddy, depends on nvim-navic (automatically enabled if navic is enabled)</p></li><li class="listitem"><p>Addeed nvim-navic integration for catppuccin theme</p></li><li class="listitem"><p>Fixed mismatching zig language description</p></li><li class="listitem"><p>Added support for <code class="literal">statix</code> and <code class="literal">deadnix</code> through <a class="link" href="vim.languages.nix.extraDiagnostics.types" target="_top">vim.languages.nix.extraDiagnostics.types</a></p></li><li class="listitem"><p>Added <code class="literal">lsp_lines</code> plugin for showing diagnostic messages</p></li><li class="listitem"><p>Added a configuration option for choosing the leader key</p></li><li class="listitem"><p>The package used for neovim is now customizable by the user, using <a class="link" href="vim.package" target="_top">vim.package</a>.
For best results, always use an unwrapped package</p></li><li class="listitem"><p>Added highlight-undo plugin for highlighting undo/redo targets</p></li><li class="listitem"><p>Added bash LSP and formatter support</p></li><li class="listitem"><p>Disabled Lualine LSP status indicator for toggleterm buffer</p></li><li class="listitem"><p>Added <code class="literal">nvim-docs-view</code>, a plugin to display lsp hover documentation in a side panel</p></li><li class="listitem"><p>Switched to <code class="literal">nixosOptionsDoc</code> in option documentation.
To quote home-manager commit: “Output is mostly unchanged aside from some minor typographical and
formatting changes, along with better source links.”</p></li><li class="listitem"><p>Updated indent-blankine.nvim to v3 - this comes with a few option changes, which will be migrated with <code class="literal">renamedOptionModule</code></p></li></ul></div><p><a class="link" href="https://github.com/jacekpoz" target="_top">jacekpoz</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Fixed scrollOffset not being used</p></li><li class="listitem"><p>Updated clangd to 16</p></li><li class="listitem"><p>Disabled <code class="literal">useSystemClipboard</code> by default</p></li></ul></div><p><a class="link" href="https://github.com/ksonj" target="_top">ksonj</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Add support to change mappings to utility/surround</p></li><li class="listitem"><p>Add black-and-isort python formatter</p></li><li class="listitem"><p>Removed redundant “Enable …” in <code class="literal">mkEnableOption</code> descriptions</p></li><li class="listitem"><p>Add options to modify LSP key bindings and add proper whichkey descriptions</p></li><li class="listitem"><p>Changed type of <code class="literal">statusline.lualine.activeSection</code> and <code class="literal">statusline.lualine.inactiveSection</code>
from <code class="literal">attrsOf str</code> to <code class="literal">attrsOf (listOf str)</code></p></li><li class="listitem"><p>Added <code class="literal">statusline.lualine.extraActiveSection</code> and <code class="literal">statusline.lualine.extraInactiveSection</code></p></li></ul></div>
</div>
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.6" class="title" >Release 0.6 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.html#sec-breaking-changes-and-migration-guide">Breaking Changes and Migration Guide</a> </span></dt><dt> <span class="section"> <a href="release-notes.html#sec-release-0.6-changelog">Changelog</a> </span></dt> </dl></div><p>Release notes for release 0.6</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-breaking-changes-and-migration-guide" class="title" style="clear: both">Breaking Changes and Migration Guide </h2> </div> </div></div><p>In v0.6 we are introducing <code class="literal">setupOpts</code>: many plugin related options are moved into their respective <code class="literal">setupOpts</code>
submodule, e.g. <code class="literal">nvimTree.disableNetrw</code> is renamed to <code class="literal">nvimTree.setupOpts.disable_netrw</code>.</p><p><span class="emphasis"><em>Why?</em></span> in short, you can now pass in anything to setupOpts and it will be passed to your <code class="literal">require&#x27;plugin&#x27;.setup{...}</code>.
No need to wait for us to support every single plugin option.</p><p>The warnings when you rebuild your config should be enough to guide you through what you need to do, if theres an
option that was renamed but wasnt listed in the warning, please file a bug report!</p><p>To make your migration process less annoying, heres a keybind that will help you with renaming stuff from camelCase to
snake_case (youll be doing that a lot):</p><pre><code class="programlisting 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(&quot;&lt;cword&gt;&quot;)
-- Replace each capital letter with an underscore followed by its lowercase equivalent
local snakeCase = string.gsub(word, &quot;%u&quot;, function(match)
return &quot;_&quot; .. string.lower(match)
end)
-- Remove the leading underscore if present
if string.sub(snakeCase, 1, 1) == &quot;_&quot; then
snakeCase = string.sub(snakeCase, 2)
end
vim.fn.setreg(vim.v.register, snakeCase)
-- Select the word under the cursor and paste
vim.cmd(&quot;normal! viwP&quot;)
end
vim.api.nvim_set_keymap(&#x27;n&#x27;, &#x27;&lt;leader&gt;a&#x27;, &#x27;:lua camelToSnake()&lt;CR&gt;&#x27;, { noremap = true, silent = true })
</code></pre>
</div><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.6-changelog" class="title" style="clear: both">Changelog </h2> </div> </div></div><p><a class="link" href="https://github.com/ksonj" target="_top">ksonj</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added Terraform language support.</p></li><li class="listitem"><p>Added <code class="literal">ChatGPT.nvim</code>, which can be enabled with <a class="link" href="vim.assistant.chatgpt" target="_top"><code class="literal">vim.assistant.chatgpt</code></a>. Do
keep in mind that this option requires <code class="literal">OPENAI_API_KEY</code> environment variable to be set.</p></li></ul></div><p><a class="link" href="https://github.com/donnerinoern" target="_top">donnerinoern</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added Gruvbox theme.</p></li><li class="listitem"><p>Added marksman LSP for Markdown.</p></li><li class="listitem"><p>Fixed markdown preview with Glow not working and added an option for changing the preview keybind.</p></li><li class="listitem"><p>colorizer.nvim: switched to a maintained fork.</p></li><li class="listitem"><p>Added <code class="literal">markdown-preview.nvim</code>, moved <code class="literal">glow.nvim</code> to a brand new <code class="literal">vim.utility.preview</code> category.</p></li></ul></div><p><a class="link" href="https://github.com/elijahimmer" target="_top">elijahimmer</a></p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Added rose-pine theme.</p></li></ul></div><p><a class="link" href="https://github.com/jacekpoz" target="_top">jacekpoz</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Added <code class="literal">vim.autocomplete.alwaysComplete</code>. Allows users to have the autocomplete window popup only when manually activated.</p></li></ul></div><p><a class="link" href="https://github.com/horriblename" target="_top">horriblename</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Fixed empty winbar when breadcrumbs are disabled.</p></li><li class="listitem"><p>Added custom <code class="literal">setupOpts</code> for various plugins.</p></li><li class="listitem"><p>Removed support for deprecated plugin “nvim-compe”.</p></li><li class="listitem"><p>Moved most plugins to <code class="literal">setupOpts</code> method.</p></li></ul></div><p><a class="link" href="https://github.com/frothymarrow" target="_top">frothymarrow</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Added option <code class="literal">vim.luaPackages</code> to wrap neovim with extra Lua packages.</p></li><li class="listitem"><p>Rewrote the entire <code class="literal">fidget.nvim</code> module to include extensive configuration options. Option <code class="literal">vim.fidget-nvim.align.bottom</code> has
been removed in favor of <a class="link" href="vim.fidget-nvim.notification.window.align" target="_top">vim.fidget-nvim.notification.window.align</a>, which now supports
<code class="literal">top</code> and <code class="literal">bottom</code> values. <code class="literal">vim.fidget-nvim.align.right</code> has no longer any equivalent and also has been removed.</p></li><li class="listitem"><p><code class="literal">which-key.nvim</code> categories can now be customized through <a class="link" href="vim.binds.whichKey.register" target="_top">vim.binds.whichKey.register</a></p></li><li class="listitem"><p>Added <code class="literal">magick</code> to <code class="literal">vim.luaPackages</code> for <code class="literal">image.nvim</code>.</p></li><li class="listitem"><p>Added <code class="literal">alejandra</code> to the default devShell.</p></li><li class="listitem"><p>Migrated neovim-flake to <code class="literal">makeNeovimUnstable</code> wrapper.</p></li></ul></div><p><a class="link" href="https://github.com/notashelf" target="_top">notashelf</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Finished moving to <code class="literal">nixosOptionsDoc</code> in the documentation and changelog. All documentation options
and files are fully free of Asciidoc, and will now use Nixpkgs flavored markdown.</p></li><li class="listitem"><p>Bumped plugin inputs to their latest versions.</p></li><li class="listitem"><p>Deprecated <code class="literal">presence.nvim</code> in favor of <code class="literal">neocord</code>. This means <code class="literal">vim.rich-presence.presence-nvim</code> is removed and will throw
a warning if used. You are recommended to rewrite your neocord configuration from scratch based on the.
<a class="link" href="https://github.com/IogaMaster/neocord" target="_top">official documentation</a></p></li><li class="listitem"><p>Removed Tabnine plugin due to the usage of imperative tarball downloads. If youd like to see it back, please create an issue.</p></li><li class="listitem"><p>Added support for css and tailwindcss through vscode-language-servers-extracted &amp; tailwind-language-server.
Those can be enabled through <code class="literal">vim.languages.css</code> and <code class="literal">vim.languages.tailwind</code>.</p></li><li class="listitem"><p>Lualine module now allows customizing <code class="literal">always_divide_middle</code>, <code class="literal">ignore_focus</code> and <code class="literal">disabled_filetypes</code> through the new
options: <a class="link" href="vim.statusline.lualine.alwaysDivideMiddle" target="_top">vim.statusline.lualine.alwaysDivideMiddle</a>,
<a class="link" href="vim.statusline.lualine.ignoreFocus" target="_top">vim.statusline.lualine.ignoreFocus</a> and
<a class="link" href="vim.statusline.lualine.disabledFiletypes" target="_top">vim.statusline.lualine.disabledFiletypes</a>.</p></li><li class="listitem"><p>Updated all plugin inputs to their latest versions (<span class="strong"><strong>21.04.2024</strong></span>) - this brought minor color changes to the Catppuccin
theme.</p></li><li class="listitem"><p>Moved home-manager module entrypoint to <code class="literal">flake/modules</code> and added an experimental Nixos module. This requires further testing
before it can be considered ready for use.</p></li><li class="listitem"><p>Made lib calls explicit. E.g. <code class="literal">lib.strings.optionalString</code> instead of <code class="literal">lib.optionalString</code>. This is a pattern expected
to be followed by all contributors in the future.</p></li><li class="listitem"><p>Added <code class="literal">image.nvim</code> for image previews.</p></li><li class="listitem"><p>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.</p></li><li class="listitem"><p>Changed the tree structure to distinguish between core options and plugin options.</p></li><li class="listitem"><p>Added plugin auto-discovery from plugin inputs. This is mostly from
<a class="link" href="https://github.com/jordanisaacs/neovim-flake" target="_top">JordanIsaacs neovim-flake</a>. Allows contributors to add plugin inputs
with the <code class="literal">plugin-</code> prefix to have them automatically discovered for the <code class="literal">plugin</code> type in <code class="literal">lib/types</code>.</p></li><li class="listitem"><p>Moved internal <code class="literal">wrapLuaConfig</code> to the extended library, structured its arguments to take <code class="literal">luaBefore</code>, <code class="literal">luaConfig</code>
and <code class="literal">luaAfter</code> as strings, which are then concatted inside a lua block.</p></li><li class="listitem"><p>Added <a class="link" href="vim.luaConfigBefore" target="_top"><code class="literal">vim.luaConfigBefore</code></a> and <a class="link" href="vim.luaConfigAfter" target="_top"><code class="literal">vim.luaConfigAfter</code></a>
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.</p></li><li class="listitem"><p>Added <a class="link" href="vim.spellChecking.ignoredFiletypes" target="_top"><code class="literal">vim.spellChecking.ignoredFiletypes</code></a>
and <a class="link" href="vim.spellChecking.programmingWordlist.enable" target="_top"><code class="literal">vim.spellChecking.programmingWordlist.enable</code></a> for ignoring certain filetypes
in spellchecking and enabling <code class="literal">vim-dirtytalk</code> respectively. The previously used <code class="literal">vim.spellcheck.vim-dirtytalk</code> aliases to the latter
option.</p></li><li class="listitem"><p>Exposed <code class="literal">withRuby</code>, <code class="literal">withNodeJs</code>, <code class="literal">withPython3</code>, and <code class="literal">python3Packages</code> from the <code class="literal">makeNeovimConfig</code> function under their respective options.</p></li><li class="listitem"><p>Added <a class="link" href="vim.extraPackages" target="_top"><code class="literal">vim.extraPackages</code></a> for appending additional packages to the wrapper PATH, making said packages available
while inside the Neovim session.</p></li><li class="listitem"><p>Made treesitter options configurable, and moved <code class="literal">treesitter-context to </code>setupOpts` while it is enabled.</p></li><li class="listitem"><p>Added <code class="literal">vim.notify.nvim-notify.setupOpts.render</code> 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.</p></li></ul></div>
</div>
</div><div class="chapter"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.7" class="title" >Release 0.7 </h2> </div> </div></div><div class="toc"> <p><strong>Table of Contents</strong></p> <dl class="toc"> <dt> <span class="section"> <a href="release-notes.html#sec-release-0.7-changelog">Changelog</a> </span></dt> </dl></div><p>Release notes for release 0.7</p><div class="section"> <div class="titlepage"> <div> <div> <h2 id="sec-release-0.7-changelog" class="title" style="clear: both">Changelog </h2> </div> </div></div><p><a class="link" href="https://github.com/ItsSorae" target="_top">ItsSorae</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Add support for <a class="link" href="https://typst.app/" target="_top">typst</a> under <code class="literal">vim.languages.typst</code> This
will enable the <code class="literal">typst-lsp</code> language server, and the <code class="literal">typstfmt</code> formatter</p></li></ul></div><p><a class="link" href="https://github.com/frothymarrow" target="_top">frothymarrow</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Modified type for
<a class="link" href="options.html#opt-vim.visuals.fidget-nvim.setupOpts.progress.display.overrides" >vim.visuals.fidget-nvim.setupOpts.progress.display.overrides</a>
from <code class="literal">anything</code> to a <code class="literal">submodule</code> for better type checking.</p></li><li class="listitem"><p>Fix null <code class="literal">vim.lsp.mappings</code> generating an error and not being filtered out.</p></li><li class="listitem"><p>Add basic transparency support for <code class="literal">oxocarbon</code> theme by setting the highlight
group for <code class="literal">Normal</code>, <code class="literal">NormalFloat</code>, <code class="literal">LineNr</code>, <code class="literal">SignColumn</code> and optionally
<code class="literal">NvimTreeNormal</code> to <code class="literal">none</code>.</p></li><li class="listitem"><p>Fix <a class="link" href="options.html#opt-vim.ui.smartcolumn.setupOpts.custom_colorcolumn" >vim.ui.smartcolumn.setupOpts.custom_colorcolumn</a>
using the wrong type <code class="literal">int</code> instead of the expected type <code class="literal">string</code>.</p></li></ul></div><p><a class="link" href="https://github.com/horriblename" target="_top">horriblename</a>:</p><div class="itemizedlist"><ul class="itemizedlist compact" style="list-style-type: disc;"><li class="listitem"><p>Fix broken treesitter-context keybinds in visual mode</p></li><li class="listitem"><p>Deprecate use of <code class="literal">__empty</code> to define empty tables in lua. Empty attrset are no
longer filtered and thus should be used instead.</p></li><li class="listitem"><p>Add dap-go for better dap configurations</p></li><li class="listitem"><p>Make noice.nvim customizable</p></li></ul></div><p><a class="link" href="https://github.com/jacekpoz" target="_top">jacekpoz</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Add <a class="link" href="https://github.com/ocaml/ocaml-lsp" target="_top">ocaml-lsp</a> support.</p></li><li class="listitem"><p>Fix Emac typo</p></li></ul></div><p><a class="link" href="https://github.com/diniamo" target="_top">diniamo</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Move the <code class="literal">theme</code> dag entry to before <code class="literal">luaScript</code>.</p></li><li class="listitem"><p>Add rustfmt as the default formatter for Rust.</p></li><li class="listitem"><p>Enabled the terminal integration of catppuccin for theming Neovims built-in terminal (this also affects toggleterm).</p></li><li class="listitem"><p>Migrate bufferline to setupOpts for more customizability</p></li><li class="listitem"><p>Use <code class="literal">clangd</code> as the default language server for C languages</p></li><li class="listitem"><p>Expose <code class="literal">lib.nvim.types.pluginType</code>, which for example allows the user to create abstractions for adding plugins</p></li></ul></div><p><a class="link" href="https://github.com/notashelf" target="_top">NotAShelf</a>:</p><div class="itemizedlist"><ul class="itemizedlist " style="list-style-type: disc;"><li class="listitem"><p>Add <code class="literal">deno fmt</code> as the default Markdown formatter. This will be enabled
automatically if you have autoformatting enabled, but can be disabled manually
if you choose to.</p></li><li class="listitem"><p>Add <code class="literal">vim.extraLuaFiles</code> for optionally sourcing additional lua files in your
configuration.</p></li><li class="listitem"><p>Refactor <code class="literal">programs.languages.elixir</code> to use lspconfig and none-ls for LSP and
formatter setups respectively. Diagnostics support is considered, and may be
added once the <a class="link" href="https://github.com/rrrene/credo" target="_top">credo</a> linter has been added
to nixpkgs. A pull request is currently open.</p></li><li class="listitem"><p>Remove vim-tidal and friends.</p></li><li class="listitem"><p>Clean up Lualine module to reduce theme dependency on Catppuccin, and fixed
blending issues in component separators.</p></li><li class="listitem"><p>Add
<a class="link" href="https://github.com/dmmulroy/ts-error-translator.nvim" target="_top">ts-error-translator.nvim</a>
extension of the TS language module, under
<code class="literal">vim.languages.ts.extensions.ts-error-translator</code></p></li></ul></div>
</div>
</div>
</div> <div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href="options.html">Prev</a>&nbsp;</td>
<td width="20%" align="center">&nbsp;</td>
<td width="40%" align="right">&nbsp;</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Appendix B. Neovim Flake Configuration Options&nbsp;</td>
<td width="20%" align="center"><a accesskey="h" href="index.xhtml">Home</a></td>
<td width="40%" align="right" valign="top">&nbsp;</td>
</tr>
</table>
</div>
</body>
</html>