helm/home/profiles/nvim/config/fnl/conf/plugins/cmp.fnl
Anish Lakhwara 10f6614348 almost at parity now, can dog food
Needs:
- surrond?
- diagnostics icons
- cmp still seems to shit the bed sometimes
- lspsaga breadcrumbs on lualine
- more which-key config!!
- tests on svelte / web dev
2024-08-26 23:09:08 -07:00

32 lines
1.5 KiB
Fennel

(local cmp (require :cmp))
(fn has-words-before []
(let [(line col) (unpack (vim.api.nvim_win_get_cursor 0))
cur-line (. (vim.api.nvim_buf_get_lines 0
(- line 1)
line
true
1))]
(and (not= col 0)
(= (: (: cur-line :sub col col) :match "%s")
nil))))
(let [lspkind (require :lspkind)]
(cmp.setup {:formatting {:format lspkind.cmp_format
:show_labelDetails true}
;:snippet {:expand (fn [args]
; (let [luasnip (require :luasnip)]
; (luasnip.lsp_expand args.body))
:sources [{:name "buffer"} {:name "nvim_lsp"}
{:name "look"} {:name "path"}
{:name "calc"} {:name "spell"}
{:name "tags"}]
:mapping {"<C-d>" (cmp.mapping.scroll_docs -4)
"<C-u>" (cmp.mapping.scroll_docs 4)
"<Up>" (cmp.mapping (cmp.mapping.select_prev_item) [:i :c])
"<Down>" (cmp.mapping (cmp.mapping.select_next_item) [:i :c])
"<C-g>" (cmp.mapping.close)
"<CR>" (cmp.mapping.confirm {:select true})}}))
; "<Tab>" (cmp.mapping tab [:i :s])
; "<S-Tab>" (cmp.mapping stab [:i :s])}}))