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 || if (file.isDirectory ||
file.extension == KotlinFileType.EXTENSION || file.extension == KotlinFileType.EXTENSION ||
file.extension == JavaClassFileType.INSTANCE.defaultExtension || file.extension == JavaClassFileType.INSTANCE.defaultExtension ||
FileTypeRegistry.getInstance().getFileTypeByFileName(file.name) != KotlinFileType.INSTANCE !isKotlinFileType(file)
) { ) {
return null return null
} }
@@ -67,6 +67,12 @@ fun findScriptDefinition(file: VirtualFile, project: Project): KotlinScriptDefin
return scriptDefinitionProvider.findScriptDefinition(file.name) 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 { abstract class LazyScriptDefinitionProvider : ScriptDefinitionProvider {
protected val lock = ReentrantReadWriteLock() protected val lock = ReentrantReadWriteLock()