summaryrefslogtreecommitdiff
path: root/fnl/plugins/editor/cmp.fnl
diff options
context:
space:
mode:
authorGustaf Rydholm <gustaf.rydholm@gmail.com>2023-01-15 22:47:30 +0100
committerGustaf Rydholm <gustaf.rydholm@gmail.com>2023-01-15 22:47:30 +0100
commit10b175f252104458d7478d8a2822818850cfdf92 (patch)
treeee926d33bee6b4acfe45fce0dd8aa9e94f03f06a /fnl/plugins/editor/cmp.fnl
parent9d4f654187869f96e27ab54a88708aba5959f1ba (diff)
Refactor file structure
Diffstat (limited to 'fnl/plugins/editor/cmp.fnl')
-rw-r--r--fnl/plugins/editor/cmp.fnl65
1 files changed, 65 insertions, 0 deletions
diff --git a/fnl/plugins/editor/cmp.fnl b/fnl/plugins/editor/cmp.fnl
new file mode 100644
index 0000000..a062d92
--- /dev/null
+++ b/fnl/plugins/editor/cmp.fnl
@@ -0,0 +1,65 @@
+;; Configuration for completion plugin.
+
+(fn setup []
+ (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)})
+ :<CR> (cmp.mapping.confirm {:select true})
+ :<CR> (cmp.mapping.confirm {:select true})})
+ :sources [{:name :nvim_lsp}
+ {:name :nvim_lua}
+ {:name :luasnip}
+ {:name :spell}
+ {:name :orgmode}
+ {:name :buffer :keyword_length 4}
+ {:name :path :keyword_length 6}]
+ :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 [:hrsh7th/cmp-buffer
+ :onsails/lspkind-nvim
+ :hrsh7th/cmp-nvim-lsp
+ :hrsh7th/cmp-cmdline
+ :L3MON4D3/LuaSnip
+ :rafamadriz/friendly-snippets
+ :hrsh7th/cmp-path
+ :saadparwaiz1/cmp_luasnip
+ :f3fora/cmp-spell]
+ :event :InsertEnter
+ :config (fn []
+ (setup))}