gianluz
10/18/2019, 12:26 PM@file:Repository("<https://repo.maven.apache.org>")
@file:DependsOn("org.apache.commons:commons-text:1.6")
ilya.chernikov
10/18/2019, 1:06 PMgianluz
10/18/2019, 1:29 PMkotlin-main-kts.jar
and with some dependencies eg what i described in the message..
i can see that in IntelliJ there is a section in Preferences -> Languages & Frameworks -> Kotlin -> Kotlin Scripting
where i can find some default stuff like KotlinBuildScript or KotlinInitScript or plain Kotlin Script. and i cannot find a way to add kotlin-main-kts and see the script with autocompletion in the IDE..gianluz
10/18/2019, 1:34 PMscript.main.kts
with the relatives deps.. that's all 😄ilya.chernikov
10/18/2019, 1:45 PMkotlin-main-kts.jar
to the “Script templates classpath” field and org.jetbrains.kotlin.mainKts.MainKtsScript
to the “Script template classes” field.
Then it should work.ilya.chernikov
10/18/2019, 1:46 PMgianluz
10/18/2019, 1:50 PMgianluz
10/18/2019, 2:04 PM/full/path/to/kotlin-main-kts.jar
Script templates classpath org.jetbrains.kotlin.mainKts.MainKtsScript
but in Languages and Framework i still cannot see the main.kts script.. i've tried also to restart/invalidate cache.. same 😕 maybe i'm wrongilya.chernikov
10/18/2019, 2:17 PMgianluz
10/18/2019, 2:18 PMilya.chernikov
10/18/2019, 2:28 PMilya.chernikov
10/18/2019, 2:28 PMgianluz
10/18/2019, 2:30 PMgianluz
10/18/2019, 2:30 PMgianluz
10/18/2019, 2:30 PMgianluz
10/18/2019, 2:34 PM/path/to/kotlin-main-kts.jar:/path/to/another.jar
?gianluz
10/18/2019, 2:35 PM-cp /path/to/kotlin-main-kts.jar:/path/to/another.jar
ilya.chernikov
10/18/2019, 2:37 PMgianluz
10/19/2019, 6:44 PMilya.chernikov
10/20/2019, 7:14 AMmain-kts
, at least not yet.
If you’re willing to make one yourself, you need to implement the extension point kotlin.script.experimental.intellij.ScriptDefinitionsProvider
, which should be obviously similar to the fields in the settings.gianluz
10/20/2019, 10:11 AMgianluz
10/22/2019, 3:48 PM<extensions defaultExtensionNs="org.jetbrains.kotlin">
<scriptDefinitionsProvider
id="DangerFileScriptDefinitionProvider"
implementation="com.gianluz.dangerkotlin.intellij.DangerFileScriptDefinitionProvider"/>
<!-- Add your extensions here -->
</extensions>
then my implementation here:
class DangerFileScriptDefinitionProvider : ScriptDefinitionsProvider {
private companion object {
private const val ID = "DangerFileScriptDefinition"
private const val DANGERFILE_SCRIPT_DEFINITION = "com.danger.kotlin.kts.DangerFileScript"
}
override val id: String
get() = ID
override fun getDefinitionClasses(): Iterable<String> = listOf(
DANGERFILE_SCRIPT_DEFINITION
)
override fun getDefinitionsClassPath(): Iterable<File> {
return listOf(
File("/usr/local/lib/danger/danger-kotlin.jar"),
File("/usr/local/lib/danger/kotlin-main-kts.jar"),
File("/usr/local/lib/danger/danger-kotlin-kts.jar")
)
}
override fun useDiscovery() = true
}
but i get an error
Caused by: java.lang.NoClassDefFoundError: kotlin/script/experimental/intellij/ScriptDefinitionsProvider
...
am i missing something?? 🤔ilya.chernikov
10/23/2019, 8:16 AMgianluz
10/23/2019, 9:11 AMilya.chernikov
10/23/2019, 9:17 AMPluginException
os trimmed. Maybe you can find the full one in the log.
I do not know much about this part. Maybe it is better to debug or to ask IntelliJ guys, how to diagnose it.ilya.chernikov
10/23/2019, 9:20 AMilya.chernikov
10/23/2019, 9:22 AM