我正在为IntelliJ IDEA编写一个插件,主要目的是帮助我使用自己的API,现在我卡住了。我的API使用方式如下:
public class SomeClass {
@Override
public void specialMethod() {
CustomCommand command = CommandManager.registerCommand(CommandClass.class, this);
command.addMapper("mapper1", ...); // it doesn't matter what is here, the string is the only important thing here
}
}
public class CommandClass extends AbstractCommandClass {
public CommandClass(SpecialClass specialClass) {
super(SpecialClass);
}
@Mapper("mapper1") // HERE
public void someMethod() {
// ...
}
}
在注解@Mapper
中,我使用字符串类型的键,并希望我的插件验证该字符串是否已使用addMapper
方法在SpecialClass
中注册。此外,可以有多个唯一的Map器,所以我也希望得到建议。我知道如何创建检查,意图和提供者,这里的主要问题是:* * 如何正确收集所有使用过的字符串?**
1条答案
按热度按时间dvtswwa31#
看一下File-Based Indexes。
它以map-reduce的方式工作。基本上你指定一个文件到键的函数,IDEA会为你建立一个键到文件的索引。它会在文件改变的情况下保持索引最新,所以你不需要担心它。它甚至可以存储与键相关的额外数据。
然后就可以按键查询文件,枚举索引中的所有键或文件等等。