docs(README): update plugin/LSP list
This commit is contained in:
parent
aad6eb6725
commit
749c66d2b7
1 changed files with 39 additions and 27 deletions
66
README.md
66
README.md
|
|
@ -10,10 +10,10 @@ More on the "why's" are explained [in my blog post](https://lugh.ch/neovim-lesso
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
1. Install Neovim 0.9.x
|
1. Install Neovim 0.10. or newer
|
||||||
1. Install macOS/Windows dependencies documented in `init.lua`
|
1. Install the dependencies documented in `init.lua`
|
||||||
1. Clone this Git repository to
|
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
|
1. `c:\Users\foobar\AppData\Local\nvim` when on Windows
|
||||||
|
|
||||||
### Finishing touches
|
### 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
|
- 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
|
Telescope/ripgrep/fd can ignore those. My current list of files/directories is
|
||||||
available in `lua/weeheavy/plugins/telescope-fzf-native.lua`
|
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
|
## 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,
|
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
|
### Start and open init.lua
|
||||||
|
|
||||||
Around 20% of the plugins are lazy-loaded.
|
Around 10% of the plugins are lazy-loaded.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
Startuptime: 81.44ms
|
Startuptime: 96.76ms
|
||||||
|
|
||||||
Based on the actual CPU time of the Neovim process till UIEnter.
|
Based on the actual CPU time of the Neovim process till UIEnter.
|
||||||
This is more accurate than `nvim --startuptime`.
|
This is more accurate than `nvim --startuptime`.
|
||||||
LazyStart 11.34ms
|
LazyStart 13.3ms
|
||||||
LazyDone 23.66ms (+12.32ms)
|
LazyDone 41.06ms (+27.76ms)
|
||||||
UIEnter 81.44ms (+57.78ms)
|
UIEnter 96.76ms (+55.71ms)
|
||||||
```
|
```
|
||||||
|
|
||||||
### Starting with an empty file
|
### Starting with an empty file
|
||||||
|
|
||||||
Around 65% of the plugins are lazy-loaded.
|
Around 50% of the plugins are lazy-loaded.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
Startuptime: 35.89ms
|
Startuptime: 49.82ms
|
||||||
|
|
||||||
Based on the actual CPU time of the Neovim process till UIEnter.
|
Based on the actual CPU time of the Neovim process till UIEnter.
|
||||||
This is more accurate than `nvim --startuptime`.
|
This is more accurate than `nvim --startuptime`.
|
||||||
LazyStart 11.55ms
|
LazyStart 13.75ms
|
||||||
LazyDone 24.74ms (+13.18ms)
|
LazyDone 40.39ms (+26.64ms)
|
||||||
UIEnter 35.89ms (+11.15ms)
|
UIEnter 49.82ms (+9.43ms)
|
||||||
```
|
```
|
||||||
|
|
||||||
## Plugins
|
## Plugins
|
||||||
|
|
@ -67,10 +70,8 @@ This is more accurate than `nvim --startuptime`.
|
||||||
| **nvim-treesitter-context** | Shows current line context | <https://github.com/nvim-treesitter/nvim-treesitter-context> |
|
| **nvim-treesitter-context** | Shows current line context | <https://github.com/nvim-treesitter/nvim-treesitter-context> |
|
||||||
| **nvim-treesitter-textobjects** | ? | <https://github.com/nvim-treesitter/nvim-treesitter-textobjects> |
|
| **nvim-treesitter-textobjects** | ? | <https://github.com/nvim-treesitter/nvim-treesitter-textobjects> |
|
||||||
| **oil.nvim** | file explorer, (bulk file creation/rename) | <https://github.com/stevearc/oil.nvim> |
|
| **oil.nvim** | file explorer, (bulk file creation/rename) | <https://github.com/stevearc/oil.nvim> |
|
||||||
| **nightfox.nvim** | Theme with treesitter/lsp support | <https://github.com/EdenEast/nightfox.nvim> |
|
|
||||||
| **tokyonight.nvim** | Theme with treesitter/lsp support | <https://github.com/folke/tokyonight.nvim> |
|
| **tokyonight.nvim** | Theme with treesitter/lsp support | <https://github.com/folke/tokyonight.nvim> |
|
||||||
| **lualine.nvim** | Status line | <https://github.com/nvim-lualine/lualine.nvim> |
|
| **lualine.nvim** | Status line | <https://github.com/nvim-lualine/lualine.nvim> |
|
||||||
| **nvim-web-devicons** | filetype glyphs (icons) for plugins | <https://github.com/nvim-tree/nvim-web-devicons> |
|
|
||||||
| **gitsigns.nvim** | Git change indicator | <https://github.com/lewis6991/gitsigns.nvim> |
|
| **gitsigns.nvim** | Git change indicator | <https://github.com/lewis6991/gitsigns.nvim> |
|
||||||
| **which-key.nvim** | Shows contextual key bindings | <https://github.com/folke/which-key.nvim> |
|
| **which-key.nvim** | Shows contextual key bindings | <https://github.com/folke/which-key.nvim> |
|
||||||
| **vim-illuminate** | Highlight similar words (w/ LSP, Treesitter, regex) | <https://github.com/RRethy/vim-illuminate> |
|
| **vim-illuminate** | Highlight similar words (w/ LSP, Treesitter, regex) | <https://github.com/RRethy/vim-illuminate> |
|
||||||
|
|
@ -83,6 +84,11 @@ This is more accurate than `nvim --startuptime`.
|
||||||
| **zen-mode.nvim** | Distraction-free coding for Neovim | <https://github.com/folke/zen-mode.nvim> |
|
| **zen-mode.nvim** | Distraction-free coding for Neovim | <https://github.com/folke/zen-mode.nvim> |
|
||||||
| **twilight.nvim** | Dims inactive portions of the code you're editing | <https://github.com/folke/twilight.nvim> |
|
| **twilight.nvim** | Dims inactive portions of the code you're editing | <https://github.com/folke/twilight.nvim> |
|
||||||
| **todo-comments.nvim** | Highlights `NOTE:`, `FIXME:` etc. and makes them findable via Telescope | <https://github.com/folke/todo-comments.nvim> |
|
| **todo-comments.nvim** | Highlights `NOTE:`, `FIXME:` etc. and makes them findable via Telescope | <https://github.com/folke/todo-comments.nvim> |
|
||||||
|
| **mini.nvim** | I use the icons | <https://github.com/echasnovski/mini.nvim> |
|
||||||
|
| **flash.nvim** | Navigation and Treesitter selection w/ search labels | <https://github.com/folke/flash.nvim> |
|
||||||
|
| **copilot.lua** | The better github.com/github/copilot.vim | <https://github.com/zbirenbaum/copilot.lua> |
|
||||||
|
| **copilot.nvim** | transforms zbirenbaum/copilot.lua into a cmp source. | <https://github.com/zbirenbaum/copilot-cmp> |
|
||||||
|
| **nvim-lint** | Narrow-scope linter plugin to use via Neovim diagnostic framework | <https://github.com/mfussenegger/nvim-lint> |
|
||||||
|
|
||||||
## Looks
|
## 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
|
support many more languages than I document in the "Language" column. The
|
||||||
formatters installed here are used via `conform.nvim`.
|
formatters installed here are used via `conform.nvim`.
|
||||||
|
|
||||||
| Type | Language | Name | Benefits | Issues |
|
| Type | Language | Name | Benefits | Issues |
|
||||||
| --------- | -------------- | ---------------- | -------------------------- | ------------------------- |
|
| --------- | ------------------ | --------------------------- | -------------------------------- | ----------------------------------------------------- |
|
||||||
| LSP | Markdown | **marksman** | Autocompletes links | n/a |
|
| LSP | Markdown | **marksman** | Autocompletes links | <https://github.com/artempyanykh/marksman/issues/327> |
|
||||||
| LSP | Go | **gopls** | | n/a |
|
| LSP | Go | **gopls** | | n/a |
|
||||||
| LSP | Terraform | **terraform-ls** | | n/a |
|
| LSP | Terraform/OpenTofu | **terraform-ls** | | n/a |
|
||||||
| Linter | Ansible | **ansible-lint** | | yamllint vs. ansible-lint |
|
| LSP | Terraform/OpenTofu | **tflint** | | n/a |
|
||||||
| Linter | YAML | **yamllint** | | yamllint vs. ansible-lint |
|
| LSP | Ansible | **ansible-language-server** | Ansible knowhow | Search _yaml.ansible_ in `prefs.lua` |
|
||||||
| Formatter | Markdown, YAML | **prettier** | Markdown table formatting! | n/a |
|
| LSP | Bash | **bash-language-server** | Incorporates ShellCheck | n/a |
|
||||||
| Formatter | Lua | **stylua** | Formats Lua | n/a |
|
| LSP | YAML | **yaml-language-server** | | n/a |
|
||||||
| Formatter | Bash | **shfmt** | Formats Bash scripts | 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
|
## Key bindings
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue