diff options
Diffstat (limited to 'lua/alpha/snips/ft/php.lua')
| -rw-r--r-- | lua/alpha/snips/ft/php.lua | 197 |
1 files changed, 98 insertions, 99 deletions
diff --git a/lua/alpha/snips/ft/php.lua b/lua/alpha/snips/ft/php.lua index 40560b8..daf1e77 100644 --- a/lua/alpha/snips/ft/php.lua +++ b/lua/alpha/snips/ft/php.lua @@ -8,68 +8,69 @@ local f = ls.function_node local i = ls.insert_node local fmt = require("luasnip.extras.fmt").fmt - -function string.starts(String,Start) - return string.sub(String,1,string.len(Start))==Start +function string.starts(String, Start) + return string.sub(String, 1, string.len(Start)) == Start end local newline = function(text) - return t { "", text } + return t({ "", text }) end -local visibility = function (position, default) - local possibles = {'private', 'public'} - local options = {} +local visibility = function(position, default) + local possibles = { "private", "public" } + local options = {} - for _, value in pairs(possibles) do - if value == default then - table.insert(options, 1, t(value)) - else - table.insert(options, t(value)) - end - end + for _, value in pairs(possibles) do + if value == default then + table.insert(options, 1, t(value)) + else + table.insert(options, t(value)) + end + end - return c(position, options) + return c(position, options) end -local namespace = function () - local dir = vim.fn.getcwd() - local autoloads = vim.call('composer#query', 'autoload.psr-4') - if autoloads == nil then - return (dir:gsub("^%l", string.upper)) - end - - local globalNamespace - for key, value in pairs(autoloads) do - if string.starts(dir, value:sub(1, -2)) then - globalNamespace = key:sub(1, -2); - dir = dir:sub(#key + 1) - break - end - end - dir = dir:gsub("/", "\\") - - return string.format("%s\\%s",globalNamespace, dir ) +local namespace = function() + local dir = vim.fn.getcwd() + local autoloads = vim.call("composer#query", "autoload.psr-4") + if autoloads == nil then + return (dir:gsub("^%l", string.upper)) + end + + local globalNamespace + for key, value in pairs(autoloads) do + if string.starts(dir, value:sub(1, -2)) then + globalNamespace = key:sub(1, -2) + dir = dir:sub(#key + 1) + break + end + end + dir = dir:gsub("/", "\\") + + return string.format("%s\\%s", globalNamespace, dir) end -local class_name = function () - local filename = vim.fn.expand('%:t:r') - return filename +local class_name = function() + return vim.fn.expand("%:t:r") end + local M = { - v = fmt( -[[ + v = fmt( + [[ /** * @var {} */ {} ${}; -]], { - i(1, "type"), - d(2, visibility, {}, "private"), - i(3, "var") - }), - class = fmt( -[[ +]], + { + i(1, "type"), + d(2, visibility, {}, "private"), + i(3, "var"), + } + ), + class = fmt( + [[ <?php declare(strict_types=1); @@ -81,66 +82,64 @@ class {} {} }} ]], - { - f(namespace), - f(class_name), - i(0), - }), - - pro = fmt( - [[{} {} ${},]], - { - visibility(1, "private"), - i(2, 'Type'), - f( function (args) - return args[1][1]:gsub("^%u", string.lower) - end, {2}), - } - ), - - _c = fmt( + { + f(namespace), + f(class_name), + i(0), + } + ), + + pro = fmt([[{} {} ${},]], { + visibility(1, "private"), + i(2, "Type"), + f(function(args) + return args[1][1]:gsub("^%u", string.lower) + end, { 2 }), + }), + + _c = fmt( [[{} function __construct({}) {{ {} }}]], - { - visibility(1, "public"), - i(2), - i(0) - } - ), - - _p = fmt( -[[{} function __construct( + { + visibility(1, "public"), + i(2), + i(0), + } + ), + + _p = fmt( + [[{} function __construct( {} ) {{ }}]], - { - visibility(1, "public"), - i(2), - } - ), - - fn = { - visibility(1, "public"), - t(" function "), - i(2, "name"), - t("("), - i(3, "$arg"), - t(")"), - c(4, { - t(""), - snippet_from_nodes(nil, { - t(': '), - i(1, "void"), - }), - }), - newline "{", - newline "\t", - i(0, ""), - newline "}", - }, - - strict = t "declare(strict_types=1);", + { + visibility(1, "public"), + i(2), + } + ), + + fn = { + visibility(1, "public"), + t(" function "), + i(2, "name"), + t("("), + i(3, "$arg"), + t(")"), + c(4, { + t(""), + snippet_from_nodes(nil, { + t(": "), + i(1, "void"), + }), + }), + newline("{"), + newline("\t"), + i(0, ""), + newline("}"), + }, + + strict = t("declare(strict_types=1);"), } return M |