(import-macros {: set!} :nvrc.macro.set) (local cmp (require :cmp)) (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)"}) (cmp.setup { :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 {: (cmp.mapping.select_prev_item) : (cmp.mapping.select_next_item) : (cmp.mapping.scroll_docs (- 4)) : (cmp.mapping.scroll_docs 4) : (cmp.mapping.complete) : (cmp.mapping.close) : (cmp.mapping.confirm {:behavior cmp.ConfirmBehavior.Replace :select true}) :Tab (fn [fallback] (if (cmp.visible) (cmp.select_next_item)"") (fallback)) : (fn [fallback] (if (cmp.visible) (cmp.select_next_item)"") (fallback))} :sources {1 {:name :nvim_lsp}}})