Netbeans 自动完成在按 Tab 键而不是完整句子时只写一个词

Netbeans autocomplete only writes one word when pressing tab instead of the full sentence

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

有没有办法让自动完成写入 getNext() 只需按一次 Tab 键?

没有直接的方法来解决这个问题,因为自动完成功能工作正常。 .g.get 等有很多可能性,NetBeans 无法知道哪个你想要的选项,所以它必须全部显示出来,让你选择。

但是,有一个简单的解决方法:您可以轻松地创建一个新的代码模板。然后,如果您输入您选择的缩写,然后按 [tab],该缩写将替换为文本 getNext();,如下所示:

  • 导航到 工具>选项>编辑器>代码模板和selectJava语言 下拉列表。
  • 您将看到一个 table,其中包含标题为 AbbreviationExpanded Text 的列。例如,有一个缩写为“En”的条目,其关联的扩展文本为“${no-indent}Enumeration” .
  • 您需要做的就是在 table 中为 getNext();.
  • 添加一个条目

为此:

  • 单击新建按钮打开新建代码模板对话框。
  • 缩写 字段中输入未使用的缩写,然后单击确定。我选择了yy.
  • Expanded Text 文本框中输入您要生成的值。在你的情况下,这只是 getNext();.
  • 最后点击确定关闭选项window.

此屏幕截图显示了映射到扩展文本 getNext();:[=21 的缩写 yy =]

然后,在您的编辑 window 中,只需键入 yy 并按 Tab 键生成 getNext();

备注:

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