From 7803b1075c87633795830a026728c14737205cc8 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Wed, 15 Feb 2023 08:51:12 +0000 Subject: [PATCH] deploy: 0b1933160e8a8b688664728c4467d4b5a3f2bb80 --- index.html | 77 ++++++++++++++++++++++++++++++++-------------------- options.html | 4 +-- 2 files changed, 49 insertions(+), 32 deletions(-) diff --git a/index.html b/index.html index e3a138b..312622f 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ -neovim-flake Manual

neovim-flake Manual


Preface

+neovim-flake Manual

Chapter 4. Language Support

Language specific support combines some combination of language specific plugins, treesitter support, nvim-lspconfig langauge servers, and null-ls integration. This gets you capabilities ranging from autocompletion to formatting to diagnostics. The following languages have support beyond just treesitter highlighting.

4.1. Rust

LSP Server: rust-analyzer

Formatting: Built into LSP, uses rustfmt

Plugins: See here

4.2. Nix

LSP Server: Choice between nil and rnix-lsp

Formatting: Choice between alejandra and nixpkgs-fmt

4.3. SQL

LSP Server: sqls

Formatting: Disabled LSP formatting, instead using sqlfluff

Linting: sqlfluff

Plugins: See here

4.4. C/C++

LSP Server: ccls

Formatting: Built into language server

4.5. Typescript

LSP Server: typescript-language-server

Formatting: Disabled LSP formatting, instead using prettier

Linting: eslint

4.6. Python

LSP Server: pyright

Formatting: black

4.7. Zig

LSP Server: zls

Formatting: Built into LSP, uses zig fmt.

4.8. Markdown

Plugins: See here

4.9. HTML

Plugins: See here

Chapter 5. Plugins

The following are the neovim plugins used within neovim-flake. Some plugins are explicitly enabled by the user, while others are enabled implicitly.

5.1. Autopairs

  • +}

Chapter 4. Home Manager

The Home Manager module allows us to customize the different vim options. To use it, we first add the input flake.

{
+  neovim-flake = {
+    url = github:notashelf/neovim-flake;
+    # you can override input nixpkgs
+    inputs.nixpkgs.follows = "nixpkgs";
+  };
+}

Followed by importing the HM module.

{
+  imports = [ neovim-flake.nixosModules.hm-module ];
+}

Then we should be able to use the given module. E.g.

{
+  programs.neovim-flake = {
+    enable = true;
+    settings = {
+      vim.viAlias = false;
+      vim.vimAlias = true;
+      vim.lsp = {
+        enable = true;
+      };
+    };
+  };
+}

Chapter 5. Language Support

Language specific support combines some combination of language specific plugins, treesitter support, nvim-lspconfig langauge servers, and null-ls integration. This gets you capabilities ranging from autocompletion to formatting to diagnostics. The following languages have support beyond just treesitter highlighting.

5.1. Rust

LSP Server: rust-analyzer

Formatting: Built into LSP, uses rustfmt

Plugins: See here

5.2. Nix

LSP Server: Choice between nil and rnix-lsp

Formatting: Choice between alejandra and nixpkgs-fmt

5.3. SQL

LSP Server: sqls

Formatting: Disabled LSP formatting, instead using sqlfluff

Linting: sqlfluff

Plugins: See here

5.4. C/C++

LSP Server: ccls

Formatting: Built into language server

5.5. Typescript

LSP Server: typescript-language-server

Formatting: Disabled LSP formatting, instead using prettier

Linting: eslint

5.6. Python

LSP Server: pyright

Formatting: black

5.7. Zig

LSP Server: zls

Formatting: Built into LSP, uses zig fmt.

5.8. Markdown

Plugins: See here

5.9. HTML

Plugins: See here

Chapter 6. Plugins

The following are the neovim plugins used within neovim-flake. Some plugins are explicitly enabled by the user, while others are enabled implicitly.

6.1. Autopairs

5.2. Coding Assistants

  • +

6.2. Coding Assistants

  • copilot.lua a lua replacement for github.vim, the license nightmare AI assistant
  • tabnine-nvim neovim plugin for the more ethically acceptable AI assistant TabNine -

5.3. Buffers

  • +

6.3. Buffers

5.4. Commenting

  • +

6.4. Commenting

  • kommentary neovim plugin to comment text in and out, written in lua. Supports commenting out the current line, a visual selection and a motion
  • todo-comments.nvim plugin to highlight and search for todo comments like TODO, HACK, BUG in your codebase -

5.5. Completions

  • +

6.5. Completions

  • nvim-cmp a completion engine that utilizes sources

    • cmp-buffer a source for buffer words @@ -60,13 +79,13 @@ $ nix run github:notashelf/neovim-flake#maximal
cmp-path a source for path autocomplete
  • cmp-treesitter treesitter nodes autcomplete -
  • 5.6. Dashboard

    • +

    6.6. Dashboard

    5.7. Language Server

    • +

    6.7. Language Server

    • nvim-lspconfig common configurations for built-in language server
    • null-ls.nvim neovim as a language server to inject LSP diagnostics, code actions, etc. @@ -80,15 +99,15 @@ $ nix run github:notashelf/neovim-flake#maximal
    lsp-signature show function signatures as you type
  • lspkind-nvim for pictograms in lsp (with support for nvim-cmp) -
  • 5.8. Statuslines

    • +

    6.8. Statuslines

    5.9. Filetrees

    • +

    6.9. Filetrees

    5.10. Git

    • +

    6.10. Git

    5.11. Treesitter

    • +

    6.11. Treesitter

    5.12. Visuals

    • +

    6.12. Visuals

    • indent-blankline for indentation guides
    • nvim-web-devicons plugins and colors for icons. Requires patched font @@ -100,29 +119,29 @@ $ nix run github:notashelf/neovim-flake#maximal
    nvim-scrollbar a scrollbar plugin for neovim
  • cellular-automaton a vanity to plugin to help you procrastinate more efficiently -
  • 5.13. Minimap

    • +

    6.13. Minimap

    • minimap.vim a blazing fast minimap plugin for neovim. Depends on code-minimap
    • codewindow.nvim a simple, configurable minimap plugin for neovim with no external dependencies -

    5.14. Notifications

    • +

    6.14. Notifications

    • nvim-notify simple notification plugin that also integrates with noice.nvim -

    5.15. Note-taking

    • +

    6.15. Note-taking

    • obsidian.nvim a neovim plugin that deeply integrates with the obsidian markdown editor. Also works standalone
    • orgmode a neovim replacement for emac orgmode -

    5.16. Session Management

    • +

    6.16. Session Management

    5.17. Snippets

    • +

    6.17. Snippets

    • vim-vsnip a snippet plugin that supports LSP/VSCode’s snippet format -

    5.18. Terminal

    • +

    6.18. Terminal

    • toggleterm.nvim a simple terminal plugin that opens a terminal buffer on demand -

    5.19. Themes

    • +

    6.19. Themes

    5.20. Utilities

    • +

    6.20. Utilities

    • telescope an extendable fuzzy finder of lists. Working ripgrep and fd
    • which-key a popup that displays possible keybindings of command being typed @@ -134,23 +153,23 @@ $ nix run github:notashelf/neovim-flake#maximal
    icon-picker.nvim an icon picker plugin that provides access to thousands of icons
  • venn.nvim draw venn diagrams inside neovim -
  • 5.21. UI Elements

    • +

    6.21. UI Elements

    • noice.nvim an experimental neovim plugin that replaces some UI components of neovim -

    5.22. Rich Presence

    • +

    6.22. Rich Presence

    5.23. Markdown

    • +

    6.23. Markdown

    • glow.nvim a markdown preview directly in neovim using glow -

    5.24. Rust

    • +

    6.24. Rust

    5.25. Tidal Cycles

    • +

    6.25. Tidal Cycles

    • vim-tidal for tidal cycles integration into vim -

    5.26. SQL

    • +

    6.26. SQL

    • sqls.nvim for useful actions that leverage sqls LSP -

    5.27. HTML

    • +

    6.27. HTML

    5.28. Dependencies

    • +

    6.28. Dependencies