-- ~/.config/nvim/lua/plugins.lua
-- Plugin spec for lazy.nvim. Kept short on purpose.
-- See mercemay.top/src/dotfiles/
return {
-- colors
{
"folke/tokyonight.nvim",
lazy = false,
priority = 1000,
config = function()
vim.cmd.colorscheme("tokyonight-night")
end,
},
-- treesitter
{
"nvim-treesitter/nvim-treesitter",
build = ":TSUpdate",
event = { "BufReadPost", "BufNewFile" },
opts = {
ensure_installed = {
"bash", "c", "go", "lua", "markdown", "markdown_inline",
"python", "rust", "toml", "typescript", "vim", "vimdoc", "yaml",
},
highlight = { enable = true },
indent = { enable = true },
},
config = function(_, opts)
require("nvim-treesitter.configs").setup(opts)
end,
},
-- telescope
{
"nvim-telescope/telescope.nvim",
cmd = "Telescope",
keys = {
{ "<leader>f", "<cmd>Telescope find_files<cr>", desc = "find files" },
{ "<leader>g", "<cmd>Telescope live_grep<cr>", desc = "live grep" },
{ "<leader>b", "<cmd>Telescope buffers<cr>", desc = "buffers" },
{ "<leader>h", "<cmd>Telescope help_tags<cr>", desc = "help" },
},
dependencies = { "nvim-lua/plenary.nvim" },
},
-- lsp
{
"neovim/nvim-lspconfig",
event = { "BufReadPre", "BufNewFile" },
config = function()
local lsp = require("lspconfig")
for _, s in ipairs({ "gopls", "rust_analyzer", "pyright", "lua_ls" }) do
if vim.fn.executable(({
gopls = "gopls", rust_analyzer = "rust-analyzer",
pyright = "pyright", lua_ls = "lua-language-server",
})[s]) == 1 then
lsp[s].setup({})
end
end
end,
},
-- completion
{
"saghen/blink.cmp",
version = "*",
event = "InsertEnter",
opts = {
keymap = { preset = "enter" },
completion = { documentation = { auto_show = true } },
},
},
-- misc quality-of-life
{ "lewis6991/gitsigns.nvim", event = "BufReadPre", opts = {} },
{ "numToStr/Comment.nvim", event = "BufReadPost", opts = {} },
{ "windwp/nvim-autopairs", event = "InsertEnter", opts = {} },
{ "stevearc/oil.nvim", cmd = "Oil", opts = {} },
}