kickstart.nvim/lua/custom/plugins/00-plugins.lua

136 lines
4.4 KiB
Lua

-- =============================================================================
-- PLUGIN REGISTRATIONS
-- =============================================================================
vim.pack.add({
{ src = 'https://github.com/folke/flash.nvim' },
{ src = 'https://github.com/yokowasis/emmet-vim' },
{
src = 'https://github.com/jake-stewart/multicursor.nvim',
version = '1.0',
},
{ src = 'https://github.com/MagicDuck/grug-far.nvim' },
{ src = 'https://github.com/tpope/vim-dadbod' },
{ src = 'https://github.com/kristijanhusak/vim-dadbod-ui' },
{ src = 'https://github.com/kristijanhusak/vim-dadbod-completion' },
{ src = 'https://github.com/thesimonho/kanagawa-paper.nvim' },
{ src = 'https://github.com/NeogitOrg/neogit' },
{ src = 'https://github.com/sindrets/diffview.nvim' },
})
-- =============================================================================
-- FLASH NAVIGATION
-- =============================================================================
require("flash").setup({})
vim.keymap.set({ "n", "x", "o" }, "s", function()
require("flash").jump()
end, { desc = "Flash" })
vim.keymap.set({ "n", "x", "o" }, "S", function()
require("flash").treesitter()
end, { desc = "Flash Treesitter" })
vim.keymap.set("o", "r", function()
require("flash").remote()
end, { desc = "Remote Flash" })
vim.keymap.set({ "o", "x" }, "R", function()
require("flash").treesitter_search()
end, { desc = "Treesitter Search" })
vim.keymap.set("c", "<c-s>", function()
require("flash").toggle()
end, { desc = "Toggle Flash Search" })
-- =============================================================================
-- EMMET
-- =============================================================================
vim.g.user_emmet_settings = {
typescriptreact = {
attribute_name = {
["class"] = "class",
},
},
}
-- =============================================================================
-- MULTICURSOR
-- =============================================================================
local mc = require("multicursor-nvim")
mc.setup()
local set = vim.keymap.set
set({ "n", "x" }, "<c-d>", function()
mc.matchAddCursor(1)
end)
set("n", "<c-leftmouse>", mc.handleMouse)
set("n", "<c-leftdrag>", mc.handleMouseDrag)
set("n", "<c-leftrelease>", mc.handleMouseRelease)
set({ "n", "x" }, "<c-q>", mc.toggleCursor)
mc.addKeymapLayer(function(layerSet)
layerSet({ "n", "x" }, "<leader>x", mc.deleteCursor)
layerSet("n", "<esc>", function()
if not mc.cursorsEnabled() then
mc.enableCursors()
else
mc.clearCursors()
end
end)
end)
local hl = vim.api.nvim_set_hl
hl(0, "MultiCursorCursor", { reverse = true })
hl(0, "MultiCursorVisual", { link = "Visual" })
hl(0, "MultiCursorSign", { link = "SignColumn" })
hl(0, "MultiCursorMatchPreview", { link = "Search" })
hl(0, "MultiCursorDisabledCursor", { reverse = true })
hl(0, "MultiCursorDisabledVisual", { link = "Visual" })
hl(0, "MultiCursorDisabledSign", { link = "SignColumn" })
-- =============================================================================
-- GRUG-FAR (SEARCH & REPLACE)
-- =============================================================================
require("grug-far").setup({
headerMaxWidth = 80,
})
vim.api.nvim_create_user_command("GrugFar", function()
require("grug-far").open()
end, {})
local set = vim.keymap.set
set("n", "<leader>S", "<cmd>GrugFar<cr>", { desc = "Search and Replace (grug-far)" })
-- set("n", "<leader>sw", function()
-- require("grug-far").grug_far({ prefills = { search = vim.fn.expand("<cword>") } })
-- end, { desc = "Search current word" })
-- set("n", "<leader>sf", function()
-- require("grug-far").grug_far({ prefills = { paths = vim.fn.expand("%") } })
-- end, { desc = "Search in current file" })
-- =============================================================================
-- DADBOD (DATABASE TOOLS)
-- =============================================================================
vim.g.db_ui_use_nerd_fonts = 1
vim.api.nvim_create_autocmd("FileType", {
pattern = { "sql", "mysql", "plsql" },
callback = function()
vim.fn["compe#register"]({ source = "vim-dadbod-completion" })
end,
})
-- =============================================================================
-- KANAGAWA-PAPER COLORSCHEME
-- =============================================================================
require("kanagawa-paper").setup({})
vim.cmd("colorscheme kanagawa-paper-ink")