Use nameSequence instead of file extensions to reduce memory allocations
#KTIJ-25470
This commit is contained in:
committed by
Space Team
parent
37c493f593
commit
4a1552e907
+6
-6
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.scripting.definitions
|
||||
|
||||
import com.intellij.ide.highlighter.JavaClassFileType
|
||||
import com.intellij.ide.highlighter.JavaFileType
|
||||
import com.intellij.injected.editor.VirtualFileWindow
|
||||
import com.intellij.openapi.application.ApplicationManager
|
||||
@@ -69,6 +68,7 @@ fun findScriptDefinition(project: Project, script: SourceCode): ScriptDefinition
|
||||
return scriptDefinitionProvider.findDefinition(script) ?: scriptDefinitionProvider.getDefaultDefinition()
|
||||
}
|
||||
|
||||
private const val JAVA_CLASS_FILE_TYPE_DOT_DEFAULT_EXTENSION = ".class"
|
||||
fun VirtualFile.isNonScript(): Boolean = when (this) {
|
||||
is VirtualFileWindow -> {
|
||||
// This file is an embedded Kotlin code snippet.
|
||||
@@ -78,17 +78,17 @@ fun VirtualFile.isNonScript(): Boolean = when (this) {
|
||||
if (isDirectory) {
|
||||
true
|
||||
} else {
|
||||
val ext = extension
|
||||
ext == KotlinFileType.EXTENSION ||
|
||||
ext == JavaFileType.DEFAULT_EXTENSION ||
|
||||
ext == JavaClassFileType.INSTANCE.defaultExtension ||
|
||||
val nameSeq = nameSequence
|
||||
nameSeq.endsWith(KotlinFileType.DOT_DEFAULT_EXTENSION) ||
|
||||
nameSeq.endsWith(JavaFileType.DOT_DEFAULT_EXTENSION) ||
|
||||
nameSeq.endsWith(JAVA_CLASS_FILE_TYPE_DOT_DEFAULT_EXTENSION) ||
|
||||
!this.isKotlinFileType()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun VirtualFile.isKotlinFileType(): Boolean {
|
||||
if (extension == KotlinParserDefinition.STD_SCRIPT_SUFFIX) return true
|
||||
if (nameSequence.endsWith(KotlinParserDefinition.STD_SCRIPT_EXT)) return true
|
||||
|
||||
val typeRegistry = FileTypeRegistry.getInstance()
|
||||
return typeRegistry.getFileTypeByFile(this) == KotlinFileType.INSTANCE ||
|
||||
|
||||
Reference in New Issue
Block a user