Как сделать заглавной букву в пользовательском сниппете?

avatar
Will
8 августа 2021 в 19:00
71
1
2

Я пытаюсь создать фрагмент, используя код 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)

В настоящее время я возвращаюсь к коду и заменяю его на заглавную букву вручную, но это уменьшило объем кода, который я пишу.

Источник

Ответы (1)

avatar
Mark
8 августа 2021 в 19:38
1

Попробуйте это как тело:

"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

.
Will
8 августа 2021 в 21:28
0

Я скопировал предложенный код в свой javascript.json, а затем набрал префикс «myus», и фрагмент сделал то, что я пытался достичь. Отличный ответ и очень полезный. Спасибо