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.
252 lines
9.4 KiB
252 lines
9.4 KiB
---@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,
|
|
}
|
|
}
|
|
|