diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1a0aff58a..867d71ac6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,13 +29,13 @@ 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 - uses: actions/upload-artifact@v3.1.0 + uses: actions/upload-artifact@v4 with: name: v${{ env.CI_BUILD_VERSION }} path: build/distributions/*.zip diff --git a/build.gradle.kts b/build.gradle.kts index e7c5b5a89..c37a9e171 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -41,38 +41,13 @@ data class BuildData( val buildDataList = listOf( BuildData( - ideaSDKShortVersion = "231", - // 223.7571.123-EAP-SNAPSHOT - // LATEST-EAP-SNAPSHOT - ideaSDKVersion = "233.11799.6-EAP-SNAPSHOT", - sinceBuild = "232", - untilBuild = "233.*", + ideaSDKShortVersion = "243", + ideaSDKVersion = "243.21565.193", + sinceBuild = "243", + untilBuild = "243.*", 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" ) ) @@ -211,15 +186,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" @@ -253,9 +228,9 @@ project(":") { untilBuild.set(buildVersionData.untilBuild) } - instrumentCode { - compilerVersion.set(buildVersionData.instrumentCodeCompilerVersion) - } + //instrumentCode { + // compilerVersion.set(buildVersionData.instrumentCodeCompilerVersion) + //} publishPlugin { token.set(System.getenv("IDEA_PUBLISH_TOKEN")) diff --git a/gen/com/tang/intellij/lua/psi/impl/LuaCallExprImpl.java b/gen/com/tang/intellij/lua/psi/impl/LuaCallExprImpl.java index c257b1b4f..05ef720ad 100644 --- a/gen/com/tang/intellij/lua/psi/impl/LuaCallExprImpl.java +++ b/gen/com/tang/intellij/lua/psi/impl/LuaCallExprImpl.java @@ -2,6 +2,9 @@ package com.tang.intellij.lua.psi.impl; 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; @@ -58,9 +61,88 @@ public ITy guessParentType(@NotNull SearchContext context) { } @Override + @NotNull + public ITy guessType(SearchContext context) { + ITy ty = SearchContext.Companion.infer(this, context); + String typeName = ty.getDisplayName(); + 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 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 length = argType.length(); + replaceStr = argType; + if(start + length < typeName.length()) + { + index = typeName.charAt(start + length) - '1'; + replaceStr = argType + Integer.toString(index + 1); + } + + if(index >= 0 && index <= 9) + { + result = true; + 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 new Tuple4(result, typeName, replaceStr, str); + } + + @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/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/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/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt b/src/main/java/com/tang/intellij/lua/debugger/emmy/EmmyDebugProcessBase.kt index 69fba873e..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 @@ -45,6 +44,7 @@ abstract class EmmyDebugProcessBase(session: XDebugSession) : LuaDebugProcess(se override fun sessionInitialized() { super.sessionInitialized() + session.setPauseActionSupported(true) ApplicationManager.getApplication().executeOnPooledThread { setupTransporter() } @@ -69,6 +69,7 @@ abstract class EmmyDebugProcessBase(session: XDebugSession) : LuaDebugProcess(se registerBreakpoint(position, breakpoint) } } + session.setPauseActionSupported(true); // send ready transporter?.send(Message(MessageCMD.ReadyReq)) } @@ -168,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() } } @@ -208,7 +211,6 @@ abstract class EmmyDebugProcessBase(session: XDebugSession) : LuaDebugProcess(se override fun getEditorsProvider(): XDebuggerEditorsProvider { return editorsProvider } - fun addEvalResultHandler(handler: IEvalResultHandler) { evalHandlers.add(handler) } 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/psi/LuaPsiImplUtil.kt b/src/main/java/com/tang/intellij/lua/psi/LuaPsiImplUtil.kt index 47b661d82..d244cf1d2 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 @@ -188,26 +189,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 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 && index == 0) path = expr + } + is LuaListArgs -> args.exprList.let { list -> + 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 getFirstStringArg(callExpr: LuaCallExpr): 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 LuaLiteralExpr) path = 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[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 LuaNameExpr) { + path = list[index] + } + else if (list[index] is LuaIndexExpr) { + path = list[index] + } } } } @@ -257,6 +369,54 @@ 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, 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 { val expr = PsiTreeUtil.getStubChildOfType(indexExpr, LuaExpr::class.java) return expr?.guessType(context) ?: Ty.UNKNOWN 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 diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index 097d22fe2..bf1f27e5a 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -69,6 +69,18 @@ ]]> 1.4.15 +
    +
  • [NEW] compatible with IDEA243
  • +
+ 1.4.14 +
    +
  • [NEW] compatible with IDEA242
  • +
+ 1.4.12 +
    +
  • [NEW] compatible with IDEA241
  • +
1.4.9
  • [NEW] compatible with IDEA233
  • diff --git a/src/main/resources/std/Lua50/builtin.lua b/src/main/resources/std/Lua50/builtin.lua index 18e55f3e2..2588c2218 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 + +---@class UseArgString1 + +---@class UseArgString2 + +---@class UseArgString3 + +---@class UseArgString4 + +---@class UseArgString5 + +---@class UseArgString6 + +---@class UseArgString7 + +---@class UseArgString8 + +---@class UseArgString9 + + +---@class UseArgName1 + +---@class UseArgName2 + +---@class UseArgName3 + +---@class UseArgName4 + +---@class UseArgName5 + +---@class UseArgName6 + +---@class UseArgName7 + +---@class UseArgName8 + +---@class UseArgName9 + +---@class UseArgFullName1 + +---@class UseArgFullName2 + +---@class UseArgFullName3 + +---@class UseArgFullName4 + +---@class UseArgFullName5 + +---@class UseArgFullName6 + +---@class UseArgFullName7 + +---@class UseArgFullName8 + +---@class UseArgFullName9 diff --git a/src/main/resources/std/Lua51/builtin.lua b/src/main/resources/std/Lua51/builtin.lua index 18e55f3e2..9b73e4b61 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 + +---@class UseArgString1 + +---@class UseArgString2 + +---@class UseArgString3 + +---@class UseArgString4 + +---@class UseArgString5 + +---@class UseArgString6 + +---@class UseArgString7 + +---@class UseArgString8 + +---@class UseArgString9 + + +---@class UseArgName1 + +---@class UseArgName2 + +---@class UseArgName3 + +---@class UseArgName4 + +---@class UseArgName5 + +---@class UseArgName6 + +---@class UseArgName7 + +---@class UseArgName8 + +---@class UseArgName9 + +---@class UseArgFullName1 + +---@class UseArgFullName2 + +---@class UseArgFullName3 + +---@class UseArgFullName4 + +---@class UseArgFullName5 + +---@class UseArgFullName6 + +---@class UseArgFullName7 + +---@class UseArgFullName8 + +---@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 18e55f3e2..9b73e4b61 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 + +---@class UseArgString1 + +---@class UseArgString2 + +---@class UseArgString3 + +---@class UseArgString4 + +---@class UseArgString5 + +---@class UseArgString6 + +---@class UseArgString7 + +---@class UseArgString8 + +---@class UseArgString9 + + +---@class UseArgName1 + +---@class UseArgName2 + +---@class UseArgName3 + +---@class UseArgName4 + +---@class UseArgName5 + +---@class UseArgName6 + +---@class UseArgName7 + +---@class UseArgName8 + +---@class UseArgName9 + +---@class UseArgFullName1 + +---@class UseArgFullName2 + +---@class UseArgFullName3 + +---@class UseArgFullName4 + +---@class UseArgFullName5 + +---@class UseArgFullName6 + +---@class UseArgFullName7 + +---@class UseArgFullName8 + +---@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 18e55f3e2..9b73e4b61 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 + +---@class UseArgString1 + +---@class UseArgString2 + +---@class UseArgString3 + +---@class UseArgString4 + +---@class UseArgString5 + +---@class UseArgString6 + +---@class UseArgString7 + +---@class UseArgString8 + +---@class UseArgString9 + + +---@class UseArgName1 + +---@class UseArgName2 + +---@class UseArgName3 + +---@class UseArgName4 + +---@class UseArgName5 + +---@class UseArgName6 + +---@class UseArgName7 + +---@class UseArgName8 + +---@class UseArgName9 + +---@class UseArgFullName1 + +---@class UseArgFullName2 + +---@class UseArgFullName3 + +---@class UseArgFullName4 + +---@class UseArgFullName5 + +---@class UseArgFullName6 + +---@class UseArgFullName7 + +---@class UseArgFullName8 + +---@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 18e55f3e2..9b73e4b61 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 + +---@class UseArgString1 + +---@class UseArgString2 + +---@class UseArgString3 + +---@class UseArgString4 + +---@class UseArgString5 + +---@class UseArgString6 + +---@class UseArgString7 + +---@class UseArgString8 + +---@class UseArgString9 + + +---@class UseArgName1 + +---@class UseArgName2 + +---@class UseArgName3 + +---@class UseArgName4 + +---@class UseArgName5 + +---@class UseArgName6 + +---@class UseArgName7 + +---@class UseArgName8 + +---@class UseArgName9 + +---@class UseArgFullName1 + +---@class UseArgFullName2 + +---@class UseArgFullName3 + +---@class UseArgFullName4 + +---@class UseArgFullName5 + +---@class UseArgFullName6 + +---@class UseArgFullName7 + +---@class UseArgFullName8 + +---@class UseArgFullName9 \ No newline at end of file