aboutsummaryrefslogtreecommitdiffstats
path: root/lua/pi/laravel-tinker.lua
diff options
context:
space:
mode:
authorElvis Claros Castro <elvis@claros.ar>2024-07-12 11:18:14 -0300
committerElvis Claros Castro <elvis@claros.ar>2024-07-12 11:18:14 -0300
commitea0f4bf8ffade657b1d45152dbc183d4679e75c4 (patch)
treecc1fb023bc308e019ddce33a4b0aed39f56805dc /lua/pi/laravel-tinker.lua
parent1fd0af14d592d612c2aaab7717c04c8806ba3daa (diff)
downloadnvim-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.lua64
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