/nvim-ide

Personal IDE config for Neovim

Primary LanguageLuaGNU General Public License v3.0GPL-3.0

My Personal IDE config for Neovim

IT Man - Talk #33 NeoVim as IDE [Vietnamese]

Install Neovim

The easy way is using MordechaiHadad/bob: A version manager for neovim.

bob install stable
bob use stable

Install the config

Make sure to remove or move your current nvim directory

git clone https://github.com/jellydn/nvim-ide.git ~/.config/nvim

Run nvim and wait for the plugins to be installed

NOTE Checkout this file for some predefined keymaps: keymaps

Get healthy

Open nvim and enter the following:

:checkhealth

You'll probably notice you don't have support for copy/paste also that python and node haven't been setup

So let's fix that

First we'll fix copy/paste

  • On mac pbcopy should be builtin

  • On Ubuntu

    sudo apt install xsel # for X11
    sudo apt install wl-clipboard # for wayland

Next we need to install python support (node is optional)

  • Neovim python support

    pip install pynvim
  • Neovim node support

    npm i -g neovim

We will also need ripgrep for Telescope to work:

  • Ripgrep

    sudo apt install ripgrep

NOTE make sure you have node installed, I recommend a node manager like fnm.

Fonts

I recommend using the following repo to get a "Nerd Font" (Font that supports icons)

getnf

Configuration

LSP

To add a new LSP

First Enter:

:Mason

and press i on the Language Server you wish to install

Next you will need to add the server to this list: servers

Note: Builtin LSP doesn't contain all lsps from nvim-lspconfig.

If you want to install any from there, for example terraform_lsp(which adds more functionality than terraformls, like complete resource listing),

  1. You can add the lsp name in mason lsp block
-- lua/usr/lsp/mason.lua
local servers = {
	"sumneko_lua",
	"cssls",
	"html",
	"tsserver",
	"pyright",
	"bashls",
	"jsonls",
	"yamlls",
  "terraform_lsp" -- New LSP
}
  1. Manually install the binary of the lsp and put it in your path by downloading the binary or through your package manager. For terraform_lsp example

Formatters and linters

Make sure the formatter or linter is installed and add it to this setup function: null-ls

NOTE Some are already setup as examples, remove them if you want

Plugins

You can install new plugins here: lazy


Plugins