(import-macros {: set!} :nvrc.macro.set) (local {: setup : mapping :config {: compare : disable} : ConfirmBehavior : visible : select_next_item : select_prev_item} (require :cmp)) (local under-compare (require :cmp-under-comparator)) (local clangd-score (require :clangd_extensions.cmp_scores)) (set! completeopt "menuone,noselect") (local icons {:Text "(t)" :Method "(m)" :Function "(f)" :Constructor "(cs)" :Field "(s)" :Variable "(v)" :Class "(c)" :Interface "(i)" :Module "(m)" :Property "(p)" :Unit "(u)" :Value "(v)" :Enum "(e)" :Keyword "(k)" :Snippet "(sn)" :Color "(co)" :File "(fi)" :Reference "(r)" :Folder "(fl)" :EnumMember "(em)" :Constant "(cn)" :Struct "(s)" :Event "(ev)" :Operator "(op)" :TypeParameter "(tp)"}) (setup {:snippet {:expand (fn [args] (vim.snippet.expand args.body))} :formatting {:format (fn [entry vim-item] (set vim-item.kind (string.format "%s %s" (. icons vim-item.kind) vim-item.kind)) (set vim-item.menu (. {:nvim_lsp "[LSP]"} entry.source.name)) vim-item)} :mapping {: (mapping.select_prev_item) : (mapping.select_next_item) : (mapping.scroll_docs (- 4)) : (mapping.scroll_docs 4) : (mapping.complete) : (mapping.close) : disable : disable : (mapping (mapping.confirm {:behavior ConfirmBehavior.Replace :select false}) [:i :c]) : (mapping {:i (fn [fallback] (if (visible) (select_next_item) (vim.snippet.active {:direction 1}) (vim.snippet.jump 1) (fallback)))}) : (mapping {:i (fn [fallback] (if (visible) (select_next_item) (vim.snippet.active {:direction -1}) (vim.snippet.jump -1) (fallback)))})} :sources [{:name :nvim_lsp} {:name :nvim_lsp_signature_help}] :sorting {:comparators [compare.offset compare.exact clangd-score compare.score under-compare.under compare.kind compare.sort_text compare.length compare.order]}})