40 lines
1.1 KiB
Lua
40 lines
1.1 KiB
Lua
local plugin_name = "godotdev.nvim"
|
|
local plugin_path = vim.fn.expand("~/Repositories/" .. plugin_name)
|
|
|
|
vim.api.nvim_create_autocmd("BufWritePost", {
|
|
pattern = plugin_path .. "/**/*.lua",
|
|
callback = function(args)
|
|
-- Clear all godotdev modules so they reload
|
|
for name, _ in pairs(package.loaded) do
|
|
if name:match("^godotdev") then
|
|
package.loaded[name] = nil
|
|
end
|
|
end
|
|
|
|
-- Re-require plugin
|
|
local ok, mod = pcall(require, "godotdev")
|
|
if not ok then
|
|
vim.notify("Failed to reload godotdev.nvim: " .. mod, vim.log.levels.ERROR)
|
|
return
|
|
end
|
|
|
|
-- Run setup (if available)
|
|
if mod.setup then
|
|
pcall(mod.setup, {})
|
|
end
|
|
|
|
-- Reattach keymaps + lsp
|
|
local ok_keymaps, keymaps = pcall(require, "godotdev.keymaps")
|
|
if ok_keymaps and keymaps.attach and vim.api.nvim_get_current_buf() then
|
|
keymaps.attach(vim.api.nvim_get_current_buf())
|
|
end
|
|
|
|
local ok_lsp, lsp = pcall(require, "godotdev.lsp")
|
|
if ok_lsp and lsp.setup then
|
|
lsp.setup({})
|
|
end
|
|
|
|
vim.notify("Reloaded " .. plugin_name .. " (after saving " .. args.file .. ")", vim.log.levels.INFO)
|
|
end,
|
|
})
|