我現在正在使用 Visual Studio Snippets 一段時間,想知道是否/如何使用 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}
提前致謝!
uj5u.com熱心網友回復:
這會讓你得到你想要的:
"filepath": {
"prefix": "rfp",
"body": [
"${RELATIVE_FILEPATH/(\\\\[^\\\\]*)$//i}", // with lots of escapes
],
"description": "directories of current file"
}
${RELATIVE_FILEPATH/${TM_FILENAME}//gi}將無法正常作業作為根據語法只regex可以去到該${TM_FILENAME}點的變換。請參閱片段語法。
語法的相關部分: transform ::= '/' regex '/' (format | text) '/' options
${RELATIVE_FILEPATH/[${TM_FILENAME}]//gi} 結果是:
src\od\Rgsrod.php因為[${TM_FILENAME}]被視為正則運算式(只是字面上這些字符的替代串列),因此這些字符中的每一個都從RELATIVE_FILEPATH.
uj5u.com熱心網友回復:
這就是我試圖創造的。此代碼段創建一個 php 類模板,其中包含來自檔案名和位置的正確類名和命名空間。
所以,片段
"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 $1($2){\n\n\t\t$3\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 (){
}
}
將游標放在方法名稱上。節省了我很多時間,希望它對其他人也有幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/351510.html
下一篇:我怎樣才能讓這里的\\.(....|..)點只是數字[\\.(....|..)0-9]?(Java)正則運算式,匹配?
