1616
1717package com.tang.intellij.lua.ty
1818
19- import com.intellij.openapi.progress.ProgressManager
2019import com.intellij.openapi.project.Project
2120import com.intellij.psi.search.GlobalSearchScope
2221import com.intellij.psi.stubs.StubInputStream
@@ -32,7 +31,6 @@ import com.tang.intellij.lua.psi.search.LuaClassInheritorsSearch
3231import com.tang.intellij.lua.psi.search.LuaShortNamesManager
3332import com.tang.intellij.lua.search.SearchContext
3433import com.tang.intellij.lua.stubs.index.LuaClassMemberIndex
35- import com.tang.lsp.nameRange
3634
3735interface ITyClass : ITy {
3836 val className: String
@@ -41,6 +39,7 @@ interface ITyClass : ITy {
4139 var interfaceNames: List <String >?
4240 var aliasName: String?
4341 var isInterface: Boolean
42+ var isEnum: Boolean
4443 fun processAlias (processor : Processor <String >): Boolean
4544 fun lazyInit (searchContext : SearchContext )
4645 fun processMembers (context : SearchContext , processor : (ITyClass , LuaClassMember ) -> Unit , deep : Boolean = true)
@@ -113,7 +112,8 @@ abstract class TyClass(
113112 override val varName : String = " " ,
114113 override var superClassName : String? = null ,
115114 override var interfaceNames : List <String >? = null ,
116- override var isInterface : Boolean = false
115+ override var isInterface : Boolean = false ,
116+ override var isEnum : Boolean = false
117117) : Ty(TyKind .Class ), ITyClass {
118118 final override var aliasName: String? = null
119119 private var _lazyInitialized : Boolean = false
@@ -165,7 +165,6 @@ abstract class TyClass(
165165 }
166166
167167 override fun getIndexResultType (element : LuaLiteralExpr ): ITy ? {
168-
169168 val context = SearchContext .get(element.project)
170169 when (element.kind) {
171170 LuaLiteralKind .Number -> {
@@ -229,6 +228,7 @@ abstract class TyClass(
229228 superClassName = tyClass.superClassName
230229 interfaceNames = tyClass.interfaceNames
231230 isInterface = tyClass.isInterface
231+ isEnum = tyClass.isEnum
232232 }
233233 }
234234
@@ -309,12 +309,6 @@ abstract class TyClass(
309309 return substitutor.substitute(this )
310310 }
311311
312- fun isEnum (project : Project , searchContext : SearchContext ): Boolean {
313- val enumClass = LuaShortNamesManager .getInstance(project)
314- .findClass(className, searchContext)
315- return enumClass is LuaDocTagClass && enumClass.enum != null
316- }
317-
318312 companion object {
319313 // for _G
320314 val G : TyClass = createSerializedClass(Constants .WORD_G )
@@ -418,6 +412,9 @@ class TyPsiDocClass(tagClass: LuaDocTagClass) : TyClass(tagClass.name) {
418412 if (tagClass.`interface` != null ) {
419413 isInterface = true
420414 }
415+ else if (tagClass.enum != null ){
416+ isEnum = true
417+ }
421418
422419 aliasName = tagClass.aliasName
423420 }
0 commit comments