{ lib, ... }: let inherit (lib.nixvim) mkRaw; in { plugins = { blink-cmp = { enable = true; settings = { completion.menu.border = "rounded"; signature = { enabled = true; trigger = { enabled = true; show_on_keyword = true; show_on_insert = true; }; window = { show_documentation = true; }; }; keymap = { "" = [ "select_next" "fallback" ]; "" = [ "select_prev" "fallback" ]; "" = [ "snippet_forward" "fallback" ]; "" = [ "snippet_backward" "fallback" ]; "" = [ "scroll_documentation_up" "fallback" ]; "" = [ "scroll_documentation_down" "fallback" ]; "" = [ ( # lua mkRaw '' function(cmp) local ok,_ = pcall(require, "copilot") if ok then vim.g.copilot_no_tab_map = true vim.g.copilot_assume_mapped = true vim.g.copilot_tab_fallback = "" local suggestion = require("copilot.suggestion") if suggestion.is_visible() then suggestion.accept() else if cmp.snippet_active() then return cmp.select_and_accept() else return cmp.accept() end end end end '' ) ]; }; }; }; schemastore = { enable = true; json = { enable = true; }; yaml = { enable = true; }; }; }; }