{ config, lib, pkgs, ... }:
let
  cfg = config.nixfiles.programs.neovim;
in
{
  options.nixfiles.programs.neovim.enable = lib.mkEnableOption "the Neovim configuration";
  config = lib.mkIf cfg.enable {
    programs.neovim = {
      enable = true;
      vimAlias = lib.mkDefault true;
      withPython3 = lib.mkDefault true;
      defaultEditor = lib.mkDefault true;
      extraPackages = with pkgs; [
        lua-language-server
        rust-analyzer
        vscode-langservers-extracted
        pyright
      ];
    };
  };
}