代码完成
本节介绍了各种上下文感知代码完成技术,可让您加快编码过程。
基本完成
基本代码完成可帮助您完成可见范围内的类、方法和关键字的名称。当您调用代码完成时,PhpStorm 会分析上下文并建议从当前插入符号位置可访问的选项(建议还包括Live templates)。
如果将基本代码完成应用于字段、参数或变量声明的一部分,PhpStorm 会根据项目类型建议可能的名称列表。
第二次调用基本代码完成显示无法访问的类和成员(可以通过应用意图操作将它们公开)。
调用基本完成
开始输入名称。默认情况下,PhpStorm 会在您键入时自动显示代码完成弹出窗口。
如果禁用自动完成,请按Ctrl+Space或选择
。如有必要,再按Ctrl+Space一次(或按Ctrl+Alt+Space)。
这显示了不可访问的类和成员以及静态字段和方法。
类型匹配完成
智能类型匹配代码完成过滤建议列表并仅显示适用于当前上下文的类型。
调用类型匹配完成
开始打字。默认情况下,PhpStorm 会在您键入时自动显示代码完成弹出窗口。如果禁用自动完成,请按Ctrl+Shift+Space或选择
。按Ctrl+Shift+Space或选择
。突出显示最适合当前上下文的建议。
语句完成
您可以使用语句完成创建语法正确的代码结构。它插入必要的语法元素(圆括号、大括号和分号)并让您处于可以开始输入下一条语句的位置。
完成方法声明
开始输入方法声明并Ctrl+Shift+Enter在左括号后按。
完成一个代码构造
开始输入代码结构并按Ctrl+Shift+Enter。
PhpStorm 自动完成构造并添加所需的标点符号。插入符号放置在下一个编辑位置。
包装方法调用参数
键入表达式。然后键入方法调用。当
strlen
在建议列表中获得焦点时,选择它Ctrl+Shift+Enter:
嬉皮完成
Hippie 补全是一个补全引擎,可以在可见范围内分析您的文本并根据当前上下文生成建议。它可以帮助您完成任何当前打开的文件中的任何单词。
将插入符号处的字符串扩展为现有单词
键入初始字符串并执行以下操作之一:
按Alt+/或选择
以在插入符号之前搜索匹配的单词。按Alt+Shift+/或选择
以在插入符号之后和其他打开的文件中搜索匹配的单词。
出现第一个建议值,并且原型在源代码中突出显示。
接受建议,或按住Alt键并按住/直到找到所需的单词。
后缀代码完成
后缀代码完成可帮助您在编写代码时减少向后的插入符号跳转。您可以根据在点后键入的后缀、表达式的类型及其上下文,将已键入的表达式转换为不同的表达式。
启用和配置后缀补全
转到设置/首选项 | 编辑 | 一般 | 后缀补全并选中启用后缀补全复选框。
选择Tab、Space或Enter用于扩展后缀模板。
启用/禁用所选语言的特定后缀模板。
转换带有后缀的语句
键入一个表达式,然后在一个点后键入一个后缀,例如,
.if:
函数 m(arg) { arg.if }if
初始表达式被一个语句包裹:函数 m(arg) { if (arg) { } }
您可以在编辑器 |中禁用某些后缀补全模板。一般 | IDE设置的Postfix完成Ctrl+Alt+S页面。
您可以选择Tab、Space或Enter展开后缀模板。
您可以编辑预定义的后缀模板,例如,将长键替换为较短的键,或扩展适用的表达式类型列表。
创建自定义后缀模板
按Ctrl+Alt+S打开 IDE 设置并选择Editor | 一般 | 后缀完成。
单击工具栏上的添加按钮 ( )。
在打开的弹出菜单中,选择创建后缀模板所需的语言。
指定Key,它是将调用模板的符号组合。
选择新模板将适用的表达式类型,并按以下格式键入目标表达式:
$EXPR$ <target_expression>
例如,$EXPR$ !== null
。在应用模板后添加
$END$
您希望放置插入符号的位置,例如:$EXPR$ !== 空值;$END$要让 PhpStorm 在调用模板时自动转换最上面的适用表达式,请选中Apply to the topmost 表达式复选框。
否则,如果清除该复选框,PhpStorm 将在您调用模板时提示您选择表达式。
完成标签和属性
PhpStorm 自动完成许多文件类型中标签和属性的名称和值:
HTML/XHTML,包括CSS 类和JSX 中的 HTML 标签的补全。
XML/XSL,包括命名空间的完成。
JSON,有关详细信息,请参阅编辑 package.json。
标记和属性名称的完成基于与文件关联的DTD 或模式。如果没有架构关联,PhpStorm 将使用文件内容(标签和属性名称及其值)来完成您的输入。
完整的标签名称
按<并开始输入标签名称。PhpStorm 显示适合当前上下文的标记名称列表。
使用Up和Down按钮滚动列表。
按下Enter以接受列表中的选择。如果您的文件与模式或 DTD 相关联,PhpStorm 会根据它自动插入强制属性。
配置代码完成设置
配置完成选项
按Ctrl+Alt+S打开 IDE 设置并选择Editor | 一般 | 代码完成。
要自动显示建议列表,请选中“键入时显示建议”复选框。如果清除该复选框,则必须通过按Ctrl+Space基本完成或Ctrl+Shift+Space类型匹配完成来显式调用代码完成。
当只有一个选项时,您还可以选择自动插入建议:在自动插入单个建议下选择完成类型。
要按字母顺序对建议进行排序,而不是按相关性对建议进行排序,请选中按字母顺序对建议进行排序复选框。
您还可以通过分别单击建议列表右下角的或来切换这些模式。
如果您希望在建议完成选项时考虑单词大小写,请选择“匹配大小写”并选择是仅匹配首字母还是所有字母的大小写。
如果您希望在滚动建议列表中的每个项目时自动显示文档弹出窗口,请选择Show documentation popup in选项。在右侧的字段中,指定延迟(以毫秒为单位),之后应该会出现弹出窗口。
完成路径
这种类型的完成加快了文件和文件夹的选择。用于此目的的对话框经常被调用,例如,当您指定外部工具或版本控制引擎的安装文件夹或配置PHP解释器时。
通过在“浏览”来打开“选择路径”对话框。
”菜单上选择“ ”或通过单击需要路径的字段旁边的“确保路径字段可见。如果该字段被隐藏,请单击显示路径链接。
开始输入路径。PhpStorm 建议了一个列表,您可以在其中快速找到所需的目录。
在您键入时,建议列表会缩小以仅显示匹配的路径。
您也可以按Ctrl+Space显示建议列表。
从列表中选择相关建议。
完成提示和技巧
缩小建议列表
您可以通过键入单词的任何部分(甚至是中间某处的字符)或在点分隔符或
->
. PhpStorm 将显示包含您在任何位置输入的字符的建议。这使得通配符的使用变得不必要:
如果是CamelCase或snake_case名称,请仅键入首字母。PhpStorm 自动识别并匹配首字母。
接受建议
您可以通过以下方式之一接受列表中的建议:
按Enter或双击列表项以将其插入到插入符号的左侧。
按Tab替换插入符号右侧的字符。
用于Ctrl+Shift+Enter使当前代码结构在语法上正确(平衡括号、添加缺少的大括号和分号,等等)。
您还可以使用特定键插入选定的完成建议:转到编辑器 | 一般 | IDE 设置的代码完成Ctrl+Alt+S页面并选择通过按空格、点或其他与上下文相关的键选项插入所选建议。这些键取决于语言、您的上下文等。
查看定义
当您在建议列表中选择一个条目时,通过按来使用 定义选项:Ctrl+Shift+I
查看代码文档
您可以按()查看建议列表中选项的文档:Ctrl+Q
您可以将 IDE 配置为在单击列表中的选项时自动显示文档弹出窗口:按下Ctrl+Alt+S打开 IDE 设置,选择Show the documentation popup选项。此外,以毫秒为单位指定弹出窗口应出现的延迟时间。
,并启用或者,单击文档弹出窗口并启用“完成期间自动显示”选项。
查看代码层次结构
从建议列表中选择条目后,您可以查看 代码层次结构:
Ctrl+H- 查看类型层次结构
Ctrl+Alt+H- 查看调用层次结构。
Ctrl+Shift+H- 查看方法层次结构。
使用机器学习辅助代码完成
对于 PHP、JavaScript 和 TypeScript,您可以利用机器学习模型在建议列表中将最合适的项目排名靠前。
建议列表将更改为如下所示,箭头显示它是如何基于 ML 重新排序的,最合适的建议在顶部标有星号:
为此,请按Ctrl+Alt+S打开 IDE 设置并选择Editor | 一般 | Code Completion,然后在Machine Learning-Assisted Completion下启用基于机器学习的排序完成建议选项。
故障排除
如果代码完成不起作用,这可能是由于以下原因之一:
省电模式已打开(文件|省电模式)。打开它可以消除后台操作,包括错误突出显示、动态检查和代码完成,从而最大限度地减少笔记本电脑的功耗。
您的文件不驻留在内容根目录中,因此它没有获得代码完成所需的类定义和资源。
包含您希望出现在完成建议列表中的类和函数的文件被标记为纯文本文件。
包含您希望出现在完成建议列表中的函数的外部库不会添加为依赖项或全局库。