(local {: setup} (require :blink.cmp)) (setup {:keymap {:<Tab> [(fn [cmp] (if (cmp.snippet_active) (cmp.accept) (cmp.select_next))) "fallback"] :<S-Tab> ["select_prev" "snippet_backward" "fallback"] :<CR> ["accept" "fallback"] :<Backspace> ["cancel" "fallback"] :<C-Space> ["show" "show_documentation" "hide_documentation"] :<C-e> ["hide" "fallback"] :<C-d> ["scroll_documentation_down" "fallback"] :<C-f> ["scroll_documentation_up" "fallback"] :<A-1> [(fn [cmp] (cmp.accept {:index 1}))] :<A-2> [(fn [cmp] (cmp.accept {:index 2}))] :<A-3> [(fn [cmp] (cmp.accept {:index 3}))] :<A-4> [(fn [cmp] (cmp.accept {:index 4}))] :<A-5> [(fn [cmp] (cmp.accept {:index 5}))] :<A-6> [(fn [cmp] (cmp.accept {:index 6}))] :<A-7> [(fn [cmp] (cmp.accept {:index 7}))] :<A-8> [(fn [cmp] (cmp.accept {:index 8}))] :<A-9> [(fn [cmp] (cmp.accept {:index 9}))] :<A-0> [(fn [cmp] (cmp.accept {:index 10}))] :<A-=> ["select_next" "fallback"] :<A--> ["select_prev" "fallback"] :<Up> ["select_prev" "fallback"] :<Down> ["select_next" "fallback"]} :appearance {:kind_icons {:Text "(t)" :Method "(f)" :Function "(f)" :Constructor "(C)" :Field "(s)" :Variable "(v)" :Property "(p)" :Class "(C)" :Interface "(I)" :Struct "(S)" :Module "(M)" :Unit "(U)" :Value "(V)" :Enum "(e)" :EnumMember "(e)" :Keyword "(k)" :Constant "(c)" :Snippet "(x)" :Color "(t)" :File "(t)" :Reference "(*)" :Folder "(t)" :Event "(e)" :Operator "(o)" :TypeParameter "(k)"}} :sources {:default [:lsp :path :snippets :buffer]} :signature {:enabled true} ; experimental signature support :fuzzy {:prebuilt_binaries {:download false}} :completion {:list {:selection :auto_insert} :menu {:draw {:treesitter [:lsp] :columns [ {1 :item_idx} {1 :label 2 :label_description} {1 :kind_icon :gap 1 2 :kind} {1 :source_name}] :components {:item_idx {:text (fn [ctx] (tostring ctx.idx)) :width {:max 2} :highlight :BlinkCmpItemIdx} :label_description {:width {:max 10}} :source_name {:text (fn [ctx] (.. "[" ctx.source_name "]"))}}}}}})