我正在尝试制作一个插入 PHP 样板类的 Sublime Text-snippet,如下所示:
<?php
namespace Namespace\Subnamespace;
class TestClass
{
public function __construct()
{
//code...
}
}
当使用PHP-FIG标准(或类似标准)时,命名空间和类名都可以从文件的路径中获得。上例中的文件将放在/Users/Projects/Whatever/src/Namespace/Subnamespace/TestClass.php
.
这是我到目前为止所拥有的:
<snippet>
<content><![CDATA[
<?php
namespace ${1:Namespace};
class ${TM_FILENAME/(.*)[.](.*)/$1/g}
{
public function __construct()
{
${0://code...}
}
}
]]></content>
<tabTrigger>phpclass</tabTrigger>
<scope>text.html</scope>
</snippet>
我已经想出了如何获得类名——但事实证明,获得命名空间要困难得多。我远非正则表达式专家——而这需要:
- 之后得到一切
src/
- ...在最后一个之前
/
- 将所有剩余的斜杠翻转为反斜杠。
/Users/Projects/Whatever/src/Namespace/Subnamespace/TestClass.php
变成Namespace\Subnamespace
.
这是我在这个主题上找到的最相关的线程,但它超出了我的想象,我什至无法让它工作。
谁能帮我这个?