69 lines
1.8 KiB
Lua
69 lines
1.8 KiB
Lua
local M = {}
|
|
|
|
local function safe_setup(label, fn)
|
|
local ok, err = pcall(fn)
|
|
if not ok then
|
|
vim.schedule(function()
|
|
vim.notify("Skipping " .. label .. ": " .. tostring(err), vim.log.levels.WARN)
|
|
end)
|
|
end
|
|
end
|
|
|
|
local function setup_flash(keys)
|
|
require("flash").setup({
|
|
modes = {
|
|
search = { enabled = keys.search ~= false },
|
|
char = { enabled = keys.char == true },
|
|
},
|
|
})
|
|
|
|
if keys.jump_key then
|
|
vim.keymap.set({ "n", "x", "o" }, keys.jump_key, function()
|
|
require("flash").jump()
|
|
end, { desc = "Flash" })
|
|
end
|
|
|
|
if keys.toggle_search_key then
|
|
vim.keymap.set({ "n", "x", "o" }, keys.toggle_search_key, function()
|
|
require("flash").toggle()
|
|
end, { desc = "Toggle Flash Search" })
|
|
end
|
|
|
|
if keys.treesitter_key then
|
|
vim.keymap.set({ "n", "x", "o" }, keys.treesitter_key, function()
|
|
require("flash").treesitter()
|
|
end, { desc = "Flash Treesitter" })
|
|
end
|
|
end
|
|
|
|
function M.setup()
|
|
local plugins_ready = require("plugins.pack").add({
|
|
"folke/flash.nvim",
|
|
{ src = "kylechui/nvim-surround", version = vim.version.range("3") },
|
|
})
|
|
|
|
if not plugins_ready then
|
|
return
|
|
end
|
|
|
|
local vscode = require("vscode")
|
|
vim.notify = vscode.notify
|
|
|
|
safe_setup("flash", function()
|
|
setup_flash({
|
|
toggle_search_key = "<leader><leader>/",
|
|
treesitter_key = "<leader>ct",
|
|
search = true,
|
|
char = false,
|
|
})
|
|
end)
|
|
safe_setup("nvim-surround", function()
|
|
require("nvim-surround").setup({})
|
|
end)
|
|
safe_setup("plugins.vscode.actions", function()
|
|
require("plugins.vscode.actions").setup(vscode)
|
|
end)
|
|
end
|
|
|
|
return M
|