107 lines
3.0 KiB
Lua
107 lines
3.0 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",
|
|
"folke/which-key.nvim",
|
|
"kylechui/nvim-surround",
|
|
"lewis6991/gitsigns.nvim",
|
|
"nvim-lualine/lualine.nvim",
|
|
"nvim-tree/nvim-tree.lua",
|
|
"nvim-tree/nvim-web-devicons",
|
|
"nvim-treesitter/nvim-treesitter",
|
|
"nvim-treesitter/nvim-treesitter-textobjects",
|
|
"yorickpeterse/nvim-window",
|
|
})
|
|
|
|
vim.opt.completeopt = { "menu", "menuone", "noselect" }
|
|
vim.opt.mouse = "a"
|
|
vim.opt.number = true
|
|
vim.opt.relativenumber = true
|
|
vim.opt.cursorline = true
|
|
vim.opt.splitbelow = true
|
|
vim.opt.splitright = true
|
|
vim.opt.termguicolors = true
|
|
vim.opt.showmode = false
|
|
vim.opt.wrap = false
|
|
vim.opt.swapfile = false
|
|
vim.opt.showmatch = true
|
|
vim.opt.signcolumn = "yes"
|
|
vim.opt.hidden = true
|
|
vim.opt.shortmess:append("c")
|
|
vim.opt.encoding = "utf-8"
|
|
vim.opt.cmdheight = 2
|
|
vim.opt.foldmethod = "indent"
|
|
vim.opt.foldlevel = 99
|
|
|
|
if not plugins_ready then
|
|
return
|
|
end
|
|
|
|
safe_setup("flash", function()
|
|
setup_flash({
|
|
jump_key = "<leader>s",
|
|
treesitter_key = "<leader>S",
|
|
})
|
|
end)
|
|
safe_setup("nvim-surround", function()
|
|
require("nvim-surround").setup({})
|
|
end)
|
|
safe_setup("plugins.native.git", function()
|
|
require("plugins.native.git").setup()
|
|
end)
|
|
safe_setup("plugins.native.tree", function()
|
|
require("plugins.native.tree").setup()
|
|
end)
|
|
safe_setup("plugins.native.statusline", function()
|
|
require("plugins.native.statusline").setup()
|
|
end)
|
|
safe_setup("plugins.native.treesitter", function()
|
|
require("plugins.native.treesitter").setup()
|
|
end)
|
|
safe_setup("plugins.native.which_key", function()
|
|
require("plugins.native.which_key").setup()
|
|
end)
|
|
safe_setup("plugins.native.window", function()
|
|
require("plugins.native.window").setup()
|
|
end)
|
|
end
|
|
|
|
return M
|