Kotlin code fragments in markdown should have script definition because they are parsed as scripts

This commit is contained in:
Natalia Selezneva
2018-12-14 12:47:39 +03:00
parent 4e6fb84bae
commit 9dc57567e4
@@ -46,7 +46,7 @@ fun findScriptDefinition(file: VirtualFile, project: Project): KotlinScriptDefin
if (file.isDirectory ||
file.extension == KotlinFileType.EXTENSION ||
file.extension == JavaClassFileType.INSTANCE.defaultExtension ||
FileTypeRegistry.getInstance().getFileTypeByFileName(file.name) != KotlinFileType.INSTANCE
!isKotlinFileType(file)
) {
return null
}
@@ -67,6 +67,12 @@ fun findScriptDefinition(file: VirtualFile, project: Project): KotlinScriptDefin
return scriptDefinitionProvider.findScriptDefinition(file.name)
}
private fun isKotlinFileType(file: VirtualFile): Boolean {
val typeRegistry = FileTypeRegistry.getInstance()
return typeRegistry.getFileTypeByFile(file) == KotlinFileType.INSTANCE ||
typeRegistry.getFileTypeByFileName(file.name) == KotlinFileType.INSTANCE
}
abstract class LazyScriptDefinitionProvider : ScriptDefinitionProvider {
protected val lock = ReentrantReadWriteLock()