mirror of
https://github.com/NotAShelf/nvf.git
synced 2024-11-02 03:21:14 +00:00
182 lines
37 KiB
HTML
182 lines
37 KiB
HTML
<?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></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 mitchmindtree’s 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:jordanisaacs/neovim-flake";
|
||
|
||
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.nixosModules.hm-module ];
|
||
}</pre><p>Then we should be able to use the given module. E.g.</p><pre class="programlisting nix">{
|
||
programs.neovim-flake = {
|
||
enable = true;
|
||
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/VSCode’s 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> |