summaryrefslogtreecommitdiff
path: root/fnl/plugins/cmp.fnl
diff options
context:
space:
mode:
authorGustaf Rydholm <gustaf.rydholm@gmail.com>2024-01-05 01:50:20 +0100
committerGustaf Rydholm <gustaf.rydholm@gmail.com>2024-01-05 01:50:20 +0100
commit2a94573f54c69a9af7536586ab2c03eb88bda5e7 (patch)
tree48e430773d56baef8c751fb8a6b4d76303b61636 /fnl/plugins/cmp.fnl
parent16198ca3bcd0ddd61f8d18280769c6f226b2b7ce (diff)
Refactor
Diffstat (limited to 'fnl/plugins/cmp.fnl')
-rw-r--r--fnl/plugins/cmp.fnl66
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}