VSCode代码段触发器之前带有文本?

时间:2019-05-07 10:01:35

标签: php vscode-settings code-snippets

我想在VSCode中创建一个显示PHP箭头的代码段。 当我按下键“²”然后按Tab时,我需要PHP箭头“->”。

这是我的代码段

"PHP arrow": {
    "prefix": "²",
    "body": "->$0",
    "description": "PHP Arrow ->"
},

当“²”字符周围没有任何东西,但是当我编写类似的代码时,

$this²

代码段未触发

我该怎么办?

谢谢你,祝你有美好的一天:)

PS:²字符在VSCode中为 oem_7

2 个答案:

答案 0 :(得分:0)

我不知道您要使用什么按键来插入上标²。但是,如果您尝试将其用作单词结尾的摘要,请尝试进行键盘绑定。

VSCode无法知道²是否打算作为单词的一部分。

在您的 keybindings.json 中尝试此操作-不在摘要文件中:

{
  "key": "2",
  "command": "editor.action.insertSnippet",
  "when": "resourceExtname == .php",
  "args": {
    "snippet": "->$0"
  }
}

键入$this2会产生$this->

php snippet demo

显然,您必须用想要使用的任何内容替换上面的2键。现在,您可以将代码段用作单词的一部分或单词的结尾,而无需任何必要的单词边界。

答案 1 :(得分:0)

此问题的根本原因是VS Code不知道²应该被当作自己的“单词”。如果您考虑使用字母前缀的代码段(例如x

),则更容易理解。
"PHP arrow": {
    "prefix": "x",
    "body": "->$0",
    "description": "PHP Arrow ->"
}

如果您键入ax|,则不会触发此代码段,因为x是单词ax的一部分,并且x的代码段前缀与该单词不匹配ax

在您的$this²|示例中,用于检查前缀的单词是this²,该代码段的前缀不匹配。


@Mark可能是正确的建议您提出另一种工作流程。没有编写扩展,我认为您无法使当前方法顺利进行