aboutsummaryrefslogtreecommitdiffstats
path: root/lua/alpha/refactor.lua
diff options
context:
space:
mode:
authorAriel D'Alessandro <dalessandro.ariel@gmail.com>2021-09-06 23:21:56 +0200
committerAriel D'Alessandro <dalessandro.ariel@gmail.com>2021-09-06 23:21:56 +0200
commitf71a3c926017212d86311537a7e970e247ea4cd4 (patch)
treeecf37a1cf858a17aa2f186fd65a018d1540342d0 /lua/alpha/refactor.lua
parent7d62f8792a5cec3de2475147e70f2e167fad4fbd (diff)
downloadnvim-conf-f71a3c926017212d86311537a7e970e247ea4cd4.tar.gz
nvim-conf-f71a3c926017212d86311537a7e970e247ea4cd4.zip
Update refactor to do the setter and getter
Diffstat (limited to 'lua/alpha/refactor.lua')
-rw-r--r--lua/alpha/refactor.lua43
1 files changed, 39 insertions, 4 deletions
diff --git a/lua/alpha/refactor.lua b/lua/alpha/refactor.lua
index dbf4c5f..d4cea4e 100644
--- a/lua/alpha/refactor.lua
+++ b/lua/alpha/refactor.lua
@@ -43,7 +43,7 @@ M.setter_getter = function()
-- visibility modifier
-- type_list (optional) could have a ? to be nullable or could have a list
-- property_element
- print(vim.inspect(p))
+ -- print(vim.inspect(p))
local comment = ''
@@ -51,21 +51,56 @@ M.setter_getter = function()
local prev = ts_utils.get_previous_node(node, false, false)
if (node.type(prev) == 'comment') then
comment = ts_utils.get_node_text(prev)[1]
+ comment = string.match(comment, '@var (.*) ')
end
-- print(vim.inspect(node.type(prev)))
-- print(vim.inspect(ts_utils.get_node_text(prev)))
end
- print(vim.inspect(comment))
+ -- print(vim.inspect(comment))
-- if type_list is not present could go up and read the comment
-- and base on a regular expression, and get the type
-- if the type is array want to also read to see if is a typed array
--
- local classNode = node.parent()
+ local classNode = node:parent()
+ local classEnd = classNode:end_()
+ local variable = string.sub(p.property_element, 2)
+ local function firstToUpper(str)
+ return (str:gsub("^%l", string.upper))
+ end
+
+ local varType = p.type_list
- vim.api.nvim_buf_set_lines(bufnr, )
+ local insert = {}
+ table.insert(insert, "")
+ if (comment ~= nil) then
+ table.insert(insert, " /**")
+ table.insert(insert, string.format("\t * @return %s", comment))
+ table.insert(insert, " */")
+ end
+ table.insert(insert, string.format("\tpublic function get%s(): %s", firstToUpper(variable), varType))
+ table.insert(insert, " {")
+ table.insert(insert, string.format("\t\treturn $this->%s;", variable))
+ table.insert(insert, " }")
+ table.insert(insert, "")
+
+ if (comment ~= nil) then
+ table.insert(insert, " /**")
+ table.insert(insert, string.format("\t * @param %s %s", comment, p.property_element))
+ table.insert(insert, " *")
+ table.insert(insert, " * @return self")
+ table.insert(insert, " */")
+ end
+ table.insert(insert, string.format("\tpublic function set%s(%s %s): self", firstToUpper(variable), varType, p.property_element))
+ table.insert(insert, " {")
+ table.insert(insert, string.format("\t\t$this->%s = %s;", variable, p.property_element))
+ table.insert(insert, "")
+ table.insert(insert, string.format("\t\treturn $this;"))
+ table.insert(insert, " }")
+
+ vim.api.nvim_buf_set_lines(bufnr, classEnd, classEnd, false, insert)
end