Sublimetext3 访问升华文本3代码段中的项目根路径

Sublimetext3 访问升华文本3代码段中的项目根路径,sublimetext3,sublimetext-snippet,Sublimetext3,Sublimetext Snippet,我正试图找到一种方法,在代码段中从项目的根目录访问文件路径 我可以使用${TM_FILEPATH}访问完整的文件路径,但我正在尝试设置一个文件文档片段,该片段将自动获取要添加到文档块的路径,如下所示: /** * app/Controllers/MyClass.php * * Class summary here. * * @author Author Name <name@example.com> * @copyright 2016 Company Name * @

我正试图找到一种方法,在代码段中从项目的根目录访问文件路径

我可以使用
${TM_FILEPATH}
访问完整的文件路径,但我正在尝试设置一个文件文档片段,该片段将自动获取要添加到文档块的路径,如下所示:

/**
 * app/Controllers/MyClass.php
 *
 * Class summary here.
 *
 * @author Author Name <name@example.com>
 * @copyright  2016 Company Name
 * @package  MyClass
 */

有没有办法解析
${TM_FILEPATH}
来获得我需要的部分,或者可以设置一个我可以自己使用的变量,比如
${ROOT_PATH}
或类似的?

代码片段支持基于PCRE的兼容正则表达式。假设您要保留的路径部分始终以
app
开头,则以下替换应该满足您的要求:


文件路径
当前文件的路径
source.php
要分解它,我们的输入是
TM\u FILEPATH
,然后我们的捕获序列(由
/
分隔)是
^\/.\/(?=app)
^
匹配字符串的开头,
\/
是文本
/
字符,
*
匹配任何长度的任何字符(
)的任何序列(
*
)。捕获序列以文本
/
结尾。
(?=\bapp\b)
组是一个积极的向前看,断言
app
可以提前匹配,但实际上并没有捕获它。
\b
app前后的转义字符表示
app
应该被分词字符包围(包括
//code>)。这是为了防止匹配以下路径:

/Users/username/Code/company_web_app/app/Controllers/SomeClass.php
其中,
app
位于项目名称中

最后,格式字符串部分
/
是空的,因为我们只想放弃匹配,而保留其余部分

这里更详细地解释了这一切是如何工作的。

根据,您可以访问环境变量。也许可以用Python创建一个简单的插件,将环境变量设置为项目的路径。()
/Users/username/Code/company_web_app/app/Controllers/SomeClass.php