diff options
author | Gustaf Rydholm <gustaf.rydholm@gmail.com> | 2024-01-05 01:50:20 +0100 |
---|---|---|
committer | Gustaf Rydholm <gustaf.rydholm@gmail.com> | 2024-01-05 01:50:20 +0100 |
commit | 2a94573f54c69a9af7536586ab2c03eb88bda5e7 (patch) | |
tree | 48e430773d56baef8c751fb8a6b4d76303b61636 /fnl/plugins/cmp.fnl | |
parent | 16198ca3bcd0ddd61f8d18280769c6f226b2b7ce (diff) |
Refactor
Diffstat (limited to 'fnl/plugins/cmp.fnl')
-rw-r--r-- | fnl/plugins/cmp.fnl | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/fnl/plugins/cmp.fnl b/fnl/plugins/cmp.fnl new file mode 100644 index 0000000..ca09329 --- /dev/null +++ b/fnl/plugins/cmp.fnl @@ -0,0 +1,66 @@ +;; Configuration for completion plugin. + +(local dependencies [:hrsh7th/cmp-buffer + :onsails/lspkind-nvim + :hrsh7th/cmp-nvim-lsp + :hrsh7th/cmp-cmdline + :petertriho/cmp-git + :L3MON4D3/LuaSnip + :rafamadriz/friendly-snippets + :hrsh7th/cmp-path + :saadparwaiz1/cmp_luasnip + :f3fora/cmp-spell]) + +(fn config [] + (let [cmp (require :cmp) + lspkind (require :lspkind) + luasnip (require :luasnip) + luasnip-vscode (require :luasnip.loaders.from_vscode)] + (luasnip-vscode.lazy_load) + (lspkind.init) + (cmp.setup {:snippet {:expand (fn [args] + (luasnip.lsp_expand args.body))} + :completion {:completopt "menu,menuone,noinsert"} + :mapping (cmp.mapping.preset.insert {:<C-k> (cmp.mapping.select_prev_item) + :<C-j> (cmp.mapping.select_next_item) + :<C-b> (cmp.mapping (cmp.mapping.scroll_docs -1) + [:i + :c]) + :<C-f> (cmp.mapping (cmp.mapping.scroll_docs 1) + [:i + :c]) + :<C-space> (cmp.mapping (cmp.mapping.complete) + [:i + :c]) + :<C-e> (cmp.mapping {:i (cmp.mapping.abort) + :c (cmp.mapping.close)}) + :<tab> (cmp.mapping.confirm {:select true})}) + :sources [{:name :nvim_lsp} + {:name :nvim_lua} + {:name :luasnip} + {:name :spell} + {:name :orgmode} + {:name :neorg} + {:name :buffer :keyword_length 4} + {:name :path :keyword_length 6} + {:name :vim-dadbod-completion} + {:name :git}] + :formatting {:format (lspkind.cmp_format {:with_text true + :menu {:buffer "" + :nvim_lsp "" + :nvim_lua "" + :path "" + :luasnip ""}})} + :window {:documentation {:border ["╭" + "─" + "╮" + "│" + "╯" + "─" + "╰" + "│"]}} + :confirm_opts {:behavior cmp.ConfirmBehavior.Replace + :select false} + :experimental {:ghost_text false :native_menu false}}))) + +{1 :hrsh7th/nvim-cmp : dependencies :event :InsertEnter : config} |