{ config, pkgs, lib, ... }: {
# mkAfter makes sure statusline setting is after nvim-nav.nix
programs.neovim.plugins = lib.mkAfter [pkgs.vimPlugins.plenary-nvim {
plugin = pkgs.vimPlugins.minuet-ai-nvim;
type = "lua";
config = /*lua*/ ''
require('minuet').setup {
-- Disable auto complete, only trigger minuet manually
blink = { enable_auto_complete = false },
-- FIM is usually better for completion;
-- use Claude here because MiniMax's Anthropic API works better.
provider = 'openai_fim_compatible',
provider_options = {
openai_fim_compatible = {
api_key = function() return '${config.ai.deepseek.api_key}' end,
api_key = 'DEEPSEEK_API_KEY',
name = 'deepseek',
optional = {
max_tokens = 256,
top_p = 0.9,
},
},
},
}
function update_minuet_statusline()
local minuet = require("minuet")
vim.o.statusline = string.gsub(vim.o.statusline, "[ᯤ]*$",
minuet.config.blink.enable_auto_complete and "ᯤ" or "")
end
vim.keymap.set({'n','i'}, '<S-A-a>', function()
local minuet = require("minuet")
minuet.config.blink.enable_auto_complete = not minuet.config.blink.enable_auto_complete
update_minuet_statusline()
end)
update_minuet_statusline()
'';
}];
}