VS Code: How to convert snippet placeholder to upp

2020-06-03 02:41发布

In VS Code, the docs for creating user defined snippets mentions some Grammar which includes options for /upcase, /downcase, and /capitalize, but I can't figure out how to use it.

I'm using the latest version of VS Code: Version 1.25.0 on Mac.

It seems like this snippet should convert the value of the placeholder to uppercase and to lowercase after typing it and hitting tab, but it doesn’t:

"test": {
    "prefix": "test",
    "body": "${1} -> ${1:/upcase} ${1:/downcase}"
},

Flow and Expected Result

  1. type test
  2. hit tab to get the snippet.
  3. type Asdf to result in:

    Asdf -> Asdf Asdf
    
  4. hit tab to get expected result of:

    Asdf -> ASDF asdf
    

Current Result

asdf -> asdf asdf

3条回答
The star\"
2楼-- · 2020-06-03 03:08

See the variable transforms section of the snippets section of the manual.

查看更多
萌系小妹纸
3楼-- · 2020-06-03 03:16

Try this:

"test": {
    "prefix": "test",
    // "body": "${1} -> ${1/(.*)/${1:/upcase}/} > ${1/(.*)/${1:/downcase}/}"
    // simpler version below works too
    "body": "${1} -> ${1/(.*)/${1:/upcase} ${1:/downcase}/}"
}

You need to hit Tab to apply the transformation.

查看更多
神经病院院长
4楼-- · 2020-06-03 03:32

For reference:

The integer in the EBNF docs refers to a RegExp group not to a tabstop reference so should work:

"test": {
    "prefix": "test",
    "body": "${1} -> ${1/(Asdf)/${1:/upcase}/} ${1/(Asdf)/${1:/downcase}/}"
}
查看更多
登录 后发表回答