aboutsummaryrefslogtreecommitdiff
path: root/fnl/nvrc
diff options
context:
space:
mode:
Diffstat (limited to 'fnl/nvrc')
-rw-r--r--fnl/nvrc/pack.fnl6
-rw-r--r--fnl/nvrc/packs/blink-cmp.fnl65
-rw-r--r--fnl/nvrc/packs/cmp.fnl79
3 files changed, 67 insertions, 83 deletions
diff --git a/fnl/nvrc/pack.fnl b/fnl/nvrc/pack.fnl
index bd7d0ae..9427842 100644
--- a/fnl/nvrc/pack.fnl
+++ b/fnl/nvrc/pack.fnl
@@ -44,10 +44,8 @@
(pack! :tpope/vim-eunuch)
(pack! :tpope/vim-sleuth)
-(pack! :hrsh7th/nvim-cmp {:req :cmp
- :event [:InsertEnter :CmdlineEnter]
- :dependencies [(pack :lukas-reineke/cmp-under-comparator)
- (pack :hrsh7th/cmp-nvim-lsp {:after :nvim-cmp})]})
+(pack! :Saghen/blink.cmp {:req :blink-cmp
+ :build "nix run .#build-plugin"})
(pack! :stevearc/conform.nvim {:req :conform :cmd [:ConformInfo :ConformFormat] :keys ["gq"]})
(pack! :numToStr/Comment.nvim {:init :Comment :lazy true})
(pack! :ibhagwan/fzf-lua {:req :fzf :lazy true})
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 "]"))}}}}}})
diff --git a/fnl/nvrc/packs/cmp.fnl b/fnl/nvrc/packs/cmp.fnl
deleted file mode 100644
index 6fea0d1..0000000
--- a/fnl/nvrc/packs/cmp.fnl
+++ /dev/null
@@ -1,79 +0,0 @@
-(import-macros {: set!} :nvrc.macro.set)
-(local {: setup
- : mapping
- :config {: compare : disable}
- : ConfirmBehavior
- : visible
- : select_next_item
- : select_prev_item} (require :cmp))
-(local under-compare (require :cmp-under-comparator))
-(local clangd-score (require :clangd_extensions.cmp_scores))
-
-(set! completeopt "menuone,noselect")
-
-(local icons {:Text "(t)"
- :Method "(m)"
- :Function "(f)"
- :Constructor "(C)"
- :Field "(s)"
- :Variable "(v)"
- :Class "(C)"
- :Interface "(i)"
- :Module "(m)"
- :Property "(p)"
- :Unit "(u)"
- :Value "(v)"
- :Enum "(e)"
- :EnumMember "(e)"
- :Keyword "(k)"
- :Snippet "(S)"
- :Color "(R)"
- :Reference "(r)"
- :Constant "(c)"
- :Struct "(s)"
- :Event "(e)"
- :Operator "(o)"
- :TypeParameter "(T)"
- :File "(F)"
- :Folder "(F)"
- })
-
-(setup {:snippet {:expand (fn [args]
- (vim.snippet.expand args.body))}
- :formatting {:format (fn [entry vim-item]
- (set vim-item.kind
- (string.format "%s %s"
- (. icons vim-item.kind)
- vim-item.kind))
- (set vim-item.menu
- (. {:nvim_lsp "[LSP]"}
- entry.source.name))
- vim-item)}
- :mapping {:<C-p> (mapping.select_prev_item)
- :<C-n> (mapping.select_next_item)
- :<C-d> (mapping.scroll_docs (- 4))
- :<C-f> (mapping.scroll_docs 4)
- :<C-Space> (mapping.complete)
- :<C-e> (mapping.close)
- :<up> disable
- :<down> disable
- :<CR> (mapping (mapping.confirm {:behavior ConfirmBehavior.Replace
- :select false}) [:i :c])
- :<Tab> (mapping {:i (fn [fallback]
- (if (visible) (select_next_item)
- (vim.snippet.active {:direction 1}) (vim.snippet.jump 1)
- (fallback)))})
- :<S-Tab> (mapping {:i (fn [fallback]
- (if (visible) (select_next_item)
- (vim.snippet.active {:direction -1}) (vim.snippet.jump -1)
- (fallback)))})}
- :sources [{:name :nvim_lsp}]
- :sorting {:comparators [compare.offset
- compare.exact
- clangd-score
- compare.score
- under-compare.under
- compare.kind
- compare.sort_text
- compare.length
- compare.order]}})