如何将自定义代码段中的字母大写?

How to capitalise a letter in a custom snippet?

我正在尝试使用 vs 代码 (javascript.json) 创建一个片段来执行以下代码。

const [click, setClick] = useState(false)

我创建了以下代码片段,效果不错。

    "My Custom useState": {
    "prefix": "myus",
    "body": [
        "const [${1:name}, set${1:name}] = useState(${2|true,false|})"
    ],
    "description": "My Custom useState"
}

但在这个例子中,我想尝试找到一种方法将第二个单词大写。所以上面的片段输出是

const [click, setclick] = useState(false)

目前我回头代码,手写改成大写字母,但是减少了我写的代码量。

试试这个作为正文:

"const [${1:name}, set${1/(.)/${1:/capitalize}/}] = useState(${2|true,false|})"

这会将捕获组 1 的第一个字母 (.)“转换”为大写字母 ${1:/capitalize}

在你的情况下 ${1:/upcase} 会做同样的事情,因为捕获组只包含第一个字母。通常,${1:/upcase} 会大写整个捕获组,而不仅仅是像 ${1:/capitalize} 那样的第一个字母。

不起作用的是 set${1:name/(.)/${1:/capitalize}/},其中使用默认值 :name。您无法转换默认值。参见 https://github.com/microsoft/vscode/issues/56703