|
@@ -1,3 +1,41 @@
|
|
|
|
|
+-- return {
|
|
|
|
|
+-- { "hrsh7th/nvim-cmp", enabled = true },
|
|
|
|
|
+-- {
|
|
|
|
|
+-- "saghen/blink.cmp",
|
|
|
|
|
+-- lazy = false, -- lazy loading handled internally
|
|
|
|
|
+-- -- optional: provides snippets for the snippet source
|
|
|
|
|
+-- dependencies = "rafamadriz/friendly-snippets",
|
|
|
|
|
+--
|
|
|
|
|
+-- -- use a release tag to download pre-built binaries
|
|
|
|
|
+-- version = "v0.*",
|
|
|
|
|
+-- -- OR build from source, requires nightly: https://rust-lang.github.io/rustup/concepts/channels.html#working-with-nightly-rust
|
|
|
|
|
+-- -- build = 'cargo build --release',
|
|
|
|
|
+-- -- On musl libc based systems you need to add this flag
|
|
|
|
|
+-- -- build = 'RUSTFLAGS="-C target-feature=-crt-static" cargo build --release',
|
|
|
|
|
+--
|
|
|
|
|
+-- opts = {
|
|
|
|
|
+-- highlight = {
|
|
|
|
|
+-- -- sets the fallback highlight groups to nvim-cmp's highlight groups
|
|
|
|
|
+-- -- useful for when your theme doesn't support blink.cmp
|
|
|
|
|
+-- -- will be removed in a future release, assuming themes add support
|
|
|
|
|
+-- use_nvim_cmp_as_default = true,
|
|
|
|
|
+-- },
|
|
|
|
|
+-- keymap = {
|
|
|
|
|
+--
|
|
|
|
|
+-- }
|
|
|
|
|
+-- -- set to 'mono' for 'Nerd Font Mono' or 'normal' for 'Nerd Font'
|
|
|
|
|
+-- -- adjusts spacing to ensure icons are aligned
|
|
|
|
|
+-- nerd_font_variant = "normal",
|
|
|
|
|
+--
|
|
|
|
|
+-- -- experimental auto-brackets support
|
|
|
|
|
+-- accept = { auto_brackets = { enabled = true } },
|
|
|
|
|
+--
|
|
|
|
|
+-- -- experimental signature help support
|
|
|
|
|
+-- trigger = { signature_help = { enabled = true } }
|
|
|
|
|
+-- },
|
|
|
|
|
+-- },
|
|
|
|
|
+-- { "hrsh7th/cmp-nvim-lsp", lazy = false },
|
|
|
|
|
+-- }
|
|
|
return {
|
|
return {
|
|
|
{ "hrsh7th/cmp-nvim-lsp" },
|
|
{ "hrsh7th/cmp-nvim-lsp" },
|
|
|
{
|
|
{
|
|
@@ -10,10 +48,35 @@ return {
|
|
|
},
|
|
},
|
|
|
{
|
|
{
|
|
|
"hrsh7th/nvim-cmp",
|
|
"hrsh7th/nvim-cmp",
|
|
|
- dependencies = { "hrsh7th/cmp-buffer", "f3fora/cmp-spell", "hrsh7th/cmp-path", "hrsh7th/cmp-emoji", "R-nvim/cmp-r", "hrsh7th/cmp-nvim-lsp-signature-help" },
|
|
|
|
|
|
|
+ dependencies = {
|
|
|
|
|
+ "hrsh7th/cmp-buffer",
|
|
|
|
|
+ "f3fora/cmp-spell",
|
|
|
|
|
+ "hrsh7th/cmp-path",
|
|
|
|
|
+ "hrsh7th/cmp-emoji",
|
|
|
|
|
+ "R-nvim/cmp-r",
|
|
|
|
|
+ "hrsh7th/cmp-nvim-lsp-signature-help",
|
|
|
|
|
+ "onsails/lspkind.nvim",
|
|
|
|
|
+ },
|
|
|
config = function()
|
|
config = function()
|
|
|
local cmp = require("cmp")
|
|
local cmp = require("cmp")
|
|
|
local luasnip = require("luasnip")
|
|
local luasnip = require("luasnip")
|
|
|
|
|
+ local lspkind = require("lspkind")
|
|
|
|
|
+ -- gray
|
|
|
|
|
+ vim.api.nvim_set_hl(0, "CmpItemAbbrDeprecated", { bg = "NONE", strikethrough = true, fg = "#808080" })
|
|
|
|
|
+ -- blue
|
|
|
|
|
+ vim.api.nvim_set_hl(0, "CmpItemAbbrMatch", { bg = "NONE", fg = "#569CD6" })
|
|
|
|
|
+ vim.api.nvim_set_hl(0, "CmpItemAbbrMatchFuzzy", { link = "CmpIntemAbbrMatch" })
|
|
|
|
|
+ -- light blue
|
|
|
|
|
+ vim.api.nvim_set_hl(0, "CmpItemKindVariable", { bg = "NONE", fg = "#9CDCFE" })
|
|
|
|
|
+ vim.api.nvim_set_hl(0, "CmpItemKindInterface", { link = "CmpItemKindVariable" })
|
|
|
|
|
+ vim.api.nvim_set_hl(0, "CmpItemKindText", { link = "CmpItemKindVariable" })
|
|
|
|
|
+ -- pink
|
|
|
|
|
+ vim.api.nvim_set_hl(0, "CmpItemKindFunction", { bg = "NONE", fg = "#C586C0" })
|
|
|
|
|
+ vim.api.nvim_set_hl(0, "CmpItemKindMethod", { link = "CmpItemKindFunction" })
|
|
|
|
|
+ -- front
|
|
|
|
|
+ vim.api.nvim_set_hl(0, "CmpItemKindKeyword", { bg = "NONE", fg = "#D4D4D4" })
|
|
|
|
|
+ vim.api.nvim_set_hl(0, "CmpItemKindProperty", { link = "CmpItemKindKeyword" })
|
|
|
|
|
+ vim.api.nvim_set_hl(0, "CmpItemKindUnit", { link = "CmpItemKindKeyword" })
|
|
|
|
|
|
|
|
require("luasnip.loaders.from_vscode").lazy_load()
|
|
require("luasnip.loaders.from_vscode").lazy_load()
|
|
|
|
|
|
|
@@ -28,10 +91,24 @@ return {
|
|
|
-- vim.snippet.expand(args.body) -- For native neovim snippets (Neovim v0.10+)
|
|
-- vim.snippet.expand(args.body) -- For native neovim snippets (Neovim v0.10+)
|
|
|
end,
|
|
end,
|
|
|
},
|
|
},
|
|
|
|
|
+ view = {
|
|
|
|
|
+ entries = "custom", -- can be "custom", "wildmenu" or "native"
|
|
|
|
|
+ },
|
|
|
window = {
|
|
window = {
|
|
|
|
|
+ documentation = {
|
|
|
|
|
+ -- max_height = math.floor(WIDE_HEIGHT * (WIDE_HEIGHT / vim.o.lines)),
|
|
|
|
|
+ -- max_width = math.floor((WIDE_HEIGHT * 2) * (vim.o.columns / (WIDE_HEIGHT * 2 * 16 / 9))),
|
|
|
|
|
+ border = { "", "", "", " ", "", "", "", " " },
|
|
|
|
|
+ winhighlight = "Normal:Pmenu",
|
|
|
|
|
+ winblend = vim.o.pumblend,
|
|
|
|
|
+ },
|
|
|
-- completion = cmp.config.window.bordered(),
|
|
-- completion = cmp.config.window.bordered(),
|
|
|
-- documentation = cmp.config.window.bordered(),
|
|
-- documentation = cmp.config.window.bordered(),
|
|
|
},
|
|
},
|
|
|
|
|
+ formatting = {
|
|
|
|
|
+ format = lspkind.cmp_format(),
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
mapping = cmp.mapping.preset.insert({
|
|
mapping = cmp.mapping.preset.insert({
|
|
|
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
|
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
|
|
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
|
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
|
@@ -75,10 +152,10 @@ return {
|
|
|
{ name = "nvim_lsp" },
|
|
{ name = "nvim_lsp" },
|
|
|
{ name = "buffer" },
|
|
{ name = "buffer" },
|
|
|
{ name = "luasnip" }, -- For luasnip users.
|
|
{ name = "luasnip" }, -- For luasnip users.
|
|
|
- { name = 'emoji' },
|
|
|
|
|
- { name = "crates" }, -- cf rust
|
|
|
|
|
- { name = 'cmp_r' },
|
|
|
|
|
- { name = 'nvim_lsp_signature_help' },
|
|
|
|
|
|
|
+ { name = "emoji" },
|
|
|
|
|
+ { name = "crates" }, -- cf rust
|
|
|
|
|
+ { name = "cmp_r" },
|
|
|
|
|
+ { name = "nvim_lsp_signature_help" },
|
|
|
{
|
|
{
|
|
|
name = "spell",
|
|
name = "spell",
|
|
|
option = {
|
|
option = {
|
|
@@ -101,17 +178,6 @@ return {
|
|
|
{ name = "buffer" },
|
|
{ name = "buffer" },
|
|
|
}),
|
|
}),
|
|
|
})
|
|
})
|
|
|
-
|
|
|
|
|
- -- To use git you need to install the plugin petertriho/cmp-git and uncomment lines below
|
|
|
|
|
- -- Set configuration for specific filetype.
|
|
|
|
|
- --[[ cmp.setup.filetype('gitcommit', {
|
|
|
|
|
- sources = cmp.config.sources({
|
|
|
|
|
- { name = 'git' },
|
|
|
|
|
- }, {
|
|
|
|
|
- { name = 'buffer' },
|
|
|
|
|
- })
|
|
|
|
|
- })
|
|
|
|
|
- require("cmp_git").setup() ]]
|
|
|
|
|
--
|
|
--
|
|
|
|
|
|
|
|
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|
|
-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore).
|