我在 Intellij 中打开了这个 [github]https://github.com/00-Evan/shattered-pixel-dungeon)存储库作为项目,然后我转到资产资源,然后打开文本资源文件 .properties。该项目使用 libGDX。之后,当我通过资源编辑器打开资源文件夹中的任何 .properies 文件时,Intellij 不会显示对使用该资源文本的类的任何引用,并将其标记为未使用的资源(实际上它在类中使用)。
这是从类中的 .propeties 文件访问的资源行的用法。
@Override
public String info() {
String info = desc();
if (volume == 0){
info += "\n\n" + Messages.get(this, "desc_water");
} else {
info += "\n\n" + Messages.get(this, "desc_heal");
}
if (isFull()){
info += "\n\n" + Messages.get(this, "desc_full");
}
return info;
}
我尝试更新资源编辑器插件和自己的intellij,但没有任何改变。试图用谷歌搜索类似的问题,但发现注意到。 期望 intellij 将显示对 .properties 文件中的类的引用。
克隆并阅读代码后https://github.com/search?q=repo%3A00-Evan%2Fshattered-pixel-dungeon+desc_water&type=code
@Override
public String info() {
String info = desc();
if (volume == 0){
info += "\n\n" + Messages.get(this, "desc_water");
} else {
info += "\n\n" + Messages.get(this, "desc_heal");
}
if (isFull()){
info += "\n\n" + Messages.get(this, "desc_full");
}
return info;
}
但是密钥是
items.waterskin.desc_water
,如果你把密钥改成同样的,它不知何故可以找到用途。
Messages类是
com.shatteredpixel.shatteredpixeldungeon.messages.Messages
,IDEA无法解析如此复杂的逻辑来假设添加了前缀,因为它是一个静态代码分析器,由于性能原因,它不会在编码阶段尝试编译和评估任何类文件问题和鲁棒性(如果某些代码是错误的,它仍然尝试在字符串和类之间获得正确的关系)。
这可能不是一个好的答案,资源编辑器还有其他问题。