local augroup = vim.api.nvim_create_augroup("Vitruvio", { clear = true }) local post = function(url, file_path) vim.fn.system({ "curl", "-X", "POST", "-H", "Content-Type: application/xml", "--data-binary", "@" .. file_path, url }) end local function main() vim.api.nvim_create_user_command("VitruvioURL", function(opts) vim.b.vitruvio_url = opts.fargs[1] end, { nargs = 1 }) if vim.bo.filetype == "xml" then vim.bo.shiftwidth = 3 vim.bo.expandtab = true local g = vim.api.nvim_create_augroup("VitruvioBufWritePost", { clear = true }) vim.api.nvim_create_autocmd("BufWritePost", { group = g, desc = "Live reload", callback = function() if vim.bo.filetype == "xml" then local url = vim.b.vitruvio_url if url then local filename = vim.api.nvim_buf_get_name(0) post(url, filename) else if not vim.b.notified then print("É necessário atribuir um URL com :VitruvioURL") vim.b.notified = true end end end end }) end end local function setup() vim.api.nvim_create_autocmd("BufEnter", { group = augroup, desc = "Utilidades para o desenvolvedor do Vitruvio", callback = main }) end return { setup = setup }