diff --git a/index.xhtml b/index.xhtml index a112be4..9a2c536 100644 --- a/index.xhtml +++ b/index.xhtml @@ -33,7 +33,7 @@
Table of Contents
Table of Contents
If you noticed a bug caused by neovim-flake then please consider reporting it over the neovim-flake issue tracker. Bugfixes, feature additions and upstreamed changes are welcome over @@ -163,9 +163,7 @@ with your findings so that we can make it available for everyone easily.
While you can configure neovim-flake yourself using the builder, you can also use the pre-built configs that are available. Here are a few default configurations you can use.
Table of Contents
$ nix shell github:notashelf/neovim-flake#maximal test.nix
-
It is the same fully configured neovim as with the Nix config, but with every supported language enabled.
::: note -Running the maximal config will download a lot of packages as it is downloading language servers, formatters, and more. -:::
+It is the same fully configured neovim as with the Nix config, but with every supported language enabled.
Running the maximal config will download a lot of packages as it is downloading language servers, formatters, and more.
$ nix run github:notashelf/neovim-flake#nix test.nix
Enables all the of neovim plugins, with language support for specifically Nix. This lets you see what a fully configured neovim setup looks like without downloading a whole bunch of language servers and associated tools.
$ nix run github:notashelf/neovim-flake#tidal file.tidal
@@ -254,7 +252,8 @@ direction. As we have no automated system enforcing those guidelines, please try
making your pull request in order to avoid “faulty” code slipping by.If you are uncertain how these rules affect the change you would like to make then feel free to start a
discussion in the discussions tab ideally (but not necessarily)
before you start developing.
Most, if not all, changes warrant changes to the documentation. Module options should be documented with
-Nixpkgs-flavoured Markdown, albeit with exceptions.
Note
As of v0.6, neovim-flake is itself documented using full markdown in both module options and the manual.
The HTML version of this manual containing both the module option descriptions and the documentation of neovim-flake
+Nixpkgs-flavoured Markdown, albeit with exceptions.
Note
As of v0.5, neovim-flake is itself documented using full markdown in both module options and the manual. With
+v0.6, this manual has also been converted to markdown in full.
The HTML version of this manual containing both the module option descriptions and the documentation of neovim-flake
(such as this page) can be generated and opened by typing the following in a shell within a clone of the
neovim-flake Git repository:
$ nix build .#docs-html
$ xdg-open $PWD/result/share/doc/neovim-flake/index.html
@@ -266,16 +265,16 @@ in The commits in your pull request should be reasonably self-contained. Which means each and every commit in
a pull request should make sense both on its own and in general context. That is, a second commit should not resolve
an issue that is introduced in an earlier commit. In particular, you will be asked to amend any commit that
-introduces syntax errors or similar problems even if they are fixed in a later commit.
The commit messages should follow the {seven-rules}[seven rules], except for “Capitalize the subject line”.
-We also ask you to include the affected code component or module in the first line.
-A commit message ideally, but not necessarily, follow the given template from home-manager’s own documentation
{component}: {description}
+introduces syntax errors or similar problems even if they are fixed in a later commit.The commit messages should follow the seven rules,
+except for “Capitalize the subject line”. We also ask you to include the affected code component or module in
+the first line. A commit message ideally, but not necessarily, follow the given template from home-manager’s own documentation
{component}: {description}
{long description}
where {component}
refers to the code component (or module) your change affects, {description}
is a very brief
description of your change, and {long description}
is an optional clarifying description. As a rare exception, if
there is no clear component, or your change affects many components, then the {component}
part is optional.
-See <<ex-commit-message>> for a commit message that fulfills these requirements.
-
The commit {example-commit-message}[69f8e47e9e74c8d3d060ca22e18246b7f7d988ef] contains the commit message
+See example commit message for a commit message that fulfills these requirements.
+
The commit 69f8e47e9e74c8d3d060ca22e18246b7f7d988ef contains the commit message
starship: allow running in Emacs if vterm is used
The vterm buffer is backed by libvterm and can handle Starship prompts
@@ -346,8 +345,8 @@ your changes are good to go. Open your pull request, and it will be reviewed as
maximal configuration by editing configuration.nix
, and then run it with nix run .#maximal -Lv
. Same procedure as
adding a new module will apply here.
As of 0.4, there exists an API for writing your own keybinds and a couple of useful utility functions are available in
-the https://github.com/NotAShelf/neovim-flake/tree/main/lib[extended standard library]. The following section contains
-a general overview to how you may utilize said functions.
:maps: https://notashelf.github.io/neovim-flake/options.html#opt-vim.maps.command.name.action
To set a mapping, you should define it in vim.maps.<<mode>>
.
+the extended standard library. The following section contains
+a general overview to how you may utilize said functions.
To set a mapping, you should define it in vim.maps.<<mode>>
.
The available modes are:
normal
insert
select
visual
terminal
normalVisualOp
visualOnly
operator
insertCommand
lang
command
An example, simple keybinding, can look like this:
{
vim.maps.normal = {
"<leader>wq" = {
@@ -357,7 +356,9 @@ The available modes are:addDescriptionsToMappings = actualMappings: mappingDefinitions:
diff --git a/options.html b/options.html
index 40888a1..6081190 100644
--- a/options.html
+++ b/options.html
@@ -9,7 +9,7 @@
-
+
Appendix B. Release Notes
+
+
+
+
+
+
+
+ Table of Contents
This section lists the release notes for tagged version of neovim-flake and current main.
Table of Contents
This is the current master branch and information here is not final. These are changes from the v0.01 tag.
Special thanks to home-manager for this release.
+Docs/manual generation, the new module evaluation system, and DAG implementation are from them.
Removed hare language support (lsp/tree-sitter/etc). vim.lsp.hare
is no longer defined.
+If you use hare and would like it added back, please file an issue.
vim.stratPlugins & vim.optPlugins are now
+an enum of string
for options sourced from the flake inputs. Users can still provide vim
+plugin packages.
If you are contributing and adding a new plugin, add the plugin name to availablePlugins
in
+types-plugin.nix.
neovimBuilder
has been removed for configuration. Using an overlay is no longer required.
+See the manual for the new way to configuration.
Treesitter grammars are now configurable with vim.treesitter.grammars.
+Utilizes the nixpkgs nvim-treesitter
plugin rather than a custom input in order to take advantage of build support of pinned versions.
+See relevant discourse post
+for more information. Packages can be found under the vimPlugins.nvim-treesitter.builtGrammars
namespace.
vim.configRC and vim.luaConfigRC are now of type DAG lines.
+This allows for ordering of the config. Usage is the same is in home-manager’s home.activation
option.
vim.luaConfigRC = lib.nvim.dag.entryAnywhere "config here"
+
catppuccin
theme is now available as a neovim theme vim.theme.style and lualine theme
+vim.statusline.lualine.theme.
+
+
+ Table of Contents
Release notes for release 0.2
Added two minimap plugins under vim.minimap
. codewindow.nvim
is enabled by default, while minimap.vim
is
+available with its code-minimap dependency.
A complementary plugin, obsidian.nvim
and the Neovim alternative for Emacs’ orgmode with orgmode.nvim
have been
+added. Both will be disabled by default.
Smooth scrolling for ANY movement command is now available with cinnamon.nvim
You will now notice a dashboard on startup. This is provided by the alpha.nvim
plugin. You can use any of the
+three available dashboard plugins, or disable them entirely.
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 vim.visuals
if seen necessary.
Discord Rich Presence has been added through presence.nvim
for those who want to flex that they are using
+the superior text editor.
An icon picker is now available with telescope integration. You can use :IconPickerInsert
or :IconPickerYank
+to add icons to your code.
A general-purpose cheatsheet has been added through cheatsheet.nvim
. Forget no longer!
ccc.nvim
has been added to the default plugins to allow picking colors with ease.
Most UI components of Neovim have been replaced through the help of noice.nvim
. There are also notifications
+and custom UI elements available for Neovim messages and prompts.
A (floating by default) terminal has been added through toggleterm.nvim
.
Harness the power of ethical (tabnine.nvim
) and not-so-ethical (copilot.lua
) AI by those new assistant plugins.
+Both are off by default, TabNine needs to be wrapped before it’s working.
Experimental mouse gestures have been added through gesture.nvim
. See plugin page and the relevant module for
+more details on how to use.
Re-open last visited buffers via nvim-session-manager
. Disabled by default as deleting buffers seems to be
+problematic at the moment.
Most of NvimTree’s configuration options have been changed with some options being toggled to off by default.
Lualine had its configuration simplified and style toned down. Less color, more info.
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.
Separate config options with the same parent attribute have been merged into one for simplicity.
+
+
+ Table of Contents
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.
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.
We now provide a home-manager module. Do note that it is still far from perfect, but it works.
nodejs_16
is now bundled with Copilot.lua
if the user has enabled Copilot assistant.
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 +prefix
Most of presence.nvim
’s options have been made fully configurable through your configuration file.
Most of the modules have been refactored to separate config
and options
attributes.
Darwin has been deprecated as the zig package is marked as broken. We will attempt to use the zig overlay to return Darwin
+support.
Fidget.nvim
has been added as a neat visual addition for LSP installations.
diffview.nvim
has been added to provide a convenient diff utility.
Treesitter grammars are now configurable with vim.treesitter.grammars.
+Utilizes the nixpkgs nvim-treesitter
plugin rather than a custom input in order to take advantage of build support of pinned versions.
+See discourse for more information.
+Packages can be found under the pkgs.vimPlugins.nvim-treesitter.builtGrammars
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:
+comment, toml, make, html, css, graphql, json.
A new section has been added for language support: vim.languages.<language>
.
The options vim.languages.enableLSP, vim.languages.enableTreesitter, etc.
+will enable the respective section for all languages that have been enabled.
All LSP languages have been moved here
plantuml
and markdown
have been moved here
A new section has been added for html
. The old vim.treesitter.autotagHtml
can be found at <<opt-vim.languages.html.treesitter.autotagHtml>>.
vim.git.gitsigns.codeActions has been added allowing you to turn on gitsigns codeactions.
Removed the plugins document in the docs. Was too unwieldy to keep updated.
vim.visual.lspkind
has been moved to vim.lsp.lspkind.enable
Improved handling of completion formatting. When setting vim.autocomplete.sources, can also include optional menu mapping.
+And can provide your own function with vim.autocomplete.formatting.format.
For vim.visuals.indentBlankline.fillChar and vim.visuals.indentBlankline.eolChar
+turning them off should use null
rather than ""
now.
Transparency has been made optional and has been disabled by default. vim.theme.transparent option can be used to enable or
+disable transparency for your configuration.
Fixed deprecated configuration method for Tokyonight, and added new style “moon”
Dart language support as well as extended flutter support has been added. Thanks to @FlafyDev for his contributions towards Dart
+language support.
Elixir language support has been added through elixir-tools.nvim
.
hop.nvim
and leap.nvim
have been added for fast navigation.
modes.nvim
has been added to the UI plugins as a minor error highlighter.
smartcollumn.nvim
has been added to dynamically display a colorcolumn when the limit has been exceeded, providing
+per-buftype column position and more.
project.nvim
has been added for better project management inside Neovim.
More configuration options have been added to nvim-session-manager
.
Editorconfig support has been added to the core functionality, with an enable option.
venn-nvim
has been dropped due to broken keybinds.
+
+
+ Table of Contents
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 module’s own keybinds section.
+The old keybind system (vim.keybinds = {}
) 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.
Alongside customizable keybinds, there are a few quality of life updates, such as lazygit
integration and the
+new experimental Lua loader of Neovim 0.9 thanks to our awesome contributors who made this update possible during my absence.
Streamlined keybind adding process towards new functions in extended stdlib.
Moved default keybinds into keybinds section of each module
Simplified luaConfigRC and configRC setting - they can now just take strings
Refactored the resolveDag function - you can just provide a string now, which will default to dag.entryAnywhere
Fixed formatting sometimes removing parts of files
Made formatting synchronous
Gave null-ls priority over other formatters
Added clangd
as alternative lsp for C/++.
Added toggleterm
integration for lazygit
.
Added new option enableluaLoader
to enable neovim’s experimental module loader for faster startup time.
Fixed bug where flutter-tools can’t find dart
LSP
Added Debug Adapter (DAP) support for clang, rust, go, python and dart.
Made Copilot’s Node package configurable. It is recommended to keep as default, but providing a different NodeJS version is now possible.
Added vim.cursorlineOpt for configuring Neovim’s cursorlineOpt.
Added filetree.nvimTreeLua.view.cursorline
, default false, to enable cursorline in nvimtre.
Added Fidget.nvim support for the Catppuccin theme.
Updated bundled NodeJS version used by Copilot.lua
. v16 is now marked as insecure on Nixpkgs, and we updated to v18
Enabled Catppuccin modules for plugins available by default.
Added experimental Svelte support under vim.languages
.
Removed unnecessary scrollbar element from notifications and codeaction warning UI.
vim.utility.colorizer
has been renamed to vim.utility.ccc
after the plugin it uses
Color preview via nvim-colorizer.lua
Updated Lualine statusline UI
Added vim-illuminate for smart highlighting
Added a module for enabling Neovim’s spellchecker
Added prettierd as an alternative formatter to prettier - currently defaults to prettier
Fixed presence.nvim inheriting the wrong client id
Cleaned up documentation
+
+
+ Table of Contents
Release notes for release 0.5
Added phan language server for PHP
Added phpactor language server for PHP
Added transparency support for tokyonight theme
Fixed a bug where cmp’s close and scrollDocs mappings wasn’t working
Streamlined and simplified extra plugin API with the addition of vim.extraPlugins
Allow using command names in place of LSP packages to avoid automatic installation
Add lua LSP and treesitter support, and neodev.nvim plugin support
Add vim.lsp.mappings.toggleFormatOnSave keybind
Added daily notes options for obsidian plugin
Added jdt-language-server for Java
Added Deno Language Server for javascript/typescript
Added support for multiple languages vim.spellChecking.languages, and added
+vim-dirtytalk through vim.spellChecking.enableProgrammingWordList
Renamed vim.visuals.cursorWordline
to vim.visuals.cursorline.enable
Added vim.visuals.cursorline.lineNumbersOnly to display cursorline
+only in the presence of line numbers
Added Oxocarbon to the list of available themes.
Added GitHub Copilot to nvim-cmp completion sources.
Added vim.ui.borders.enable for global and individual plugin border configuration.
LSP integrated breadcrumbs with vim.ui.breadcrumbs.enable through nvim-navic
LSP navigation helper with nvim-navbuddy, depends on nvim-navic (automatically enabled if navic is enabled)
Addeed nvim-navic integration for catppuccin theme
Fixed mismatching zig language description
Added support for statix
and deadnix
through vim.languages.nix.extraDiagnostics.types
Added lsp_lines
plugin for showing diagnostic messages
Added a configuration option for choosing the leader key
The package used for neovim is now customizable by the user, using vim.package.
+For best results, always use an unwrapped package
Added highlight-undo plugin for highlighting undo/redo targets
Added bash LSP and formatter support
Disabled Lualine LSP status indicator for toggleterm buffer
Added nvim-docs-view
, a plugin to display lsp hover documentation in a side panel
Switched to nixosOptionsDoc
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.”
Updated indent-blankine.nvim to v3 - this comes with a few option changes, which will be migrated with renamedOptionModule
Fixed scrollOffset not being used
Updated clangd to 16
Disabled useSystemClipboard
by default
Add support to change mappings to utility/surround
Add black-and-isort python formatter
Removed redundant “Enable …” in mkEnableOption
descriptions
Add options to modify LSP key bindings and add proper whichkey descriptions
Changed type of statusline.lualine.activeSection
and statusline.lualine.inactiveSection
+from attrsOf str
to attrsOf (listOf str)
Added statusline.lualine.extraActiveSection
and statusline.lualine.extraInactiveSection
+
+
+ Table of Contents
Release notes for release 0.6
Add Terraform language support
Fixed empty winbar when breadcrumbs are disabled
Finished moving to nixosOptionsDoc
in the documentation and changelog. We are fully free of asciidoc now
Bumped plugin inputs to their latest versions
+
+
+
+
+
+
\ No newline at end of file
diff --git a/release-notes.html b/release-notes.html
new file mode 100644
index 0000000..26d8ea2
--- /dev/null
+++ b/release-notes.html
@@ -0,0 +1,112 @@
+
+
+
+
+
+