是否有插入PHP';PhpStorm中代码完成时的对象运算符?
假设我想在PhpStorm中键入以下内容:是否有插入PHP';PhpStorm中代码完成时的对象运算符?,php,intellij-idea,phpstorm,Php,Intellij Idea,Phpstorm,假设我想在PhpStorm中键入以下内容: $longObjectName->propertyName = 'some value'; 看起来很无辜,不是吗?如果我开始键入longOb,代码完成将起作用,并提供了一个有用的建议$longObjectName,因为它存在于我的项目中的其他地方。我对自己说,“啊,太完美了,这正是我想要的”,所以我点击回车键或标签接受建议。在这一点上,我感到非常高兴 但是现在我想插入->,PHP的笨拙但熟悉的对象操作符。如果我手动输入,那就是整整三次击键(包括
$longObjectName->propertyName = 'some value';
看起来很无辜,不是吗?如果我开始键入longOb
,代码完成将起作用,并提供了一个有用的建议$longObjectName
,因为它存在于我的项目中的其他地方。我对自己说,“啊,太完美了,这正是我想要的”,所以我点击回车键或标签接受建议。在这一点上,我感到非常高兴
但是现在我想插入->
,PHP的笨拙但熟悉的对象操作符。如果我手动输入,那就是整整三次击键(包括Shift),这让我有点难过。一种遥远的、烦人的怀疑开始进入我的脑海。“三次击键?这是什么邪恶的IDE?喷气式飞机上这些无情的独裁者是谁??”
当我在PhpStorm的“每日提示”对话中看到以下内容时,情绪的过山车继续着,给我黑暗的、莫诺凯人策划的世界带来了一丝希望:
使用代码完成时,可以接受当前高亮显示的
弹出列表中的选择,带有句号(
),逗号(,
),
分号(;
)、空格和其他字符
所选名称为
在编辑器中自动输入,后跟输入的字符
在JavaScript中,这意味着我可以键入longOb
并点击。接受第一个代码完成建议并插入JS对象操作符,结果是longObjectName.
,此时我可以继续键入属性名,并在不按Enter键的情况下整天自动完成。太神了甚至是革命性的
现在来看一些毁灭性的消息:它在PHP中似乎不起作用。(不要担心孩子们,这个悲惨的故事即将结束。)
如果我键入longOb
,然后点击-,我会得到以下结果:
longOb- // :(
我敢肯定,如果我尝试执行,PHP解释器不会很喜欢我
(旁注:,,和;表现出几乎相同的行为,与上面引用的提示相反。)
因此,如果我要让我的幻想世界成为现实,我会得到以下结果:
$longObjectName->[handy dandy code completion list, primed and ready for action]
那不是很棒吗
最后,我们得出了最终的问题,为那些懒得读我那充满动感、令人心碎的故事的人添加了一些多余的内容:
PhpStorm中是否有一个用于“接受当前突出显示的代码完成建议并插入PHP对象运算符(->
)”的键盘快捷键?
或者这只是一个bug?1)据我记忆所及,PHP代码要求删除这种补全(太不寻常了)。。但是我现在找不到这样的票(已经花了20多分钟了)。。所以我可能错了(这是很久以前的事了……所以我可能会被另一个代码完成改进搞糊涂了,它很难配置为只对PHP代码有不同的行为)
有点像“为什么它被禁用/过去哪里有什么问题”:
^.::
Send ->
return
将在Windows中的任意位置将(ctrl+)替换为(->)
或
将取代。(句号)仅在PhpStorm窗口(或其他具有ahk_类SunAwtFrame的窗口)中带(->)。
使用Window Spy查看任何Windows窗口的ahk_类
您可以使用CTRL+。作为。(期间)
我解决了这个问题,录制了一个宏,然后用键盘快捷键绑定它:
- 转到文件|设置|键映射|宏|
- 右键单击并选择“添加键盘快捷键”
我选择了Ctrl+。作为捷径,现在我非常高兴。:) 啊,当然!为什么我没有想到创建一个宏?我已经把我接受的答案改成了你的。(丹尼尔的自动热键想法也很有趣,但不是跨平台的。)回答很酷。有助于节省大量时间。
#IfWinActive ahk_class SunAwtFrame
.::
Send ->
return
#IfWinActive ahk_class SunAwtFrame
^.::
Send .
return