diff options
Diffstat (limited to 'fnl/config')
-rw-r--r-- | fnl/config/cmp.fnl | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/fnl/config/cmp.fnl b/fnl/config/cmp.fnl new file mode 100644 index 0000000..a9163a1 --- /dev/null +++ b/fnl/config/cmp.fnl @@ -0,0 +1,47 @@ +;; Configuration for completion plugin. +(module config.cmp + {autoload {nvim aniseed.nvim + util util}}) + +(local luasnip (let [(ok? luasnip) util.load-plugin :luasnip] + (when ok? + ((require :luasnip/loaders/from_vscode).lazy_load) + luasnip))) + +(local lspkind (let [(ok? lspkind) util.load-plugin :lspkind] + (when ok? + lspkind))) + +(lspkind.init) + +(defn- snip [args] + (luasnip.lsp_expand args.body) + +(let [(ok? cmp) util.load-plugin :cmp] + (when ok? + (cmp.setup { + :snippet { + :expand snip} + :mapping { + "<C-k>" (cmp.mapping.select_prev_item) + "<C-j>" (cmp.mapping.select_next_item)} + :sources [ + {:name "nvim_lsp"} + {:name "nvim_lua"} + {:name "luasnip"} + {:name "buffer" :keyword_length 4} + {:name "path" :keyword_length 6}] + :formatting {:format (lspkind.cmp_format { + :with_text true + :menu { + :buffer "[Buf]" + :nvim_lsp "[LSP]" + :nvim_lua "[api]" + :path "[path]" + :luasnip "[Snip]" + }})} + :documentation { + :border [ "╭" "─" "╮" "│" "╯" "─" "╰" "│" ]} + :experimental { + :ghost_text false + :native_menu false}}))) |