aboutsummaryrefslogtreecommitdiffstats
path: root/lua/alpha/scratchs
diff options
context:
space:
mode:
authorAriel D'Alessandro <ariel.dalessandro@auto1.com>2022-08-05 09:16:08 +0200
committerAriel D'Alessandro <ariel.dalessandro@auto1.com>2022-08-05 09:16:08 +0200
commit90c1aeb434d993b0efc23c56591bb8a3a8b09554 (patch)
tree470aa965fbb63b1a18365b7ea0a1d49e7418964e /lua/alpha/scratchs
parent67f55ef388b18310c06219eb3207ba513673127a (diff)
downloadnvim-conf-90c1aeb434d993b0efc23c56591bb8a3a8b09554.tar.gz
nvim-conf-90c1aeb434d993b0efc23c56591bb8a3a8b09554.zip
more small improvements
Diffstat (limited to 'lua/alpha/scratchs')
-rw-r--r--lua/alpha/scratchs/behat-test.lua81
1 files changed, 81 insertions, 0 deletions
diff --git a/lua/alpha/scratchs/behat-test.lua b/lua/alpha/scratchs/behat-test.lua
new file mode 100644
index 0000000..f07faf3
--- /dev/null
+++ b/lua/alpha/scratchs/behat-test.lua
@@ -0,0 +1,81 @@
+-- TODO
+-- vim.cmd("vsplit")
+-- winh = vim.api.nvim_get_current_win()
+-- bufh = vim.api.nvim_create_buf(true, true)
+-- vim.api.nvim_win_set_buf(winh, bufh)
+-- vim.api.nvim_set_current_win(winh)
+--
+-- should get current window, switch for the buffer and get back to the buffer, that is just for the initial not all the time for every save
+--
+
+
+local attach_to_buffer = function (output_bufnr, command)
+ vim.api.nvim_create_autocmd("BufWritePost", {
+ group = vim.api.nvim_create_augroup("behat-auto-test", {clear = true}),
+ pattern = {"*.php", "*.feature"},
+ callback = function ()
+ local append_data = function (_, data)
+ if data then
+
+ vim.api.nvim_buf_set_option(output_bufnr, "modifiable", true)
+ vim.api.nvim_buf_set_lines(output_bufnr, -1, -1, false, data)
+ vim.api.nvim_buf_set_option(output_bufnr, "modifiable", false)
+ end
+ end
+
+ vim.api.nvim_buf_set_option(output_bufnr, "modifiable", true)
+ vim.api.nvim_buf_set_lines(output_bufnr, 0, -1, false, {"Behat test output"})
+ vim.api.nvim_buf_set_option(output_bufnr, "modifiable", false)
+ vim.fn.jobstart(command, {
+ stdout_buffered = true,
+ on_stdout = append_data,
+ on_stderr = append_data,
+ })
+ end,
+ })
+end
+
+vim.api.nvim_create_user_command("Behat", function()
+ local fname = vim.fn.expand("%")
+ local line = vim.api.nvim_win_get_cursor(0)[1]
+ local command = vim.split(string.format("docker-compose exec -T -u 1000:1000 php-fpm bin/behat %s:%d", fname, line), " ")
+ -- TODO generate dinamically
+ -- local output_bufnr = 214
+
+ local current_win = vim.api.nvim_get_current_win()
+ vim.cmd("vsplit")
+ winh = vim.api.nvim_get_current_win()
+ bufh = vim.api.nvim_create_buf(true, true)
+ vim.api.nvim_win_set_buf(winh, bufh)
+ vim.api.nvim_set_current_win(current_win)
+ vim.api.nvim_buf_set_name(bufh, string.format("Behat %s:%s", fname, line))
+ vim.api.nvim_buf_set_option(bufh, "modifiable", false)
+ vim.api.nvim_win_set_option(winh, "number", false)
+ vim.api.nvim_win_set_option(winh, "relativenumber", false)
+
+ attach_to_buffer(bufh, command)
+end, {})
+
+vim.api.nvim_create_user_command("BehatFile", function()
+ local fname = vim.fn.expand("%")
+ local command = vim.split(string.format("docker-compose exec -T -u 1000:1000 php-fpm bin/behat %s", fname), " ")
+ -- TODO generate dinamically
+ -- local output_bufnr = 214
+
+ local current_win = vim.api.nvim_get_current_win()
+ vim.cmd("vsplit")
+ winh = vim.api.nvim_get_current_win()
+ bufh = vim.api.nvim_create_buf(true, true)
+ vim.api.nvim_win_set_buf(winh, bufh)
+ vim.api.nvim_set_current_win(current_win)
+ vim.api.nvim_buf_set_name(bufh, string.format("Behat Test"))
+ vim.api.nvim_buf_set_option(bufh, "modifiable", false)
+ vim.api.nvim_win_set_option(winh, "number", false)
+ vim.api.nvim_win_set_option(winh, "relativenumber", false)
+
+ attach_to_buffer(bufh, command)
+end, {})
+
+vim.api.nvim_create_user_command("BehatStop", function()
+ vim.api.nvim_del_augroup_by_name("behat-auto-test")
+end, {})