【问题标题】:VS Code: How to convert snippet placeholder to uppercase or lowercase?VS Code:如何将片段占位符转换为大写或小写?
【发布时间】:2018-07-10 19:00:00
【问题描述】:

在 VS Code 中,创建user defined snippets 的文档提到了一些Grammar,其中包括/upcase/downcase/capitalize 的选项,但我不知道如何使用它。

我在 Mac 上使用的是最新版本的 VS Code:Version 1.25.0

似乎这个 sn-p 应该在输入并点击 tab 后将占位符的值转换为大写和小写,但它没有:

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

流程和预期结果

  1. 输入test
  2. 点击tab获取sn-p。
  3. 输入 Asdf 以产生:

    Asdf -> Asdf Asdf
    
  4. 点击 tab 以获得预期结果:

    Asdf -> ASDF asdf
    

当前结果

asdf -> asdf asdf

【问题讨论】:

  • version 1.47 开始,它现在已内置到 VS Code 中。

标签: visual-studio-code vscode-snippets


【解决方案1】:

试试这个:

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

您需要点击 Tab 来应用转换。

【讨论】:

  • 后续问题:你知道有没有办法使用 sn-ps 将 camelCASE 字符串转换为 SCREAMING_SNAKE_CASE 字符串?
  • 找到了这个,但例子不起作用:stackoverflow.com/questions/48104851/…
  • stackoverflow.com/questions/48104851/… 的输入与您在当前问题上的输入非常不同。所以我不确定你所说的“这些例子不起作用”是什么意思?
  • 有时当您点击Tab 而不是这个sn-p 时,您可能会无意中选择不同的智能感知选项。我不会使用 test 作为真正的前缀 - 这是 OP 仅用于测试目的的前缀。
  • @icaptan 是的,这很容易,但您应该在上面发布一个问题。较长的代码在评论中很难看。
【解决方案2】:

解决方案:

  "test": {
    "prefix": "test",
    "body": "$1 ${1/(.*)/${1:/upcase}/}  ->  ${1/(.*)/${1:/downcase}/}  ->  ${1/(.*)/${1:/capitalize}/}"
  }

结果:

asdF ASDF  ->  asdf  ->  AsdF

【讨论】:

【解决方案3】:

供参考:

EBNF 文档中的整数指的是 RegExp 组而不是制表符引用,因此应该可以:

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

【讨论】:

  • 感谢您的回答。它适用于我,但我接受了另一个答案,因为它适用于任何字符串,而不仅仅是“Asdf”的示例文本。
猜你喜欢
  • 2023-03-28
  • 2014-10-14
  • 2010-11-04
  • 2010-10-09
  • 2017-12-03
  • 2017-05-18
  • 2016-01-22
  • 1970-01-01
  • 2018-09-07
相关资源
最近更新 更多