I think it may be a little easier if you use home-manager, which has programs.neovim.extraPackages.
Although I believe you could simply also add these to your user packages if you’re willing to make them available everywhere in your user’s environment.
users.users.your-username-goes-here.packages = with pkgs; [
# Language servers
rnix-lsp
haskell-language-server
sumneko-lua-language-server
elmPackages.elm-language-server
];