假设我想在PhpStorm中键入以下内容:
$longObjectName->propertyName = 'some value';
似乎无辜,不是吗?如果我开始输入longOb
,代码完成就会启动并提供$longObjectName
一个建议,因为它存在于我的项目的其他地方.我对自己说,"啊完美,这正是我想要的",所以我点击Enter或Tab接受了这个建议.在这一点上,我感到非常高兴.
但现在我想插入->
,PHP的笨拙但熟悉的对象操作符.如果我手动输入,那就是三次全键击(包括Shift),这让我觉得有点难过.一种遥远的,唠叨的怀疑开始进入我的脑海." 三次击键?这是什么样的邪恶IDE?在JetBrains这些无情的独裁者是谁?"
当我在PhpStorm的每日提示对话框中看到以下内容时,情绪过山车仍在继续,给我黑暗的,Monokai计划的世界带来了一个微不足道但却坚持不懈的希望:
使用代码完成时,您可以在弹出列表中接受当前突出显示的选项,其中包含句点字符(
.
),逗号(,
),分号(;
),空格和其他字符.所选名称将自动输入编辑器,后跟输入的字符.
在JavaScript中,这意味着我可以输入longOb
并命中.两个接受第一个代码完成建议并插入JS对象操作符,从而产生longObjectName.
,此时我可以继续键入属性名称并一直进行自动完成而不会命中Enter.惊人.革命甚至.
现在有一些毁灭性的消息:它似乎不适用于PHP.(烦恼不是孩子 - 这个悲惨的故事几乎就要结束了.)
如果我输入longOb
然后点击-,我得到这个:
longOb- // :(
我很确定如果我尝试执行它,那么PHP解释器就不会非常喜欢我.
(旁注:.,,并且;表现出几乎相同的行为,与上面引用的提示相反.)
所以,如果我想让我的幻想世界变为现实,我会得到的是:
$longObjectName->[handy dandy code completion list, primed and ready for action]
这不是很棒吗?
最后,我们得出了一个终极问题,为那些没有费心阅读我充满动感,令人心碎的故事的人添加了一些冗余的东西:
在PhpStorm中是否有一个键盘快捷键用于"接受当前突出显示的代码完成建议并插入PHP对象操作符(->
)"?
或者这只是一个错误?
好吧,我通过录制宏然后用键盘快捷键绑定它来解决这个问题:
转到编辑| 宏| 开始宏录制
输入' - >'
使用右下角的按钮停止宏录制,然后根据需要为其命名.
为它指定快捷方式:
转到文件| 设置| 键图| 宏|
右键单击并选择"添加键盘快捷键"
我选择了Ctrl +.作为捷径,现在我感到非常高兴.:)