diff options
| author | Elvis Claros Castro <elvis@claros.ar> | 2024-07-12 11:18:14 -0300 |
|---|---|---|
| committer | Elvis Claros Castro <elvis@claros.ar> | 2024-07-12 11:18:14 -0300 |
| commit | ea0f4bf8ffade657b1d45152dbc183d4679e75c4 (patch) | |
| tree | cc1fb023bc308e019ddce33a4b0aed39f56805dc /lua/pi/laravel-tinker.lua | |
| parent | 1fd0af14d592d612c2aaab7717c04c8806ba3daa (diff) | |
| download | nvim-conf-ea0f4bf8ffade657b1d45152dbc183d4679e75c4.tar.gz nvim-conf-ea0f4bf8ffade657b1d45152dbc183d4679e75c4.zip | |
Feat: PI
Diffstat (limited to 'lua/pi/laravel-tinker.lua')
| -rw-r--r-- | lua/pi/laravel-tinker.lua | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/lua/pi/laravel-tinker.lua b/lua/pi/laravel-tinker.lua new file mode 100644 index 0000000..214d958 --- /dev/null +++ b/lua/pi/laravel-tinker.lua @@ -0,0 +1,64 @@ +local M = {} + +M.runCode = function() + local curBuff = vim.api.nvim_get_current_buf() + + local stats = vim.api.nvim_list_uis()[1] + + local width = stats.width + local height = stats.height + + local bufh = vim.api.nvim_create_buf(false, true) + local winId = vim.api.nvim_open_win(bufh, true, { + relative = "editor", + width = width * 0.75, + height = height * 0.75, + col = 2, + row = 2, + style = "minimal", + border = "rounded", + }) + + -- get the start and end lines of selection + local startLine = vim.api.nvim_buf_get_mark(curBuff, "<")[1] - 1 + local endLine = vim.api.nvim_buf_get_mark(curBuff, ">")[1] + -- print("range: ", startLine, endLine) + + local code = vim.api.nvim_buf_get_lines(curBuff, startLine, endLine, false) + + -- print (vim.inspect(code)) + + local codeText = vim.fn.shellescape(table.concat(code, " ")) + -- print(codeText) + + local result = vim.fn.systemlist("php artisan tinker --execute=" .. codeText) + + vim.api.nvim_buf_set_text(bufh, 0, 0, 0, 0, result) +end + +M.backTerminal = function() + local bufh = vim.api.nvim_create_buf(false, true) + local term = vim.api.nvim_open_term(bufh, {}) + + local winId = vim.api.nvim_open_win(bufh, true, { + relative = "editor", + width = 80, + height = 80, + col = 2, + row = 2, + style = "minimal", + border = "rounded", + }) + + local jobId = vim.fn.jobstart("php artisan tinker", { + on_stdout = function(err, data) + print(err, vim.inspect(data)) + vim.api.nvim_chan_send(term, table.concat(data, "\n")) + end, + }) + + vim.api.nvim_chan_send(jobId, "$ub = UploadBatch::find(1);\n") + vim.api.nvim_chan_send(jobId, "dump($ub);\n") +end + +return M |