gpt4 book ai didi

java - Xtext 自动完成与限定名称定制

转载 作者:行者123 更新时间:2023-12-01 12:25:39 25 4
gpt4 key购买 nike

在 xtext documentation 的 Domainmodel 示例中您可以使用限定名称引用实体。例如你可以这样写:

entity Post extends Org.eclipse.example.MyClass{ 
}

现在您还可以使用 ctr + space 并获得帮助:因此对于上面的示例将是

entity Post extends //use content assist here
{
}

您将获得一个包含 Org.eclipse.example.MyClass 和 Org.eclipse.example.YourClass (注意大写) 的列表。假设两者都已定义。

当开始输入类名称时,内容辅助就会消失。为了使其正常工作,您必须输入孔限定名称。现在这是因为我以大写开头我的包的名称,这在 java 中通常不是这种情况,但在这个 DSL 中,大小写应该不重要。

所以有人知道我如何定制这个行为吗?内容辅助也适用于以大写字母开头的包吗?

更新:当以大写字母开头时,问题如下,自动补全将采用孔限定名称。因此,在示例中,当您键入“O”时,您会得到“Org.eclipse.example.MyClass,Org.eclipse.example.YourClass”,但是当您键入“M”时,它就会消失。当您将其更改为小写(org.eclipse.example.MyClass)时,当您键入 M 时,您会得到“MyClass”,而当键入“o”时,它就会消失。

最佳答案

您看到的是提案提供程序优化的负面影响。大写名称应成为简单名称的一部分(遵循 Java 命名约定)。调整内容辅助前缀匹配器是根据您的场景进行调整的正确方法。为此,您必须绑定(bind) org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher 的自定义 impl或者稍微不太灵活但更容易实现:org.eclipse.xtext.ui.editor.contentassist.FQNPrefixMatcher.DefaultLastSegmentFinder .

关于java - Xtext 自动完成与限定名称定制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26358870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com