From 749c66d2b7bd55b45bc45fa2703f598e4f749753 Mon Sep 17 00:00:00 2001 From: Oliver Ladner Date: Fri, 23 Aug 2024 11:36:37 +0200 Subject: [PATCH] docs(README): update plugin/LSP list --- README.md | 66 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 5502e76..4ec0955 100644 --- a/README.md +++ b/README.md @@ -10,10 +10,10 @@ More on the "why's" are explained [in my blog post](https://lugh.ch/neovim-lesso ## Installation -1. Install Neovim 0.9.x -1. Install macOS/Windows dependencies documented in `init.lua` +1. Install Neovim 0.10. or newer +1. Install the dependencies documented in `init.lua` 1. Clone this Git repository to - 1. `~/.config/nvim` when on macOS/Linux + 1. `~/.config/nvim` on macOS or Linux 1. `c:\Users\foobar\AppData\Local\nvim` when on Windows ### Finishing touches @@ -21,39 +21,42 @@ More on the "why's" are explained [in my blog post](https://lugh.ch/neovim-lesso - Create a `$HOME/.ignore` file and add big, useless directories to it, so Telescope/ripgrep/fd can ignore those. My current list of files/directories is available in `lua/weeheavy/plugins/telescope-fzf-native.lua` -- Install Mason LSP/linter/formatters in the table down +- Install Mason LSP/linter/formatters from the table down below ## Speed +It's not too important. Still, I try to balance increasing startup time with +the usefullness of a plugin. + Output from lazy.nvim profiling (`:Lazy profile`) on a MacBook Pro M2 Max, -macOS 14. +macOS 14 on Neovim 0.10.1. ### Start and open init.lua -Around 20% of the plugins are lazy-loaded. +Around 10% of the plugins are lazy-loaded. ```bash - Startuptime: 81.44ms + Startuptime: 96.76ms Based on the actual CPU time of the Neovim process till UIEnter. This is more accurate than `nvim --startuptime`. - LazyStart 11.34ms - LazyDone 23.66ms (+12.32ms) - UIEnter 81.44ms (+57.78ms) + LazyStart 13.3ms + LazyDone 41.06ms (+27.76ms) + UIEnter 96.76ms (+55.71ms) ``` ### Starting with an empty file -Around 65% of the plugins are lazy-loaded. +Around 50% of the plugins are lazy-loaded. ```bash -Startuptime: 35.89ms +Startuptime: 49.82ms Based on the actual CPU time of the Neovim process till UIEnter. This is more accurate than `nvim --startuptime`. - LazyStart 11.55ms - LazyDone 24.74ms (+13.18ms) - UIEnter 35.89ms (+11.15ms) + LazyStart 13.75ms + LazyDone 40.39ms (+26.64ms) + UIEnter 49.82ms (+9.43ms) ``` ## Plugins @@ -67,10 +70,8 @@ This is more accurate than `nvim --startuptime`. | **nvim-treesitter-context** | Shows current line context | | | **nvim-treesitter-textobjects** | ? | | | **oil.nvim** | file explorer, (bulk file creation/rename) | | -| **nightfox.nvim** | Theme with treesitter/lsp support | | | **tokyonight.nvim** | Theme with treesitter/lsp support | | | **lualine.nvim** | Status line | | -| **nvim-web-devicons** | filetype glyphs (icons) for plugins | | | **gitsigns.nvim** | Git change indicator | | | **which-key.nvim** | Shows contextual key bindings | | | **vim-illuminate** | Highlight similar words (w/ LSP, Treesitter, regex) | | @@ -83,6 +84,11 @@ This is more accurate than `nvim --startuptime`. | **zen-mode.nvim** | Distraction-free coding for Neovim | | | **twilight.nvim** | Dims inactive portions of the code you're editing | | | **todo-comments.nvim** | Highlights `NOTE:`, `FIXME:` etc. and makes them findable via Telescope | | +| **mini.nvim** | I use the icons | | +| **flash.nvim** | Navigation and Treesitter selection w/ search labels | | +| **copilot.lua** | The better github.com/github/copilot.vim | | +| **copilot.nvim** | transforms zbirenbaum/copilot.lua into a cmp source. | | +| **nvim-lint** | Narrow-scope linter plugin to use via Neovim diagnostic framework | | ## Looks @@ -96,16 +102,22 @@ This lists the LSPs/linter/formatters I consider ok for my use cases. Tools may support many more languages than I document in the "Language" column. The formatters installed here are used via `conform.nvim`. -| Type | Language | Name | Benefits | Issues | -| --------- | -------------- | ---------------- | -------------------------- | ------------------------- | -| LSP | Markdown | **marksman** | Autocompletes links | n/a | -| LSP | Go | **gopls** | | n/a | -| LSP | Terraform | **terraform-ls** | | n/a | -| Linter | Ansible | **ansible-lint** | | yamllint vs. ansible-lint | -| Linter | YAML | **yamllint** | | yamllint vs. ansible-lint | -| Formatter | Markdown, YAML | **prettier** | Markdown table formatting! | n/a | -| Formatter | Lua | **stylua** | Formats Lua | n/a | -| Formatter | Bash | **shfmt** | Formats Bash scripts | n/a | +| Type | Language | Name | Benefits | Issues | +| --------- | ------------------ | --------------------------- | -------------------------------- | ----------------------------------------------------- | +| LSP | Markdown | **marksman** | Autocompletes links | | +| LSP | Go | **gopls** | | n/a | +| LSP | Terraform/OpenTofu | **terraform-ls** | | n/a | +| LSP | Terraform/OpenTofu | **tflint** | | n/a | +| LSP | Ansible | **ansible-language-server** | Ansible knowhow | Search _yaml.ansible_ in `prefs.lua` | +| LSP | Bash | **bash-language-server** | Incorporates ShellCheck | n/a | +| LSP | YAML | **yaml-language-server** | | n/a | +| Linter | Ansible | **ansible-lint** | | yamllint vs. ansible-lint | +| Linter | YAML | **yamllint** | | yamllint vs. ansible-lint | +| Linter | Terraform/OpenTofu | **tflint** | | | +| Linter | any | **woke** | Makes you aware of woke language | | +| Formatter | Markdown, YAML | **prettier** | Markdown table formatting! | n/a | +| Formatter | Lua | **stylua** | Formats Lua | n/a | +| Formatter | Bash | **shfmt** | Formats Bash scripts | n/a | ## Key bindings