VSCode 之前有文字的片段触发器?
VSCode Snippet trigger with text before?
我想在 VSCode 中创建一个显示 PHP 箭头的片段。
当我按“²”键然后按 TAB 键时,我想要 PHP 箭头“->”。
这是我的代码片段
"PHP arrow": {
"prefix": "²",
"body": "->[=11=]",
"description": "PHP Arrow ->"
},
当“²”字符周围没有任何东西时它工作正常但是当我写一些代码时
$this²
代码段未被触发
我能做什么?
谢谢你,祝你有愉快的一天:)
PS: ² 字符是 oem_7 在 VSCode
我不知道你用什么键来插入上标²。但是,如果您尝试将其用作单词末尾的片段,请尝试进行键绑定。
VSCode 无法知道 ² 是否打算成为单词的一部分。
在您的 keybindings.json 中试试这个 - 而不是在片段文件中:
{
"key": "2",
"command": "editor.action.insertSnippet",
"when": "resourceExtname == .php",
"args": {
"snippet": "->[=10=]"
}
}
键入 $this2
会得到 $this->
:
显然,您必须将上面的 2
键替换为您想要使用的任何内容。现在您可以将片段用作单词的一部分或单词的末尾,而无需任何必要的单词边界。
这个问题的根本原因是 VS Code 不知道 ²
应该被视为它自己的 "word"。如果您考虑使用字母前缀的片段,例如 x
:
,这将更容易理解
"PHP arrow": {
"prefix": "x",
"body": "->[=10=]",
"description": "PHP Arrow ->"
}
如果您输入 ax|
,则不会触发此代码段,因为 x
是单词 ax
的一部分,并且 x
的代码段前缀不匹配ax
.
这个词
在您的 $this²|
示例中,用于检查前缀的词是 this²
,该片段的前缀不匹配。
@Mark 建议您提出一个替代工作流程可能是正确的。如果不编写扩展,我认为您无法使当前的方法顺利运行
我想在 VSCode 中创建一个显示 PHP 箭头的片段。 当我按“²”键然后按 TAB 键时,我想要 PHP 箭头“->”。
这是我的代码片段
"PHP arrow": {
"prefix": "²",
"body": "->[=11=]",
"description": "PHP Arrow ->"
},
当“²”字符周围没有任何东西时它工作正常但是当我写一些代码时
$this²
代码段未被触发
我能做什么?
谢谢你,祝你有愉快的一天:)
PS: ² 字符是 oem_7 在 VSCode
我不知道你用什么键来插入上标²。但是,如果您尝试将其用作单词末尾的片段,请尝试进行键绑定。
VSCode 无法知道 ² 是否打算成为单词的一部分。
在您的 keybindings.json 中试试这个 - 而不是在片段文件中:
{
"key": "2",
"command": "editor.action.insertSnippet",
"when": "resourceExtname == .php",
"args": {
"snippet": "->[=10=]"
}
}
键入 $this2
会得到 $this->
:
显然,您必须将上面的 2
键替换为您想要使用的任何内容。现在您可以将片段用作单词的一部分或单词的末尾,而无需任何必要的单词边界。
这个问题的根本原因是 VS Code 不知道 ²
应该被视为它自己的 "word"。如果您考虑使用字母前缀的片段,例如 x
:
"PHP arrow": {
"prefix": "x",
"body": "->[=10=]",
"description": "PHP Arrow ->"
}
如果您输入 ax|
,则不会触发此代码段,因为 x
是单词 ax
的一部分,并且 x
的代码段前缀不匹配ax
.
在您的 $this²|
示例中,用于检查前缀的词是 this²
,该片段的前缀不匹配。
@Mark 建议您提出一个替代工作流程可能是正确的。如果不编写扩展,我认为您无法使当前的方法顺利运行