Skip to content

ismailshak/nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nvim

Neovim dashboard

More pics

Customized Wezterm - Modified Iceberg - Modified & nerd-font-patched Commit Mono

LSP progress spinner Git diff Autocomplete and diagnostics Terminal


Currently using the version specified in the .tool-versions file.

Using asdf as the neovim version manager and lazy.nvim as the plugin manager.

Setup

Following is executed from this repo's root directory.

Install the plugin

asdf plugin add https://github.com/richin13/asdf-neovim

Install the version in the file

asdf install

Set the version globally

asdf global neovim $(cat .tool-versions | awk '/neovim/ {print $2}')

Tools needed

mason.nvim will install LSPs, linters & formatters. Some tools are required for it to do so. Other tools are needed to enhance plugin capabilities.

Required

  • fzf
  • gcc or clang
  • make
  • node
  • python3
  • rg
  • wget
  • gh

Optional

  • bat
  • delta
  • fd

Language Support

By default, the following languages and file types will work out of the box

  • Bash
  • Dockerfile
  • JavaScript/TypeScript (+ HTML/CSS)
  • JSON
  • Lua
  • Markdown
  • YAML

Below is a list of expandable sections detailing what's needed in order to enable other supported languages

C/C++

Installer

Using mason.nvim, you can run the command :MasonInstall clangd clang-format codelldb.

Manual

Or using your system's package manager, install the following and make sure they're on your $PATH:

  • clangd
  • clang-format
  • codelldb (debugger, optional)
Go

Installer

Using mason.nvim, you can run the command :MasonInstall gopls goimports delve

Manual

Or install go using your method of choice. Then you'll need to install the following:

  • gopls (language server)
go install golang.org/x/tools/gopls@latest
  • goimports (formatter, same as gofmt but also organizes imports)
go install golang.org/x/tools/cmd/goimports@latest
  • delve (debugger, optional)
go install github.com/go-delve/delve/cmd/dlv@latest

Since $GOPATH should already be on your $PATH, no more configuration is needed

OCaml

Installer

Using mason.nvim, you can run the command :MasonInstall ocaml-lsp ocamlformat

Manual

Or using your system's package manager, install opam. Then run the following commands:

  • Initialize internals
opam init
  • Install LSP and formatter
opam install -y ocaml-lsp-server ocamlformat

The path to packages should be automatically added to your $PATH, so no more configuration needed

Rust

Installer

Using mason.nvim, you'll just install a debugger (optional). :MasonInstall codelldb

Manual

Install rustup using the method of your choosing. Then run the following commands:

  • Add rust_analyzer (language server)
rustup component add rust-analyzer
  • Add rustfmt (formatter)
rustup component add rustfmt
  • Add clippy (linter)
rustup component add clippy

The rustup installation should automatically handle updating your $PATH, so no more configuration needed