在VS代码中覆盖默认代码段前缀

时间:2018-01-17 15:06:57

标签: json visual-studio-code editor code-snippets vscode-settings

我正在为VS Code编写一些JavaScript代码段,当我为事件监听器添加一个时,有许多与其他代码相关的预定义前缀分配。我想使用“ael”作为此片段的前缀提示,但默认为警告命令(这特别令人沮丧,因为警报的前3个字母实际上是“ale”),无论如何,有没有办法结束 - 支持默认行为?

在下面的代码中,如果我将prefix更改为“ttt”,然后输入“ttt”,则代码段会起作用,当我使用“ael”时它不会。

我如何克服这个?

"ael": {
    "prefix": "ael",
    "body": [
        "addEventListener(\"\t$1\", function(){",
        "\t$2",
        "}, false);"
    ],
    "description": "Add an Event Listener",
}

enter image description here

2 个答案:

答案 0 :(得分:3)

它是最新更新的一部分:1.19 release notes

当您接受建议时,它会记住并跳转到您之前接受的内容。以下是有关控制此功能的问题:#41060

由于vscode 1.20 ,因此可以选择禁用或修改此行为:

"editor.suggestSelection"

"first" - 就像之前一样(没有记忆,没有预先选择)

"recentlyUsed" - 选择以前使用的项目

"recentlyUsedByPrefix" - 根据您使用的前缀选择项目

答案 1 :(得分:0)

如果我正确理解您的状况,则无需滚动列表。键入ael时,您的代码段已在下拉列表中选择(根据屏幕截图判断)。之后,您只需要按EnterTab即可。

代码段中的几个前缀

此外,您可以添加其他前缀以方便在不同情况下使用,例如:

    "addEventListener": {
        "prefix": ["ael", "addEventListener"],
        "body": [
            "addEventListener(\"${1:event}\", (${2:e}) => {",
            "\t$0",
            "}, false);"
        ],
        "description": "Add an Event Listener",
    }

此后,如果在add文件中输入adli或什至javascript,则将显示以下列表。
addEventListener dropdown list 在其中,您需要向下移动几步到addEventListener行,然后按EnterTab,然后编辑器将从代码段中插入代码,选择第一个占位符($1),在这种情况下包含事件的名称。接下来,您可以对其进行编辑,按Tab移至第二个占位符($2),更改函数的输入参数,然后再次按Tab移至函数($0-最后一个占位符)。

建议选择

是的,就像Alex中提到的his answer一样,您可以使用editor.suggestSelection设置来更改下拉菜单中预选择的行为。如code.visualstudio.com所述:

  • first-始终选择顶部列表项。
  • recentlyUsed-(默认)除非使用前缀(要选择的类型)选择其他项目,否则将选择先前使用的项目。
  • recentlyUsedByPrefix-根据已完成建议的先前前缀选择项目。

“选择类型”表示当前前缀(大致位于光标左侧的文本)用于过滤和排序建议。当这种情况发生并且其结果与recentlyUsed的结果不同时,它将被赋予优先级。

使用最后一个选项recentlyUsedByPrefix时,VS Code会记住为特定前缀(部分文本)选择了哪个项目。例如,如果您键入co,然后选择console,则下次您键入co时,建议console将被预先选择。这样,您可以快速将各种前缀映射到不同的建议,例如co-> consolecon-> const

建议片段

code.visualstudio.com所述:
默认情况下,VS Code在一个小部件中显示摘要和完成建议。您可以使用editor.snippetSuggestions设置来控制行为。可用值:

  • none-从“建议”小部件中删除代码段
  • top-将摘要放在顶部
  • bottom-将摘要放在底部
  • inline-(默认)显示摘要提示以及按字母顺序排列的其他建议