{
  pkgs,
  config,
  lib,
  ...
}:
with lib;
with builtins; let
  cfg = config.vim.assistant.tabnine;
in {
  config = mkIf cfg.enable {
    vim.startPlugins = ["tabnine-nvim"];

    vim.luaConfigRC.tabnine-nvim = nvim.dag.entryAnywhere ''
      require('tabnine').setup({
        disable_auto_comment = ${boolToString cfg.disable_auto_comment},
        accept_keymap = ${cfg.accept_keymap},
        dismiss_keymap = ${cfg.dismiss_keymap},
        debounce_ms = ${cfg.debounce_ms},
      execlude_filetypes = ${cfg.execlude_filetypes},
      })
    '';
  };
}