程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在 vscode 片段正则表达式中使用美元符号大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在 vscode 片段正则表达式中使用美元符号?

开发过程中遇到在 vscode 片段正则表达式中使用美元符号的问题如何解决?下面主要结合日常开发的经验,给出你关于在 vscode 片段正则表达式中使用美元符号的解决方法建议,希望对你解决在 vscode 片段正则表达式中使用美元符号有所启发或帮助;

我正在尝试制作一个 vs code php 片段,它从 $code 占位符输入生成这一行:

Utils::getLogger.deBUG("code",["code" => $code])

我为此使用的正则表达式是 /(\$?)(.*)/(我对获取变量名称的第二个捕获组感兴趣)。

这是我的代码片段:

"log deBUG": {
    "prefix": ["log deBUG","deBUG"],"body": ["Utils::getLogger.deBUG(\"${1/(^\\$?)(.*)/$2/}\",[\"${1/(^\\$?)(.*)/$2/}\" => ${1:variablE}])"],"description": "Quick variable deBUG."
},

问题是它没有替换我输入中的美元符号。如果我给 $variable 作为占位符,它会生成 Utils::getLogger.deBUG("$variable",["$variable" => $variable])

我让它可以用于与美元符号不同的字符,例如逗号或另一个字母,而且我还使用 TM_SELECTED_TEXT 变量并在之前选择了我的变量。

我怀疑它与 vscode 中的 vs code php 变量名自动完成有冲突,就好像我复制了我的变量然后调用代码片段并将变量粘贴到占位符中(而不是输入它),它也有效。

我很想将此作为问题发布到 vscode github 上,但可能在这里做错了。

ps:我知道也可以在没有 $ 的情况下输入变量名并将其添加到替换正则表达式中,但您知道开发人员可以......

解决方法

这有效:

"body": ["Utils::getLogger.debug(\"${2:${1/\\$?(.*)/$1/}}\",[\"$2\" => ${1:variablE}])"],

请注意,由于您正在重用第一个转换,因此我将其设置为占位符 ${2},如下所示:

${2:${1/\\$?(.*)/$1/}}

现在您可以在任何需要相同变换的结果的地方重复使用该 $2 占位符 - 就像在 \"$2\" => 中一样。

感谢 https://stackoverflow.com/a/66449064/836330 的使用。

在 vscode 片段正则表达式中使用美元符号

,

经过讨论和进一步测试,我认为代码片段没有任何问题,它与 php 变量自动完成有“冲突”。

答案中有一些有趣的优化。

为了参,我最终采用了输入不带$的变量名并将其添加到转换中的解决方案。

"log debug quick": {
    "prefix": ["log debug quick","debug quick"],"body": ["Utils::getLogger.debug(\"${1:variablE}\",[\"${1}\" => \\$${1}]);"],"description": "Quick variable debug."
},

请注意,原始方法适用于 TM_SELECTED_TEXT 变量(因为不会发生自动完成),因此以下工作正常:

"log debug SELEction": {
    "prefix": ["log debug SELEction","debug SELEction"],"body": ["Utils::getLogger.debug(\"${1:${TM_SELECTED_TEXT/^\\$?(.*)/$1/}}\",[\"${1}\" => $TM_SELECTED_TEXT]);"],

请注意,我使用 @mark 和 @rioV8 建议优化了代码段

大佬总结

以上是大佬教程为你收集整理的在 vscode 片段正则表达式中使用美元符号全部内容,希望文章能够帮你解决在 vscode 片段正则表达式中使用美元符号所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:vscode