blob: fc6f72d138dcc855d7f53328b039eefa1dec42af [file] [log] [blame]
Skyler Greya7feb6e2022-08-26 06:51:55 +01001{
2 pkgs,
3 lib,
4 ...
5}: {
6 programs.neovim = {
7 coc = {
8 enable = true;
9 settings = {
10 "suggest.noselect" = false;
11 "cSpell.checkOnlyEnabledfileTypes" = false;
12 "rust-analyzer.serverPath" = "${pkgs.rust-analyzer}/bin/rust-analyzer";
13 languageserver = {
14 nix = {
15 command = "${pkgs.rnix-lsp}/bin/rnix-lsp";
16 filetypes = ["nix"];
17 };
18 };
19 };
20 };
21 plugins = with pkgs.vimPlugins; [
22 # Language servers
23 coc-tsserver
24 coc-eslint
25 coc-rust-analyzer
26 coc-json
27 coc-jest
28 coc-css
29
30 # Spellchecker
31 coc-spell-checker # FIXME: Broken in upstream, needs an overlay
32
33 # File explorer
34 coc-explorer
35 coc-git # TODO: Check if coc-git is still needed
36
37 # Snippet completion
38 coc-snippets
39 vim-snippets
40 ];
41 extraConfig = lib.pipe [./keybinds.vim ./theme.vim] [
42 (map builtins.readFile)
43 (builtins.concatStringsSep "\n")
44 ];
45 extraPackages = [pkgs.nodejs pkgs.rustc];
46 };
47}