blob: e9544a6d8553db034982afa308b64bfde6fe4753 [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
Skyler Greyb8300e72022-09-04 23:06:24 +010029 coc-markdownlint
Skyler Greya7feb6e2022-08-26 06:51:55 +010030
31 # Spellchecker
32 coc-spell-checker # FIXME: Broken in upstream, needs an overlay
33
34 # File explorer
35 coc-explorer
36 coc-git # TODO: Check if coc-git is still needed
37
38 # Snippet completion
39 coc-snippets
40 vim-snippets
41 ];
42 extraConfig = lib.pipe [./keybinds.vim ./theme.vim] [
43 (map builtins.readFile)
44 (builtins.concatStringsSep "\n")
45 ];
46 extraPackages = [pkgs.nodejs pkgs.rustc];
47 };
48}