aboutsummaryrefslogtreecommitdiff
path: root/fnl/nvrc/packs/blink-cmp.fnl
diff options
context:
space:
mode:
authorsefidel <contact@sefidel.net>2024-12-20 00:22:41 +0900
committersefidel <contact@sefidel.net>2024-12-20 00:22:41 +0900
commita6776b69d5082ab75ba6b1373b7cae6f4884f7b0 (patch)
tree5b77cabdd31805fa5880f09c42d1e35f1a1fe1fc /fnl/nvrc/packs/blink-cmp.fnl
parent0634cac078ff662efa4ae73bdf344ce3fa2a090d (diff)
downloadnvimrc-a6776b69d5082ab75ba6b1373b7cae6f4884f7b0.zip
feat(pack)!: replace nvim-cmp with blink.cmp
Diffstat (limited to 'fnl/nvrc/packs/blink-cmp.fnl')
-rw-r--r--fnl/nvrc/packs/blink-cmp.fnl65
1 files changed, 65 insertions, 0 deletions
diff --git a/fnl/nvrc/packs/blink-cmp.fnl b/fnl/nvrc/packs/blink-cmp.fnl
new file mode 100644
index 0000000..549eb6e
--- /dev/null
+++ b/fnl/nvrc/packs/blink-cmp.fnl
@@ -0,0 +1,65 @@
+(local {: setup} (require :blink.cmp))
+
+(setup {:keymap {:<Tab> [(fn [cmp]
+ (if (cmp.snippet_active) (cmp.accept)
+ (cmp.select_next))) "fallback"]
+ :<S-Tab> ["select_prev" "snippet_backward" "fallback"]
+ :<CR> ["accept" "fallback"]
+ :<Backspace> ["cancel" "fallback"]
+ :<C-Space> ["show" "show_documentation" "hide_documentation"]
+ :<C-e> ["hide" "fallback"]
+ :<C-d> ["scroll_documentation_down" "fallback"]
+ :<C-f> ["scroll_documentation_up" "fallback"]
+ :<A-1> [(fn [cmp] (cmp.accept {:index 1}))]
+ :<A-2> [(fn [cmp] (cmp.accept {:index 2}))]
+ :<A-3> [(fn [cmp] (cmp.accept {:index 3}))]
+ :<A-4> [(fn [cmp] (cmp.accept {:index 4}))]
+ :<A-5> [(fn [cmp] (cmp.accept {:index 5}))]
+ :<A-6> [(fn [cmp] (cmp.accept {:index 6}))]
+ :<A-7> [(fn [cmp] (cmp.accept {:index 7}))]
+ :<A-8> [(fn [cmp] (cmp.accept {:index 8}))]
+ :<A-9> [(fn [cmp] (cmp.accept {:index 9}))]
+ :<A-0> [(fn [cmp] (cmp.accept {:index 10}))]
+ :<A-=> ["select_next" "fallback"]
+ :<A--> ["select_prev" "fallback"]
+ :<Up> ["select_prev" "fallback"]
+ :<Down> ["select_next" "fallback"]}
+ :appearance {:kind_icons {:Text "(t)"
+ :Method "(f)"
+ :Function "(f)"
+ :Constructor "(C)"
+ :Field "(s)"
+ :Variable "(v)"
+ :Property "(p)"
+ :Class "(C)"
+ :Interface "(I)"
+ :Struct "(S)"
+ :Module "(M)"
+ :Unit "(U)"
+ :Value "(V)"
+ :Enum "(e)"
+ :EnumMember "(e)"
+ :Keyword "(k)"
+ :Constant "(c)"
+ :Snippet "(x)"
+ :Color "(t)"
+ :File "(t)"
+ :Reference "(*)"
+ :Folder "(t)"
+ :Event "(e)"
+ :Operator "(o)"
+ :TypeParameter "(k)"}}
+ :sources {:default [:lsp :path :snippets :buffer]}
+ :signature {:enabled true} ; experimental signature support
+ :fuzzy {:prebuilt_binaries {:download false}}
+ :completion {:list {:selection :auto_insert}
+ :menu {:draw {:treesitter [:lsp]
+ :columns [
+ {1 :item_idx}
+ {1 :label 2 :label_description :gap 1}
+ {1 :kind_icon :gap 1 2 :kind}
+ {1 :source_name}]
+ :components {:item_idx {:text (fn [ctx] (tostring ctx.idx))
+ :highlight :BlinkCmpItemIdx}
+ :label_description {:width {:max 10}}
+ :source_name {:text (fn [ctx] (.. "[" ctx.source_name "]"))}}}}}})