Fix after review, add logging for scripting-specific behavior

This commit is contained in:
Ilya Chernikov
2016-08-02 17:09:21 +02:00
parent fbc5d64aab
commit 1248230c69
5 changed files with 36 additions and 11 deletions
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea.core.script
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.components.ServiceManager
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.project.Project
import com.intellij.openapi.roots.ex.ProjectRootManagerEx
import com.intellij.openapi.startup.StartupManager
@@ -99,7 +100,7 @@ class KotlinScriptConfigurationManager(
fun getAllLibrarySourcesScope() = NonClasspathDirectoriesScope(getAllLibrarySources())
private fun reloadScriptDefinitions() {
(makeScriptDefsFromTemplateProviderExtensions(project, { ep, ex -> /* TODO: add logging here */ }) +
(makeScriptDefsFromTemplateProviderExtensions(project, { ep, ex -> log.error("[kts] Error loading definition from ${ep.id}", ex) }) +
loadScriptConfigsFromProjectRoot(File(project.basePath ?: "")).map { KotlinConfigurableScriptDefinition(it, kotlinEnvVars) }).let {
if (it.isNotEmpty()) {
scriptDefinitionProvider.setScriptDefinitions(it + StandardScriptDefinition)
@@ -150,6 +151,7 @@ class KotlinScriptConfigurationManager(
// TODO: report this somewhere, but do not throw: assert(res != null, { "Invalid classpath entry '$this': exists: ${exists()}, is directory: $isDirectory, is file: $isFile" })
return res
}
internal val log = Logger.getInstance(KotlinScriptConfigurationManager::class.java)
}
}
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.idea.core.script
import com.intellij.execution.configurations.CommandLineTokenizer
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil
import com.intellij.openapi.project.Project
import org.gradle.tooling.ProjectConnection
@@ -38,10 +39,12 @@ class GradleScriptTemplateProvider(project: Project): ScriptTemplateProvider {
org.jetbrains.plugins.gradle.util.GradleConstants.SYSTEM_ID)
}
catch (e: NoClassDefFoundError) {
// TODO: log warning and consider displaying it to user
// TODO: consider displaying the warning to the user
Logger.getInstance(GradleScriptTemplateProvider::class.java).error("[kts] Cannot get gradle execution settings", e)
null
}
catch (e: ClassNotFoundException) {
Logger.getInstance(GradleScriptTemplateProvider::class.java).error("[kts] Cannot get gradle execution settings", e)
null // see todo above
}
}