52 lines
2.0 KiB
Kotlin
Vendored
52 lines
2.0 KiB
Kotlin
Vendored
package custom.scriptDefinition
|
|
|
|
import kotlin.script.dependencies.*
|
|
import kotlin.script.experimental.dependencies.*
|
|
import kotlin.script.templates.*
|
|
import java.io.File
|
|
import kotlin.script.experimental.location.*
|
|
|
|
class TestDependenciesResolver : DependenciesResolver {
|
|
override fun resolve(scriptContents: ScriptContents, environment: Environment): DependenciesResolver.ResolveResult {
|
|
val reports = ArrayList<ScriptReport>()
|
|
scriptContents.text?.let { text ->
|
|
text.lines().forEachIndexed { lineIndex, line ->
|
|
val adjustedLine = line.replace(Regex("(<error descr=\"Can't use\">)|(</error>)|(<warning descr=\"Shouldn't use\">)|(</warning>)"), "")
|
|
Regex("java").findAll(adjustedLine).forEach {
|
|
reports.add(
|
|
ScriptReport(
|
|
"Can't use",
|
|
ScriptReport.Severity.ERROR,
|
|
ScriptReport.Position(lineIndex, it.range.first, lineIndex, it.range.last + 1)
|
|
)
|
|
)
|
|
}
|
|
Regex("scala").findAll(adjustedLine).forEach {
|
|
reports.add(
|
|
ScriptReport(
|
|
"Shouldn't use",
|
|
ScriptReport.Severity.WARNING,
|
|
ScriptReport.Position(lineIndex, it.range.first, lineIndex, it.range.last + 1)
|
|
)
|
|
)
|
|
}
|
|
}
|
|
}
|
|
|
|
return DependenciesResolver.ResolveResult.Success(
|
|
ScriptDependencies(
|
|
classpath = listOf(environment["template-classes"] as File)
|
|
),
|
|
reports
|
|
)
|
|
}
|
|
}
|
|
|
|
@ScriptExpectedLocations([ScriptExpectedLocation.Everywhere])
|
|
@ScriptTemplateDefinition(TestDependenciesResolver::class, scriptFilePattern = "script.kts")
|
|
class Template : Base()
|
|
|
|
open class Base {
|
|
val i = 3
|
|
val str = ""
|
|
} |