in intellij-plugin-structure/structure-intellij/src/main/java/com/jetbrains/plugin/structure/intellij/resources/CompiledModulesResourceResolver.kt [13:38]
override fun resolveResource(relativePath: String, basePath: Path): ResourceResolver.Result {
val defaultResolve = DefaultResourceResolver.resolveResource(relativePath, basePath)
if (defaultResolve !is ResourceResolver.Result.NotFound) {
return defaultResolve
}
//Try to resolve path against module roots. [base] is ignored.
val moduleRootRelativePath = if (relativePath.startsWith("/")) {
relativePath.trimStart('/')
} else {
"META-INF/" + if (relativePath.startsWith("./")) relativePath.substringAfter("./") else relativePath
}
for (moduleRoot in moduleRoots) {
val file = moduleRoot.resolve(moduleRootRelativePath)
if (file.exists()) {
return try {
ResourceResolver.Result.Found(file, file.inputStream())
} catch (e: Exception) {
ResourceResolver.Result.Failed(file, e)
}
}
}
return ResourceResolver.Result.NotFound
}