add: migrate wilder to cmp cmdline

This commit is contained in:
asep.komarudin 2024-04-19 21:16:27 +07:00
parent f00438c822
commit 1b1f8b9967
2 changed files with 294 additions and 163 deletions

View file

@ -5,157 +5,157 @@ local use_noice = true
-- is_neovide = true -- is_neovide = true
-- use_noice = false -- use_noice = false
-- end -- end
vim.opt.lazyredraw = is_neovide -- vim.opt.lazyredraw = is_neovide
return { return {
{ "gelguy/wilder.nvim", enabled = not use_noice }, -- { "gelguy/wilder.nvim", enabled = not use_noice },
{ -- {
"folke/noice.nvim", -- "folke/noice.nvim",
lazy = true, -- lazy = true,
enabled = use_noice, -- enabled = use_noice,
dependencies = { -- dependencies = {
{ "MunifTanjim/nui.nvim", enabled = use_noice }, -- { "MunifTanjim/nui.nvim", enabled = use_noice },
}, -- },
-- event = "BufWinEnter", -- -- event = "BufWinEnter",
event = "VeryLazy", -- event = "VeryLazy",
opts = { -- opts = {
messages = { -- messages = {
enabled = false, -- enabled = false,
}, -- },
notify = { -- notify = {
enabled = false, -- enabled = false,
}, -- },
lsp = { -- lsp = {
progress = { -- progress = {
enabled = false, -- enabled = false,
}, -- },
hover = { -- hover = {
enabled = false, -- enabled = false,
}, -- },
signature = { -- signature = {
enabled = false, -- enabled = false,
}, -- },
}, -- },
}, -- },
init = function() -- init = function()
-- load if mode command mode -- -- load if mode command mode
-- vim.api.nvim_create_autocmd("CmdlineEnter", { -- -- vim.api.nvim_create_autocmd("CmdlineEnter", {
-- callback = function() -- -- callback = function()
-- require("lazy").load({ plugins = { "noice.nvim" } }) -- -- require("lazy").load({ plugins = { "noice.nvim" } })
-- end, -- -- end,
-- }) -- -- })
-- require("lazy").load({ plugins = { "noice.nvim" } }) -- -- require("lazy").load({ plugins = { "noice.nvim" } })
end, -- end,
keys = { -- keys = {
{ -- {
"<S-Enter>", -- "<S-Enter>",
function() -- function()
require("noice").redirect(vim.fn.getcmdline()) -- require("noice").redirect(vim.fn.getcmdline())
end, -- end,
mode = "c", -- mode = "c",
desc = "Redirect Cmdline", -- desc = "Redirect Cmdline",
}, -- },
{ -- {
"<leader>snl", -- "<leader>snl",
function() -- function()
require("noice").cmd("last") -- require("noice").cmd("last")
end, -- end,
desc = "Noice Last Message", -- desc = "Noice Last Message",
}, -- },
{ -- {
"<leader>snh", -- "<leader>snh",
function() -- function()
require("noice").cmd("history") -- require("noice").cmd("history")
end, -- end,
desc = "Noice History", -- desc = "Noice History",
}, -- },
{ -- {
"<leader>sna", -- "<leader>sna",
function() -- function()
require("noice").cmd("all") -- require("noice").cmd("all")
end, -- end,
desc = "Noice All", -- desc = "Noice All",
}, -- },
{ -- {
"<c-f>", -- "<c-f>",
function() -- function()
if not require("noice.lsp").scroll(4) then -- if not require("noice.lsp").scroll(4) then
return "<c-f>" -- return "<c-f>"
end -- end
end, -- end,
silent = true, -- silent = true,
expr = true, -- expr = true,
desc = "Scroll forward", -- desc = "Scroll forward",
mode = { "i", "n", "s" }, -- mode = { "i", "n", "s" },
}, -- },
{ -- {
"<c-b>", -- "<c-b>",
function() -- function()
if not require("noice.lsp").scroll(-4) then -- if not require("noice.lsp").scroll(-4) then
return "<c-b>" -- return "<c-b>"
end -- end
end, -- end,
silent = true, -- silent = true,
expr = true, -- expr = true,
desc = "Scroll backward", -- desc = "Scroll backward",
mode = { "i", "n", "s" }, -- mode = { "i", "n", "s" },
}, -- },
}, -- },
}, -- },
{ -- {
"hrsh7th/cmp-cmdline", -- "hrsh7th/cmp-cmdline",
event = "VeryLazy", -- event = "VeryLazy",
enabled = use_noice, -- enabled = use_noice,
init = function() -- init = function()
-- load if mode command mode -- -- load if mode command mode
-- vim.api.nvim_create_autocmd("CmdlineEnter", { -- -- vim.api.nvim_create_autocmd("CmdlineEnter", {
-- callback = function() -- -- callback = function()
-- require("lazy").load({ plugins = { "cmp-cmdline" } }) -- -- require("lazy").load({ plugins = { "cmp-cmdline" } })
-- end, -- -- end,
-- }) -- -- })
end, -- end,
config = function() -- config = function()
local cmp = require("cmp") -- local cmp = require("cmp")
local mapping = { -- local mapping = {
["<CR>"] = cmp.mapping.confirm({ select = true }), -- ["<CR>"] = cmp.mapping.confirm({ select = true }),
["<Up>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }), -- ["<Up>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }),
["<S-Tab>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }), -- ["<S-Tab>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }),
["<Down>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }), -- ["<Down>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }),
["<Tab>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }), -- ["<Tab>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }),
} -- }
--
-- Use buffer source for `/`. -- -- Use buffer source for `/`.
cmp.setup.cmdline("/", { -- cmp.setup.cmdline("/", {
preselect = "none", -- preselect = "none",
completion = { -- completion = {
completeopt = "menu,preview,menuone,noselect", -- completeopt = "menu,preview,menuone,noselect",
}, -- },
mapping = mapping, -- mapping = mapping,
sources = { -- sources = {
{ name = "buffer" }, -- { name = "buffer" },
}, -- },
experimental = { -- experimental = {
ghost_text = true, -- ghost_text = true,
native_menu = false, -- native_menu = false,
}, -- },
}) -- })
--
-- Use cmdline & path source for ':'. -- -- Use cmdline & path source for ':'.
cmp.setup.cmdline(":", { -- cmp.setup.cmdline(":", {
preselect = "none", -- preselect = "none",
completion = { -- completion = {
completeopt = "menu,preview,menuone,noselect", -- completeopt = "menu,preview,menuone,noselect",
}, -- },
mapping = mapping, -- mapping = mapping,
sources = cmp.config.sources({ -- sources = cmp.config.sources({
{ name = "path" }, -- { name = "path" },
}, { -- }, {
{ name = "cmdline" }, -- { name = "cmdline" },
}), -- }),
experimental = { -- experimental = {
ghost_text = true, -- ghost_text = true,
native_menu = false, -- native_menu = false,
}, -- },
}) -- })
end, -- end,
}, -- },
} }

View file

@ -1,20 +1,151 @@
return { return {
-- for auto complate commond mode -- for auto complate commond mode
-- {
-- "gelguy/wilder.nvim",
-- lazy = true,
-- event = "VeryLazy",
-- config = function()
-- local wilder = require("wilder")
-- wilder.setup({ modes = { ":", "/", "?" } })
-- wilder.set_option(
-- "renderer",
-- wilder.popupmenu_renderer({
-- highlighter = wilder.basic_highlighter(),
-- left = { " ", wilder.popupmenu_devicons() },
-- right = { " ", wilder.popupmenu_scrollbar() },
-- })
-- )
-- end,
-- },
{ {
"gelguy/wilder.nvim", "folke/noice.nvim",
lazy = true, lazy = true,
dependencies = {
{ "MunifTanjim/nui.nvim" },
},
-- event = "BufWinEnter",
event = "VeryLazy",
opts = {
messages = {
enabled = false,
},
notify = {
enabled = false,
},
lsp = {
progress = {
enabled = false,
},
hover = {
enabled = false,
},
signature = {
enabled = false,
},
},
},
keys = {
{
"<S-Enter>",
function()
require("noice").redirect(vim.fn.getcmdline())
end,
mode = "c",
desc = "Redirect Cmdline",
},
{
"<leader>snl",
function()
require("noice").cmd("last")
end,
desc = "Noice Last Message",
},
{
"<leader>snh",
function()
require("noice").cmd("history")
end,
desc = "Noice History",
},
{
"<leader>sna",
function()
require("noice").cmd("all")
end,
desc = "Noice All",
},
{
"<c-f>",
function()
if not require("noice.lsp").scroll(4) then
return "<c-f>"
end
end,
silent = true,
expr = true,
desc = "Scroll forward",
mode = { "i", "n", "s" },
},
{
"<c-b>",
function()
if not require("noice.lsp").scroll(-4) then
return "<c-b>"
end
end,
silent = true,
expr = true,
desc = "Scroll backward",
mode = { "i", "n", "s" },
},
},
},
{
"hrsh7th/cmp-cmdline",
event = "VeryLazy", event = "VeryLazy",
config = function() config = function()
local wilder = require("wilder") local cmp = require("cmp")
wilder.setup({ modes = { ":", "/", "?" } }) local mapping = {
wilder.set_option( ["<CR>"] = cmp.mapping.confirm({ select = true }),
"renderer", ["<Up>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }),
wilder.popupmenu_renderer({ ["<S-Tab>"] = cmp.mapping(cmp.mapping.select_prev_item(), { "i", "c" }),
highlighter = wilder.basic_highlighter(), ["<Down>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }),
left = { " ", wilder.popupmenu_devicons() }, ["<Tab>"] = cmp.mapping(cmp.mapping.select_next_item(), { "i", "c" }),
right = { " ", wilder.popupmenu_scrollbar() }, }
})
) -- Use buffer source for `/`.
cmp.setup.cmdline("/", {
preselect = "none",
completion = {
completeopt = "menu,preview,menuone,noselect",
},
mapping = mapping,
sources = {
{ name = "buffer" },
},
experimental = {
ghost_text = true,
native_menu = false,
},
})
-- Use cmdline & path source for ':'.
cmp.setup.cmdline(":", {
preselect = "none",
completion = {
completeopt = "menu,preview,menuone,noselect",
},
mapping = mapping,
sources = cmp.config.sources({
{ name = "path" },
}, {
{ name = "cmdline" },
}),
experimental = {
ghost_text = true,
native_menu = false,
},
})
end, end,
}, },
} }