blob: e17455926dcc4114c1651311019a1fce0a90a580 [file] [log] [blame]
{
pkgs,
system,
lib,
nixpkgs-minion,
home,
utils,
omnisharp-language-server,
...
}: {
programs.neovim = {
coc = {
enable = true;
settings = {
suggest.floatConfig = {
border = true;
rounded = true;
};
"suggest.noselect" = false;
"cSpell.checkOnlyEnabledfileTypes" = false;
"cSpell.dictionaryDefinitions" = [
{
name = "imperative";
path = "${home.home.homeDirectory}/.local/share/cspell/dictionary.txt";
}
];
"cSpell.dictionaries" = ["imperative"];
"git.enableGutters" = false; # We're using another plugin to do this
"rust-analyzer.server.path" = "${pkgs.rust-analyzer}/bin/rust-analyzer";
"omnisharp.path" = "${pkgs.omnisharp-roslyn}/bin/OmniSharp";
"markdownlint.config" = {
line-length = {
code_blocks = false;
tables = false;
};
};
languageserver = {
nix = {
command = "${pkgs.rnix-lsp}/bin/rnix-lsp";
filetypes = ["nix"];
};
};
};
};
plugins = with pkgs.vimPlugins; [
# Language servers
coc-tsserver
coc-eslint
coc-rust-analyzer
coc-json
coc-jest
coc-css
coc-go
coc-markdownlint
coc-texlab
# Spellchecker
nixpkgs-minion.legacyPackages.${system}.vimPlugins.coc-spell-checker
nixpkgs-minion.legacyPackages.${system}.vimPlugins.coc-omnisharp
# File explorer
coc-explorer
coc-git # TODO: Check if coc-git is still needed
# Snippet completion
ultisnips
vim-snippets
coc-ultisnips
# General utils
coc-pairs
];
extraConfig = lib.pipe [./keybinds.vim ./theme.vim] [
(map builtins.readFile)
(builtins.concatStringsSep "\n")
];
extraPackages = with pkgs; [
nodejs
rustc
go
rust-analyzer
texlab
omnisharp-roslyn
];
};
home.file = lib.pipe ./snippets [
builtins.readDir
builtins.attrNames
(map
(f: {
name = ".config/nvim/UltiSnips/${f}";
value = {
source = ./snippets + "/${f}";
target = ".config/nvim/UltiSnips/${f}";
};
}))
builtins.listToAttrs
lib.traceValSeq
] // {
".config/coc/placeholder".text = "";
};
}