neovim-flake/modules/assistant/tabnine/config.nix

55 lines
1.4 KiB
Nix
Raw Normal View History

{
config,
lib,
...
}: let
inherit (builtins) toJSON;
inherit (lib) mkIf mkMerge mkExprBinding boolToString nvim;
cfg = config.vim.assistant.tabnine;
in {
config = mkIf cfg.enable {
vim.startPlugins = ["tabnine-nvim"];
2023-04-22 16:06:09 +02:00
vim.maps.insert = mkMerge [
(mkExprBinding cfg.mappings.accept ''
function()
local state = require("tabnine.state")
local completion = require("tabnine.completion")
if not state.completions_cache then
return "${toJSON cfg.mappings.accept}"
2023-04-22 16:06:09 +02:00
end
vim.schedule(completion.accept)
end
'' "orzel")
(mkExprBinding cfg.mappings.dismiss ''
function()
local state = require("tabnine.state")
local completion = require("tabnine.completion")
if not state.completions_cache then
return "${toJSON cfg.mappings.dismiss}"
2023-04-22 16:06:09 +02:00
end
vim.schedule(function()
completion.clear()
state.completions_cache = nil
end)
end
'' "orzel")
];
vim.luaConfigRC.tabnine-nvim = nvim.dag.entryAnywhere ''
require('tabnine').setup({
disable_auto_comment = ${boolToString cfg.disable_auto_comment},
2023-04-22 16:06:09 +02:00
accept_keymap = null,
dismiss_keymap = null,
debounce_ms = ${cfg.debounce_ms},
2023-04-22 16:06:09 +02:00
exclude_filetypes = ${cfg.exclude_filetypes},
})
'';
};
}