Visual Studio 片段:我可以使用 TM_FILENAME 从 RELATIVE_FILEPATH 获取命名空间吗?
Visual Studio Snippet: Can I use TM_FILENAME to get a namespace from RELATIVE_FILEPATH?
我正在研究 Visual Studio 片段一段时间,想知道 if/how 我可以使用 TM_FILENAME 从 RELATIVE_FILEPATH 获取命名空间。例如,我有:
RELATIVE_FILEPATH = src\model\RegisterModel.php
TM_FILENAME = RegisterModel.php
我想从第一个和最后一个 \ 中去掉后者,所以我最终会得到 src\model
如果我将 RegisterModel.php 用作字符串,我可以使它工作,但如果我将 TM_FILENAME 用作变量,则不能。这可能吗?
这是有效的:${RELATIVE_FILEPATH/(RegisterModel.php)//gi}
但我想要这样的东西:${RELATIVE_FILEPATH/(TM_FILENAME)//gi}
提前致谢!
这会让你得到你想要的:
"filepath": {
"prefix": "rfp",
"body": [
"${RELATIVE_FILEPATH/(\\[^\\]*)$//i}", // with lots of escapes
],
"description": "directories of current file"
}
${RELATIVE_FILEPATH/${TM_FILENAME}//gi}
将 不起作用 因为根据语法只有 regex
可以进入转换中的那个 ${TM_FILENAME}
点。参见 snippet grammar。
相关语法部分:transform ::= '/' regex '/' (format | text)+ '/' options
${RELATIVE_FILEPATH/[${TM_FILENAME}]//gi}
结果:
src\od\Rgsrod.php
因为 [${TM_FILENAME}]
被视为正则表达式(只是这些字符字面上的替代列表),因此每个字符都从 RELATIVE_FILEPATH
.
这就是我想要创建的。此代码段创建一个 php class 模板,其中包含来自文件名和位置的正确 class 名称和命名空间。
所以,片段
"php class": {
"prefix": "_pclass",
"body": "<?php\n\nnamespace app\\${RELATIVE_FILEPATH/(\\[^\\]*)$//i};\n\nclass $TM_FILENAME_BASE{\n\n\tpublic function __construct(){}\n\n\tpublic function (){\n\n\t\t\n\t}\n}",
"description": "PHP class"
}
在 I:\xampp\htdocs\mvc2\src\core\form\Field.php
中调用创建了
<?php
namespace app\src\core\form;
class Field{
public function __construct(){}
public function (){
}
}
将光标放在方法名称上。节省了我不少时间,希望对其他人也有帮助。
我正在研究 Visual Studio 片段一段时间,想知道 if/how 我可以使用 TM_FILENAME 从 RELATIVE_FILEPATH 获取命名空间。例如,我有:
RELATIVE_FILEPATH = src\model\RegisterModel.php
TM_FILENAME = RegisterModel.php
我想从第一个和最后一个 \ 中去掉后者,所以我最终会得到 src\model
如果我将 RegisterModel.php 用作字符串,我可以使它工作,但如果我将 TM_FILENAME 用作变量,则不能。这可能吗?
这是有效的:${RELATIVE_FILEPATH/(RegisterModel.php)//gi}
但我想要这样的东西:${RELATIVE_FILEPATH/(TM_FILENAME)//gi}
提前致谢!
这会让你得到你想要的:
"filepath": {
"prefix": "rfp",
"body": [
"${RELATIVE_FILEPATH/(\\[^\\]*)$//i}", // with lots of escapes
],
"description": "directories of current file"
}
${RELATIVE_FILEPATH/${TM_FILENAME}//gi}
将 不起作用 因为根据语法只有 regex
可以进入转换中的那个 ${TM_FILENAME}
点。参见 snippet grammar。
相关语法部分:transform ::= '/' regex '/' (format | text)+ '/' options
${RELATIVE_FILEPATH/[${TM_FILENAME}]//gi}
结果:
src\od\Rgsrod.php
因为 [${TM_FILENAME}]
被视为正则表达式(只是这些字符字面上的替代列表),因此每个字符都从 RELATIVE_FILEPATH
.
这就是我想要创建的。此代码段创建一个 php class 模板,其中包含来自文件名和位置的正确 class 名称和命名空间。
所以,片段
"php class": {
"prefix": "_pclass",
"body": "<?php\n\nnamespace app\\${RELATIVE_FILEPATH/(\\[^\\]*)$//i};\n\nclass $TM_FILENAME_BASE{\n\n\tpublic function __construct(){}\n\n\tpublic function (){\n\n\t\t\n\t}\n}",
"description": "PHP class"
}
在 I:\xampp\htdocs\mvc2\src\core\form\Field.php
中调用创建了
<?php
namespace app\src\core\form;
class Field{
public function __construct(){}
public function (){
}
}
将光标放在方法名称上。节省了我不少时间,希望对其他人也有帮助。