从建议的变体中选择语句后,IntelliJ IDEA 自动插入 space

IntelliJ IDEA auto insert space after choosing statement from suggested variants

我注意到,每次我在代码完成建议列表中做出选择时,我都必须在每个语句后手动添加一个 space,这很烦人。想自动执行此操作并尝试在设置中找到解决方案,但一无所获。

]

它在这里工作得很好,行为取决于使用 return 的位置(在 Windows 10 上的 PhpStorm 2020.1.4 中测试)。

1. space 将在 return 完成后自动插入 IDE 已知可以 return 的函数中非空值,例如

  • 其中 return 类型是通过 PHPDoc 或本机 PHP 类型声明的;
  • 基于 other/already 在函数体中存在非空 return。

2. 如果函数已经声明它将 return void 那么 return; 将在完成时插入(注意 ; 最后)。

3. 如果事先不知道函数 return 类型(例如,您先写 return 并且没有声明 return 类型) 或其他情况(例如包含文件中的 return——典型情况是 PHP 配置文件(例如 Laravel))则不会插入 space。

参考文献:WI-51343, WI-45793, WI-45803.


以下是 IDE 将通过完成弹出窗口在 return 关键字完成后插入 space 的示例:

其中一个案例的简短演示视频:https://recordit.co/U90Sx6PPTO

function some1($a)
{
    if ($a) {
        return 22;
    }
    
    ret[COMPLETION]
}

function some2($a): string
{
    ret[COMPLETION]
}

/**
 * Some func.
 *
 * @param $a
 * @return string
 */
function some3($a)
{
    ret[COMPLETION]
}

这里IDE会插入return;(注意最后的;):

/**
 * @param $a
 * @return void
 */
function some4($a)
{
    ret[COMPLETION]
}


如果您总是希望在 return 语句之后有一个 space,可能的解决方法是:只需制作 custom Live Template 即可将 r[TAB] 扩展为 return [CARET]

例如: