{ config, lib, pkgs, ... }:
	let
		perlPkgs = with pkgs.perl532Packages; [
			Appcpanminus
			ArchiveZip
		];
	in {
		home.packages = with pkgs; [
			perl
			perl534Packages.Appcpanminus
                        perl534Packages.ArchiveZip
                        tree-sitter
                        languagetool
		];
		programs.neovim = {
			enable = true;
			#package = pkgs.neovim-nightly/*.neovim-nightly*//*.neovim*/;
			withNodeJs = true;
			withPython3 = true;
			withRuby = true;
			coc = {
                          enable = true;
                          settings = {
                              languageserver = {
                                nix = {
                                  command = "rnix-lsp";
                                  filetypes = [
                                    "nix"
                                  ];
                                };
                              };
                            };
                          };
			vimAlias = true;
			plugins = with pkgs.vimPlugins; [
				coc-nvim
                                coc-vimtex
                                coc-solargraph
                                vimtex
                                nvim-base16
				vim-nix
                                undotree
                                nvim-treesitter
                                ale
                                LanguageTool-nvim
                                vim-hexokinase
			];
			extraPackages = with pkgs;  [
				neovim-remote
                              ];
                        extraConfig = ''
                                lua <<EOF
                                  require'nvim-treesitter.configs'.setup {
                                    ensure_installed = "maintained",
                                    highlight = {
                                      enable = true,
                                      disable = {},
                                    },
                                  }
EOF
                                highlight TrailingWhitespace ctermbg=red guibg=red
                                call matchadd("TrailingWhitespace", '\v\s+$')
                                set spell
                                colorscheme base16-dracula
                                set spelllang=en
                                let g:languagetool_server_jar = '${pkgs.languagetool}/share/languagetool-server.jar'
                                let g:Hexokinase_highlighters = [ 'virtual' ]
			'';
		};
}