aboutsummaryrefslogtreecommitdiff
path: root/plugin-settings/nvim-cmp.lua
diff options
context:
space:
mode:
authorA Farzat <a@farzat.xyz>2024-10-01 23:23:09 +0900
committerA Farzat <a@farzat.xyz>2024-10-01 23:38:17 +0900
commit6504a7df972c7a937ab58b103edb8c8f3ebb594b (patch)
treecea196370c87763f8f5e545a6d65fa597f552baf /plugin-settings/nvim-cmp.lua
parent8eb1e973395e2231cc0843ce09e4d5d6410cec8d (diff)
downloadnvim-6504a7df972c7a937ab58b103edb8c8f3ebb594b.tar.gz
nvim-6504a7df972c7a937ab58b103edb8c8f3ebb594b.zip
Add more plugin settings
Diffstat (limited to 'plugin-settings/nvim-cmp.lua')
-rw-r--r--plugin-settings/nvim-cmp.lua56
1 files changed, 56 insertions, 0 deletions
diff --git a/plugin-settings/nvim-cmp.lua b/plugin-settings/nvim-cmp.lua
new file mode 100644
index 0000000..defc39e
--- /dev/null
+++ b/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" },
+ }),
+})