{
  pkgs,
  lib,
  config,
  ...
}: let
  cfg = config.soispha.programs.nvim;
in {
  home-manager.users.soispha.programs.nixvim = lib.mkIf cfg.enable {
    # TODO: package femaco through a module
    extraConfigLuaPost = ''
      ${lib.strings.fileContents ./lua/femaco.lua}
    '';
    extraPlugins = [
      pkgs.vimPlugins.nvim-FeMaco-lua
    ];
    keymaps = [
      {
        key = "<leader>cc";
        mode = "n";
        action.__raw = "require('femaco.edit').edit_code_block";
        options.desc = "edit a [c]ode blo[c]k with femaco";
      }
    ];
  };
}