Export filename extension from KotlinScriptDefinition, register...
extensions after loading definitions
This commit is contained in:
@@ -45,6 +45,9 @@ open class KotlinScriptDefinition(open val template: KClass<out Any>) : UserData
|
||||
open fun getScriptName(script: KtScript): Name =
|
||||
NameUtils.getScriptNameForFile(script.containingKtFile.name)
|
||||
|
||||
open val fileExtension: String
|
||||
get() = "kts"
|
||||
|
||||
open val dependencyResolver: DependenciesResolver get() = DependenciesResolver.NoDependencies
|
||||
|
||||
open val acceptedAnnotations: List<KClass<out Annotation>> get() = emptyList()
|
||||
|
||||
@@ -34,6 +34,8 @@ interface ScriptDefinitionProvider {
|
||||
fun isScript(fileName: String): Boolean
|
||||
fun getDefaultScriptDefinition(): KotlinScriptDefinition
|
||||
|
||||
fun getKnownFilenameExtensions(): Sequence<String>
|
||||
|
||||
companion object {
|
||||
fun getInstance(project: Project): ScriptDefinitionProvider =
|
||||
ServiceManager.getService(project, ScriptDefinitionProvider::class.java)
|
||||
@@ -94,6 +96,10 @@ abstract class LazyScriptDefinitionProvider : ScriptDefinitionProvider {
|
||||
|
||||
override fun isScript(fileName: String) = findScriptDefinition(fileName) != null
|
||||
|
||||
override fun getKnownFilenameExtensions(): Sequence<String> = lock.read {
|
||||
cachedDefinitions?.map { it.fileExtension } ?: emptySequence()
|
||||
}
|
||||
|
||||
companion object {
|
||||
// TODO: find a common place for storing kotlin-related extensions and reuse values from it everywhere
|
||||
protected val nonScriptFilenameSuffixes = arrayOf(".${KotlinFileType.EXTENSION}", ".${JavaFileType.DEFAULT_EXTENSION}")
|
||||
|
||||
Reference in New Issue
Block a user