{
"Comment": {
"prefix": "#",
"body": "<!-- ${TM_FILEPATH/([^/]*\/[^/]*)$/$1/} -->"
}
}
我已经设置了about代码片段,目的是添加注释,添加文件的基目录和文件名<!-- templates/base.html -->
像这样但丢弃路径的其余部分。我相信这最初是基于 TextMate 片段。
我已经尝试了一切,但我无法让它工作,这可能是愚蠢的事情,但我不明白我做错了什么。
仅使用TM_FILEPATH
没有正则表达式结果<!-- /Users/johndoe/Sites/blog/blog/templates/base.html -->
我用过这个https://code.visualstudio.com/docs/editor/userdefinesnippets找到一个示例来作为我的代码的基础。例子是这样的:
${TM_FILENAME/(.*)\\..+$/$1/}
| | | |
| | | |-> no options
| | |
| | |-> references the contents of the first
| | capture group
| |
| |-> regex to capture everything before
| the final `.suffix`
|
|-> resolves to the filename
感谢两位评论者的想法,我终于能够让它发挥作用。
一位评论者让我使用双反斜杠来捕捉 Windows 和 Unix 风格的斜杠。
另一位评论者建议使用方括号。
最后结果:
{
"Comment": {
"prefix": "#",
"body": "<!-- ${TM_FILEPATH/.*[\\/](.*[\\/].*)$/$1/} -->",
}
}
尝试这样的事情:
"Comment": {
"prefix": "#",
"body": [
"<!-- ${TM_FILEPATH/.*\\\\(.*\\\\.*)$$/$1/} -->",
"<!-- ${TM_DIRECTORY/.*\\\\(.*)$/$1/}/${TM_FILENAME} -->",
]
},
正文中的这两行应该是等效的。这适用于 Windows 目录样式,例如:
c:\Users\Mark\asdf\experimental\src\js\main.js
由于你的 path.separators 是/
尝试类似的东西:
"<!-- ${TM_FILEPATH/.*\/(.*\.*)$/$1/} -->",
"<!-- ${TM_FILEPATH/.*\\/(.*\\.*)$/$1/} -->",
"<!-- ${TM_FILEPATH/.*\\\/(.*\\\.*)$/$1/} -->",
"<!-- ${TM_FILEPATH/.*\\\\/(.*\\\\.*)$/$1/} -->",
我只是不知道您的操作系统需要多少个反斜杠(我无法在这里测试)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)