Dependencies - NormalNvim/NormalNvim GitHub Wiki

You can check if you have all the required dependencies with the command :checkhealth base

ranger         # Necessary for Rnvimr.
pynvim         # Necessary for Rnvimr.
yarn           # Necessary for Markmap.
rust           # Necessary for any dependency that requires rust.
fd             # Necessary for Spectre.
delta          # Necessary for telescope-undo.
grcov          # Necessary for test coverage.
jest           # Necessary for neotest-jest
pytest         # Necessary for neotest-python.
cargo-nextest  # Nesessary for neotest-rust
dotnet-runtime # Necessary for neotest-dotnet

The next installation commands include all this + compiler.nvim dependencies + dooku.nvim dependencies.

Arch linux

If you are on arch linux, you can just copy paste this on the terminal

paru -S --needed "python" "python-pynvim" "fd" "git-delta" "grcov" "rustup" "yarn" "python-pytest" "mingw-w64-gcc" "dotnet-runtime" "dotnet-sdk" "aspnet-runtime" "mono" "jdk-openjdk" "dart" "kotlin" "elixir" "npm" "nodejs" "typescript" "make" "go" "nasm" "r" "nuitka" "python" "ruby" "perl" "lua" "pyinstaller" "swift-bin" "doxygen"; yarn global add "jest" "jsdoc" "typedoc"; cargo install "cargo-nextest"; go install "golang.org/x/tools/cmd/godoc@latest"

Ubuntu / Windows WLS

If you are on Ubuntu/Windows WLS, you can just copy paste this on the terminal

sudo apt update; sudo apt install --install-if-missing "yarn" "ranger" "rust-fd-find" "python-pynvim" "python-pytest" "delta" "rust-grcov" "rustup" "mingw-w64" "dotnet8" "monodevelop" "java-common" "nasm" "r-base" "rustc" "golang" "python" "ruby" "perl" "lua5.3" "kotlin" "elixir" "make" "nodejs" "npm" "node-typescript" "nuitka"; pip install "pyinstaller"; yarn global add "jest" "jsdoc" "typedoc"; go install "golang.org/x/tools/cmd/godoc@latest"; sudo snap install --classic "flutter"

MacOS

If you are on MacOS, you can just copy paste this on the terminal

sudo brew install "ranger" "fd" "git-delta" "rustup-init" "yarn" "mingw-w64" "dotnet" "mono" "openjdk" "dart-sdk" "kotlin" "elixir" "node" "typescript" "make" "rust" "go" "nasm" "r" "ruby" "perl" "lua" "swift" "pyinstaller" "doxygen"; sudo brew install --cask "dotnet-sdk" "flutter"; pip install "pynvim" "pytest" "Nuitka"; yarn add global "jest" "jsdoc" "typedoc"; cargo install "cargo-nextest" "grcov"; go install "golang.org/x/tools/cmd/godoc@latest"

Termux

If you are on Termux, you can just copy paste this on the terminal

pkg update; pkg install "tur-repo"; pkg install "ranger" "python" "fd" "git-delta" "yarn" "mono" "openjdk-17" "dart" "kotlin" "elixir" "nodejs" "make" "rust" "golang" "nasm" "python" "ruby" "perl" "liblua52" "swift" "binutils-libs" "gcc-default" "doxygen"; pip install "pynvim" "pytest" "Nuitka"; yarn add global "jest" "typescript" "jsdoc" "typedoc"; cargo install "cargo-nextest" "git-delta" "grcov"; go install "golang.org/x/tools/cmd/godoc@latest"

You will have to manually install flutter, r, and dotnet as there is currently no termux package for them.

Fedora

sudo dnf install "rust-fd-find" "rust-git-delta" "rustup" "python3-pytest" "mingw64-gcc" "binutils" "dotnet6.0" "dotnet-runtime-6.0" "dotnet-sdk-6.0" "aspnetcore-runtime-6.0" "mono-complete" "java-21-openjdk" "elixir" "nodejs" "npm" "typescript" "make" "golang" "nasm" "R-rlang" "ruby" "perl" "lua" "swift-lang"; pip install "pynvim" "pytest" "Nuitka" "pyinstaller"; npm install -g "yarn" "jest" "typescript" "jsdoc" "typedoc"; cargo install "cargo-nextest" "grcov"; go install "golang.org/x/tools/cmd/godoc@latest"

Other distros

  • Copy/paste the arch dependencies into chatgpt.
  • Then write: "How can I install these dependencies on <distro>?".

Mason packages

Inside neovim press : to enter a command, and copy paste this

:MasonInstall lua-language-server prettierd typescript-language-server css-lsp asm-lsp netcoredbg json-lsp codelldb firefox-debug-adapter chrome-debug-adapter rust-analyzer clangd omnisharp bash-language-server shellcheck jedi-language-server pylama flake8 autopep8 autoflake debugpy ruby-lsp taplo ktlint yaml-language-server neocmakelsp angular-language-server ansible-language-server dockerfile-language-server docker-compose-language-service helm-ls fsautocomplete fantomas perlnavigator kotlin-language-server svelte-language-server phpactor stylua csharpier bash-debug-adapter asmfmt java-test google-java-format dart-debug-adapter gopls golangci-lint gofumpt golangci-lint-langserver kotlin-debug-adapter rubocop beautysh gersemi cmakelint markuplint php-cs-fixer phpstan delve matlab-language-server zls elixir-ls php-debug-adapter

This enables LSP, formatters, linters, and debuggers for the 13 most common programming languages. The download is 2GB. Expect it to take a while.

Treesitter parsers

Inside neovim press : to enter a command, and copy paste

:TSInstall all

This enable the new neovim motions and verbs.

Tell me more

  • Don't worry if :LSPInfo don't show a formatter enabled for all languages. none-ls can format most languages without installing a mason adapter. We only install formatters for the cases where is necessary.
⚠️ **GitHub.com Fallback** ⚠️