Files

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