按Tab键时,Netbeans自动完成功能仅写入一个单词,而不是完整的句子

htzpubme  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(130)

我使用的是Netbeans 11.2。基本上,我想使用一个名为getNext()的方法,当我键入例如variable.g并等待自动完成时,第一个选项是getClass()。我只需按向下箭头键选择getNext(),然后按Tab键。但是自动完成只写get(意思是现在我有variable.get),它再次选择第一个选项getClas(),我必须再次按下下箭头键选择getNext()才能写完整的句子。
有没有办法让自动完成只按一次Tab键就写getNext()

vd8tlhqk

vd8tlhqk1#

没有直接的方法来解决这个问题,因为自动补全功能可以正常工作。有很多可能的选项,如**.g.get等,NetBeans无法知道您需要哪个选项,所以它必须显示所有选项,让您选择。
不过,有一个简单的解决方法:您可以轻松地创建一个新的代码模板。然后,如果您输入您选择的缩写,并按[tab]键,则该缩写将替换为文本
getNext();**,如下所示:

  • 导航到工具〉选项〉编辑器〉代码模板,然后从语言下拉列表中选择 Java
  • 您将看到一个包含标题为AbbreviationExpanded Text的列的表。例如,有一个条目的缩写为“En”,其关联的展开文本为“${no-indent}Enumeration"。
  • 您只需在该表中为**getNext();**添加一个条目。

要执行此操作,请执行以下操作:

  • 单击新建按钮打开新建代码模板对话框。
  • Abbreviation字段中输入未使用的缩写,然后单击OK。我选择了***yy***。
  • 扩展文本文本框中输入要生成的值。在您的情况下,该值将仅为**getNext();**。
  • 最后单击确定关闭选项窗口。

此屏幕抓图显示了Map到展开文本**getNext();的缩写yy**:

然后,在编辑窗口中键入yy并按Tab键生成**getNext();**。
备注:

  • 我注意到在生成扩展文本后,会显示代码完成窗口。我不知道为什么会出现这种情况,但可以按下escape键关闭它。因此在我的示例中,您将输入yy[tab][esc]来生成**getNext();**
  • 由于NetBeans使用FreeMarker for作为其模板引擎,因此其他一些模板中显示得语法比本示例中得语法更复杂,但对于您得情况,只需指定要插入得文本即可.

相关问题