## Install for Neovim with Nix

Supported operating systems:

### Install prerequisites

In order to install quick-lint-js' Nix package, you must first install Nix or NixOS.

Install and configure one of the following Neovim plugins:

- ALE - Asynchronous Lint Engine v2.1.1 or newer, or version v3.0.0 or newer
- coc.nvim - Conquer of Completion v0.0.80 or newer
- nvim-lspconfig (requires Neovim 0.5.0 or newer)

### Install quick-lint-js

Open a terminal, and run the following command:

>     nix-env -iA nixpkgs.quick-lint-js

If the above command fails with “error: attribute 'quick-lint-js' in selection path 'nixpkgs.quick-lint-js' not found”, your Nixpkgs is out of date. Either update Nixpkgs, or install from quick-lint-js' repository instead:

>     nix-env -f https://c.quick-lint-js.com/releases/2.2.0/source/quick-lint-js-2.2.0.tar.gz -iA quick-lint-js

### Install Neovim plugin

Install this plugin with your favorite Neovim packaging system:

- Neovim package (built into Neovim 0.5.0 and newer)
- dein.vim
- packer.nvim
- Vim-Plug

#### Install as a Neovim package

1. Download the quick-lint-js Neovim plugin.
2. Add `packloadall` to your `~/.vimrc` file if not already present.
3. Create the directory `~/.vim/pack/external/start/`.
4. Copy the extracted `quick-lint-js.vim` directory into the `~/.vim/pack/external/start/` directory.
5. Restart Neovim.

#### Install with dein.vim

This option requires dein.vim.

1. Add the following line to your `~/.config/nvim/init.vim` file between `call dein#begin(...)` and `call dein#end()`:

   >     call dein#add('quick-lint/quick-lint-js', {'rtp': 'plugin/vim/quick-lint-js.vim', 'rev': '2.2.0'})

2. Restart Neovim.
3. In Neovim, run `:call dein#install()`.

#### Install with packer.nvim

This option requires packer.nvim.

1. Add the following line to your `~/.config/nvim/lua/plugins.lua` file between `require('packer').startup(function()` and `end)`:

   >     use {'quick-lint/quick-lint-js', rtp = 'plugin/vim/quick-lint-js.vim', tag = '2.2.0', opt = true}

2. Restart Neovim.
3. In Neovim, run `:PackerSync`.

#### Install with Vim-Plug

This option requires Vim-Plug.

1. Add the following line to your `vimrc` file between `call plug#begin(...)` and `call plug#end()`:

   >     Plug 'quick-lint/quick-lint-js', {'rtp': 'plugin/vim/quick-lint-js.vim', 'tag': '2.2.0'}

2. Restart Neovim.
3. In Neovim, run `:PlugInstall`.

### Configure

Configure the Neovim plugin by opening Neovim and running `:help quick-lint-js`, or read the Neovim plugin docs online.

nvim-lspconfig users can add this line to their `init.lua` file:

>     require('lspconfig/quick_lint_js').setup {}