minor: ScriptingSupport.Provider -> ScriptingSupport, KDoc
This commit is contained in:
+1
-1
@@ -46,7 +46,7 @@ class CompositeScriptConfigurationManager(val project: Project) : ScriptConfigur
|
||||
|
||||
val updater = ScriptClassRootsUpdater(project, this)
|
||||
|
||||
private val plugins = ScriptingSupport.Provider.EPN.getPoint(project).extensionList
|
||||
private val plugins = ScriptingSupport.EPN.getPoint(project).extensionList
|
||||
|
||||
val default = DefaultScriptingSupport(this)
|
||||
|
||||
|
||||
+26
-8
@@ -8,17 +8,35 @@ package org.jetbrains.kotlin.idea.core.script.configuration
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.utils.ScriptClassRootsCache
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.listener.ScriptChangeListener
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
|
||||
/**
|
||||
* Extension point for overriding default Kotlin scripting support.
|
||||
*
|
||||
* Implementation should store script configuration internally (in memory and/or fs),
|
||||
* and provide it inside [collectConfigurations] using the [ScriptClassRootsCache.LightScriptInfo].
|
||||
* Custom data can be attached to [ScriptClassRootsCache.LightScriptInfo] and retrieved
|
||||
* by calling [ScriptClassRootsCache.getLightScriptInfo].
|
||||
*
|
||||
* [ScriptChangeListener] can be used to listen script changes.
|
||||
* [CompositeScriptConfigurationManager.updater] should be used to schedule configuration reloading.
|
||||
*
|
||||
* [isApplicable] should return true for files that is covered by that support.
|
||||
*
|
||||
* [isConfigurationLoadingInProgress] is used to pause analyzing.
|
||||
*
|
||||
* Long read: [idea/idea-gradle/src/org/jetbrains/kotlin/idea/scripting/gradle/README.md].
|
||||
*
|
||||
* @sample GradleBuildRootsManager
|
||||
*/
|
||||
abstract class ScriptingSupport {
|
||||
abstract class Provider {
|
||||
abstract fun isApplicable(file: VirtualFile): Boolean
|
||||
abstract fun isConfigurationLoadingInProgress(file: KtFile): Boolean
|
||||
abstract fun collectConfigurations(builder: ScriptClassRootsCache.Builder)
|
||||
abstract fun isApplicable(file: VirtualFile): Boolean
|
||||
abstract fun isConfigurationLoadingInProgress(file: KtFile): Boolean
|
||||
abstract fun collectConfigurations(builder: ScriptClassRootsCache.Builder)
|
||||
|
||||
companion object {
|
||||
val EPN: ExtensionPointName<Provider> =
|
||||
ExtensionPointName.create("org.jetbrains.kotlin.scripting.idea.scriptingSupportProvider")
|
||||
}
|
||||
companion object {
|
||||
val EPN: ExtensionPointName<ScriptingSupport> =
|
||||
ExtensionPointName.create("org.jetbrains.kotlin.scripting.idea.scriptingSupport")
|
||||
}
|
||||
}
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.idea.core.script.configuration.listener
|
||||
|
||||
import org.jetbrains.kotlin.idea.core.script.configuration.cache.ScriptConfigurationCacheScope
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
|
||||
interface ScriptConfigurationUpdater {
|
||||
/**
|
||||
* Ensure that configuration for [file] is up-to-date,
|
||||
* or new configuration loading is started
|
||||
*/
|
||||
fun ensureUpToDatedConfigurationSuggested(file: KtFile)
|
||||
|
||||
/**
|
||||
* Check that configurations for given [files] is up-to-date or try synchronously update
|
||||
* them. Synchronous update will be occurred only if auto apply is enabled and
|
||||
* configuration for given file will not be loaded in background.
|
||||
*
|
||||
* @return true, if all files are already up-to-date or updated during this call
|
||||
*/
|
||||
fun ensureConfigurationUpToDate(files: List<KtFile>): Boolean
|
||||
|
||||
/**
|
||||
* Suggest to update script configuration if configuration for [file] is out of date
|
||||
*/
|
||||
fun suggestToUpdateConfigurationIfOutOfDate(file: KtFile)
|
||||
}
|
||||
+2
-4
@@ -10,11 +10,9 @@ import com.intellij.openapi.project.Project
|
||||
import com.intellij.util.xmlb.XmlSerializerUtil
|
||||
|
||||
/**
|
||||
* Actually, this storage is required only for before Gradle 6.0.
|
||||
* For projects starting from Gradle 6.0, [org.jetbrains.kotlin.idea.scripting.gradle.GradleScriptingSupportProvider]
|
||||
* will also store all roots in FS, and will overwrite this one shrotly after start.
|
||||
* This cache is used by [org.jetbrains.kotlin.idea.core.script.configuration.DefaultScriptingSupport] only.
|
||||
* @see org.jetbrains.kotlin.idea.core.script.configuration.DefaultScriptingSupport.collectConfigurations
|
||||
*
|
||||
* Btw, this is still useful for projects without custom scripting support.
|
||||
*/
|
||||
@State(
|
||||
name = "ScriptClassRootsStorage",
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@ import java.util.concurrent.atomic.AtomicBoolean
|
||||
* - [GradleBuildRoot.New] - not yet imported
|
||||
* - [GradleBuildRoot.Imported] - imported
|
||||
*/
|
||||
class GradleBuildRootsManager(val project: Project) : ScriptingSupport.Provider() {
|
||||
class GradleBuildRootsManager(val project: Project) : ScriptingSupport() {
|
||||
private val manager: CompositeScriptConfigurationManager
|
||||
get() = ScriptConfigurationManager.getInstance(project) as CompositeScriptConfigurationManager
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
<loader order="first" implementation="org.jetbrains.kotlin.idea.scripting.gradle.legacy.GradleLegacyScriptConfigurationLoader"/>
|
||||
|
||||
<scriptingSupportProvider implementation="org.jetbrains.kotlin.idea.scripting.gradle.roots.GradleBuildRootsManager"/>
|
||||
<scriptingSupport implementation="org.jetbrains.kotlin.idea.scripting.gradle.roots.GradleBuildRootsManager"/>
|
||||
</extensions>
|
||||
|
||||
<extensions defaultExtensionNs="org.jetbrains.plugins.gradle">
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
<loader order="first" implementation="org.jetbrains.kotlin.idea.scripting.gradle.legacy.GradleLegacyScriptConfigurationLoader"/>
|
||||
|
||||
<scriptingSupportProvider implementation="org.jetbrains.kotlin.idea.scripting.gradle.roots.GradleBuildRootsManager"/>
|
||||
<scriptingSupport implementation="org.jetbrains.kotlin.idea.scripting.gradle.roots.GradleBuildRootsManager"/>
|
||||
</extensions>
|
||||
|
||||
<extensions defaultExtensionNs="org.jetbrains.plugins.gradle">
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<idea-plugin>
|
||||
<extensionPoints>
|
||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.scripting.idea.scriptingSupportProvider"
|
||||
interface="org.jetbrains.kotlin.idea.core.script.configuration.ScriptingSupport$Provider"
|
||||
<extensionPoint qualifiedName="org.jetbrains.kotlin.scripting.idea.scriptingSupport"
|
||||
interface="org.jetbrains.kotlin.idea.core.script.configuration.ScriptingSupport"
|
||||
area="IDEA_PROJECT"/>
|
||||
</extensionPoints>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user