Visual Studio代码上的Wrap Selection Snippet(vscode)

Joh*_*Ace 8 visual-studio-code

我想在触发时创建一个片段,它将围绕给定的文本.目前我的片段是:

{ 
  "Function Creator Helper": {
    "prefix": "_w",
    "body": [
      "public function $TM_SELECTED_TEXT () {",
      "  $1",
      "}",
    ],
    "description": "Creates a function given the text selection"
  }
}
Run Code Online (Sandbox Code Playgroud)

结果如下:

包裹片段

我所做的是:

  1. 选择文字.
  2. 写前缀(_w)
  3. 按Tab键

结果如下:

public function  () {

}
Run Code Online (Sandbox Code Playgroud)

但我在期待

public function person () {

}
Run Code Online (Sandbox Code Playgroud)

关于如何制作此片段或如何正确触发它的任何想法?

Mar*_*ark 16

请参阅/sf/answers/3407356571/ 您的示例将起作用,从 vscode v1.49 开始,正如您所拥有的。Vscode 代码段已更新为“记住”您选择的文本,即使您似乎用代码段前缀覆盖了它。

选定的文本换行


较旧的答案:

如果使用$TM_SELECTED_TEXT热键触发它,则可以使用:

{
  "key": "cmd+k 1",
  "command": "editor.action.insertSnippet",
  "when": "editorTextFocus",
  "args": {
    //  "langId": "csharp",
    "name": "Function Creator Helper"
  }
}
Run Code Online (Sandbox Code Playgroud)


Mat*_*kes 7

当前选择的文本是公开的${TM_SELECTED_TEXT},而不是$TM_SELECTED_TEXT.

编辑:如下所述,这不是特定用例的情况

  • 这不是真的,两个版本都可以使用,请参阅 https://code.visualstudio.com/docs/editor/userdefinedsnippets#_variables。如果您正在对这些变量进行转换,那么您显然需要使用 ${} 形式,否则都可以。 (2认同)

Jan*_*eer 4

我自己也在为此苦苦挣扎。为了使其正常工作,您唯一要做的就是按F1,运行Insert Snippet命令,然后从列表中选择您的代码片段。