79 lines
1.9 KiB
Lua
79 lines
1.9 KiB
Lua
return {
|
|
{
|
|
"nvim-treesitter/nvim-treesitter",
|
|
opts = function(_, opts)
|
|
if type(opts.ensure_installed) == "table" then
|
|
vim.list_extend(opts.ensure_installed, { "zig" })
|
|
end
|
|
end,
|
|
},
|
|
{
|
|
"neovim/nvim-lspconfig",
|
|
opts = {
|
|
servers = {
|
|
zls = {},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"williamboman/mason.nvim",
|
|
opts = function(_, opts)
|
|
opts.ensure_installed = opts.ensure_installed or {}
|
|
vim.list_extend(opts.ensure_installed, { "zls", "codelldb" })
|
|
end,
|
|
},
|
|
{
|
|
"nvim-neotest/neotest",
|
|
optional = true,
|
|
dependencies = {
|
|
"lawrence-laz/neotest-zig",
|
|
},
|
|
opts = {
|
|
adapters = {
|
|
["neotest-zig"] = {},
|
|
},
|
|
},
|
|
},
|
|
{
|
|
"mfussenegger/nvim-dap",
|
|
optional = true,
|
|
opts = function()
|
|
local dap = require("dap")
|
|
dap.configurations.zig = {
|
|
{
|
|
name = "Zig Run",
|
|
type = "codelldb",
|
|
request = "launch",
|
|
program = function()
|
|
os.execute("zig build")
|
|
local command = "find ! -type d -path './zig-out/bin/*' | grep -v 'Test' | sed 's#.*/##'"
|
|
local bin_location = io.popen(command, "r")
|
|
if bin_location ~= nil then
|
|
return "zig-out/bin/" .. bin_location:read("*a"):gsub("[\n\r]", "")
|
|
else
|
|
return ""
|
|
end
|
|
end,
|
|
cwd = "${workspaceFolder}",
|
|
stopOnEntry = false,
|
|
args = function()
|
|
local argv = {}
|
|
arg = vim.fn.input(string.format("Arguments: "))
|
|
for a in string.gmatch(arg, "%S+") do
|
|
table.insert(argv, a)
|
|
end
|
|
return argv
|
|
end,
|
|
},
|
|
}
|
|
end,
|
|
},
|
|
{
|
|
"stevearc/conform.nvim",
|
|
opts = function(_, opts)
|
|
opts.formatters_by_ft.python = opts.formatters_by_ft.python or {}
|
|
table.insert(opts.formatters_by_ft.python, "zigfmt")
|
|
return opts
|
|
end,
|
|
},
|
|
}
|