{ inputs, config, lib, pkgs, ... }: let cfg = config.szpont.hm.editors.nvf; in { options.szpont.hm.editors.nvf.enable = lib.mkEnableOption "enables nvf configuration framework"; config = lib.mkIf cfg.enable { programs.nvf = { enable = true; settings.vim = { package = inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default; viAlias = true; vimAlias = true; theme = { enable = true; name = "gruvbox"; style = "dark"; }; statusline = { lualine = { enable = true; theme = "gruvbox-material"; }; }; autopairs.nvim-autopairs.enable = true; lsp.enable = true; languages = { nix = { enable = true; format = { enable = true; type = "alejandra"; }; }; clang.enable = true; }; }; }; }; }