{ config , lib , pkgs , ... }: { programs.neovim = { enable = true; vimAlias = true; vimdiffAlias = true; withNodeJs = true; plugins = with pkgs.vimPlugins; [ commentary coc-git coc-json coc-tabnine coc-yaml vim-surround ]; extraLuaConfig = builtins.readFile ../nvim/init.lua; coc = { enable = true; settings = { "json.enable" = true; "suggest.enablePreview" = true; "coc.preferences.formatOnSaveFiletypes" = [ "nix" ]; "nil.formatting.command" = "nixpkgs-fmt"; tabnine = { binary_path = "${pkgs.tabnine}/bin/TabNine"; }; semantictokens = { filetypes = [ "nix" ]; }; languageserver = { nix = { command = "${pkgs.nil}/bin/nil"; filetypes = [ "nix" ]; }; }; }; }; }; }