theonepath.nvim/lua/plugin/lazy.lua

284 lines
8.3 KiB
Lua

return {
-- lazy itself
{
'folke/lazy.nvim',
version = '*'
},
{
'catppuccin/nvim',
name = "catppuccin",
lazy = false,
priority = 1000,
config = function()
require'catppuccin'.setup({
color_overrides = {
macchiato = {
text = "#feffe9", --"#b7d69b",
subtext1 = "#a8c68f",
subtext0 = "#98b381",
overlay2 = "#879f72",
overlay1 = "#758a63",
overlay0 = "#647554",
surface2 = "#526146",
surface1 = "#414d37",
surface0 = "#303828",
base = "#262e1e",
mantle = "#1d2417",
crust = "#151a10",
}
}
})
vim.cmd([[colorscheme catppuccin-macchiato]])
end
},
{
'morhetz/gruvbox', -- Neovim editor theme (gruvbox MVP)
lazy = false,
priority = 1000,
config = function()
-- vim.cmd([[colorscheme gruvbox]])
end
},
-- treesitter
{
'nvim-treesitter/nvim-treesitter',
version = false,
event = { "BufReadPost", "BufWritePost", "BufNewFile", "VeryLazy" },
build = ":TSUpdate",
init = function(plugin)
-- PERF: add nvim-treesitter queries to the rtp and it's custom query predicates early
-- This is needed because a bunch of plugins no longer `require("nvim-treesitter")`, which
-- no longer trigger the **nvim-treeitter** module to be loaded in time.
-- Luckily, the only thins that those plugins need are the custom queries, which we make available
-- during startup.
require("lazy.core.loader").add_to_rtp(plugin)
require("nvim-treesitter.query_predicates")
end,
dependencies = {
{
"nvim-treesitter/nvim-treesitter-textobjects",
config = function()
-- When in diff mode, we want to use the default
-- vim text objects c & C instead of the treesitter ones.
local move = require("nvim-treesitter.textobjects.move") ---@type table<string,fun(...)>
local configs = require("nvim-treesitter.configs")
for name, fn in pairs(move) do
if name:find("goto") == 1 then
move[name] = function(q, ...)
if vim.wo.diff then
local config = configs.get_module("textobjects.move")[name] ---@type table<string,string>
for key, query in pairs(config or {}) do
if q == query and key:find("[%]%[][cC]") then
vim.cmd("normal! " .. key)
return
end
end
end
return fn(q, ...)
end
end
end
end,
},
},
cmd = { "TSUpdateSync", "TSUpdate", "TSInstall" },
},
-- Telescope
{
{
'nvim-telescope/telescope.nvim',
event = "VeryLazy",
dependencies = {
"nvim-telescope/telescope-file-browser.nvim",
{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' },
'nvim-lua/plenary.nvim',
"nvim-tree/nvim-web-devicons",
},
},
},
-- cmdline tools and lsp servers
--
{
'neovim/nvim-lspconfig', -- Configurations for Nvim LSP
dependencies = {
{ "folke/neoconf.nvim", cmd = "Neoconf", config = false, dependencies = { "nvim-lspconfig" } },
{ "folke/neodev.nvim", opts = {} },
"williamboman/mason.nvim",
"williamboman/mason-lspconfig.nvim",
},
config = function()
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities)
require('mason').setup()
local mason_lspconfig = require 'mason-lspconfig'
mason_lspconfig.setup {
ensure_installed = { "pyright" }
}
require("lspconfig").pyright.setup {
capabilities = capabilities,
}
end
},
-- mason.nvim
{
"williamboman/mason.nvim",
cmd = "Mason",
keys = { { "<leader>cm", "<cmd>Mason<cr>", desc = "Mason" } },
build = ":MasonUpdate",
opts = {
ensure_installed = {
"stylua",
"shfmt",
-- "flake8",
},
},
---@param opts MasonSettings | {ensure_installed: string[]}
config = function(_, opts)
require("mason").setup(opts)
local mr = require("mason-registry")
mr:on("package:install:success", function()
vim.defer_fn(function()
-- trigger FileType event to possibly load this newly installed LSP server
require("lazy.core.handler.event").trigger({
event = "FileType",
buf = vim.api.nvim_get_current_buf(),
})
end, 100)
end)
local function ensure_installed()
for _, tool in ipairs(opts.ensure_installed) do
local p = mr.get_package(tool)
if not p:is_installed() then
p:install()
end
end
end
if mr.refresh then
mr.refresh(ensure_installed)
else
ensure_installed()
end
end,
},
{
'jay-babu/mason-null-ls.nvim',
lazy = true,
dependencies = {
'jose-elias-alvarez/null-ls.nvim',
'williamboman/mason.nvim'
}
},
{
'jay-babu/mason-nvim-dap.nvim',
lazy = true,
dependencies = {
'williamboman/mason.nvim',
'mfussenegger/nvim-dap'
}
},
{
'rcarriga/nvim-dap-ui',
lazy = true,
dependencies = {
"mfussenegger/nvim-dap"
}
},
--
-- auto pairs
{
"echasnovski/mini.pairs",
event = "VeryLazy",
opts = {},
keys = {{
"<leader>up",
function()
local Util = require("lazy.core.util")
vim.g.minipairs_disable = not vim.g.minipairs_disable
if vim.g.minipairs_disable then
Util.warn("Disabled auto pairs", { title = "Option" })
else
Util.info("Enabled auto pairs", { title = "Option" })
end
end,
desc = "Toggle auto pairs",
}},
},
-- auto completion
{
'hrsh7th/nvim-cmp',
version = false, -- last release is way too old
event = "InsertEnter",
dependencies = {
'hrsh7th/cmp-buffer', -- completion source
'hrsh7th/cmp-path', -- completion source
'hrsh7th/cmp-nvim-lua', -- completion source
'hrsh7th/cmp-nvim-lsp', -- completion source
'L3MON4D3/LuaSnip',
'saadparwaiz1/cmp_luasnip',
'onsails/lspkind.nvim',
},
},
-- misc
{
'vim-airline/vim-airline',
},
{
'j-hui/fidget.nvim',
tag = "legacy"
},
{
"folke/trouble.nvim",
lazy = true,
dependencies = "nvim-tree/nvim-web-devicons",
},
{
"L3MON4D3/LuaSnip",
dependencies = { "rafamadriz/friendly-snippets" },
event = "VeryLazy",
},
-- Live Preview of MD
{
"iamcco/markdown-preview.nvim",
config = function() vim.fn["mkdp#util#install"]() end,
},
-- Need to short this out properly!
-- learn this
'tpope/vim-surround',
-- differentiate brackets
'luochen1990/rainbow',
-- File tree
'preservim/nerdtree',
-- Distraction free writing
'junegunn/goyo.vim',
-- The Best Thing EVER
'vimwiki/vimwiki',
-- better comments
'scrooloose/nerdcommenter',
-- Show colours
'ap/vim-css-color',
-- Add snippets
'honza/vim-snippets',
-- highlight matching html tags
-- 'valloric/matchtagalways',
-- Syntax highlighting extension
'sheerun/vim-polyglot',
}