gpt4 book ai didi

visual-studio-code - VS 代码片段替换(转换)适用于变量而不是占位符

转载 作者:行者123 更新时间:2023-12-01 03:10:02 25 4
gpt4 key购买 nike

据说 vs 代码在用户定义的片段中支持变电站,即转换。但它仅适用于(内置)变量而不是占位符。

请参阅以下代码段:

"substitution test" : {
"prefix" : "abc",
"body": [
"${TM_FILENAME}",
"${TM_FILENAME/^([^.]+)\\..+$/$1/}",
"${TM_FILENAME/^([^.]+)\\..+$/${1:/capitalize}/}",
"${TM_FILENAME/^([^.]+)\\..+$/${1:/upcase}/}",
"${2:showMeInAllCapsWhenReferenced}",
"${2/upcase}"
]
}

第 1-4 行的输出与预期的一样:
users.actions.ts
users
Users
USERS

在第 5 行有一个占位符,我在第 6 行再次引用它。我希望它显示两次,一次在我键入时显示,然后再次以全大写形式显示。所以例如:
fooFoo
FOOFOO

但实际输出是
showMeInAllCapsWhenReferenced
${2/upcase}

是否可以替换/转换引用的占位符(当我键入时)?

最佳答案

你的最后两行应该是:

"${2:showMeInAllCapsWhenReferenced}",
"${2/(.*)/${1:/upcase}/}"

在最后一个选项卡之后,实际应用了转换(因此在技术上不是“在您键入时”占位符替换)。

来自 placeholder transforms :

The inserted text is matched with the regular expression and the match or matches - depending on the options - are replaced with the specified replacement format text.



因此,您不能像在第 5 行尝试那样仅使用 :/upcase 而不使用正则表达式捕获 - 它只能转换正则表达式 比赛 .

看着 grammar部分 :

transform   ::= '/' regex '/' (format | text)+ '/' options 

format ::= '$' int | '${' int '}'

| '${' int ':' '/upcase' | '/downcase' | '/capitalize' '}'

| '${' int ':+' if '}'

| '${' int ':?' if ':' else '}'

| '${' int ':-' else '}' | '${' int ':' else '}'


我们看到 :/upcase 必须遵循正则表达式。 (“格式”,其中大写是一种,必须遵循“转换”中的“正则表达式”。)

关于visual-studio-code - VS 代码片段替换(转换)适用于变量而不是占位符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52961660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com