neovim-flake/index.html
2023-04-15 09:07:07 +00:00

189 lines
No EOL
38 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 name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>neovim-flake Manual</title><link rel="stylesheet" type="text/css" href="style.css" /><script src="highlight.min.js" type="text/javascript"></script><script src="highlight.load.js" type="text/javascript"></script><meta name="generator" content="DocBook XSL Stylesheets V1.79.2" /><link rel="home" href="index.html" title="neovim-flake Manual" /><link rel="next" href="options.html" title="Appendix A. Configuration Options" /></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">neovim-flake Manual</th></tr><tr><td width="20%" align="left"> </td><th width="60%" align="center"> </th><td width="20%" align="right"> <a accesskey="n" href="options.html">Next</a></td></tr></table><hr /></div><div class="book"><div class="titlepage"><div><div><h1 class="title"><a id="book-neovim-flake-manual"></a>neovim-flake Manual</h1></div></div><hr /></div><div class="toc"><dl class="toc"><dt><span class="preface"><a href="index.html#id-1.2">Preface</a></span></dt><dt><span class="chapter"><a href="index.html#ch-try-it-out">1. Try it out</a></span></dt><dd><dl><dt><span class="section"><a href="index.html#_nix">1.1. Nix</a></span></dt><dt><span class="section"><a href="index.html#_tidal">1.2. Tidal</a></span></dt><dt><span class="section"><a href="index.html#_maximal">1.3. Maximal</a></span></dt><dt><span class="section"><a href="index.html#_using_prebuilt_configs">1.4. Using Prebuilt Configs</a></span></dt></dl></dd><dt><span class="chapter"><a href="index.html#ch-default-configs">2. Default Configs</a></span></dt><dd><dl><dt><span class="section"><a href="index.html#sec-default-tidal">2.1. Tidal Cycles</a></span></dt><dt><span class="section"><a href="index.html#sec-default-nix">2.2. Nix</a></span></dt><dt><span class="section"><a href="index.html#sec-default-maximal">2.3. Maximal</a></span></dt></dl></dd><dt><span class="chapter"><a href="index.html#ch-custom-configuration">3. Custom Configuration</a></span></dt><dt><span class="chapter"><a href="index.html#ch-hm-module">4. Home Manager</a></span></dt><dt><span class="chapter"><a href="index.html#ch-languages">5. Language Support</a></span></dt><dd><dl><dt><span class="section"><a href="index.html#sec-languages-rust">5.1. Rust</a></span></dt><dt><span class="section"><a href="index.html#sec-languages-nix">5.2. Nix</a></span></dt><dt><span class="section"><a href="index.html#sec-languages-sql">5.3. SQL</a></span></dt><dt><span class="section"><a href="index.html#sec-languages-clang">5.4. C/C++</a></span></dt><dt><span class="section"><a href="index.html#sec-languages-typescript">5.5. Typescript</a></span></dt><dt><span class="section"><a href="index.html#sec-languages-python">5.6. Python</a></span></dt><dt><span class="section"><a href="index.html#sec-languages-zig">5.7. Zig</a></span></dt><dt><span class="section"><a href="index.html#sec-languages-markdown">5.8. Markdown</a></span></dt><dt><span class="section"><a href="index.html#sec-languages-html">5.9. HTML</a></span></dt></dl></dd><dt><span class="chapter"><a href="index.html#ch-plugins">6. Plugins</a></span></dt><dd><dl><dt><span class="section"><a href="index.html#sec-plugins-autopairs">6.1. Autopairs</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-assistant">6.2. Coding Assistants</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-buffer">6.3. Buffers</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-commenting">6.4. Commenting</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-completions">6.5. Completions</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-dashboard">6.6. Dashboard</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-server">6.7. Language Server</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-statuslines">6.8. Statuslines</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-filetrees">6.9. Filetrees</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-git">6.10. Git</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-treesitter">6.11. Treesitter</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-visuals">6.12. Visuals</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-minimap">6.13. Minimap</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-notifications">6.14. Notifications</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-notes">6.15. Note-taking</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-session-management">6.16. Session Management</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-snippets">6.17. Snippets</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-terminal">6.18. Terminal</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-themes">6.19. Themes</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-utilities">6.20. Utilities</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-ui">6.21. UI Elements</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-presence">6.22. Rich Presence</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-markdown">6.23. Markdown</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-rust">6.24. Rust</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-tidalcycles">6.25. Tidal Cycles</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-sql">6.26. SQL</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-html">6.27. HTML</a></span></dt><dt><span class="section"><a href="index.html#sec-plugins-dependencies">6.28. Dependencies</a></span></dt></dl></dd><dt><span class="appendix"><a href="options.html">A. Configuration Options</a></span></dt><dt><span class="appendix"><a href="release-notes.html">B. Release Notes</a></span></dt><dd><dl><dt><span class="section"><a href="release-notes.html#sec-release-0.1">B.1. Release 0.1</a></span></dt><dd><dl><dt><span class="section"><a href="release-notes.html#sec-release-0.1-changelog">B.1.1. Changelog</a></span></dt></dl></dd><dt><span class="section"><a href="release-notes.html#sec-release-0.2">B.2. Release 0.2</a></span></dt><dd><dl><dt><span class="section"><a href="release-notes.html#sec-release-0.2-changelog">B.2.1. Changelog</a></span></dt></dl></dd></dl></dd></dl></div><div class="preface"><div class="titlepage"><div><div><h1 class="title"><a id="id-1.2"></a>Preface</h1></div></div></div><p>
If your problem is caused by a bug in neovim-flake then it should be reported on the
<a class="link" href="https://github.com/notashelf/neovim-flake/issues" target="_top">neovim-flake issue tracker</a>.
Alongside bug reports, feature requests are also welcome over
<a class="link" href="https://github.com/notashelf/neovim-flake/pulls" target="_top">neovim-flake pull requests</a>.
</p></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="ch-try-it-out"></a>Chapter 1. Try it out</h1></div></div></div><pre class="programlisting console">$ cachix use neovim-flake # Optional: it'll save you CPU resources and time
$ nix run github:notashelf/neovim-flake</pre><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_nix"></a>1.1. Nix</h2></div></div></div><p>By default LSP support for Nix is enabled alongside all complementary Neovim plugins. By running <code class="literal">nix run .</code>, which is the default package,
you will build Neovim with this config.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_tidal"></a>1.2. Tidal</h2></div></div></div><p>Tidal is an alternative config that adds vim-tidal on top of the plugins from the Nix configuration.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_maximal"></a>1.3. Maximal</h2></div></div></div><p>Maximal is the ultimate configuration that will enable basically everything. Keep in mind, however, that this will pull a lot of dependencies.</p><p>You are strongly recommended to use the binary cache if you would like to try the Maximal configuration.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="_using_prebuilt_configs"></a>1.4. Using Prebuilt Configs</h2></div></div></div><pre class="programlisting console">$ nix run github:notashelf/neovim-flake#nix
$ nix run github:notashelf/neovim-flake#tidal
$ nix run github:notashelf/neovim-flake#maximal</pre></div></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="ch-default-configs"></a>Chapter 2. Default Configs</h1></div></div></div><p>While you can configure neovim-flake yourself using the builder, here are a few default configurations you can use.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-default-tidal"></a>2.1. Tidal Cycles</h2></div></div></div><pre class="programlisting console">$ nix run github:notashelf/neovim-flake#tidal file.tidal</pre><p>Utilizing <a class="link" href="https://github.com/tidalcycles/vim-tidal" target="_top">vim-tidal</a> and mitchmindtrees fantastic <a class="link" href="https://github.com/mitchmindtree/tidalcycles.nix" target="_top">tidalcycles.nix</a> start playing with tidal cycles in a single command.</p><p>In your tidal file, type a cycle e.g. <code class="literal">d1 $ s "drum"</code> and then press <span class="emphasis"><em>ctrl+enter</em></span>. Super collider with superdirt, and a modified GHCI with tidal will start up and begin playing. Note, you need jack enabled on your system. If you are using pipewire, its as easy as setting <code class="literal">services.pipewire.jack.enable = true</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-default-nix"></a>2.2. Nix</h2></div></div></div><pre class="programlisting console">$ nix run github:notashelf/neovim-flake#nix test.nix</pre><p>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.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-default-maximal"></a>2.3. Maximal</h2></div></div></div><pre class="programlisting console">$ nix shell github:notashelf/neovim-flake#maximal test.nix</pre><p>It is the same fully configured neovim as with the <a class="link" href="index.html#sec-default-nix" title="2.2. Nix">Nix</a> config, but with every supported language enabled.</p><div class="note"><h3 class="title">Note</h3><p>Running the maximal config will download <span class="strong"><strong>a lot</strong></span> of packages as it is downloading language servers, formatters, and more.</p></div></div></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="ch-custom-configuration"></a>Chapter 3. Custom Configuration</h1></div></div></div><p>Custom configuration is done with the <code class="literal">neovimConfiguration</code> function. It takes in the configuration as a module. The output of the configuration function is an attrset.</p><pre class="programlisting nix">{
options = "The options that were available to configure";
config = "The outputted configuration";
pkgs = "The package set used to evaluate the module";
neovim = "The built neovim package";
}</pre><p>The following is an example of a barebones vim configuration with the default theme enabled.</p><pre class="programlisting nix">{
inputs.neovim-flake = {
url = "github:notashelf/neovim-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
outputs = {nixpkgs, neovim-flake, ...}: let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
configModule = {
# Add any custom options (and feel free to upstream them!)
# options = ...
config.vim = {
theme.enable = true;
};
};
customNeovim = neovim-flake.lib.neovimConfiguration {
modules = [configModule];
inherit pkgs;
};
in {
packages.${system}.neovim = customNeovim.neovim;
};
}</pre></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="ch-hm-module"></a>Chapter 4. Home Manager</h1></div></div></div><p>The Home Manager module allows us to customize the different <code class="literal">vim</code> options. To use it, we first add the input flake.</p><pre class="programlisting nix">{
neovim-flake = {
url = github:notashelf/neovim-flake;
# you can override input nixpkgs
inputs.nixpkgs.follows = "nixpkgs";
};
}</pre><p>Followed by importing the HM module.</p><pre class="programlisting nix">{
imports = [ neovim-flake.homeManagerModules.default ];
}</pre><p>Then we should be able to use the given module. E.g.</p><pre class="programlisting nix">{
programs.neovim-flake = {
enable = true;
# your settings need to go into the settings attrset
settings = {
vim.viAlias = false;
vim.vimAlias = true;
vim.lsp = {
enable = true;
};
};
};
}</pre></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="ch-languages"></a>Chapter 5. Language Support</h1></div></div></div><p>Language specific support combines some combination of language specific plugins, <code class="literal">treesitter</code> support, <code class="literal">nvim-lspconfig</code> langauge servers, and <code class="literal">null-ls</code> integration. This gets you capabilities ranging from autocompletion to formatting to diagnostics. The following languages have support beyond just <code class="literal">treesitter</code> highlighting.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-languages-rust"></a>5.1. Rust</h2></div></div></div><p><span class="strong"><strong>LSP Server</strong></span>: <a class="link" href="https://github.com/rust-analyzer/rust-analyzer" target="_top">rust-analyzer</a></p><p><span class="strong"><strong>Formatting</strong></span>: Built into LSP, uses <a class="link" href="https://github.com/rust-lang/rustfmt" target="_top">rustfmt</a></p><p><span class="strong"><strong>Plugins</strong></span>: See <a class="link" href="index.html#sec-plugins-rust" title="6.24. Rust">here</a></p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-languages-nix"></a>5.2. Nix</h2></div></div></div><p><span class="strong"><strong>LSP Server</strong></span>: Choice between <a class="link" href="https://github.com/oxalica/nil" target="_top">nil</a> and <a class="link" href="https://github.com/nix-community/rnix-lsp" target="_top">rnix-lsp</a></p><p><span class="strong"><strong>Formatting</strong></span>: Choice between <a class="link" href="https://github.com/kamadorueda/alejandra" target="_top">alejandra</a> and <a class="link" href="https://github.com/nix-community/nixpkgs-fmt" target="_top">nixpkgs-fmt</a></p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-languages-sql"></a>5.3. SQL</h2></div></div></div><p><span class="strong"><strong>LSP Server</strong></span>: <a class="link" href="https://github.com/lighttiger2505/sqls" target="_top">sqls</a></p><p><span class="strong"><strong>Formatting</strong></span>: Disabled LSP formatting, instead using <a class="link" href="https://github.com/sqlfluff/sqlfluff" target="_top">sqlfluff</a></p><p><span class="strong"><strong>Linting</strong></span>: <a class="link" href="https://github.com/sqlfluff/sqlfluff" target="_top">sqlfluff</a></p><p><span class="strong"><strong>Plugins</strong></span>: See <a class="link" href="index.html#sec-plugins-sql" title="6.26. SQL">here</a></p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-languages-clang"></a>5.4. C/C++</h2></div></div></div><p><span class="strong"><strong>LSP Server</strong></span>: <a class="link" href="https://github.com/MaskRay/ccls" target="_top">ccls</a></p><p><span class="strong"><strong>Formatting</strong></span>: Built into language server</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-languages-typescript"></a>5.5. Typescript</h2></div></div></div><p><span class="strong"><strong>LSP Server</strong></span>: <a class="link" href="https://github.com/typescript-language-server/typescript-language-server" target="_top">typescript-language-server</a></p><p><span class="strong"><strong>Formatting</strong></span>: Disabled LSP formatting, instead using <a class="link" href="https://github.com/prettier/prettier" target="_top">prettier</a></p><p><span class="strong"><strong>Linting</strong></span>: <a class="link" href="https://github.com/prettier/prettier" target="_top">eslint</a></p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-languages-python"></a>5.6. Python</h2></div></div></div><p><span class="strong"><strong>LSP Server</strong></span>: <a class="link" href="https://github.com/microsoft/pyright" target="_top">pyright</a></p><p><span class="strong"><strong>Formatting</strong></span>: <a class="link" href="https://github.com/psf/black" target="_top">black</a></p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-languages-zig"></a>5.7. Zig</h2></div></div></div><p><span class="strong"><strong>LSP Server</strong></span>: <a class="link" href="https://github.com/zigtools/zls" target="_top">zls</a></p><p><span class="strong"><strong>Formatting</strong></span>: Built into LSP, uses <code class="literal">zig fmt</code>.</p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-languages-markdown"></a>5.8. Markdown</h2></div></div></div><p><span class="strong"><strong>Plugins</strong></span>: See <a class="link" href="index.html#sec-plugins-markdown" title="6.23. Markdown">here</a></p></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-languages-html"></a>5.9. HTML</h2></div></div></div><p><span class="strong"><strong>Plugins</strong></span>: See <a class="link" href="index.html#sec-plugins-html" title="6.27. HTML">here</a></p></div></div><div class="chapter"><div class="titlepage"><div><div><h1 class="title"><a id="ch-plugins"></a>Chapter 6. Plugins</h1></div></div></div><p>The following are the neovim plugins used within neovim-flake. Some plugins are explicitly enabled by the user, while others are enabled implicitly.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-autopairs"></a>6.1. Autopairs</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/windwp/nvim-autopairs" target="_top">nvim-autopairs</a> an autopair plugin for neovim
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-assistant"></a>6.2. Coding Assistants</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/zbirenbaum/copilot.lua" target="_top">copilot.lua</a> a lua replacement for github.vim, the license nightmare AI assistant
</li><li class="listitem">
<a class="link" href="https://github.com/codota/tabnine-nvim" target="_top">tabnine-nvim</a> neovim plugin for the more ethically acceptable AI assistant TabNine
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-buffer"></a>6.3. Buffers</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/akinsho/bufferline.nvim" target="_top">nvim-bufferline-lua</a> a buffer line with tab integration
</li><li class="listitem">
<a class="link" href="https://github.com/famiu/bufdelete.nvim" target="_top">bufdelete-nvim</a> delete buffers without losing window layout
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-commenting"></a>6.4. Commenting</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/b3nj5m1n/kommentary" target="_top">kommentary</a> neovim plugin to comment text in and out, written in lua. Supports commenting out the current line, a visual selection and a motion
</li><li class="listitem">
<a class="link" href="https://github.com/folke/todo-comments.nvim" target="_top">todo-comments.nvim</a> plugin to highlight and search for todo comments like TODO, HACK, BUG in your codebase
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-completions"></a>6.5. Completions</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p class="simpara">
<a class="link" href="https://github.com/hrsh7th/nvim-cmp" target="_top">nvim-cmp</a> a completion engine that utilizes sources
</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; "><li class="listitem">
<a class="link" href="https://github.com/hrsh7th/cmp-buffer" target="_top">cmp-buffer</a> a source for buffer words
</li><li class="listitem">
<a class="link" href="https://github.com/hrsh7th/cmp-nvim-lsp" target="_top">cmp-nvim-lsp</a> a source for builtin LSP client
</li><li class="listitem">
<a class="link" href="https://github.com/hrsh7th/cmp-vsnip" target="_top">cmp-vsnip</a> a source for vim-vsnip autocomplete
</li><li class="listitem">
<a class="link" href="https://github.com/hrsh7th/cmp-path" target="_top">cmp-path</a> a source for path autocomplete
</li><li class="listitem">
<a class="link" href="https://github.com/ray-x/cmp-treesitter" target="_top">cmp-treesitter</a> treesitter nodes autcomplete
</li></ul></div></li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-dashboard"></a>6.6. Dashboard</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/glepnir/dashboard-nvim" target="_top">dashboard.nvim</a> fancy and blazing fast start screen plugin for Neovim
</li><li class="listitem">
<a class="link" href="https://github.com/goolord/alpha-nvim" target="_top">alpha.nvim</a> a fast and fully programmable greeter for neovim
</li><li class="listitem">
<a class="link" href="https://github.com/mhinz/vim-startify" target="_top">vim-startify</a> a fancy start screen for {neo,}vim
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-server"></a>6.7. Language Server</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/neovim/nvim-lspconfig" target="_top">nvim-lspconfig</a> common configurations for built-in language server
</li><li class="listitem">
<a class="link" href="https://github.com/jose-elias-alvarez/null-ls.nvim" target="_top">null-ls.nvim</a> neovim as a language server to inject LSP diagnostics, code actions, etc.
</li><li class="listitem">
<a class="link" href="https://github.com/glepnir/lspsaga.nvim" target="_top">lspsaga.nvim</a> useful UI and tools for lsp
</li><li class="listitem">
<a class="link" href="https://github.com/folke/trouble.nvim" target="_top">trouble.nvim</a> pretty list of lsp data
</li><li class="listitem">
<a class="link" href="https://github.com/weilbith/nvim-code-action-menu" target="_top">nvim-code-action-menu</a> a better code action menu with diff support
</li><li class="listitem">
<a class="link" href="https://github.com/ray-x/lsp_signature.nvim" target="_top">lsp-signature</a> show function signatures as you type
</li><li class="listitem">
<a class="link" href="https://github.com/onsails/lspkind-nvim" target="_top">lspkind-nvim</a> for pictograms in lsp (with support for nvim-cmp)
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-statuslines"></a>6.8. Statuslines</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/hoob3rt/lualine.nvim" target="_top">lualine.nvim</a> statusline written in lua.
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-filetrees"></a>6.9. Filetrees</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/kyazdani42/nvim-tree.lua" target="_top">nvim-tree-lua</a> a file explorer tree written in lua. Using
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-git"></a>6.10. Git</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/lewis6991/gitsigns.nvim" target="_top">gitsigns.nvim</a> a variety of git decorations
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-treesitter"></a>6.11. Treesitter</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/romgrk/nvim-treesitter-context" target="_top">nvim-treesitter-context</a> a context bar using tree-sitter
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-visuals"></a>6.12. Visuals</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/lukas-reineke/indent-blankline.nvim" target="_top">indent-blankline</a> for indentation guides
</li><li class="listitem">
<a class="link" href="https://github.com/kyazdani42/nvim-web-devicons" target="_top">nvim-web-devicons</a> plugins and colors for icons. Requires patched font
</li><li class="listitem">
<a class="link" href="https://github.com/declancm/cinnamon.nvim" target="_top">cinnamon.nvim</a> smooth scrolling for ANY movement command
</li><li class="listitem">
<a class="link" href="https://github.com/nvim-cursorline" target="_top">nvim-cursorline</a> a plugin for neovim that highlights cursor words and lines
</li><li class="listitem">
<a class="link" href="https://github.com/petertriho/nvim-scrollbar" target="_top">nvim-scrollbar</a> a scrollbar plugin for neovim
</li><li class="listitem">
<a class="link" href="https://github.com/Eandrju/cellular-automaton.nvim" target="_top">cellular-automaton</a> a vanity to plugin to help you procrastinate more efficiently
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-minimap"></a>6.13. Minimap</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/wfxr/minimap.vim" target="_top">minimap.vim</a> a blazing fast minimap plugin for neovim. Depends on code-minimap
</li><li class="listitem">
<a class="link" href="https://github.com/gorbit99/codewindow.nvim" target="_top">codewindow.nvim</a> a simple, configurable minimap plugin for neovim with no external dependencies
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-notifications"></a>6.14. Notifications</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/rcarriga/nvim-notify" target="_top">nvim-notify</a> simple notification plugin that also integrates with noice.nvim
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-notes"></a>6.15. Note-taking</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/obsidian.nvim" target="_top">obsidian.nvim</a> a neovim plugin that deeply integrates with the obsidian markdown editor. Also works standalone
</li><li class="listitem">
<a class="link" href="https://github.com/nvim-orgmode/orgmode" target="_top">orgmode</a> a neovim replacement for emac orgmode
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-session-management"></a>6.16. Session Management</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/Shatur/neovim-session-manager" target="_top">neovim-session-manager</a> a simple wrapper around :mksession
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-snippets"></a>6.17. Snippets</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/hrsh7th/vim-vsnip" target="_top">vim-vsnip</a> a snippet plugin that supports LSP/VSCodes snippet format
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-terminal"></a>6.18. Terminal</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/akinsho/toggleterm.nvim" target="_top">toggleterm.nvim</a> a simple terminal plugin that opens a terminal buffer on demand
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-themes"></a>6.19. Themes</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/navarasu/onedark.nvim" target="_top">onedark</a> a dark colorscheme with multiple options
</li><li class="listitem">
<a class="link" href="https://github.com/folke/tokyonight.nvim" target="_top">tokyonight-nvim</a> a neovim theme with multiple color options
</li><li class="listitem">
<a class="link" href="https://github.com/catppuccin/nvim" target="_top">catppuccin</a> a pastel theme with 4 color options
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-utilities"></a>6.20. Utilities</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/nvim-telescope/telescope.nvim" target="_top">telescope</a> an extendable fuzzy finder of lists. Working ripgrep and fd
</li><li class="listitem">
<a class="link" href="https://github.com/folke/which-key.nvim" target="_top">which-key</a> a popup that displays possible keybindings of command being typed
</li><li class="listitem">
<a class="link" href="https://github.com/sudormrfbin/cheatsheet.nvim" target="_top">cheatsheet.nvim</a> a searchable cheatsheet for neovim from within the editor using Telescope
</li><li class="listitem">
<a class="link" href="https://github.com/ga-rosa/ccc.nvim" target="_top">ccc.nvim</a> super powerful color picker and colorizer plugin.
</li><li class="listitem">
<a class="link" href="https://github.com/ziontee113/icon-picker.nvim" target="_top">icon-picker.nvim</a> an icon picker plugin that provides access to thousands of icons
</li><li class="listitem">
<a class="link" href="https://github.com/jbyuki/venn.nvim" target="_top">venn.nvim</a> draw venn diagrams inside neovim
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-ui"></a>6.21. UI Elements</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/folke/noice.nvim" target="_top">noice.nvim</a> an experimental neovim plugin that replaces some UI components of neovim
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-presence"></a>6.22. Rich Presence</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/andweeb/presence.nvim" target="_top">presence.nvim</a> light and powerful discord rich presence plugin
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-markdown"></a>6.23. Markdown</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/ellisonleao/glow.nvim" target="_top">glow.nvim</a> a markdown preview directly in neovim using glow
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-rust"></a>6.24. Rust</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/simrat39/rust-tools.nvim" target="_top">rust-tools</a> provides tools for rust
</li><li class="listitem">
<a class="link" href="https://github.com/Saecki/crates.nvim" target="_top">crates.nvim</a> provides tools for working with <code class="literal">cargo.toml</code>
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-tidalcycles"></a>6.25. Tidal Cycles</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/tidalcycles/vim-tidal" target="_top">vim-tidal</a> for tidal cycles integration into vim
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-sql"></a>6.26. SQL</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/nanotee/sqls.nvim" target="_top">sqls.nvim</a> for useful actions that leverage <code class="literal">sqls</code> LSP
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-html"></a>6.27. HTML</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/windwp/nvim-ts-autotag" target="_top">nvim-ts-autotag</a> uses treesitter to autoclose/rename html tags
</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a id="sec-plugins-dependencies"></a>6.28. Dependencies</h2></div></div></div><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem">
<a class="link" href="https://github.com/nvim-lua/plenary.nvim" target="_top">plenary</a> which is a dependency of some plugins, installed automatically if needed
</li><li class="listitem">
<a class="link" href="https://github.comstevearc/dressing.nvim" target="_top">dressing.nvim</a> which is a dependency for icon-picker.nvim
</li><li class="listitem">
<a class="link" href="https://github.com/preservim/vim-markdown" target="_top">vim-markdown</a> which is a dependency for obsidian.nvim
</li><li class="listitem">
<a class="link" href="https://github.comgodlygeek/tabular" target="_top">tabular</a> which is a dependency for vim-markdown
</li><li class="listitem">
<a class="link" href="https://github.com/MunifTanjim/nui.nvim" target="_top">nui.nvim</a> which is a dependency for nui-nvim
</li></ul></div></div></div></div><div class="navfooter"><hr /><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"> </td><td width="20%" align="center"> </td><td width="40%" align="right"> <a accesskey="n" href="options.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"> </td><td width="20%" align="center"> </td><td width="40%" align="right" valign="top"> Appendix A. Configuration Options</td></tr></table></div></body></html>