{
  pkgs,
  lib,
  ...
}: {
  programs.nixvim = {
    # 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";
      }
    ];
  };
}