From 400357e08f74b5bf8229dff64fa2f5c23936d14c Mon Sep 17 00:00:00 2001 From: ale Date: Mon, 22 Aug 2022 18:05:08 +0800 Subject: [PATCH 01/17] use arg string value to guessType (1-9) use arg name to guessType (1-9) use arg fullname to guessType (1-9) --- .../lua/psi/impl/LuaCallExprImpl.java | 70 +++++++- .../tang/intellij/lua/psi/LuaPsiImplUtil.kt | 155 +++++++++++++++++- src/main/resources/std/Lua50/builtin.lua | 57 ++++++- src/main/resources/std/Lua51/builtin.lua | 57 ++++++- src/main/resources/std/Lua52/builtin.lua | 57 ++++++- src/main/resources/std/Lua53/builtin.lua | 57 ++++++- src/main/resources/std/Lua54/builtin.lua | 57 ++++++- 7 files changed, 497 insertions(+), 13 deletions(-) diff --git a/gen/com/tang/intellij/lua/psi/impl/LuaCallExprImpl.java b/gen/com/tang/intellij/lua/psi/impl/LuaCallExprImpl.java index c257b1b4f..5dffa983d 100644 --- a/gen/com/tang/intellij/lua/psi/impl/LuaCallExprImpl.java +++ b/gen/com/tang/intellij/lua/psi/impl/LuaCallExprImpl.java @@ -2,6 +2,8 @@ package com.tang.intellij.lua.psi.impl; import java.util.List; + +import com.tang.intellij.lua.ty.TyAliasSubstitutor; import org.jetbrains.annotations.*; import com.intellij.lang.ASTNode; import com.intellij.psi.PsiElement; @@ -58,9 +60,75 @@ public ITy guessParentType(@NotNull SearchContext context) { } @Override + @NotNull + public ITy guessType(SearchContext context) { + ITy ty = SearchContext.Companion.infer(this, context); + String typeName = ty.getDisplayName(); + int start = 0; + String newName = ""; + if ((newName = getStringArgByTypeName(typeName, "UseArgString")) != typeName) { + ty = LuaPsiImplUtilKt.newType(newName); + } + else if((newName = getStringArgByTypeName(typeName, "UseArgName")) != typeName) { + ty = LuaPsiImplUtilKt.newType(newName); + } + else if((newName = getStringArgByTypeName(typeName, "UseArgFullName")) != typeName) { + ty = LuaPsiImplUtilKt.newType(newName); + } + ty = TyAliasSubstitutor.Companion.substitute(ty, context); + return ty; + } + + @Nullable + public String getStringArgByTypeName(String typeName, String argType) { + int start = 0; + if ((start = typeName.indexOf(argType)) >= 0) { + int index = 0; + int length = argType.length(); + String replaceStr = argType; + if(start + length < typeName.length()) + { + index = typeName.charAt(start + length) - '1'; + replaceStr = argType + Integer.toString(index + 1); + } + + + if(index >= 0 && index <= 9) + { + + String str = ""; + if (argType == "UseArgString") + { + PsiElement p = LuaPsiImplUtilKt.getStringArgByIndex(this, index); + str = LuaPsiImplUtilKt.getStringValue(p); + } + else if (argType == "UseArgName") + { + PsiElement p = LuaPsiImplUtilKt.getParamNameByIndex(this, index); + str = LuaPsiImplUtilKt.getParamStringValue(p); + } + else if (argType == "UseArgFullName") + { + PsiElement p = LuaPsiImplUtilKt.getParamNameByIndex(this, index); + str = LuaPsiImplUtilKt.getParamAllStringValue(p); + } + if (str != "") { + typeName = typeName.replace(replaceStr, str); + } + } + } + + return typeName; + } + @Nullable public PsiElement getFirstStringArg() { - return LuaPsiImplUtilKt.getFirstStringArg(this); + return LuaPsiImplUtilKt.getStringArgByIndex(this, 0); + } + + @Nullable + public PsiElement getFirstParamArg() { + return LuaPsiImplUtilKt.getParamNameByIndex(this, 0); } @Override diff --git a/src/main/java/com/tang/intellij/lua/psi/LuaPsiImplUtil.kt b/src/main/java/com/tang/intellij/lua/psi/LuaPsiImplUtil.kt index 5b600ce0b..e5ed5fd64 100644 --- a/src/main/java/com/tang/intellij/lua/psi/LuaPsiImplUtil.kt +++ b/src/main/java/com/tang/intellij/lua/psi/LuaPsiImplUtil.kt @@ -33,6 +33,7 @@ import com.tang.intellij.lua.comment.psi.LuaDocTagVararg import com.tang.intellij.lua.comment.psi.api.LuaComment import com.tang.intellij.lua.lang.LuaIcons import com.tang.intellij.lua.lang.type.LuaString +import com.tang.intellij.lua.psi.impl.* import com.tang.intellij.lua.search.SearchContext import com.tang.intellij.lua.stubs.LuaClassMemberStub import com.tang.intellij.lua.stubs.LuaFuncBodyOwnerStub @@ -185,26 +186,137 @@ fun guessParentType(callExpr: LuaCallExpr, context: SearchContext): ITy { return callExpr.expr.guessType(context) } +fun getStringValue(valueExpr: PsiElement): String { + if (valueExpr is LuaLiteralExprImpl) + { + return valueExpr.stringValue + } + else + { + if (valueExpr is LuaNameExpr) + { + val declaration = resolve(valueExpr as LuaNameExpr, SearchContext.get(valueExpr.project)) + if (declaration is LuaNameExprImpl) + { + return declaration.text + } + else if(declaration is LuaNameDefImpl) + { + val exp = declaration?.parent?.parent?.lastChild?.lastChild + if (exp != null) + { + return getStringValue(exp) + } + } + } + else if (valueExpr is LuaIndexExpr) + { + val declaration = resolve(valueExpr as LuaIndexExpr, SearchContext.get(valueExpr.project)) + if (declaration is LuaTableFieldImpl) + { + val strExp = declaration?.lastChild + if (strExp != null) + { + return getStringValue(strExp) + } + } + else if (declaration is LuaIndexExprImpl) + { + val exp = declaration?.parent?.parent?.lastChild?.lastChild + if (exp != null) + { + return getStringValue(exp) + } + } + } + } + + return ""; +} + +fun getParamStringValue(valueExpr: PsiElement): String { + if (valueExpr is LuaNameExpr) + { + return valueExpr.text; + } + else if(valueExpr is LuaIndexExpr) + { + return valueExpr.lastChild.text; + } + return ""; +} + +fun getParamAllStringValue(valueExpr: PsiElement): String { + if (valueExpr is LuaNameExpr) + { + return valueExpr.text; + } + else if(valueExpr is LuaIndexExpr) + { + return valueExpr.text; + } + return ""; +} + /** - * 获取第一个字符串参数 + * 获取第n个字符串参数 * @param callExpr callExpr * * * @return String PsiElement */ -fun getFirstStringArg(callExpr: LuaCallExpr): PsiElement? { +fun getStringArgByIndex(callExpr: LuaCallExpr, index: Int): PsiElement? { val args = callExpr.args var path: PsiElement? = null when (args) { is LuaSingleArg -> { val expr = args.expr - if (expr is LuaLiteralExpr) path = expr + if (expr is LuaLiteralExpr && index == 0) path = expr } is LuaListArgs -> args.exprList.let { list -> - if (list.isNotEmpty() && list[0] is LuaLiteralExpr) { - val valueExpr = list[0] as LuaLiteralExpr - if (valueExpr.kind == LuaLiteralKind.String) - path = valueExpr + if (list.isNotEmpty() && list.size > index) { + if (list[index] is LuaLiteralExpr) { + val valueExpr = list[index] as LuaLiteralExpr + if (valueExpr.kind == LuaLiteralKind.String) + path = valueExpr + } + else { + val context = SearchContext.get(callExpr.project) + if (list[index].guessType((context)).displayName == "string") + { + path = list[index] + } + } + } + } + } + return path +} + +/** + * 获取第n个参数的名字 + * @param callExpr callExpr + * * + * @return String PsiElement + */ +fun getParamNameByIndex(callExpr: LuaCallExpr, index: Int): PsiElement? { + val args = callExpr.args + var path: PsiElement? = null + + when (args) { + is LuaSingleArg -> { + val expr = args.expr + if (expr is LuaNameExpr && index == 0) path = expr + if (expr is LuaIndexExpr && index == 0) path = expr + } + is LuaListArgs -> args.exprList.let { list -> + if (list.isNotEmpty() && list.size > index) { + if (list[index] is LuaNameExpr) { + path = list[index] + } + else if (list[index] is LuaIndexExpr) { + path = list[index] + } } } } @@ -250,6 +362,35 @@ fun guessTypeAt(list: LuaExprList, context: SearchContext): ITy { return Ty.UNKNOWN } +fun getStringValue(typeName: LuaLiteralExpr): String { + return typeName.stringValue; +} + +fun getNameExprStringValue(valueExpr: PsiElement): String { + val tree = LuaDeclarationTree.get(valueExpr.containingFile) + val declaration = tree.find(valueExpr as LuaExpr)?.firstDeclaration?.psi + val exp = declaration?.parent?.parent + if (exp != null) + { + val strExp = exp.lastChild.lastChild + if(strExp is LuaLiteralExprImpl) + { + val str = strExp.text + return str.substring(1, str.length - 1) + } + else + { + return getNameExprStringValue(strExp) + } + + } + return ""; +} + +fun newType(typeName: String): ITy { + return TyLazyClass(typeName); +} + fun guessParentType(indexExpr: LuaIndexExpr, context: SearchContext): ITy { val expr = PsiTreeUtil.getStubChildOfType(indexExpr, LuaExpr::class.java) return expr?.guessType(context) ?: Ty.UNKNOWN diff --git a/src/main/resources/std/Lua50/builtin.lua b/src/main/resources/std/Lua50/builtin.lua index 18e55f3e2..b5d414f40 100644 --- a/src/main/resources/std/Lua50/builtin.lua +++ b/src/main/resources/std/Lua50/builtin.lua @@ -102,4 +102,59 @@ --- ---@class void ----@class self \ No newline at end of file +---@class self + +---@UseArgString1 + +---@UseArgString2 + +---@UseArgString3 + +---@UseArgString4 + +---@UseArgString5 + +---@UseArgString6 + +---@UseArgString7 + +---@UseArgString8 + +---@UseArgString9 + + +---@UseArgName1 + +---@UseArgName2 + +---@UseArgName3 + +---@UseArgName4 + +---@UseArgName5 + +---@UseArgName6 + +---@UseArgName7 + +---@UseArgName8 + +---@UseArgName9 + +---@UseArgFullName1 + +---@UseArgFullName2 + +---@UseArgFullName3 + +---@UseArgFullName4 + +---@UseArgFullName5 + +---@UseArgFullName6 + +---@UseArgFullName7 + +---@UseArgFullName8 + +---@UseArgFullName9 diff --git a/src/main/resources/std/Lua51/builtin.lua b/src/main/resources/std/Lua51/builtin.lua index 18e55f3e2..ca7af1cba 100644 --- a/src/main/resources/std/Lua51/builtin.lua +++ b/src/main/resources/std/Lua51/builtin.lua @@ -102,4 +102,59 @@ --- ---@class void ----@class self \ No newline at end of file +---@class self + +---@UseArgString1 + +---@UseArgString2 + +---@UseArgString3 + +---@UseArgString4 + +---@UseArgString5 + +---@UseArgString6 + +---@UseArgString7 + +---@UseArgString8 + +---@UseArgString9 + + +---@UseArgName1 + +---@UseArgName2 + +---@UseArgName3 + +---@UseArgName4 + +---@UseArgName5 + +---@UseArgName6 + +---@UseArgName7 + +---@UseArgName8 + +---@UseArgName9 + +---@UseArgFullName1 + +---@UseArgFullName2 + +---@UseArgFullName3 + +---@UseArgFullName4 + +---@UseArgFullName5 + +---@UseArgFullName6 + +---@UseArgFullName7 + +---@UseArgFullName8 + +---@UseArgFullName9 \ No newline at end of file diff --git a/src/main/resources/std/Lua52/builtin.lua b/src/main/resources/std/Lua52/builtin.lua index 18e55f3e2..ca7af1cba 100644 --- a/src/main/resources/std/Lua52/builtin.lua +++ b/src/main/resources/std/Lua52/builtin.lua @@ -102,4 +102,59 @@ --- ---@class void ----@class self \ No newline at end of file +---@class self + +---@UseArgString1 + +---@UseArgString2 + +---@UseArgString3 + +---@UseArgString4 + +---@UseArgString5 + +---@UseArgString6 + +---@UseArgString7 + +---@UseArgString8 + +---@UseArgString9 + + +---@UseArgName1 + +---@UseArgName2 + +---@UseArgName3 + +---@UseArgName4 + +---@UseArgName5 + +---@UseArgName6 + +---@UseArgName7 + +---@UseArgName8 + +---@UseArgName9 + +---@UseArgFullName1 + +---@UseArgFullName2 + +---@UseArgFullName3 + +---@UseArgFullName4 + +---@UseArgFullName5 + +---@UseArgFullName6 + +---@UseArgFullName7 + +---@UseArgFullName8 + +---@UseArgFullName9 \ No newline at end of file diff --git a/src/main/resources/std/Lua53/builtin.lua b/src/main/resources/std/Lua53/builtin.lua index 18e55f3e2..ca7af1cba 100644 --- a/src/main/resources/std/Lua53/builtin.lua +++ b/src/main/resources/std/Lua53/builtin.lua @@ -102,4 +102,59 @@ --- ---@class void ----@class self \ No newline at end of file +---@class self + +---@UseArgString1 + +---@UseArgString2 + +---@UseArgString3 + +---@UseArgString4 + +---@UseArgString5 + +---@UseArgString6 + +---@UseArgString7 + +---@UseArgString8 + +---@UseArgString9 + + +---@UseArgName1 + +---@UseArgName2 + +---@UseArgName3 + +---@UseArgName4 + +---@UseArgName5 + +---@UseArgName6 + +---@UseArgName7 + +---@UseArgName8 + +---@UseArgName9 + +---@UseArgFullName1 + +---@UseArgFullName2 + +---@UseArgFullName3 + +---@UseArgFullName4 + +---@UseArgFullName5 + +---@UseArgFullName6 + +---@UseArgFullName7 + +---@UseArgFullName8 + +---@UseArgFullName9 \ No newline at end of file diff --git a/src/main/resources/std/Lua54/builtin.lua b/src/main/resources/std/Lua54/builtin.lua index 18e55f3e2..ca7af1cba 100644 --- a/src/main/resources/std/Lua54/builtin.lua +++ b/src/main/resources/std/Lua54/builtin.lua @@ -102,4 +102,59 @@ --- ---@class void ----@class self \ No newline at end of file +---@class self + +---@UseArgString1 + +---@UseArgString2 + +---@UseArgString3 + +---@UseArgString4 + +---@UseArgString5 + +---@UseArgString6 + +---@UseArgString7 + +---@UseArgString8 + +---@UseArgString9 + + +---@UseArgName1 + +---@UseArgName2 + +---@UseArgName3 + +---@UseArgName4 + +---@UseArgName5 + +---@UseArgName6 + +---@UseArgName7 + +---@UseArgName8 + +---@UseArgName9 + +---@UseArgFullName1 + +---@UseArgFullName2 + +---@UseArgFullName3 + +---@UseArgFullName4 + +---@UseArgFullName5 + +---@UseArgFullName6 + +---@UseArgFullName7 + +---@UseArgFullName8 + +---@UseArgFullName9 \ No newline at end of file From cdb65971727dde8f99d1df6ad395bd3fb475e2a4 Mon Sep 17 00:00:00 2001 From: ale Date: Tue, 23 Aug 2022 17:35:05 +0800 Subject: [PATCH 02/17] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E4=BF=9D=E7=95=99?= =?UTF-8?q?=E7=9A=84=E7=B1=BB=E5=9E=8B=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/std/Lua50/builtin.lua | 54 ++++++++++++------------ src/main/resources/std/Lua51/builtin.lua | 54 ++++++++++++------------ src/main/resources/std/Lua52/builtin.lua | 54 ++++++++++++------------ src/main/resources/std/Lua53/builtin.lua | 54 ++++++++++++------------ src/main/resources/std/Lua54/builtin.lua | 54 ++++++++++++------------ 5 files changed, 135 insertions(+), 135 deletions(-) diff --git a/src/main/resources/std/Lua50/builtin.lua b/src/main/resources/std/Lua50/builtin.lua index b5d414f40..2588c2218 100644 --- a/src/main/resources/std/Lua50/builtin.lua +++ b/src/main/resources/std/Lua50/builtin.lua @@ -104,57 +104,57 @@ ---@class self ----@UseArgString1 +---@class UseArgString1 ----@UseArgString2 +---@class UseArgString2 ----@UseArgString3 +---@class UseArgString3 ----@UseArgString4 +---@class UseArgString4 ----@UseArgString5 +---@class UseArgString5 ----@UseArgString6 +---@class UseArgString6 ----@UseArgString7 +---@class UseArgString7 ----@UseArgString8 +---@class UseArgString8 ----@UseArgString9 +---@class UseArgString9 ----@UseArgName1 +---@class UseArgName1 ----@UseArgName2 +---@class UseArgName2 ----@UseArgName3 +---@class UseArgName3 ----@UseArgName4 +---@class UseArgName4 ----@UseArgName5 +---@class UseArgName5 ----@UseArgName6 +---@class UseArgName6 ----@UseArgName7 +---@class UseArgName7 ----@UseArgName8 +---@class UseArgName8 ----@UseArgName9 +---@class UseArgName9 ----@UseArgFullName1 +---@class UseArgFullName1 ----@UseArgFullName2 +---@class UseArgFullName2 ----@UseArgFullName3 +---@class UseArgFullName3 ----@UseArgFullName4 +---@class UseArgFullName4 ----@UseArgFullName5 +---@class UseArgFullName5 ----@UseArgFullName6 +---@class UseArgFullName6 ----@UseArgFullName7 +---@class UseArgFullName7 ----@UseArgFullName8 +---@class UseArgFullName8 ----@UseArgFullName9 +---@class UseArgFullName9 diff --git a/src/main/resources/std/Lua51/builtin.lua b/src/main/resources/std/Lua51/builtin.lua index ca7af1cba..9b73e4b61 100644 --- a/src/main/resources/std/Lua51/builtin.lua +++ b/src/main/resources/std/Lua51/builtin.lua @@ -104,57 +104,57 @@ ---@class self ----@UseArgString1 +---@class UseArgString1 ----@UseArgString2 +---@class UseArgString2 ----@UseArgString3 +---@class UseArgString3 ----@UseArgString4 +---@class UseArgString4 ----@UseArgString5 +---@class UseArgString5 ----@UseArgString6 +---@class UseArgString6 ----@UseArgString7 +---@class UseArgString7 ----@UseArgString8 +---@class UseArgString8 ----@UseArgString9 +---@class UseArgString9 ----@UseArgName1 +---@class UseArgName1 ----@UseArgName2 +---@class UseArgName2 ----@UseArgName3 +---@class UseArgName3 ----@UseArgName4 +---@class UseArgName4 ----@UseArgName5 +---@class UseArgName5 ----@UseArgName6 +---@class UseArgName6 ----@UseArgName7 +---@class UseArgName7 ----@UseArgName8 +---@class UseArgName8 ----@UseArgName9 +---@class UseArgName9 ----@UseArgFullName1 +---@class UseArgFullName1 ----@UseArgFullName2 +---@class UseArgFullName2 ----@UseArgFullName3 +---@class UseArgFullName3 ----@UseArgFullName4 +---@class UseArgFullName4 ----@UseArgFullName5 +---@class UseArgFullName5 ----@UseArgFullName6 +---@class UseArgFullName6 ----@UseArgFullName7 +---@class UseArgFullName7 ----@UseArgFullName8 +---@class UseArgFullName8 ----@UseArgFullName9 \ No newline at end of file +---@class UseArgFullName9 \ No newline at end of file diff --git a/src/main/resources/std/Lua52/builtin.lua b/src/main/resources/std/Lua52/builtin.lua index ca7af1cba..9b73e4b61 100644 --- a/src/main/resources/std/Lua52/builtin.lua +++ b/src/main/resources/std/Lua52/builtin.lua @@ -104,57 +104,57 @@ ---@class self ----@UseArgString1 +---@class UseArgString1 ----@UseArgString2 +---@class UseArgString2 ----@UseArgString3 +---@class UseArgString3 ----@UseArgString4 +---@class UseArgString4 ----@UseArgString5 +---@class UseArgString5 ----@UseArgString6 +---@class UseArgString6 ----@UseArgString7 +---@class UseArgString7 ----@UseArgString8 +---@class UseArgString8 ----@UseArgString9 +---@class UseArgString9 ----@UseArgName1 +---@class UseArgName1 ----@UseArgName2 +---@class UseArgName2 ----@UseArgName3 +---@class UseArgName3 ----@UseArgName4 +---@class UseArgName4 ----@UseArgName5 +---@class UseArgName5 ----@UseArgName6 +---@class UseArgName6 ----@UseArgName7 +---@class UseArgName7 ----@UseArgName8 +---@class UseArgName8 ----@UseArgName9 +---@class UseArgName9 ----@UseArgFullName1 +---@class UseArgFullName1 ----@UseArgFullName2 +---@class UseArgFullName2 ----@UseArgFullName3 +---@class UseArgFullName3 ----@UseArgFullName4 +---@class UseArgFullName4 ----@UseArgFullName5 +---@class UseArgFullName5 ----@UseArgFullName6 +---@class UseArgFullName6 ----@UseArgFullName7 +---@class UseArgFullName7 ----@UseArgFullName8 +---@class UseArgFullName8 ----@UseArgFullName9 \ No newline at end of file +---@class UseArgFullName9 \ No newline at end of file diff --git a/src/main/resources/std/Lua53/builtin.lua b/src/main/resources/std/Lua53/builtin.lua index ca7af1cba..9b73e4b61 100644 --- a/src/main/resources/std/Lua53/builtin.lua +++ b/src/main/resources/std/Lua53/builtin.lua @@ -104,57 +104,57 @@ ---@class self ----@UseArgString1 +---@class UseArgString1 ----@UseArgString2 +---@class UseArgString2 ----@UseArgString3 +---@class UseArgString3 ----@UseArgString4 +---@class UseArgString4 ----@UseArgString5 +---@class UseArgString5 ----@UseArgString6 +---@class UseArgString6 ----@UseArgString7 +---@class UseArgString7 ----@UseArgString8 +---@class UseArgString8 ----@UseArgString9 +---@class UseArgString9 ----@UseArgName1 +---@class UseArgName1 ----@UseArgName2 +---@class UseArgName2 ----@UseArgName3 +---@class UseArgName3 ----@UseArgName4 +---@class UseArgName4 ----@UseArgName5 +---@class UseArgName5 ----@UseArgName6 +---@class UseArgName6 ----@UseArgName7 +---@class UseArgName7 ----@UseArgName8 +---@class UseArgName8 ----@UseArgName9 +---@class UseArgName9 ----@UseArgFullName1 +---@class UseArgFullName1 ----@UseArgFullName2 +---@class UseArgFullName2 ----@UseArgFullName3 +---@class UseArgFullName3 ----@UseArgFullName4 +---@class UseArgFullName4 ----@UseArgFullName5 +---@class UseArgFullName5 ----@UseArgFullName6 +---@class UseArgFullName6 ----@UseArgFullName7 +---@class UseArgFullName7 ----@UseArgFullName8 +---@class UseArgFullName8 ----@UseArgFullName9 \ No newline at end of file +---@class UseArgFullName9 \ No newline at end of file diff --git a/src/main/resources/std/Lua54/builtin.lua b/src/main/resources/std/Lua54/builtin.lua index ca7af1cba..9b73e4b61 100644 --- a/src/main/resources/std/Lua54/builtin.lua +++ b/src/main/resources/std/Lua54/builtin.lua @@ -104,57 +104,57 @@ ---@class self ----@UseArgString1 +---@class UseArgString1 ----@UseArgString2 +---@class UseArgString2 ----@UseArgString3 +---@class UseArgString3 ----@UseArgString4 +---@class UseArgString4 ----@UseArgString5 +---@class UseArgString5 ----@UseArgString6 +---@class UseArgString6 ----@UseArgString7 +---@class UseArgString7 ----@UseArgString8 +---@class UseArgString8 ----@UseArgString9 +---@class UseArgString9 ----@UseArgName1 +---@class UseArgName1 ----@UseArgName2 +---@class UseArgName2 ----@UseArgName3 +---@class UseArgName3 ----@UseArgName4 +---@class UseArgName4 ----@UseArgName5 +---@class UseArgName5 ----@UseArgName6 +---@class UseArgName6 ----@UseArgName7 +---@class UseArgName7 ----@UseArgName8 +---@class UseArgName8 ----@UseArgName9 +---@class UseArgName9 ----@UseArgFullName1 +---@class UseArgFullName1 ----@UseArgFullName2 +---@class UseArgFullName2 ----@UseArgFullName3 +---@class UseArgFullName3 ----@UseArgFullName4 +---@class UseArgFullName4 ----@UseArgFullName5 +---@class UseArgFullName5 ----@UseArgFullName6 +---@class UseArgFullName6 ----@UseArgFullName7 +---@class UseArgFullName7 ----@UseArgFullName8 +---@class UseArgFullName8 ----@UseArgFullName9 \ No newline at end of file +---@class UseArgFullName9 \ No newline at end of file From ae2cf77a1f209e368979f10e773110624e0ccf17 Mon Sep 17 00:00:00 2001 From: ale Date: Thu, 29 Sep 2022 00:05:02 +0800 Subject: [PATCH 03/17] =?UTF-8?q?pause=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt b/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt index ba3f022c1..6f30a7989 100644 --- a/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt +++ b/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt @@ -62,6 +62,7 @@ abstract class EmmyDebugProcessBase(session: XDebugSession) : LuaDebugProcess(se registerBreakpoint(position, breakpoint) } } + session.sessionResumed(); // send ready transporter?.send(Message(MessageCMD.ReadyReq)) } @@ -162,6 +163,7 @@ abstract class EmmyDebugProcessBase(session: XDebugSession) : LuaDebugProcess(se override fun run() { send(DebugActionMessage(DebugAction.Continue)) + session.sessionResumed(); } override fun stop() { @@ -186,7 +188,6 @@ abstract class EmmyDebugProcessBase(session: XDebugSession) : LuaDebugProcess(se override fun getEditorsProvider(): XDebuggerEditorsProvider { return editorsProvider } - fun addEvalResultHandler(handler: IEvalResultHandler) { evalHandlers.add(handler) } From b90df0f794665f382ac2003ede8057274e456dbe Mon Sep 17 00:00:00 2001 From: ale Date: Thu, 29 Sep 2022 00:17:43 +0800 Subject: [PATCH 04/17] pause --- .../tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt b/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt index 6f30a7989..67574982b 100644 --- a/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt +++ b/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt @@ -62,7 +62,7 @@ abstract class EmmyDebugProcessBase(session: XDebugSession) : LuaDebugProcess(se registerBreakpoint(position, breakpoint) } } - session.sessionResumed(); + session.setPauseActionSupported(true); // send ready transporter?.send(Message(MessageCMD.ReadyReq)) } @@ -131,6 +131,7 @@ abstract class EmmyDebugProcessBase(session: XDebugSession) : LuaDebugProcess(se } private fun onBreak(data: BreakNotify) { + session.setPauseActionSupported(false); evalHandlers.clear() val frames = data.stacks.map { EmmyDebugStackFrame(it, this) } val top = frames.firstOrNull { it.sourcePosition != null } @@ -163,7 +164,7 @@ abstract class EmmyDebugProcessBase(session: XDebugSession) : LuaDebugProcess(se override fun run() { send(DebugActionMessage(DebugAction.Continue)) - session.sessionResumed(); + session.setPauseActionSupported(true); } override fun stop() { From d5b5d4154cd864529dd1ee2015b98309cae2f388 Mon Sep 17 00:00:00 2001 From: ale Date: Thu, 29 Sep 2022 10:57:48 +0800 Subject: [PATCH 05/17] cm --- .../com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt b/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt index 67574982b..b5ec6d8eb 100644 --- a/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt +++ b/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt @@ -131,7 +131,6 @@ abstract class EmmyDebugProcessBase(session: XDebugSession) : LuaDebugProcess(se } private fun onBreak(data: BreakNotify) { - session.setPauseActionSupported(false); evalHandlers.clear() val frames = data.stacks.map { EmmyDebugStackFrame(it, this) } val top = frames.firstOrNull { it.sourcePosition != null } @@ -164,7 +163,6 @@ abstract class EmmyDebugProcessBase(session: XDebugSession) : LuaDebugProcess(se override fun run() { send(DebugActionMessage(DebugAction.Continue)) - session.setPauseActionSupported(true); } override fun stop() { From 7e15b422b1e94680334ef2820436862a4e9a9723 Mon Sep 17 00:00:00 2001 From: ale Date: Thu, 29 Sep 2022 12:25:14 +0800 Subject: [PATCH 06/17] =?UTF-8?q?pause=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt b/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt index b5ec6d8eb..5f031f0b6 100644 --- a/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt +++ b/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt @@ -38,6 +38,7 @@ abstract class EmmyDebugProcessBase(session: XDebugSession) : LuaDebugProcess(se override fun sessionInitialized() { super.sessionInitialized() + session.setPauseActionSupported(true) ApplicationManager.getApplication().executeOnPooledThread { setupTransporter() } From 4143c15690ff98b17cfd03c43735991cc498ddea Mon Sep 17 00:00:00 2001 From: ale Date: Mon, 14 Nov 2022 16:44:20 +0800 Subject: [PATCH 07/17] comit --- build.gradle.kts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 6271b1814..91a92845a 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -249,15 +249,15 @@ project(":") { doLast { val rev = getRev() // reset - exec { - executable = "git" - args("reset", "HEAD", "--hard") - } + //exec { + //executable = "git" + //args("reset", "HEAD", "--hard") + //} // clean untracked files - exec { - executable = "git" - args("clean", "-d", "-f") - } + //exec { + //executable = "git" + //args("clean", "-d", "-f") + //} // switch exec { executable = if (isWin) "bunch/bin/bunch.bat" else "bunch/bin/bunch" @@ -291,9 +291,9 @@ project(":") { untilBuild.set(buildVersionData.untilBuild) } - instrumentCode { - compilerVersion.set(buildVersionData.instrumentCodeCompilerVersion) - } + //instrumentCode { + // compilerVersion.set(buildVersionData.instrumentCodeCompilerVersion) + //} publishPlugin { token.set(System.getenv("IDEA_PUBLISH_TOKEN")) From 0ce7e544ae130a00928a0be5734d11f3208bdea8 Mon Sep 17 00:00:00 2001 From: ale Date: Wed, 16 Nov 2022 14:10:05 +0800 Subject: [PATCH 08/17] =?UTF-8?q?=E6=94=AF=E6=8C=81=20=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2=E6=8E=A8=E5=AF=BC=20=E6=89=A9?= =?UTF-8?q?=E5=B1=95=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lua/psi/impl/LuaCallExprImpl.java | 50 ++++++++++++------- .../tang/intellij/lua/psi/LuaPsiImplUtil.kt | 23 ++++++++- 2 files changed, 53 insertions(+), 20 deletions(-) diff --git a/gen/com/tang/intellij/lua/psi/impl/LuaCallExprImpl.java b/gen/com/tang/intellij/lua/psi/impl/LuaCallExprImpl.java index 5dffa983d..05ef720ad 100644 --- a/gen/com/tang/intellij/lua/psi/impl/LuaCallExprImpl.java +++ b/gen/com/tang/intellij/lua/psi/impl/LuaCallExprImpl.java @@ -4,6 +4,7 @@ import java.util.List; import com.tang.intellij.lua.ty.TyAliasSubstitutor; +import groovy.lang.Tuple4; import org.jetbrains.annotations.*; import com.intellij.lang.ASTNode; import com.intellij.psi.PsiElement; @@ -64,39 +65,52 @@ public ITy guessParentType(@NotNull SearchContext context) { public ITy guessType(SearchContext context) { ITy ty = SearchContext.Companion.infer(this, context); String typeName = ty.getDisplayName(); - int start = 0; - String newName = ""; - if ((newName = getStringArgByTypeName(typeName, "UseArgString")) != typeName) { - ty = LuaPsiImplUtilKt.newType(newName); - } - else if((newName = getStringArgByTypeName(typeName, "UseArgName")) != typeName) { - ty = LuaPsiImplUtilKt.newType(newName); - } - else if((newName = getStringArgByTypeName(typeName, "UseArgFullName")) != typeName) { - ty = LuaPsiImplUtilKt.newType(newName); + boolean isDynamic = false; + Tuple4 t; + do + { + t = getStringArgByTypeName(typeName, "UseArgString"); + isDynamic = t.getV1(); + if(isDynamic) break; + + t = getStringArgByTypeName(typeName, "UseArgName"); + isDynamic = t.getV1(); + if (isDynamic) break; + + t = getStringArgByTypeName(typeName, "UseArgFullName"); + isDynamic = t.getV1(); + if (isDynamic) break; + + }while (false); + + if(isDynamic) { + ty = LuaPsiImplUtilKt.newType((String)t.getV2(), ty, (String)t.getV3(), (String)t.getV4()); } + ty = TyAliasSubstitutor.Companion.substitute(ty, context); return ty; } @Nullable - public String getStringArgByTypeName(String typeName, String argType) { + public Tuple4 getStringArgByTypeName(String typeName, String argType) { int start = 0; + int index = 0; + String replaceStr = ""; + String str = ""; + Boolean result = false; + if ((start = typeName.indexOf(argType)) >= 0) { - int index = 0; int length = argType.length(); - String replaceStr = argType; + replaceStr = argType; if(start + length < typeName.length()) { index = typeName.charAt(start + length) - '1'; replaceStr = argType + Integer.toString(index + 1); } - if(index >= 0 && index <= 9) { - - String str = ""; + result = true; if (argType == "UseArgString") { PsiElement p = LuaPsiImplUtilKt.getStringArgByIndex(this, index); @@ -117,10 +131,10 @@ else if (argType == "UseArgFullName") } } } - - return typeName; + return new Tuple4(result, typeName, replaceStr, str); } + @Nullable public PsiElement getFirstStringArg() { return LuaPsiImplUtilKt.getStringArgByIndex(this, 0); diff --git a/src/main/java/com/tang/intellij/lua/psi/LuaPsiImplUtil.kt b/src/main/java/com/tang/intellij/lua/psi/LuaPsiImplUtil.kt index e5ed5fd64..65ad44c47 100644 --- a/src/main/java/com/tang/intellij/lua/psi/LuaPsiImplUtil.kt +++ b/src/main/java/com/tang/intellij/lua/psi/LuaPsiImplUtil.kt @@ -387,8 +387,27 @@ fun getNameExprStringValue(valueExpr: PsiElement): String { return ""; } -fun newType(typeName: String): ITy { - return TyLazyClass(typeName); +fun newType(typeName: String, ty: ITy, sourceStr: String, targetStr: String): ITy { + if (ty is TyArray) { + val t = typeName.substringBefore('[').trim() + val ty = TyLazyClass(t) + return TyArray(ty); + } + else if(ty is TySerializedGeneric){ + val list = mutableListOf(); + ty.params.forEach { + var name = it.displayName + if(name.contains(sourceStr)) + { + name = name.replace(sourceStr, targetStr) + } + list.add(newType(name, it, sourceStr, targetStr)) + } + return TySerializedGeneric(list.toTypedArray(), ty.base) + } + else { + return TyLazyClass(typeName); + } } fun guessParentType(indexExpr: LuaIndexExpr, context: SearchContext): ITy { From 27ce3084bd521f637c15cfc087d4bae9e7fd26df Mon Sep 17 00:00:00 2001 From: tangzx Date: Sun, 10 Mar 2024 17:41:23 +0800 Subject: [PATCH 09/17] build for 241 --- build.gradle.kts | 9 +++++++++ src/main/resources/META-INF/plugin.xml | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 98eb4f87f..38f54ff94 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -40,6 +40,15 @@ data class BuildData( ) val buildDataList = listOf( + BuildData( + ideaSDKShortVersion = "241", + ideaSDKVersion = "241.14494.17-EAP-SNAPSHOT", + sinceBuild = "232", + untilBuild = "241.*", + bunch = "212", + targetCompatibilityLevel = JavaVersion.VERSION_17, + jvmTarget = "17" + ), BuildData( ideaSDKShortVersion = "231", // 223.7571.123-EAP-SNAPSHOT diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index 097d22fe2..a0f6d5f5b 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -69,6 +69,10 @@ ]]> 1.4.12 +
    +
  • [NEW] compatible with IDEA241
  • +
1.4.9
  • [NEW] compatible with IDEA233
  • From 2bf1f6f6e06704e11f95703524451f134e26d0c0 Mon Sep 17 00:00:00 2001 From: tangzx Date: Sun, 24 Mar 2024 21:38:24 +0800 Subject: [PATCH 10/17] build for 241 --- build.gradle.kts | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 38f54ff94..4f041cc1b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -59,29 +59,6 @@ val buildDataList = listOf( bunch = "212", targetCompatibilityLevel = JavaVersion.VERSION_17, jvmTarget = "17" - ), - BuildData( - ideaSDKShortVersion = "223", - ideaSDKVersion = "2022.3", - sinceBuild = "223", - untilBuild = "223.*", - bunch = "212", - targetCompatibilityLevel = JavaVersion.VERSION_17, - jvmTarget = "17" - ), - BuildData( - ideaSDKShortVersion = "222", - ideaSDKVersion = "2022.2", - sinceBuild = "212", - untilBuild = "222.*", - bunch = "212" - ), - BuildData( - ideaSDKShortVersion = "211", - ideaSDKVersion = "2021.1", - sinceBuild = "211", - untilBuild = "211.*", - bunch = "203" ) ) From 9f3bbb924d4c84d30cabe2dd3c1f9ed20a87a025 Mon Sep 17 00:00:00 2001 From: tangzx Date: Fri, 26 Jul 2024 23:25:12 +0800 Subject: [PATCH 11/17] build for 242 --- build.gradle.kts | 6 +++--- src/main/resources/META-INF/plugin.xml | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 4f041cc1b..36bae0ac6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -41,10 +41,10 @@ data class BuildData( val buildDataList = listOf( BuildData( - ideaSDKShortVersion = "241", - ideaSDKVersion = "241.14494.17-EAP-SNAPSHOT", + ideaSDKShortVersion = "242", + ideaSDKVersion = "242-EAP-SNAPSHOT", sinceBuild = "232", - untilBuild = "241.*", + untilBuild = "242.*", bunch = "212", targetCompatibilityLevel = JavaVersion.VERSION_17, jvmTarget = "17" diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index a0f6d5f5b..58fd3d1fe 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -69,6 +69,10 @@ ]]> 1.4.14 +
      +
    • [NEW] compatible with IDEA242
    • +
    1.4.12
    • [NEW] compatible with IDEA241
    • From 5dfd84d0b9cdfcfd65a1debfb9393d761a1837e8 Mon Sep 17 00:00:00 2001 From: tangzx Date: Sun, 10 Nov 2024 19:47:14 +0800 Subject: [PATCH 12/17] build for 243 --- build.gradle.kts | 17 +++-------------- .../lua/debugger/app/LuaAppSettingsEditor.java | 14 +++++++++----- src/main/resources/META-INF/plugin.xml | 4 ++++ 3 files changed, 16 insertions(+), 19 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 36bae0ac6..aa161c367 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -41,21 +41,10 @@ data class BuildData( val buildDataList = listOf( BuildData( - ideaSDKShortVersion = "242", - ideaSDKVersion = "242-EAP-SNAPSHOT", + ideaSDKShortVersion = "243", + ideaSDKVersion = "243-EAP-SNAPSHOT", sinceBuild = "232", - untilBuild = "242.*", - bunch = "212", - targetCompatibilityLevel = JavaVersion.VERSION_17, - jvmTarget = "17" - ), - BuildData( - ideaSDKShortVersion = "231", - // 223.7571.123-EAP-SNAPSHOT - // LATEST-EAP-SNAPSHOT - ideaSDKVersion = "233.11799.6-EAP-SNAPSHOT", - sinceBuild = "232", - untilBuild = "233.*", + untilBuild = "243.*", bunch = "212", targetCompatibilityLevel = JavaVersion.VERSION_17, jvmTarget = "17" diff --git a/src/main/java/com/tang/intellij/lua/debugger/app/LuaAppSettingsEditor.java b/src/main/java/com/tang/intellij/lua/debugger/app/LuaAppSettingsEditor.java index 83cf380a1..f93c752c7 100644 --- a/src/main/java/com/tang/intellij/lua/debugger/app/LuaAppSettingsEditor.java +++ b/src/main/java/com/tang/intellij/lua/debugger/app/LuaAppSettingsEditor.java @@ -60,14 +60,18 @@ public class LuaAppSettingsEditor extends SettingsEditor private EnvironmentVariablesTextFieldWithBrowseButton myEnvironments; private ComboBox outputCharset; private JCheckBox showConsoleWindowCheckBox; - private Project project; + private final Project project; LuaAppSettingsEditor(Project project) { this.project = project; - FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor(); - myProgram.addBrowseFolderListener("Choose Program", "Choose program file", project, descriptor); - descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor(); - myWorkingDir.addBrowseFolderListener("Choose Working Dir", "Choose working dir", project, descriptor); + FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileNoJarsDescriptor() + .withTitle("Choose Program") + .withDescription("Choose program file"); + myProgram.addBrowseFolderListener(project, descriptor); + descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor() + .withTitle("Choose Working Dir") + .withDescription("Choose working dir"); + myWorkingDir.addBrowseFolderListener(project, descriptor); DebuggerType[] debuggerTypes = new DebuggerType[] { DebuggerType.Mob }; /*if (SystemInfoRt.isWindows) diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index 58fd3d1fe..bf1f27e5a 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -69,6 +69,10 @@ ]]> 1.4.15 +
        +
      • [NEW] compatible with IDEA243
      • +
      1.4.14
      • [NEW] compatible with IDEA242
      • From 993005fe95f88b0b4585d2ac901ee0578b16c65d Mon Sep 17 00:00:00 2001 From: tangzx Date: Sun, 17 Nov 2024 23:41:57 +0800 Subject: [PATCH 13/17] fix compatibility verification issues --- build.gradle.kts | 2 +- .../com/tang/intellij/lua/debugger/LuaDebugProcess.kt | 7 ++++--- .../intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt | 7 ++++--- .../tang/intellij/lua/debugger/remote/value/LuaRTable.kt | 9 +++++---- .../lua/project/LuaLibraryRootsComponentDescriptor.kt | 5 +++-- .../lua/refactoring/rename/LuaIntroduceVarHandler.kt | 6 +----- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index aa161c367..a74def57b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -42,7 +42,7 @@ data class BuildData( val buildDataList = listOf( BuildData( ideaSDKShortVersion = "243", - ideaSDKVersion = "243-EAP-SNAPSHOT", + ideaSDKVersion = "243.21565.193", sinceBuild = "232", untilBuild = "243.*", bunch = "212", diff --git a/src/main/java/com/tang/intellij/lua/debugger/LuaDebugProcess.kt b/src/main/java/com/tang/intellij/lua/debugger/LuaDebugProcess.kt index aca995bf3..f6b2c3f60 100644 --- a/src/main/java/com/tang/intellij/lua/debugger/LuaDebugProcess.kt +++ b/src/main/java/com/tang/intellij/lua/debugger/LuaDebugProcess.kt @@ -32,7 +32,6 @@ import com.intellij.xdebugger.breakpoints.XBreakpointHandler import com.intellij.xdebugger.breakpoints.XBreakpointProperties import com.intellij.xdebugger.breakpoints.XLineBreakpoint import com.intellij.xdebugger.frame.XSuspendContext -import com.intellij.xdebugger.impl.XDebugSessionImpl import com.intellij.xdebugger.impl.actions.XDebuggerActions /** @@ -144,11 +143,13 @@ abstract class LuaDebugProcess protected constructor(session: XDebugSession) : X } } else { ApplicationManager.getApplication().invokeLater { - val se = session + // todo: fix "Internal classes usages" & "Internal methods usages" problem + /*val se = session if (se is XDebugSessionImpl) se.positionReached(LuaSuspendContext(stack), true) else - se.positionReached(LuaSuspendContext(stack)) + se.positionReached(LuaSuspendContext(stack))*/ + session.positionReached(LuaSuspendContext(stack)) session.showExecutionPoint() } } diff --git a/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt b/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt index 657253edf..7c0951447 100644 --- a/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt +++ b/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt @@ -26,7 +26,6 @@ import com.intellij.xdebugger.XSourcePosition import com.intellij.xdebugger.breakpoints.XLineBreakpoint import com.intellij.xdebugger.evaluation.XDebuggerEditorsProvider import com.intellij.xdebugger.frame.XSuspendContext -import com.intellij.xdebugger.impl.XDebugSessionImpl import com.tang.intellij.lua.debugger.* import com.tang.intellij.lua.psi.LuaFileManager import com.tang.intellij.lua.psi.LuaFileUtil @@ -170,11 +169,13 @@ abstract class EmmyDebugProcessBase(session: XDebugSession) : LuaDebugProcess(se } } else { ApplicationManager.getApplication().invokeLater { - val se = session + // todo: fix "Internal classes usages" & "Internal methods usages" problem + /*val se = session if (se is XDebugSessionImpl) se.positionReached(LuaSuspendContext(stack), true) else - se.positionReached(LuaSuspendContext(stack)) + se.positionReached(LuaSuspendContext(stack))*/ + session.positionReached(LuaSuspendContext(stack)) session.showExecutionPoint() } } diff --git a/src/main/java/com/tang/intellij/lua/debugger/remote/value/LuaRTable.kt b/src/main/java/com/tang/intellij/lua/debugger/remote/value/LuaRTable.kt index 7acc5d690..2dd50ab16 100644 --- a/src/main/java/com/tang/intellij/lua/debugger/remote/value/LuaRTable.kt +++ b/src/main/java/com/tang/intellij/lua/debugger/remote/value/LuaRTable.kt @@ -19,7 +19,6 @@ package com.tang.intellij.lua.debugger.remote.value import com.intellij.icons.AllIcons import com.intellij.xdebugger.evaluation.XDebuggerEvaluator import com.intellij.xdebugger.frame.* -import com.intellij.xdebugger.impl.XDebugSessionImpl import com.tang.intellij.lua.debugger.remote.LuaMobDebugProcess import org.luaj.vm2.LuaValue @@ -75,11 +74,13 @@ class LuaRTable(name: String) : LuaRValue(name) { override fun evaluated(tv: XValue) { //////////tmp solution,非栈顶帧处理 - var tableValue = tv - if (data != null && !(process.session as XDebugSessionImpl).isTopFrameSelected) - tableValue = LuaRValue.create(myName, data as LuaValue, myName, process.session) + // todo: fix "Internal classes usages" & "Internal methods usages" problem + //var tableValue = tv + //if (data != null && !(process.session as XDebugSessionImpl).isTopFrameSelected) + // tableValue = LuaRValue.create(myName, data as LuaValue, myName, process.session) ////////// + val tableValue = tv val list = XValueChildrenList() val tbl = tableValue as? LuaRTable ?: return val table = tbl.data?.checktable() diff --git a/src/main/java/com/tang/intellij/lua/project/LuaLibraryRootsComponentDescriptor.kt b/src/main/java/com/tang/intellij/lua/project/LuaLibraryRootsComponentDescriptor.kt index ee63c5c8d..66b6452ab 100644 --- a/src/main/java/com/tang/intellij/lua/project/LuaLibraryRootsComponentDescriptor.kt +++ b/src/main/java/com/tang/intellij/lua/project/LuaLibraryRootsComponentDescriptor.kt @@ -34,13 +34,14 @@ open class LuaLibraryRootsComponentDescriptor : LibraryRootsComponentDescriptor( override fun createAttachFilesChooserDescriptor(libraryName: String?): FileChooserDescriptor { return object : FileChooserDescriptor(super.createAttachFilesChooserDescriptor(libraryName)) { - override fun isFileVisible(file: VirtualFile, showHiddenFiles: Boolean): Boolean { + // todo: fix "Non-extendable method usage violation" problem + /*override fun isFileVisible(file: VirtualFile, showHiddenFiles: Boolean): Boolean { if (file.isDirectory) return true val ext = file.extension return ext != null && ext.equals("zip", ignoreCase = true) - } + }*/ } } diff --git a/src/main/java/com/tang/intellij/lua/refactoring/rename/LuaIntroduceVarHandler.kt b/src/main/java/com/tang/intellij/lua/refactoring/rename/LuaIntroduceVarHandler.kt index c0868064f..32cba9310 100644 --- a/src/main/java/com/tang/intellij/lua/refactoring/rename/LuaIntroduceVarHandler.kt +++ b/src/main/java/com/tang/intellij/lua/refactoring/rename/LuaIntroduceVarHandler.kt @@ -22,15 +22,11 @@ import com.intellij.openapi.command.WriteCommandAction import com.intellij.openapi.editor.Editor import com.intellij.openapi.project.Project import com.intellij.openapi.util.Pass -import com.intellij.psi.PsiDocumentManager -import com.intellij.psi.PsiElement -import com.intellij.psi.PsiFile -import com.intellij.psi.SmartPsiElementPointer +import com.intellij.psi.* import com.intellij.psi.util.PsiTreeUtil import com.intellij.refactoring.RefactoringActionHandler import com.intellij.refactoring.introduce.inplace.InplaceVariableIntroducer import com.intellij.refactoring.introduce.inplace.OccurrencesChooser -import com.intellij.refactoring.suggested.createSmartPointer import com.tang.intellij.lua.psi.* import com.tang.intellij.lua.refactoring.LuaRefactoringUtil From 637babc6053b0c527e439bc1c8ea6bb4cba3bf7e Mon Sep 17 00:00:00 2001 From: tangzx Date: Sun, 17 Nov 2024 23:53:14 +0800 Subject: [PATCH 14/17] build for 243 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index a74def57b..c37a9e171 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -43,7 +43,7 @@ val buildDataList = listOf( BuildData( ideaSDKShortVersion = "243", ideaSDKVersion = "243.21565.193", - sinceBuild = "232", + sinceBuild = "243", untilBuild = "243.*", bunch = "212", targetCompatibilityLevel = JavaVersion.VERSION_17, From 22aa6498e75c1593ff2ed59a17d8bd00a1f883ac Mon Sep 17 00:00:00 2001 From: ale Date: Thu, 1 Dec 2022 02:29:39 +0800 Subject: [PATCH 15/17] =?UTF-8?q?=E7=94=A8=20IC=E7=89=88=E6=9C=AC=E7=9A=84?= =?UTF-8?q?SDK=20=E4=BB=A5=E5=8F=8A=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=B8=AA=20?= =?UTF-8?q?table=E8=A1=A8=E8=BE=BE=E5=BC=8F=E8=A7=A3=E6=9E=90=E4=B8=8D?= =?UTF-8?q?=E4=BA=86=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From 908dc5d09123df3891f51626fad145f3a4b038cf Mon Sep 17 00:00:00 2001 From: ale <345036769@qq.com> Date: Tue, 8 Apr 2025 16:42:24 +0800 Subject: [PATCH 16/17] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1a0aff58a..b1080ba71 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,7 +35,7 @@ jobs: run: ./gradlew buildPlugin - name: Upload artifact - uses: actions/upload-artifact@v3.1.0 + uses: actions/upload-artifact@v4 with: name: v${{ env.CI_BUILD_VERSION }} path: build/distributions/*.zip From ecac1be1b658f70f65420fe055fad0a296a1cf55 Mon Sep 17 00:00:00 2001 From: ale <345036769@qq.com> Date: Tue, 8 Apr 2025 16:44:24 +0800 Subject: [PATCH 17/17] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=EF=BC=8C=E7=BC=96=E8=AF=9124.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b1080ba71..867d71ac6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,9 +29,9 @@ jobs: java-version: '17' distribution: 'temurin' - - name: Build 2023.1 + - name: Build 2024.3 env: - IDEA_VER: 231 + IDEA_VER: 243 run: ./gradlew buildPlugin - name: Upload artifact