You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

253 lines
9.4 KiB

1 month ago
---@type LazySpec
return {
{
"goolord/alpha-nvim",
opts = function(_, opts)
opts.section.header.val = {
" .-=*##%%+=* **+@@%%#+-: ",
" -%@@@@@@@%++--: ---++#@@@@@@@@+ ",
" *@@@@@@@@@@@@@@@%- =%@@@@@@@@@@@@@@@* ",
" .@@@@@@@@#@@@@@@@@#. .#@@@@@@@@#@@@@@@@@: ",
" =@@@@@@%=-*@@@%%@@@- -@@@%%@@@*-=#@@@@@@* ",
" %@@@@@%-+--*%+--*@@+ +@@*=-=%*--+=*@@@@@@. ",
" -@@@@@@--*+-------+#* *%+-------=*--#@@@@@= ",
" +@@@%=---++--------=- ==--------++----#@@@# ",
" #@@------=+---------.=---------+=------@@% ",
" #@--------+--------=---------+=-------%%. ",
" +*----=+**#=------=--------#**++----+* ",
" -#+-------==-----=------=+-------=#= ",
" +%=------=+----------==-------## ",
" -%+------=*---.:---+=------=@= ",
" : :-----*-. .-*=----:. .. ",
" ..:::::.-: .-.:::::.. ",
" ",
"██╗ ██╗██╗ ██╗██████╗ ██╗ ██╗███╗ ██╗██╗ ██╗██╗███╗ ███╗",
"██║ ██╔╝██║ ██║██╔══██╗██║ ██║████╗ ██║██║ ██║██║████╗ ████║",
"█████╔╝ ██║ ██║██████╔╝██║ ██║██╔██╗ ██║██║ ██║██║██╔████╔██║",
"██╔═██╗ ██║ ██║██╔══██╗██║ ██║██║╚██╗██║╚██╗ ██╔╝██║██║╚██╔╝██║",
"██║ ██╗╚██████╔╝██║ ██║╚██████╔╝██║ ╚████║ ╚████╔╝ ██║██║ ╚═╝ ██║",
"╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══╝ ╚═══╝ ╚═╝╚═╝ ╚═╝",
}
return opts
end,
},
{
"L3MON4D3/LuaSnip",
config = function(plugin, opts)
require "astronvim.plugins.configs.luasnip"(plugin, opts)
local luasnip = require "luasnip"
luasnip.filetype_extend("javascript", { "javascriptreact" })
require("luasnip.loaders.from_lua").lazy_load()
require("luasnip.loaders.from_vscode").lazy_load {
paths = vim.fn.stdpath "config" .. "/lua/snippets",
}
require("luasnip.loaders.from_snipmate").lazy_load()
end,
},
{
"windwp/nvim-autopairs",
config = function(plugin, opts)
require "astronvim.plugins.configs.nvim-autopairs"(plugin, opts)
local npairs = require "nvim-autopairs"
local Rule = require "nvim-autopairs.rule"
local cond = require "nvim-autopairs.conds"
npairs.add_rules(
{
Rule("$", "$", { "tex", "latex" })
-- don't add a pair if the next character is %
:with_pair(cond.not_after_regex "%%")
-- don't add a pair if the previous character is xxx
:with_pair(
cond.not_before_regex("xxx", 3)
)
-- don't move right when repeat character
:with_move(cond.none())
-- don't delete if the next character is xx
:with_del(cond.not_after_regex "xx")
-- disable adding a newline when you press <cr>
:with_cr(cond.none()),
},
-- disable for .vim files, but it work for another filetypes
Rule("a", "a", "-vim")
)
end,
},
{
"jay-babu/mason-nvim-dap.nvim",
dependencies = { "nvim-dap" },
opts = function(_, opts)
local venv_path = os.getenv "VIRTUAL_ENV" or os.getenv "CONDA_PREFIX"
require "astronvim."
opts.ensure_installed = require("astrocore").extend_tbl(opts.ensure_installed, {
"python",
"stylua",
"delve",
})
opts.handlers = {
function(config)
require("mason-nvim-dap").default_setup(config)
end,
python = function(config)
config.adapters = {
type = "executable",
command = vim.fn.exepath "debugpy-adapter",
}
config.configurations = {
{
type = "python",
request = "launch",
name = "Python: Django",
program = "${workspaceFolder}/manage.py",
pythonPath = venv_path and (venv_path .. "/bin/python") or nil,
console = "integratedTerminal",
args = { "runserver", "--noreload", "--nothreading" },
django = true,
justMyCode = false,
},
{
type = "python",
request = "launch",
name = "Python: Launch file",
program = "${file}",
pythonPath = venv_path and (venv_path .. "/bin/python") or nil,
console = "integratedTerminal",
},
{
type = "python",
request = "launch",
name = "Python: Launch package",
program = "${workspaceFolder}/main.py",
pythonPath = venv_path and (venv_path .. "/bin/python") or nil,
console = "integratedTerminal",
},
}
require("mason-nvim-dap").default_setup(config) -- don't forget this!
end,
}
end,
},
{
"mattn/emmet-vim",
lazy = false,
},
{
"vim-test/vim-test",
},
{
"nvim-neotest/neotest",
dependencies = {
"vim-test/vim-test",
"nvim-lua/plenary.nvim",
"nvim-treesitter/nvim-treesitter",
"antoinemadec/FixCursorHold.nvim",
"nvim-neotest/neotest-python",
},
opts = function(_, opts)
local venv_path = os.getenv "VIRTUAL_ENV" or os.getenv "CONDA_PREFIX"
opts.adapters = {
require "neotest-python" {
dap = {
justMyCode = false,
program = "${workspaceFolder}/manage.py",
python = venv_path and (venv_path .. "/bin/python") or nil,
args = { "test" },
},
runner = "pytest",
is_test_file = function(file_path)
if file_path:match "tests.py" or file_path:match "test_.+.py$" or file_path:match "^.+_tests.py$" then
return file_path
end
end,
},
}
end,
keys = {
{
"<M-t>",
function() require("neotest").summary.toggle() end,
desc = "Toggle test summary",
},
},
},
{
"folke/todo-comments.nvim",
dependencies = { "nvim-lua/plenary.nvim" },
opts = function(_, opts)
opts.keywords = {
FIX = {
icon = "", -- icon used for the sign, and in search results
color = "error", -- can be a hex color, or a named color (see below)
alt = { "FIXME", "BUG", "FIXIT", "ISSUE" }, -- a set of other keywords that all map to this FIX keywords
},
TODO = { icon = "", color = "info" },
HACK = { icon = "", color = "warning" },
WARN = { icon = "", color = "warning", alt = { "XXX" } },
PERF = { icon = "󰑮 ", alt = { "OPTIM", "PERFORMANCE", "OPTIMIZE" } },
NOTE = { icon = "󱝿 ", color = "hint", alt = { "NOTE" } },
TEST = { icon = "󰙨 ", color = "test", alt = { "TESTING", "PASSED", "FAILED" } },
}
opts.signs = true
opts.sign_priority = 8
opts.merge_keywords = true
opts.pattern = [[(KEYWORDS):]]
return opts
end,
keys = {
{ "<leader>xt", "<cmd>TodoTrouble<cr>", desc = "Todo (Trouble)" },
},
},
{ "ralismark/nvim-tabletops", lazy = false },
{ "sindrets/diffview.nvim", lazy = false },
{ "theHamsta/nvim-dap-virtual-text" },
{
"laytan/cloak.nvim",
lazy = false,
opts = {
enabled = true,
cloak_character = "🔐",
highlight_group = "Comment",
cloak_length = 1,
try_all_patterns = true,
patterns = {
{
file_pattern = ".env*",
cloak_pattern = "=.+",
replace = nil,
},
},
},
},
{
"Exafunction/codeium.vim",
enabled=false,
event = "BufEnter",
config = function()
vim.keymap.set("i", "<C-g>", function() return vim.fn["codeium#Accept"]() end, { expr = true, silent = true })
vim.keymap.set(
"i",
"<c-;>",
function() return vim.fn["codeium#CycleCompletions"](1) end,
{ expr = true, silent = true }
)
vim.keymap.set(
"i",
"<c-,>",
function() return vim.fn["codeium#CycleCompletions"](-1) end,
{ expr = true, silent = true }
)
vim.keymap.set("i", "<c-x>", function() return vim.fn["codeium#Clear"]() end, { expr = true, silent = true })
end,
},
{
"folke/trouble.nvim",
dependencies = { "nvim-tree/nvim-web-devicons" },
opts = {},
},
{
"mbbill/undotree",
config = function() vim.keymap.set("n", "<leader>ku", vim.cmd.UndotreeToggle) end,
}
}