diff options
| author | Ariel D'Alessandro <ariel.dalessandro@auto1.com> | 2022-08-05 09:16:08 +0200 |
|---|---|---|
| committer | Ariel D'Alessandro <ariel.dalessandro@auto1.com> | 2022-08-05 09:16:08 +0200 |
| commit | 90c1aeb434d993b0efc23c56591bb8a3a8b09554 (patch) | |
| tree | 470aa965fbb63b1a18365b7ea0a1d49e7418964e /lua/alpha/scratchs/behat-test.lua | |
| parent | 67f55ef388b18310c06219eb3207ba513673127a (diff) | |
| download | nvim-conf-90c1aeb434d993b0efc23c56591bb8a3a8b09554.tar.gz nvim-conf-90c1aeb434d993b0efc23c56591bb8a3a8b09554.zip | |
more small improvements
Diffstat (limited to 'lua/alpha/scratchs/behat-test.lua')
| -rw-r--r-- | lua/alpha/scratchs/behat-test.lua | 81 |
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, {}) |