in ideaSupport/src/main/scala/org/jetbrains/sbtidea/searchableoptions/BuildIndex.scala [148:176]
private def prepareMappings(indexes: Seq[IndexElement], tmp: Path)(implicit log: PluginLogger): Seq[(Path, Mapping)] =
indexes.map {
case IndexElement.Old(jar, indexXML) =>
// copy the xml file into a temporary directory that has the required target structure: search/searchableOptions.xml
val source = tmp / s"index-${jar.getFileName}-xml"
val searchDir = source / "search"
Files.createDirectories(searchDir)
Files.copy(indexXML, searchDir / "searchableOptions.xml")
log.info(s"SearchIndex Mapping: $indexXML -> ${jar / "search" / "searchableOptions.xml"}")
jar ->
Mapping(source.toFile,
jar.toFile,
MappingMetaData.EMPTY.copy(kind = MAPPING_KIND.MISC)
)
case IndexElement.New(jar, indexJson) =>
val source = tmp / s"index-${jar.getFileName}-json"
Files.createDirectories(source)
Files.copy(indexJson, source / indexJson.getFileName.toString)
log.info(s"SearchIndex Mapping: $indexJson -> ${jar / indexJson.getFileName.toString}")
jar ->
Mapping(source.toFile,
jar.toFile,
MappingMetaData.EMPTY.copy(kind = MAPPING_KIND.MISC)
)
}