commit e3c0680fd2a67bd9a945978e8e6f9481e5eb2d33 Author: tkinaba Date: Mon Feb 3 08:00:00 2025 -0300 batman diff --git a/lua/vitruvio.lua b/lua/vitruvio.lua new file mode 100644 index 0000000..811c33f --- /dev/null +++ b/lua/vitruvio.lua @@ -0,0 +1,62 @@ +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.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 + }) + + -- vim.api.nvim_create_autocmd("BufWritePost", { + -- group = g, + -- desc = "LSP em JavaScript embedded", + -- callback = function() + -- if vim.bo.filetype == "xml" then + -- vim.api + -- 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 } diff --git a/plugin/vitruvio.lua b/plugin/vitruvio.lua new file mode 100644 index 0000000..e69de29 diff --git a/poc_validacao.xml b/poc_validacao.xml new file mode 100644 index 0000000..4e7da14 --- /dev/null +++ b/poc_validacao.xml @@ -0,0 +1,23 @@ + + +
+ + + + + + + + + + + + +
+