有没有在PhpStorm中完成代码时插入PHP对象运算符的快捷方式?

2022-08-30 23:19:48

假设我想在PhpStorm中键入以下内容:

$longObjectName->propertyName = 'some value';

看起来很无辜,不是吗?如果我开始键入 ,代码完成就会启动并作为建议提供,因为它存在于我的项目中的其他地方。我对自己说,“啊,完美,这正是我想要的”,所以我打了或接受了这个建议。在这一点上,我感到非常高兴。longOb$longObjectNameEnterTab

但是现在我想插入,PHP笨拙但熟悉的对象运算符。如果我手动键入它,那就是三个完整的击键(包括),这让我感到有点难过。一个遥远的,唠叨的怀疑开始进入我的脑海。“键?这是什么邪恶的IDE?JetBrains的这些无情的独裁者是谁??”->Shift

当我在PhpStorm的每日提示对话框中看到以下内容时,情绪过山车仍在继续,为我黑暗的Monokai计划世界带来了微小但坚持不懈的希望:

使用代码完成时,可以接受弹出列表中当前突出显示的选择,其中包含句点字符 ()、逗号 ()、分号 ()、空格和其他字符。.,;

所选名称将自动输入到编辑器中,后跟输入的字符。

在JavaScript中,这意味着我可以键入和命中以接受第一个代码完成建议并插入JS对象运算符,从而产生,此时我可以继续键入属性名称并整天自动完成而不会命中。了不起。甚至革命性。longOb.longObjectName.Enter

现在来看看一些毁灭性的消息:它似乎在PHP中不起作用。(不要担心孩子-这个悲惨的故事几乎走到了尽头。

如果我键入然后按 ,我得到这个:longOb-

longOb-      // :(

我很确定,如果我试图执行它,PHP解释器不会非常喜欢我。

(附注:, ,并表现出几乎相同的行为,与上面引用的每日提示相反。.,;

因此,如果我要使我的幻想世界成为现实,我会得到什么:

$longObjectName->[handy dandy code completion list, primed and ready for action]

那不是很棒吗

因此,最后,我们提出了一个终极问题,为那些懒得阅读我充满动感,令人心碎的故事的人添加了一些多余的东西:

PhpStorm 中是否有用于“接受当前突出显示的代码完成建议并插入 PHP 对象运算符 (->)”的单个键盘快捷方式?

或者这只是一个错误?


答案 1

好吧,我通过录制宏然后使用键盘快捷键绑定它来解决这个问题:

  1. 转到编辑|宏 |开始宏录制
  2. 键入“->”
  3. 使用右下角的按钮停止宏录制,然后将其命名为所需的名称。
  4. 为其分配快捷方式:
    • 转到文件|设置|键盘映射|宏 |
    • 右键单击并选择“添加键盘快捷键”

我选择了 Ctrl+。作为捷径,现在我非常高兴。:)


答案 2

您可以使用自动热键 (http://www.autohotkey.com/) 来创建新的击键,并将 PHP 对象运算符替换为句点或其他任何内容。

例如,使用如下脚本:

^.::
Send ->
return

将在 Windows 中的任何位置将 (ctrl + .) 替换为 (->)。

#IfWinActive ahk_class SunAwtFrame
.::
Send ->
return

将替换 .(句点)仅在PhpStorm窗口中使用(->)(或其他具有ahk_class SunAwtFrame)使用窗口间谍查看任何窗口的ahk_class类。

您可以使用 CTRL + 。如。(句点)

#IfWinActive ahk_class SunAwtFrame
^.::
Send .
return

推荐