local augroup = vim.api.nvim_create_augroup("Vitruvio", { clear = true }) local curl = require('plenary.curl') local post = function(url, content) curl.post(url, { body = content, headers = { ["Content-Type"] = "application/xml" } }) end local function main() vim.bo.shiftwidth = 3 vim.bo.expandtab = true 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 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 local content = table.concat( vim.api.nvim_buf_get_lines(0, 0, vim.api.nvim_buf_line_count(0), false), "\n") if url then post(url, content) 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 }