summaryrefslogtreecommitdiff
path: root/.config/nvim/plugin-settings/nvim-cmp.lua
diff options
context:
space:
mode:
authorA Farzat <a@farzat.xyz>2024-11-06 09:09:37 +0900
committerA Farzat <a@farzat.xyz>2024-11-13 09:13:20 +0900
commit7ec1fa7385c1b88a2efdad72c805b254c52084bd (patch)
tree2917de2bbd3552adca5dbe4989460f4b25672595 /.config/nvim/plugin-settings/nvim-cmp.lua
parentcb5affa0e11c200f175e26ced4f2866aa916d2c9 (diff)
downloaddotfiles-7ec1fa7385c1b88a2efdad72c805b254c52084bd.tar.gz
dotfiles-7ec1fa7385c1b88a2efdad72c805b254c52084bd.zip
Remove nvim submodule
Nvim config will be included as bare files instead of a submodule. The nvim config repo will still exist, but the content will be used by yadm without the repo itself.
Diffstat (limited to '.config/nvim/plugin-settings/nvim-cmp.lua')
-rw-r--r--.config/nvim/plugin-settings/nvim-cmp.lua56
1 files changed, 56 insertions, 0 deletions
diff --git a/.config/nvim/plugin-settings/nvim-cmp.lua b/.config/nvim/plugin-settings/nvim-cmp.lua
new file mode 100644
index 0000000..defc39e
--- /dev/null
+++ b/.config/nvim/plugin-settings/nvim-cmp.lua
@@ -0,0 +1,56 @@
+local cmp = require("cmp")
+local luasnip = require("luasnip")
+
+cmp.setup({
+ enabled = true,
+ snippet = {
+ expand = function(args) -- REQUIRED - you must specify a snippet engine
+ require("luasnip").lsp_expand(args.body) -- For `luasnip` users.
+ end,
+ },
+ mapping = cmp.mapping.preset.insert({
+ ["<C-b>"] = cmp.mapping.scroll_docs(-4),
+ ["<C-f>"] = cmp.mapping.scroll_docs(4),
+ ["<C-Space>"] = cmp.mapping.complete(),
+ ["<C-e>"] = cmp.mapping.abort(),
+ ["<C-n>"] = cmp.mapping.select_next_item(),
+ ["<C-p>"] = cmp.mapping.select_prev_item(),
+ ["<C-l>"] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items.
+ ["<C-k>"] = cmp.mapping(function()
+ if luasnip.jumpable(1) then
+ luasnip.jump(1)
+ end
+ end, { "i", "s" }),
+ ["<C-j>"] = cmp.mapping(function()
+ if luasnip.jumpable(-1) then
+ luasnip.jump(-1)
+ end
+ end, { "i", "s" }),
+ }),
+ sources = cmp.config.sources({
+ { name = "nvim_lsp" },
+ { name = "luasnip" },
+ { name = "nvim_lua" },
+ }, {
+ { name = "buffer" },
+ { name = "path" },
+ }),
+})
+
+-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
+cmp.setup.cmdline({ "/", "?" }, {
+ mapping = cmp.mapping.preset.cmdline(),
+ sources = {
+ { name = "buffer" },
+ },
+})
+
+-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore).
+cmp.setup.cmdline(":", {
+ mapping = cmp.mapping.preset.cmdline(),
+ sources = cmp.config.sources({
+ { name = "path" },
+ }, {
+ { name = "cmdline" },
+ }),
+})