├── settings.gradle.kts ├── img ├── cover.png └── LiteFLowX.png ├── jflex-1.9.1.jar ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── src └── main │ ├── resources │ ├── META-INF │ │ ├── LiteFlowX-optionalJavaScript.xml │ │ └── pluginIcon.svg │ ├── dtd │ │ └── liteflow-xml.dtd │ ├── language │ │ └── jsInjections.xml │ └── images │ │ ├── common.svg │ │ ├── liteflowx.svg │ │ ├── tool_13x13.svg │ │ ├── xml.svg │ │ ├── if.svg │ │ ├── chain.svg │ │ └── iterator.svg │ ├── java │ └── top │ │ └── xystudio │ │ └── plugin │ │ └── idea │ │ └── liteflowx │ │ ├── dom │ │ ├── modal │ │ │ ├── Nodes.java │ │ │ ├── Flow.java │ │ │ ├── Chain.java │ │ │ └── Node.java │ │ └── description │ │ │ └── FlowDescription.java │ │ ├── system │ │ ├── language │ │ │ ├── LiteFlowLexerAdapter.java │ │ │ ├── LiteFlowLanguage.java │ │ │ ├── editing │ │ │ │ ├── LiteFlowEnterBetweenBracesDelegate.java │ │ │ │ ├── LiteFlowCommenter.java │ │ │ │ └── LiteFlowBraceMatcher.java │ │ │ ├── psi │ │ │ │ ├── LiteFlowElementType.java │ │ │ │ ├── LiteFlowTokenType.java │ │ │ │ ├── impl │ │ │ │ │ └── LiteFlowLanguagePsiImplUtil.java │ │ │ │ └── LiteFlowFile.java │ │ │ ├── highlight │ │ │ │ └── LiteFlowSyntaxHighlighterFactory.java │ │ │ └── LiteFlowFileType.java │ │ ├── toolWindow │ │ │ ├── service │ │ │ │ ├── topic │ │ │ │ │ ├── BaseTopic.java │ │ │ │ │ ├── RefreshLiteFlowTreeTopic.java │ │ │ │ │ └── LiteFlowTreeTopic.java │ │ │ │ ├── impl │ │ │ │ │ └── LiteFlowToolWindowServiceImpl.java │ │ │ │ └── LiteFlowToolWindowService.java │ │ │ ├── actions │ │ │ │ └── RefreshAction.java │ │ │ ├── beans │ │ │ │ ├── CategoryTree.java │ │ │ │ └── LiteFlowElementType.java │ │ │ └── renderer │ │ │ │ └── LiteFlowTreeCellRenderer.java │ │ └── provider │ │ │ └── XmlLineMarkerProvider.java │ │ ├── util │ │ ├── StringUtils.java │ │ ├── LiteFlowUtils.java │ │ └── AsyncUtils.java │ │ ├── constant │ │ ├── Annotation.java │ │ ├── NodeTypeEnum.java │ │ ├── Clazz.java │ │ └── LiteFlowMethodEnum.java │ │ ├── service │ │ └── FileService.java │ │ └── functionImpl │ │ ├── findChainsImpl.java │ │ └── findElfLocalVariablesImpl.java │ └── gen │ └── top │ └── xystudio │ └── plugin │ └── idea │ └── liteflowx │ └── system │ └── language │ └── psi │ ├── LiteFlowOp.java │ ├── LiteFlowBoolean.java │ ├── LiteFlowTypeRef.java │ ├── LiteFlowBreakStatement.java │ ├── LiteFlowContinueStatement.java │ ├── LiteFlowCodes.java │ ├── LiteFlowElVariableRef.java │ ├── LiteFlowRefExpress.java │ ├── LiteFlowLiteFlowIdExpress.java │ ├── LiteFlowLiteFlowNodeRef.java │ ├── LiteFlowLiteFlowTagExpress.java │ ├── LiteFlowNewStatement.java │ ├── LiteFlowOpSelfExpress.java │ ├── LiteFlowLiteFlowAnyExpress.java │ ├── LiteFlowLiteFlowNodeStringRef.java │ ├── LiteFlowLiteFlowRetryExpress.java │ ├── LiteFlowNewExpress.java │ ├── LiteFlowThreeStatement.java │ ├── LiteFlowAssignStatement.java │ ├── LiteFlowOpSelfStatement.java │ ├── LiteFlowLiteFlowParallelExpress.java │ ├── LiteFlowLiteFlowThreadPoolExpress.java │ ├── LiteFlowReturnStatement.java │ ├── LiteFlowFnInvokeStatement.java │ ├── LiteFlowLiteFlowIgnoreErrorExpress.java │ ├── LiteFlowLiteFlowDoExpress.java │ ├── LiteFlowLiteFlowNotExpress.java │ ├── LiteFlowLiteFlowDefaultExpress.java │ ├── LiteFlowLiteFlowForSubExpress.java │ ├── LiteFlowLiteFlowIf2ElseExpress.java │ ├── LiteFlowLiteFlowPreExpress.java │ ├── LiteFlowLiteFlowSerExpress.java │ ├── LiteFlowLiteFlowStatement.java │ ├── LiteFlowLiteFlowAndExpress.java │ ├── LiteFlowLiteFlowOrExpress.java │ ├── LiteFlowLiteFlowThenExpress.java │ ├── LiteFlowLiteFlowWhileSubExpress.java │ ├── LiteFlowLiteFlowFinallyExpress.java │ ├── LiteFlowLiteFlowIteratorSubExpress.java │ ├── LiteFlowLiteFlowMustExpress.java │ ├── LiteFlowLiteFlowAllLogicStatement.java │ ├── LiteFlowWhileStatement.java │ ├── LiteFlowArrayExpress.java │ ├── LiteFlowAssignExpress.java │ ├── LiteFlowAllExpress.java │ ├── LiteFlowFnParamExpress.java │ ├── LiteFlowUseArrayExpress.java │ ├── LiteFlowFnInvokeExpress.java │ ├── LiteFlowLiteFlowDataExpress.java │ ├── LiteFlowLiteFlowPlaceHolderRef.java │ ├── LiteFlowLiteFlowPlaceHolderStatement.java │ ├── LiteFlowLiteFlowMaxWaitSeconds.java │ ├── LiteFlowValue.java │ ├── LiteFlowLiteFlowMaxWaitMilliseconds.java │ ├── LiteFlowLiteFlowCatchExpress.java │ ├── LiteFlowExpress.java │ ├── LiteFlowLiteFlowToExpress.java │ ├── LiteFlowLiteFlowBreakExpress.java │ ├── LiteFlowLiteFlowIf2SubExpress.java │ ├── LiteFlowLiteFlowLogicExpress.java │ ├── LiteFlowLiteFlowParExpress.java │ ├── LiteFlowLiteFlowWhenExpress.java │ ├── LiteFlowIfStatement.java │ ├── LiteFlowLiteFlowIf2ElifSubExpress.java │ ├── LiteFlowThreeExpress.java │ ├── LiteFlowLiteFlowNodeRefExpress.java │ ├── LiteFlowLiteFlowPlaceholderAssignExpress.java │ ├── LiteFlowLiteFlowAllLogicExpress.java │ ├── LiteFlowForStatement.java │ ├── LiteFlowLiteFlowSwitchExpress.java │ ├── LiteFlowLiteFlowAllExpress.java │ ├── LiteFlowLiteFlowIf3Express.java │ ├── LiteFlowOpExpress.java │ ├── LiteFlowLiteFlowIf2Express.java │ ├── LiteFlowLiteFlowIf2ElifExpress.java │ ├── LiteFlowLiteFlowIteratorExpress.java │ ├── LiteFlowLiteFlowWhenSubExpress.java │ ├── LiteFlowLiteFlowForExpress.java │ ├── LiteFlowLiteFlowWhileExpress.java │ ├── LiteFlowLiteFlowNodeRefSubExpress.java │ ├── LiteFlowLiteFlowNodeStringSubExpress.java │ ├── LiteFlowSubAllExpress.java │ ├── impl │ ├── LiteFlowOpImpl.java │ ├── LiteFlowBooleanImpl.java │ ├── LiteFlowTypeRefImpl.java │ ├── LiteFlowBreakStatementImpl.java │ ├── LiteFlowContinueStatementImpl.java │ ├── LiteFlowRefExpressImpl.java │ ├── LiteFlowCodesImpl.java │ ├── LiteFlowElVariableRefImpl.java │ ├── LiteFlowLiteFlowIdExpressImpl.java │ ├── LiteFlowLiteFlowNodeRefImpl.java │ ├── LiteFlowLiteFlowTagExpressImpl.java │ ├── LiteFlowNewStatementImpl.java │ ├── LiteFlowNewExpressImpl.java │ ├── LiteFlowOpSelfExpressImpl.java │ ├── LiteFlowLiteFlowRetryExpressImpl.java │ ├── LiteFlowLiteFlowAnyExpressImpl.java │ ├── LiteFlowThreeStatementImpl.java │ ├── LiteFlowLiteFlowNodeStringRefImpl.java │ ├── LiteFlowAssignStatementImpl.java │ ├── LiteFlowOpSelfStatementImpl.java │ ├── LiteFlowLiteFlowThreadPoolExpressImpl.java │ ├── LiteFlowFnInvokeStatementImpl.java │ ├── LiteFlowLiteFlowDoExpressImpl.java │ ├── LiteFlowLiteFlowParallelExpressImpl.java │ ├── LiteFlowReturnStatementImpl.java │ ├── LiteFlowLiteFlowIgnoreErrorExpressImpl.java │ ├── LiteFlowLiteFlowNotExpressImpl.java │ ├── LiteFlowLiteFlowDefaultExpressImpl.java │ ├── LiteFlowLiteFlowIf2ElseExpressImpl.java │ ├── LiteFlowLiteFlowStatementImpl.java │ ├── LiteFlowLiteFlowForSubExpressImpl.java │ ├── LiteFlowLiteFlowOrExpressImpl.java │ ├── LiteFlowLiteFlowPreExpressImpl.java │ ├── LiteFlowLiteFlowSerExpressImpl.java │ ├── LiteFlowLiteFlowAndExpressImpl.java │ ├── LiteFlowLiteFlowThenExpressImpl.java │ ├── LiteFlowLiteFlowWhileSubExpressImpl.java │ ├── LiteFlowLiteFlowFinallyExpressImpl.java │ ├── LiteFlowLiteFlowIteratorSubExpressImpl.java │ ├── LiteFlowLiteFlowMustExpressImpl.java │ ├── LiteFlowLiteFlowAllLogicStatementImpl.java │ ├── LiteFlowLiteFlowPlaceHolderStatementImpl.java │ ├── LiteFlowWhileStatementImpl.java │ ├── LiteFlowAssignExpressImpl.java │ ├── LiteFlowLiteFlowDataExpressImpl.java │ ├── LiteFlowLiteFlowPlaceHolderRefImpl.java │ ├── LiteFlowUseArrayExpressImpl.java │ ├── LiteFlowFnInvokeExpressImpl.java │ ├── LiteFlowLiteFlowMaxWaitSecondsImpl.java │ ├── LiteFlowAllExpressImpl.java │ ├── LiteFlowArrayExpressImpl.java │ ├── LiteFlowFnParamExpressImpl.java │ ├── LiteFlowLiteFlowMaxWaitMillisecondsImpl.java │ ├── LiteFlowValueImpl.java │ ├── LiteFlowLiteFlowCatchExpressImpl.java │ ├── LiteFlowLiteFlowBreakExpressImpl.java │ ├── LiteFlowLiteFlowIf2SubExpressImpl.java │ ├── LiteFlowLiteFlowLogicExpressImpl.java │ ├── LiteFlowLiteFlowToExpressImpl.java │ ├── LiteFlowLiteFlowIf2ElifSubExpressImpl.java │ ├── LiteFlowLiteFlowNodeRefExpressImpl.java │ ├── LiteFlowLiteFlowParExpressImpl.java │ ├── LiteFlowLiteFlowWhenExpressImpl.java │ ├── LiteFlowExpressImpl.java │ ├── LiteFlowLiteFlowPlaceholderAssignExpressImpl.java │ ├── LiteFlowThreeExpressImpl.java │ ├── LiteFlowIfStatementImpl.java │ ├── LiteFlowLiteFlowAllLogicExpressImpl.java │ ├── LiteFlowLiteFlowSwitchExpressImpl.java │ ├── LiteFlowLiteFlowAllExpressImpl.java │ └── LiteFlowLiteFlowIf3ExpressImpl.java │ └── LiteFlowStatement.java ├── .gitignore └── gradle.properties /settings.gradle.kts: -------------------------------------------------------------------------------- 1 | rootProject.name = "LiteFlowX" 2 | -------------------------------------------------------------------------------- /img/cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xlau/LiteFlowX/HEAD/img/cover.png -------------------------------------------------------------------------------- /jflex-1.9.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xlau/LiteFlowX/HEAD/jflex-1.9.1.jar -------------------------------------------------------------------------------- /img/LiteFLowX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xlau/LiteFlowX/HEAD/img/LiteFLowX.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/0xlau/LiteFlowX/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | -------------------------------------------------------------------------------- /src/main/resources/META-INF/LiteFlowX-optionalJavaScript.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/dom/modal/Nodes.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.dom.modal; 2 | 3 | import com.intellij.util.xml.DomElement; 4 | import com.intellij.util.xml.SubTagList; 5 | 6 | import java.util.List; 7 | 8 | public interface Nodes extends DomElement { 9 | 10 | @SubTagList("node") 11 | List getNodeList(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/language/LiteFlowLexerAdapter.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.language; 2 | 3 | import com.intellij.lexer.FlexAdapter; 4 | 5 | public class LiteFlowLexerAdapter extends FlexAdapter { 6 | 7 | public LiteFlowLexerAdapter(){ 8 | super(new _LiteFlowLexer(null)); 9 | } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/toolWindow/service/topic/BaseTopic.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.toolWindow.service.topic; 2 | 3 | public interface BaseTopic { 4 | 5 | /** 6 | * action 7 | * 8 | * @param data data 9 | */ 10 | default void action(T data) { 11 | // default 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowOp.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowOp extends PsiElement { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowBoolean.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowBoolean extends PsiElement { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowTypeRef.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowTypeRef extends PsiElement { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowBreakStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowBreakStatement extends PsiElement { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowContinueStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowContinueStatement extends PsiElement { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/language/LiteFlowLanguage.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.language; 2 | 3 | import com.intellij.lang.Language; 4 | 5 | public class LiteFlowLanguage extends Language { 6 | 7 | public static final LiteFlowLanguage INSTANCE = new LiteFlowLanguage(); 8 | 9 | private LiteFlowLanguage(){ 10 | super("LiteFlow"); 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/dom/description/FlowDescription.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.dom.description; 2 | 3 | import com.intellij.util.xml.DomFileDescription; 4 | import top.xystudio.plugin.idea.liteflowx.dom.modal.Flow; 5 | 6 | public class FlowDescription extends DomFileDescription { 7 | 8 | public FlowDescription() { 9 | super(Flow.class, "flow"); 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | #Gradle beginning 2 | .gradle 3 | **/build/ 4 | !src/**/build/ 5 | # Ignore Gradle GUI config 6 | gradle-app.setting 7 | # Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) 8 | !gradle-wrapper.jar 9 | # Cache of project 10 | .gradletasknamecache 11 | # # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 12 | # gradle/wrapper/gradle-wrapper.properties 13 | #Gradle Ending 14 | .idea 15 | *.iml 16 | **/target/ 17 | idea-sandbox 18 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowCodes.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowCodes extends PsiElement { 9 | 10 | @NotNull 11 | List getStatementList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowElVariableRef.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowElVariableRef extends PsiElement { 9 | 10 | @NotNull 11 | PsiElement getIdentifier(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowRefExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowRefExpress extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowTypeRef getTypeRef(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/util/StringUtils.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.util; 2 | 3 | public class StringUtils { 4 | 5 | /** 6 | * 首字母小学 7 | * @param text 8 | * @return 9 | */ 10 | public static String lowerFirst(String text){ 11 | char[] chars = text.toCharArray(); 12 | chars[0] = Character.toLowerCase(chars[0]); 13 | return String.valueOf(chars); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowIdExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowIdExpress extends PsiElement { 9 | 10 | @Nullable 11 | PsiElement getString(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowNodeRef.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowNodeRef extends PsiElement { 9 | 10 | @NotNull 11 | PsiElement getIdentifier(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowTagExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowTagExpress extends PsiElement { 9 | 10 | @Nullable 11 | PsiElement getString(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowNewStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowNewStatement extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowNewExpress getNewExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowOpSelfExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowOpSelfExpress extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowRefExpress getRefExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/dom/modal/Flow.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.dom.modal; 2 | 3 | import com.intellij.util.xml.DomElement; 4 | import com.intellij.util.xml.SubTag; 5 | import com.intellij.util.xml.SubTagList; 6 | 7 | import java.util.List; 8 | 9 | public interface Flow extends DomElement { 10 | 11 | @SubTagList("chain") 12 | List getChains(); 13 | 14 | @SubTag("nodes") 15 | Nodes getNodes(); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowAnyExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowAnyExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowBoolean getBoolean(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowNodeStringRef.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowNodeStringRef extends PsiElement { 9 | 10 | @NotNull 11 | PsiElement getString(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowRetryExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowRetryExpress extends PsiElement { 9 | 10 | @Nullable 11 | PsiElement getNumber(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowNewExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowNewExpress extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowFnInvokeExpress getFnInvokeExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowThreeStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowThreeStatement extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowThreeExpress getThreeExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowAssignStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowAssignStatement extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowAssignExpress getAssignExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowOpSelfStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowOpSelfStatement extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowOpSelfExpress getOpSelfExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowParallelExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowParallelExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowBoolean getBoolean(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowThreadPoolExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowThreadPoolExpress extends PsiElement { 9 | 10 | @Nullable 11 | PsiElement getString(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowReturnStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowReturnStatement extends PsiElement { 9 | 10 | @NotNull 11 | List getAllExpressList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowFnInvokeStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowFnInvokeStatement extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowFnInvokeExpress getFnInvokeExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowIgnoreErrorExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowIgnoreErrorExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowBoolean getBoolean(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/dom/modal/Chain.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.dom.modal; 2 | 3 | import com.intellij.util.xml.Attribute; 4 | import com.intellij.util.xml.DomElement; 5 | import com.intellij.util.xml.GenericAttributeValue; 6 | 7 | public interface Chain extends DomElement { 8 | 9 | @Attribute("id") 10 | GenericAttributeValue getId(); 11 | 12 | @Attribute("name") 13 | GenericAttributeValue getName(); 14 | 15 | } 16 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowDoExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowDoExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowAllExpress getLiteFlowAllExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowNotExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowNotExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowLogicExpress getLiteFlowLogicExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowDefaultExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowDefaultExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowAllExpress getLiteFlowAllExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowForSubExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowForSubExpress extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowLiteFlowBreakExpress getLiteFlowBreakExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowIf2ElseExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowIf2ElseExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowAllExpress getLiteFlowAllExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowPreExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowPreExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getLiteFlowAllExpressList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowSerExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowSerExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getLiteFlowAllExpressList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowStatement extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowLiteFlowConditionExpress getLiteFlowConditionExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowAndExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowAndExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getLiteFlowLogicExpressList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowOrExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowOrExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getLiteFlowLogicExpressList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowThenExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowThenExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getLiteFlowAllExpressList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowWhileSubExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowWhileSubExpress extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowLiteFlowBreakExpress getLiteFlowBreakExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/resources/dtd/liteflow-xml.dtd: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowFinallyExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowFinallyExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getLiteFlowAllExpressList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowIteratorSubExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowIteratorSubExpress extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowLiteFlowBreakExpress getLiteFlowBreakExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowMustExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowMustExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getLiteFlowNodeRefExpressList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowAllLogicStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowAllLogicStatement extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowLiteFlowAllLogicExpress getLiteFlowAllLogicExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/toolWindow/service/topic/RefreshLiteFlowTreeTopic.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.toolWindow.service.topic; 2 | 3 | import com.intellij.util.messages.Topic; 4 | 5 | public interface RefreshLiteFlowTreeTopic extends BaseTopic{ 6 | 7 | Topic TOPIC = Topic.create("BaseTopic.RefreshLiteFlowTreeTopic", RefreshLiteFlowTreeTopic.class); 8 | 9 | /** 10 | * refresh 11 | */ 12 | void refresh(); 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowWhileStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowWhileStatement extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowAllExpress getAllExpress(); 12 | 13 | @NotNull 14 | LiteFlowCodes getCodes(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowArrayExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowArrayExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getAllExpressList(); 12 | 13 | @NotNull 14 | List getOpList(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowAssignExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowAssignExpress extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowAllExpress getAllExpress(); 12 | 13 | @NotNull 14 | LiteFlowRefExpress getRefExpress(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowAllExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowAllExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getOpList(); 12 | 13 | @NotNull 14 | List getSubAllExpressList(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowFnParamExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowFnParamExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getAllExpressList(); 12 | 13 | @NotNull 14 | List getOpList(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowUseArrayExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowUseArrayExpress extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowAllExpress getAllExpress(); 12 | 13 | @NotNull 14 | LiteFlowRefExpress getRefExpress(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowFnInvokeExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowFnInvokeExpress extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowFnParamExpress getFnParamExpress(); 12 | 13 | @NotNull 14 | LiteFlowRefExpress getRefExpress(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowDataExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowDataExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowElVariableRef getElVariableRef(); 12 | 13 | @Nullable 14 | PsiElement getString(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowPlaceHolderRef.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowPlaceHolderRef extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowRefExpress getRefExpress(); 12 | 13 | @Nullable 14 | PsiElement getNumber(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowPlaceHolderStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowPlaceHolderStatement extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowLiteFlowPlaceholderAssignExpress getLiteFlowPlaceholderAssignExpress(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/language/editing/LiteFlowEnterBetweenBracesDelegate.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.language.editing; 2 | 3 | import com.intellij.codeInsight.editorActions.enter.EnterBetweenBracesDelegate; 4 | 5 | public class LiteFlowEnterBetweenBracesDelegate extends EnterBetweenBracesDelegate { 6 | @Override 7 | protected boolean isBracePair(char c1, char c2) { 8 | return (c1 == '{' && c2 == '}') || (c1 == '[' && c2 == ']') || (c1 == '(' && c2 == ')'); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowMaxWaitSeconds.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowMaxWaitSeconds extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowElVariableRef getElVariableRef(); 12 | 13 | @Nullable 14 | PsiElement getNumber(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowValue.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowValue extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowBoolean getBoolean(); 12 | 13 | @Nullable 14 | PsiElement getNumber(); 15 | 16 | @Nullable 17 | PsiElement getString(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowMaxWaitMilliseconds.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowMaxWaitMilliseconds extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowElVariableRef getElVariableRef(); 12 | 13 | @Nullable 14 | PsiElement getNumber(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowCatchExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowCatchExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowAllExpress getLiteFlowAllExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowDoExpress getLiteFlowDoExpress(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/constant/Annotation.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.constant; 2 | 3 | public class Annotation { 4 | 5 | public static final String Component = "org.springframework.stereotype.Component"; 6 | 7 | public static final String LiteflowComponent = "com.yomahub.liteflow.annotation.LiteflowComponent"; 8 | 9 | public static final String LiteflowCmpDefine = "com.yomahub.liteflow.annotation.LiteflowCmpDefine"; 10 | 11 | public static final String LiteflowMethod = "com.yomahub.liteflow.annotation.LiteflowMethod"; 12 | } 13 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getAllExpressList(); 12 | 13 | @NotNull 14 | List getOpList(); 15 | 16 | @NotNull 17 | LiteFlowOpExpress getOpExpress(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowToExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowToExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getLiteFlowAllExpressList(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowDefaultExpress getLiteFlowDefaultExpress(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowElementType.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 2 | 3 | import com.intellij.psi.tree.IElementType; 4 | import org.jetbrains.annotations.NonNls; 5 | import org.jetbrains.annotations.NotNull; 6 | import top.xystudio.plugin.idea.liteflowx.system.language.LiteFlowLanguage; 7 | 8 | public class LiteFlowElementType extends IElementType { 9 | 10 | public LiteFlowElementType(@NonNls @NotNull String debugName) { 11 | super(debugName, LiteFlowLanguage.INSTANCE); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowBreakExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowBreakExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowAllLogicExpress getLiteFlowAllLogicExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowIf2SubExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowIf2SubExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowIf2ElifExpress getLiteFlowIf2ElifExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowIf2ElseExpress getLiteFlowIf2ElseExpress(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowLogicExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowLogicExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowAllLogicExpress getLiteFlowAllLogicExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowParExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowParExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getLiteFlowAllExpressList(); 12 | 13 | @NotNull 14 | List getLiteFlowWhenSubExpressList(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowWhenExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowWhenExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getLiteFlowAllExpressList(); 12 | 13 | @NotNull 14 | List getLiteFlowWhenSubExpressList(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowIfStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowIfStatement extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowAllExpress getAllExpress(); 12 | 13 | @NotNull 14 | List getCodesList(); 15 | 16 | @NotNull 17 | List getIfStatementList(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowIf2ElifSubExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowIf2ElifSubExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowIf2ElifExpress getLiteFlowIf2ElifExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowIf2ElseExpress getLiteFlowIf2ElseExpress(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowThreeExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowThreeExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getAllExpressList(); 12 | 13 | @Nullable 14 | LiteFlowExpress getExpress(); 15 | 16 | @Nullable 17 | LiteFlowFnInvokeExpress getFnInvokeExpress(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowNodeRefExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowNodeRefExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowNodeRefSubExpress getLiteFlowNodeRefSubExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowNodeStringSubExpress getLiteFlowNodeStringSubExpress(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowPlaceholderAssignExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowPlaceholderAssignExpress extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowLiteFlowConditionExpress getLiteFlowConditionExpress(); 12 | 13 | @NotNull 14 | LiteFlowLiteFlowPlaceHolderRef getLiteFlowPlaceHolderRef(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/dom/modal/Node.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.dom.modal; 2 | 3 | import com.intellij.util.xml.Attribute; 4 | import com.intellij.util.xml.DomElement; 5 | import com.intellij.util.xml.GenericAttributeValue; 6 | 7 | public interface Node extends DomElement { 8 | 9 | @Attribute("id") 10 | GenericAttributeValue getId(); 11 | 12 | @Attribute("class") 13 | GenericAttributeValue getClazz(); 14 | 15 | @Attribute("name") 16 | GenericAttributeValue getName(); 17 | 18 | @Attribute("type") 19 | GenericAttributeValue getType(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowAllLogicExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowAllLogicExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowAndExpress getLiteFlowAndExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowNotExpress getLiteFlowNotExpress(); 15 | 16 | @Nullable 17 | LiteFlowLiteFlowOrExpress getLiteFlowOrExpress(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowForStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowForStatement extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowAllExpress getAllExpress(); 12 | 13 | @NotNull 14 | List getAssignExpressList(); 15 | 16 | @NotNull 17 | LiteFlowCodes getCodes(); 18 | 19 | @Nullable 20 | LiteFlowOpSelfExpress getOpSelfExpress(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/resources/language/jsInjections.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | NodeScript (XmlTag) 5 | 10 | 11 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowSwitchExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowSwitchExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowDefaultExpress getLiteFlowDefaultExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress(); 15 | 16 | @Nullable 17 | LiteFlowLiteFlowToExpress getLiteFlowToExpress(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowAllExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowAllExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowConditionExpress getLiteFlowConditionExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress(); 15 | 16 | @Nullable 17 | LiteFlowLiteFlowPlaceHolderRef getLiteFlowPlaceHolderRef(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowIf3Express.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowIf3Express extends PsiElement { 9 | 10 | @NotNull 11 | List getLiteFlowAllExpressList(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowAllLogicExpress getLiteFlowAllLogicExpress(); 15 | 16 | @Nullable 17 | LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowTokenType.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 2 | 3 | import com.intellij.psi.tree.IElementType; 4 | import org.jetbrains.annotations.NonNls; 5 | import org.jetbrains.annotations.NotNull; 6 | import top.xystudio.plugin.idea.liteflowx.system.language.LiteFlowLanguage; 7 | 8 | public class LiteFlowTokenType extends IElementType { 9 | 10 | public LiteFlowTokenType(@NonNls @NotNull String debugName) { 11 | super(debugName, LiteFlowLanguage.INSTANCE); 12 | } 13 | 14 | @Override 15 | public String toString() { 16 | return "LiteFlowTokenType." + super.toString(); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowOpExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowOpExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getAllExpressList(); 12 | 13 | @Nullable 14 | LiteFlowFnInvokeExpress getFnInvokeExpress(); 15 | 16 | @NotNull 17 | List getOpList(); 18 | 19 | @Nullable 20 | LiteFlowRefExpress getRefExpress(); 21 | 22 | @Nullable 23 | LiteFlowValue getValue(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/language/highlight/LiteFlowSyntaxHighlighterFactory.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.language.highlight; 2 | 3 | import com.intellij.openapi.fileTypes.SyntaxHighlighter; 4 | import com.intellij.openapi.fileTypes.SyntaxHighlighterFactory; 5 | import com.intellij.openapi.project.Project; 6 | import com.intellij.openapi.vfs.VirtualFile; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public class LiteFlowSyntaxHighlighterFactory extends SyntaxHighlighterFactory { 10 | 11 | @NotNull 12 | @Override 13 | public SyntaxHighlighter getSyntaxHighlighter(Project project, VirtualFile virtualFile) { 14 | return new LiteFlowSyntaxHighlighter(); 15 | } 16 | 17 | } 18 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowIf2Express.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowIf2Express extends PsiElement { 9 | 10 | @NotNull 11 | LiteFlowLiteFlowAllExpress getLiteFlowAllExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowAllLogicExpress getLiteFlowAllLogicExpress(); 15 | 16 | @Nullable 17 | LiteFlowLiteFlowIf2SubExpress getLiteFlowIf2SubExpress(); 18 | 19 | @Nullable 20 | LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowIf2ElifExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowIf2ElifExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowAllExpress getLiteFlowAllExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowAllLogicExpress getLiteFlowAllLogicExpress(); 15 | 16 | @Nullable 17 | LiteFlowLiteFlowIf2ElifSubExpress getLiteFlowIf2ElifSubExpress(); 18 | 19 | @Nullable 20 | LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowIteratorExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowIteratorExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowDoExpress getLiteFlowDoExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowIteratorSubExpress getLiteFlowIteratorSubExpress(); 15 | 16 | @Nullable 17 | LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress(); 18 | 19 | @Nullable 20 | LiteFlowLiteFlowParallelExpress getLiteFlowParallelExpress(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowWhenSubExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowWhenSubExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowAnyExpress getLiteFlowAnyExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowIgnoreErrorExpress getLiteFlowIgnoreErrorExpress(); 15 | 16 | @Nullable 17 | LiteFlowLiteFlowMustExpress getLiteFlowMustExpress(); 18 | 19 | @Nullable 20 | LiteFlowLiteFlowThreadPoolExpress getLiteFlowThreadPoolExpress(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowForExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowForExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowDoExpress getLiteFlowDoExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowForSubExpress getLiteFlowForSubExpress(); 15 | 16 | @Nullable 17 | LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress(); 18 | 19 | @Nullable 20 | LiteFlowLiteFlowParallelExpress getLiteFlowParallelExpress(); 21 | 22 | @Nullable 23 | PsiElement getNumber(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/toolWindow/service/topic/LiteFlowTreeTopic.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.toolWindow.service.topic; 2 | 3 | import com.intellij.util.messages.Topic; 4 | import org.jetbrains.annotations.NotNull; 5 | import top.xystudio.plugin.idea.liteflowx.system.toolWindow.beans.LiteFlowElement; 6 | 7 | import java.util.List; 8 | import java.util.Map; 9 | 10 | public interface LiteFlowTreeTopic extends BaseTopic>> { 11 | 12 | Topic TOPIC = Topic.create("BaseTopic.LiteFlowTreeTopic", LiteFlowTreeTopic.class); 13 | 14 | /** 15 | * action 16 | * 17 | * @param data data 18 | */ 19 | @Override 20 | void action(@NotNull Map> data); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/toolWindow/service/impl/LiteFlowToolWindowServiceImpl.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.toolWindow.service.impl; 2 | 3 | import com.intellij.openapi.project.Project; 4 | import top.xystudio.plugin.idea.liteflowx.system.toolWindow.frame.LiteFlowToolWindow; 5 | import top.xystudio.plugin.idea.liteflowx.system.toolWindow.service.LiteFlowToolWindowService; 6 | 7 | import javax.swing.*; 8 | 9 | public class LiteFlowToolWindowServiceImpl implements LiteFlowToolWindowService { 10 | 11 | private final Project project; 12 | 13 | public LiteFlowToolWindowServiceImpl(Project project) { 14 | this.project = project; 15 | } 16 | 17 | @Override 18 | public JComponent getContent() { 19 | return new LiteFlowToolWindow(project); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLanguagePsiImplUtil.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 2 | 3 | import com.intellij.lang.ASTNode; 4 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowAssignExpress; 5 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes; 6 | 7 | public class LiteFlowLanguagePsiImplUtil { 8 | 9 | public static String getTypeRef(LiteFlowAssignExpress element) { 10 | ASTNode keyNode = element.getNode().findChildByType(LiteFlowTypes.LITEFLOW_TYPE_REF); 11 | if (keyNode != null) { 12 | // IMPORTANT: Convert embedded escaped spaces to simple spaces 13 | return keyNode.getText(); 14 | } else { 15 | return null; 16 | } 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowWhileExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowWhileExpress extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowLiteFlowAllLogicExpress getLiteFlowAllLogicExpress(); 12 | 13 | @Nullable 14 | LiteFlowLiteFlowDoExpress getLiteFlowDoExpress(); 15 | 16 | @Nullable 17 | LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress(); 18 | 19 | @Nullable 20 | LiteFlowLiteFlowParallelExpress getLiteFlowParallelExpress(); 21 | 22 | @Nullable 23 | LiteFlowLiteFlowWhileSubExpress getLiteFlowWhileSubExpress(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/resources/images/common.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowFile.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 2 | 3 | import com.intellij.extapi.psi.PsiFileBase; 4 | import com.intellij.openapi.fileTypes.FileType; 5 | import com.intellij.psi.FileViewProvider; 6 | import org.jetbrains.annotations.NotNull; 7 | import top.xystudio.plugin.idea.liteflowx.system.language.LiteFlowFileType; 8 | import top.xystudio.plugin.idea.liteflowx.system.language.LiteFlowLanguage; 9 | 10 | public class LiteFlowFile extends PsiFileBase { 11 | 12 | public LiteFlowFile(@NotNull FileViewProvider viewProvider) { 13 | super(viewProvider, LiteFlowLanguage.INSTANCE); 14 | } 15 | 16 | @Override 17 | public @NotNull FileType getFileType() { 18 | return LiteFlowFileType.INSTANCE; 19 | } 20 | 21 | /*asd */ 22 | @Override 23 | public String toString() { 24 | return "LiteFlow File"; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/language/editing/LiteFlowCommenter.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.language.editing; 2 | 3 | import com.intellij.lang.Commenter; 4 | import org.jetbrains.annotations.Nullable; 5 | 6 | public class LiteFlowCommenter implements Commenter { 7 | 8 | @Nullable 9 | @Override 10 | public String getLineCommentPrefix() { 11 | return "//"; 12 | } 13 | 14 | @Nullable 15 | @Override 16 | public String getBlockCommentPrefix() { 17 | return "/**"; 18 | } 19 | 20 | @Nullable 21 | @Override 22 | public String getBlockCommentSuffix() { 23 | return "**/"; 24 | } 25 | 26 | @Nullable 27 | @Override 28 | public String getCommentedBlockCommentPrefix() { 29 | return null; 30 | } 31 | 32 | @Nullable 33 | @Override 34 | public String getCommentedBlockCommentSuffix() { 35 | return null; 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowNodeRefSubExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowNodeRefSubExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getLiteFlowDataExpressList(); 12 | 13 | @NotNull 14 | List getLiteFlowMaxWaitMillisecondsList(); 15 | 16 | @NotNull 17 | List getLiteFlowMaxWaitSecondsList(); 18 | 19 | @NotNull 20 | LiteFlowLiteFlowNodeRef getLiteFlowNodeRef(); 21 | 22 | @NotNull 23 | List getLiteFlowRetryExpressList(); 24 | 25 | @NotNull 26 | List getLiteFlowTagExpressList(); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowLiteFlowNodeStringSubExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowLiteFlowNodeStringSubExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getLiteFlowDataExpressList(); 12 | 13 | @NotNull 14 | List getLiteFlowMaxWaitMillisecondsList(); 15 | 16 | @NotNull 17 | List getLiteFlowMaxWaitSecondsList(); 18 | 19 | @Nullable 20 | LiteFlowLiteFlowNodeStringRef getLiteFlowNodeStringRef(); 21 | 22 | @NotNull 23 | List getLiteFlowRetryExpressList(); 24 | 25 | @NotNull 26 | List getLiteFlowTagExpressList(); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/resources/images/liteflowx.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/images/tool_13x13.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/images/xml.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/META-INF/pluginIcon.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/toolWindow/actions/RefreshAction.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.toolWindow.actions; 2 | 3 | import com.intellij.icons.AllIcons; 4 | import com.intellij.openapi.actionSystem.AnActionEvent; 5 | import com.intellij.openapi.project.DumbAwareAction; 6 | import org.jetbrains.annotations.NotNull; 7 | import top.xystudio.plugin.idea.liteflowx.system.toolWindow.LiteFlowToolWindowFactory; 8 | import top.xystudio.plugin.idea.liteflowx.system.toolWindow.frame.LiteFlowToolWindow; 9 | 10 | /** 11 | * toolWindow刷新按钮 12 | */ 13 | public class RefreshAction extends DumbAwareAction { 14 | 15 | public RefreshAction() { 16 | getTemplatePresentation().setText("Refresh"); 17 | getTemplatePresentation().setIcon(AllIcons.Actions.Refresh); 18 | } 19 | 20 | @Override 21 | public void actionPerformed(@NotNull AnActionEvent e) { 22 | LiteFlowToolWindow toolWindow = LiteFlowToolWindowFactory.getToolWindow(e.getProject()); 23 | if (toolWindow != null){ 24 | toolWindow.refreshTree(); 25 | } 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowSubAllExpress.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowSubAllExpress extends PsiElement { 9 | 10 | @NotNull 11 | List getAllExpressList(); 12 | 13 | @Nullable 14 | LiteFlowArrayExpress getArrayExpress(); 15 | 16 | @Nullable 17 | LiteFlowAssignExpress getAssignExpress(); 18 | 19 | @Nullable 20 | LiteFlowExpress getExpress(); 21 | 22 | @Nullable 23 | LiteFlowFnInvokeExpress getFnInvokeExpress(); 24 | 25 | @Nullable 26 | LiteFlowLiteFlowConditionExpress getLiteFlowConditionExpress(); 27 | 28 | @Nullable 29 | LiteFlowNewExpress getNewExpress(); 30 | 31 | @NotNull 32 | List getOpList(); 33 | 34 | @Nullable 35 | LiteFlowOpSelfExpress getOpSelfExpress(); 36 | 37 | @Nullable 38 | LiteFlowThreeExpress getThreeExpress(); 39 | 40 | @Nullable 41 | LiteFlowUseArrayExpress getUseArrayExpress(); 42 | 43 | } 44 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowOpImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowOpImpl extends ASTWrapperPsiElement implements LiteFlowOp { 15 | 16 | public LiteFlowOpImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitOp(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowBooleanImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowBooleanImpl extends ASTWrapperPsiElement implements LiteFlowBoolean { 15 | 16 | public LiteFlowBooleanImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitBoolean(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowTypeRefImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowTypeRefImpl extends ASTWrapperPsiElement implements LiteFlowTypeRef { 15 | 16 | public LiteFlowTypeRefImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitTypeRef(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowBreakStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowBreakStatementImpl extends ASTWrapperPsiElement implements LiteFlowBreakStatement { 15 | 16 | public LiteFlowBreakStatementImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitBreakStatement(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowContinueStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowContinueStatementImpl extends ASTWrapperPsiElement implements LiteFlowContinueStatement { 15 | 16 | public LiteFlowContinueStatementImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitContinueStatement(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/constant/NodeTypeEnum.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.constant; 2 | 3 | public class NodeTypeEnum { 4 | 5 | public static final String COMMON = "COMMON"; 6 | 7 | public static final String SWITCH = "SWITCH"; 8 | 9 | public static final String IF = "IF"; 10 | 11 | public static final String FOR = "FOR"; 12 | 13 | public static final String ITERATOR = "ITERATOR"; 14 | 15 | public static final String WHILE = "WHILE"; 16 | 17 | public static final String BREAK = "BREAK"; 18 | 19 | public static final String BOOLEAN = "BOOLEAN"; 20 | 21 | public static final String SCRIPT = "script"; 22 | 23 | public static final String SWITCH_SCRIPT = "switch_script"; 24 | 25 | public static final String IF_SCRIPT = "if_script"; 26 | 27 | public static final String FOR_SCRIPT = "for_script"; 28 | 29 | public static final String WHILE_SCRIPT = "while_script"; 30 | 31 | public static final String BREAK_SCRIPT = "break_script"; 32 | 33 | public static final String BOOLEAN_SCRIPT = "boolean_script"; 34 | public static final String[] SCRIPTS = {SCRIPT, SWITCH_SCRIPT, IF_SCRIPT, FOR_SCRIPT, WHILE_SCRIPT, BREAK_SCRIPT, BOOLEAN_SCRIPT}; 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/language/LiteFlowFileType.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.language; 2 | 3 | import com.intellij.openapi.fileTypes.LanguageFileType; 4 | import com.intellij.openapi.util.NlsContexts; 5 | import com.intellij.openapi.util.NlsSafe; 6 | import icons.LiteFlowIcons; 7 | import org.jetbrains.annotations.NonNls; 8 | import org.jetbrains.annotations.NotNull; 9 | import org.jetbrains.annotations.Nullable; 10 | 11 | import javax.swing.*; 12 | 13 | public class LiteFlowFileType extends LanguageFileType { 14 | 15 | public static final LiteFlowFileType INSTANCE = new LiteFlowFileType(); 16 | 17 | private LiteFlowFileType(){ 18 | super(LiteFlowLanguage.INSTANCE); 19 | } 20 | 21 | @Override 22 | public @NonNls @NotNull String getName() { 23 | return "LiteFlow File"; 24 | } 25 | 26 | @Override 27 | public @NlsContexts.Label @NotNull String getDescription() { 28 | return "LiteFlow expression based on QLExpress syntax"; 29 | } 30 | 31 | @Override 32 | public @NlsSafe @NotNull String getDefaultExtension() { 33 | return "elf"; 34 | } 35 | 36 | @Override 37 | public @Nullable Icon getIcon() { 38 | return LiteFlowIcons.LITEFLOWX_ICON; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/toolWindow/service/LiteFlowToolWindowService.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.toolWindow.service; 2 | 3 | import com.intellij.openapi.application.ApplicationManager; 4 | import com.intellij.openapi.components.ServiceManager; 5 | import com.intellij.openapi.project.Project; 6 | import com.intellij.openapi.wm.ToolWindow; 7 | import com.intellij.ui.content.Content; 8 | import com.intellij.ui.content.ContentFactory; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | import javax.swing.*; 12 | 13 | public interface LiteFlowToolWindowService { 14 | 15 | static LiteFlowToolWindowService getInstance(@NotNull Project project) { 16 | return project.getService(LiteFlowToolWindowService.class); 17 | } 18 | 19 | /** 20 | * 获取可视化内容 21 | * 22 | * @return ContentView 23 | */ 24 | JComponent getContent(); 25 | 26 | /** 27 | * 初始化窗口 28 | * @param toolWindow toolWindow 29 | */ 30 | default void init(@NotNull ToolWindow toolWindow) { 31 | ContentFactory contentFactory = ApplicationManager.getApplication().getService(ContentFactory.class); 32 | Content content = contentFactory.createContent(getContent(), "", false); 33 | toolWindow.getContentManager().addContent(content); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowRefExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowRefExpressImpl extends ASTWrapperPsiElement implements LiteFlowRefExpress { 15 | 16 | public LiteFlowRefExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitRefExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowTypeRef getTypeRef() { 33 | return findNotNullChildByClass(LiteFlowTypeRef.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowCodesImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowCodesImpl extends ASTWrapperPsiElement implements LiteFlowCodes { 15 | 16 | public LiteFlowCodesImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitCodes(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getStatementList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowStatement.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowElVariableRefImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowElVariableRefImpl extends ASTWrapperPsiElement implements LiteFlowElVariableRef { 15 | 16 | public LiteFlowElVariableRefImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitElVariableRef(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public PsiElement getIdentifier() { 33 | return findNotNullChildByType(LITEFLOW_IDENTIFIER); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowIdExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowIdExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowIdExpress { 15 | 16 | public LiteFlowLiteFlowIdExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowIdExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public PsiElement getString() { 33 | return findChildByType(LITEFLOW_STRING); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowNodeRefImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowNodeRefImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowNodeRef { 15 | 16 | public LiteFlowLiteFlowNodeRefImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowNodeRef(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public PsiElement getIdentifier() { 33 | return findNotNullChildByType(LITEFLOW_IDENTIFIER); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowTagExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowTagExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowTagExpress { 15 | 16 | public LiteFlowLiteFlowTagExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowTagExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public PsiElement getString() { 33 | return findChildByType(LITEFLOW_STRING); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowNewStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowNewStatementImpl extends ASTWrapperPsiElement implements LiteFlowNewStatement { 15 | 16 | public LiteFlowNewStatementImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitNewStatement(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowNewExpress getNewExpress() { 33 | return findNotNullChildByClass(LiteFlowNewExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowNewExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowNewExpressImpl extends ASTWrapperPsiElement implements LiteFlowNewExpress { 15 | 16 | public LiteFlowNewExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitNewExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowFnInvokeExpress getFnInvokeExpress() { 33 | return findNotNullChildByClass(LiteFlowFnInvokeExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowOpSelfExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowOpSelfExpressImpl extends ASTWrapperPsiElement implements LiteFlowOpSelfExpress { 15 | 16 | public LiteFlowOpSelfExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitOpSelfExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowRefExpress getRefExpress() { 33 | return findNotNullChildByClass(LiteFlowRefExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/resources/images/if.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowRetryExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowRetryExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowRetryExpress { 15 | 16 | public LiteFlowLiteFlowRetryExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowRetryExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public PsiElement getNumber() { 33 | return findChildByType(LITEFLOW_NUMBER); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowAnyExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowAnyExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowAnyExpress { 15 | 16 | public LiteFlowLiteFlowAnyExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowAnyExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowBoolean getBoolean() { 33 | return findChildByClass(LiteFlowBoolean.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowThreeStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowThreeStatementImpl extends ASTWrapperPsiElement implements LiteFlowThreeStatement { 15 | 16 | public LiteFlowThreeStatementImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitThreeStatement(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowThreeExpress getThreeExpress() { 33 | return findNotNullChildByClass(LiteFlowThreeExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowNodeStringRefImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowNodeStringRefImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowNodeStringRef { 15 | 16 | public LiteFlowLiteFlowNodeStringRefImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowNodeStringRef(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public PsiElement getString() { 33 | return findNotNullChildByType(LITEFLOW_STRING); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowAssignStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowAssignStatementImpl extends ASTWrapperPsiElement implements LiteFlowAssignStatement { 15 | 16 | public LiteFlowAssignStatementImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitAssignStatement(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowAssignExpress getAssignExpress() { 33 | return findNotNullChildByClass(LiteFlowAssignExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowOpSelfStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowOpSelfStatementImpl extends ASTWrapperPsiElement implements LiteFlowOpSelfStatement { 15 | 16 | public LiteFlowOpSelfStatementImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitOpSelfStatement(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowOpSelfExpress getOpSelfExpress() { 33 | return findNotNullChildByClass(LiteFlowOpSelfExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/constant/Clazz.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.constant; 2 | 3 | public class Clazz { 4 | 5 | public static final String NodeComponent = "com.yomahub.liteflow.core.NodeComponent"; 6 | 7 | public static final String NodeSwitchComponent = "com.yomahub.liteflow.core.NodeSwitchComponent"; 8 | 9 | public static final String NodeIfComponent = "com.yomahub.liteflow.core.NodeIfComponent"; 10 | 11 | public static final String NodeForComponent = "com.yomahub.liteflow.core.NodeForComponent"; 12 | 13 | public static final String NodeIteratorComponent = "com.yomahub.liteflow.core.NodeIteratorComponent"; 14 | 15 | public static final String NodeWhileComponent = "com.yomahub.liteflow.core.NodeWhileComponent"; 16 | 17 | public static final String NodeBreakComponent = "com.yomahub.liteflow.core.NodeBreakComponent"; 18 | 19 | public static final String NodeBooleanComponent = "com.yomahub.liteflow.core.NodeBooleanComponent"; 20 | 21 | public static final String LiteFlowConfig = "com.yomahub.liteflow.property.LiteflowConfig"; 22 | 23 | public static final String LiteflowResponse = "com.yomahub.liteflow.flow.LiteflowResponse"; 24 | 25 | public static final String FlowExecutor = "com.yomahub.liteflow.core.FlowExecutor"; 26 | 27 | public static final String JavaObject = "java.lang.Object"; 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/provider/XmlLineMarkerProvider.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.provider; 2 | 3 | import com.intellij.ide.util.PsiElementListCellRenderer; 4 | import com.intellij.psi.PsiElement; 5 | import com.intellij.psi.xml.XmlToken; 6 | import top.xystudio.plugin.idea.liteflowx.util.XmlUtils; 7 | 8 | /** 9 | * 扩展公共LineMarkerProvider,使其更加注重XML的解析 10 | * @author Coder-XiaoYi 11 | */ 12 | public abstract class XmlLineMarkerProvider extends CommonLineMarkerProvider { 13 | 14 | /** 15 | * 元素列表Cell渲染,默认返回null,则表示不做任何渲染,使用默认渲染处理 16 | * @return 17 | */ 18 | @Override 19 | public PsiElementListCellRenderer getCellRenderer() { 20 | return null; 21 | } 22 | 23 | /** 24 | * 判断是不是LiteFlow的XML文件 25 | * 如果是XML文件且根节点RootTag是flow,则判断为是,否则为不是 26 | * @param element 27 | * @return the boolean 28 | */ 29 | @Override 30 | public boolean isLiteflowFile(PsiElement element) { 31 | return XmlUtils.isLiteFlowXmlFile(element.getContainingFile()); 32 | } 33 | 34 | /** 35 | * 判断是不是目标元素 36 | * 如果元素是XmlToken且标签名为then/when/pre/finally/node,则判断是目标元素,否则不是 37 | * @param element 38 | * @return the boolean 39 | */ 40 | @Override 41 | public boolean isTargetElement(PsiElement element) { 42 | return XmlUtils.isLiteflowXmlTarget(element); 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowThreadPoolExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowThreadPoolExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowThreadPoolExpress { 15 | 16 | public LiteFlowLiteFlowThreadPoolExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowThreadPoolExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public PsiElement getString() { 33 | return findChildByType(LITEFLOW_STRING); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/language/editing/LiteFlowBraceMatcher.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.language.editing; 2 | 3 | import com.intellij.lang.BracePair; 4 | import com.intellij.lang.PairedBraceMatcher; 5 | import com.intellij.psi.PsiFile; 6 | import com.intellij.psi.tree.IElementType; 7 | import org.jetbrains.annotations.NotNull; 8 | import org.jetbrains.annotations.Nullable; 9 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes; 10 | 11 | public class LiteFlowBraceMatcher implements PairedBraceMatcher { 12 | 13 | private static final BracePair[] PAIRS = { 14 | new BracePair(LiteFlowTypes.LITEFLOW_BRACE_LEFT, LiteFlowTypes.LITEFLOW_BRACE_RIGHT, true), 15 | new BracePair(LiteFlowTypes.LITEFLOW_BRACK_LEFT, LiteFlowTypes.LITEFLOW_BRACK_RIGHT, false), 16 | new BracePair(LiteFlowTypes.LITEFLOW_PAREN_LEFT, LiteFlowTypes.LITEFLOW_PAREN_RIGHT, false), 17 | }; 18 | 19 | @Override 20 | public BracePair @NotNull [] getPairs() { 21 | return PAIRS; 22 | } 23 | 24 | @Override 25 | public boolean isPairedBracesAllowedBeforeType(@NotNull IElementType lbraceType, @Nullable IElementType contextType) { 26 | return true; 27 | } 28 | 29 | @Override 30 | public int getCodeConstructStart(PsiFile file, int openingBraceOffset) { 31 | return openingBraceOffset; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowFnInvokeStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowFnInvokeStatementImpl extends ASTWrapperPsiElement implements LiteFlowFnInvokeStatement { 15 | 16 | public LiteFlowFnInvokeStatementImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitFnInvokeStatement(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowFnInvokeExpress getFnInvokeExpress() { 33 | return findNotNullChildByClass(LiteFlowFnInvokeExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowDoExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowDoExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowDoExpress { 15 | 16 | public LiteFlowLiteFlowDoExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowDoExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowLiteFlowAllExpress getLiteFlowAllExpress() { 33 | return findChildByClass(LiteFlowLiteFlowAllExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowParallelExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowParallelExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowParallelExpress { 15 | 16 | public LiteFlowLiteFlowParallelExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowParallelExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowBoolean getBoolean() { 33 | return findChildByClass(LiteFlowBoolean.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowReturnStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowReturnStatementImpl extends ASTWrapperPsiElement implements LiteFlowReturnStatement { 15 | 16 | public LiteFlowReturnStatementImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitReturnStatement(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getAllExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowAllExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowIgnoreErrorExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowIgnoreErrorExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowIgnoreErrorExpress { 15 | 16 | public LiteFlowLiteFlowIgnoreErrorExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowIgnoreErrorExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowBoolean getBoolean() { 33 | return findChildByClass(LiteFlowBoolean.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowNotExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowNotExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowNotExpress { 15 | 16 | public LiteFlowLiteFlowNotExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowNotExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowLiteFlowLogicExpress getLiteFlowLogicExpress() { 33 | return findChildByClass(LiteFlowLiteFlowLogicExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/resources/images/chain.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowDefaultExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowDefaultExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowDefaultExpress { 15 | 16 | public LiteFlowLiteFlowDefaultExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowDefaultExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowLiteFlowAllExpress getLiteFlowAllExpress() { 33 | return findChildByClass(LiteFlowLiteFlowAllExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowIf2ElseExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowIf2ElseExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowIf2ElseExpress { 15 | 16 | public LiteFlowLiteFlowIf2ElseExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowIf2ElseExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowLiteFlowAllExpress getLiteFlowAllExpress() { 33 | return findChildByClass(LiteFlowLiteFlowAllExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowStatementImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowStatement { 15 | 16 | public LiteFlowLiteFlowStatementImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowStatement(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowLiteFlowConditionExpress getLiteFlowConditionExpress() { 33 | return findNotNullChildByClass(LiteFlowLiteFlowConditionExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowForSubExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowForSubExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowForSubExpress { 15 | 16 | public LiteFlowLiteFlowForSubExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowForSubExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowLiteFlowBreakExpress getLiteFlowBreakExpress() { 33 | return findNotNullChildByClass(LiteFlowLiteFlowBreakExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowOrExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowOrExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowOrExpress { 15 | 16 | public LiteFlowLiteFlowOrExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowOrExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getLiteFlowLogicExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowLiteFlowLogicExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowPreExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowPreExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowPreExpress { 15 | 16 | public LiteFlowLiteFlowPreExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowPreExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getLiteFlowAllExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowLiteFlowAllExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowSerExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowSerExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowSerExpress { 15 | 16 | public LiteFlowLiteFlowSerExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowSerExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getLiteFlowAllExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowLiteFlowAllExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/toolWindow/beans/CategoryTree.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.toolWindow.beans; 2 | 3 | import com.intellij.icons.AllIcons; 4 | 5 | import javax.swing.*; 6 | 7 | public class CategoryTree { 8 | 9 | /** 10 | * 分类名称 11 | */ 12 | private final String categoryName; 13 | /** 14 | * 元素数量 15 | */ 16 | private final Integer elementCounts; 17 | 18 | /** 19 | * 图标 20 | */ 21 | private final Icon icon; 22 | 23 | public CategoryTree(String categoryName, Integer elementCounts) { 24 | this.categoryName = categoryName; 25 | this.elementCounts = elementCounts; 26 | this.icon = AllIcons.Modules.SourceRoot; 27 | } 28 | 29 | public CategoryTree(String categoryName, Integer elementCounts, Icon icon) { 30 | this.categoryName = categoryName; 31 | this.elementCounts = elementCounts; 32 | this.icon = icon; 33 | } 34 | 35 | public String getCategoryName() { 36 | return categoryName; 37 | } 38 | 39 | public Integer getElementCounts() { 40 | return elementCounts; 41 | } 42 | 43 | public Icon getIcon() { 44 | return icon; 45 | } 46 | 47 | @Override 48 | public String toString() { 49 | return String.format( 50 | "[%d]%s", 51 | elementCounts, 52 | categoryName 53 | ); 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowAndExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowAndExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowAndExpress { 15 | 16 | public LiteFlowLiteFlowAndExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowAndExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getLiteFlowLogicExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowLiteFlowLogicExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowThenExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowThenExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowThenExpress { 15 | 16 | public LiteFlowLiteFlowThenExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowThenExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getLiteFlowAllExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowLiteFlowAllExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowWhileSubExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowWhileSubExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowWhileSubExpress { 15 | 16 | public LiteFlowLiteFlowWhileSubExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowWhileSubExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowLiteFlowBreakExpress getLiteFlowBreakExpress() { 33 | return findNotNullChildByClass(LiteFlowLiteFlowBreakExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowFinallyExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowFinallyExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowFinallyExpress { 15 | 16 | public LiteFlowLiteFlowFinallyExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowFinallyExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getLiteFlowAllExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowLiteFlowAllExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowIteratorSubExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowIteratorSubExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowIteratorSubExpress { 15 | 16 | public LiteFlowLiteFlowIteratorSubExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowIteratorSubExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowLiteFlowBreakExpress getLiteFlowBreakExpress() { 33 | return findNotNullChildByClass(LiteFlowLiteFlowBreakExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowMustExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowMustExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowMustExpress { 15 | 16 | public LiteFlowLiteFlowMustExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowMustExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getLiteFlowNodeRefExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowLiteFlowNodeRefExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowAllLogicStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowAllLogicStatementImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowAllLogicStatement { 15 | 16 | public LiteFlowLiteFlowAllLogicStatementImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowAllLogicStatement(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowLiteFlowAllLogicExpress getLiteFlowAllLogicExpress() { 33 | return findNotNullChildByClass(LiteFlowLiteFlowAllLogicExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/toolWindow/beans/LiteFlowElementType.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.toolWindow.beans; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | import org.jetbrains.annotations.Nullable; 5 | 6 | import java.util.Arrays; 7 | 8 | public enum LiteFlowElementType { 9 | 10 | Element, 11 | NORMAL_COMPONENT, 12 | IF_COMPONENT, 13 | SWITCH_COMPONENT, 14 | FOR_COMPONENT, 15 | ITERATOR_COMPONENT, 16 | WHILE_COMPONENT, 17 | BREAK_COMPONENT, 18 | BOOLEAN_COMPONENT, 19 | CHAIN, 20 | IF_SCRIPT, 21 | SWITCH_SCRIPT, 22 | FOR_SCRIPT, 23 | WHILE_SCRIPT, 24 | BREAK_SCRIPT, 25 | BOOLEAN_SCRIPT, 26 | NORMAL_SCRIPT; 27 | 28 | @NotNull 29 | public static LiteFlowElementType[] getValues(){ 30 | return Arrays.stream(LiteFlowElementType.values()).filter(o -> !o.equals(LiteFlowElementType.Element)).toArray(LiteFlowElementType[]::new); 31 | } 32 | 33 | 34 | @NotNull 35 | public static LiteFlowElementType parse(@Nullable Object object) { 36 | try { 37 | assert object != null; 38 | if (object instanceof LiteFlowElementType) { 39 | return (LiteFlowElementType) object; 40 | } 41 | return LiteFlowElementType.valueOf(object.toString()); 42 | } catch (Exception ignore) { 43 | return LiteFlowElementType.Element; 44 | } 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/service/FileService.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.service; 2 | 3 | import com.intellij.openapi.components.ServiceManager; 4 | import com.intellij.openapi.module.Module; 5 | import com.intellij.openapi.project.Project; 6 | import com.intellij.openapi.vfs.LocalFileSystem; 7 | import com.intellij.openapi.vfs.VirtualFile; 8 | import com.intellij.psi.search.FilenameIndex; 9 | import com.intellij.psi.search.GlobalSearchScope; 10 | import org.jetbrains.annotations.NotNull; 11 | 12 | import java.io.Serializable; 13 | 14 | public class FileService implements Serializable { 15 | 16 | private Project project; 17 | 18 | public FileService(Project project) { 19 | this.project = project; 20 | } 21 | 22 | public static FileService getInstance(@NotNull Project project) { 23 | return ServiceManager.getService(project, FileService.class); 24 | } 25 | 26 | public VirtualFile getFileInResourcePath(Module module, String path){ 27 | String[] paths = path.split("/"); 28 | String fileName = paths[paths.length - 1]; 29 | return FilenameIndex.getVirtualFilesByName(project, fileName, GlobalSearchScope.moduleScope(module)) 30 | .stream().filter((item) -> item.getPath().endsWith("/resources/" + path)).findFirst().orElse(null); 31 | } 32 | 33 | public VirtualFile getFileInAbsolutePath(String file){ 34 | return LocalFileSystem.getInstance().refreshAndFindFileByPath(file); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowPlaceHolderStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowPlaceHolderStatementImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowPlaceHolderStatement { 15 | 16 | public LiteFlowLiteFlowPlaceHolderStatementImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowPlaceHolderStatement(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowLiteFlowPlaceholderAssignExpress getLiteFlowPlaceholderAssignExpress() { 33 | return findNotNullChildByClass(LiteFlowLiteFlowPlaceholderAssignExpress.class); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowWhileStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowWhileStatementImpl extends ASTWrapperPsiElement implements LiteFlowWhileStatement { 15 | 16 | public LiteFlowWhileStatementImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitWhileStatement(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowAllExpress getAllExpress() { 33 | return findNotNullChildByClass(LiteFlowAllExpress.class); 34 | } 35 | 36 | @Override 37 | @NotNull 38 | public LiteFlowCodes getCodes() { 39 | return findNotNullChildByClass(LiteFlowCodes.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/util/LiteFlowUtils.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.util; 2 | 3 | import com.intellij.openapi.project.Project; 4 | import com.intellij.psi.PsiElement; 5 | 6 | import java.util.List; 7 | import java.util.Optional; 8 | import java.util.function.BiFunction; 9 | 10 | public class LiteFlowUtils { 11 | 12 | /** 13 | * 根据名称 查找对应的目标PsiElement 14 | * @param project 15 | * @param name 16 | * @param biFunction 17 | * @return 18 | */ 19 | public static Optional findTargetByName(Project project, String name, BiFunction> biFunction) { 20 | List result = biFunction.apply(project, name); 21 | if (result == null){ 22 | return Optional.empty(); 23 | } 24 | return Optional.ofNullable(result.size() == 0? null : result.get(0)); 25 | } 26 | 27 | /** 28 | * 根据名称 查找对应的目标PsiElement 29 | * @param project 30 | * @param name 31 | * @param biFunction 32 | * @return 33 | */ 34 | public static Optional> findTargetsByName(Project project, String name, BiFunction> biFunction) { 35 | List result = biFunction.apply(project, name); 36 | if (result == null){ 37 | return Optional.empty(); 38 | } 39 | return Optional.ofNullable(result.size() == 0? null : result); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowAssignExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowAssignExpressImpl extends ASTWrapperPsiElement implements LiteFlowAssignExpress { 15 | 16 | public LiteFlowAssignExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitAssignExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowAllExpress getAllExpress() { 33 | return findNotNullChildByClass(LiteFlowAllExpress.class); 34 | } 35 | 36 | @Override 37 | @NotNull 38 | public LiteFlowRefExpress getRefExpress() { 39 | return findNotNullChildByClass(LiteFlowRefExpress.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowDataExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowDataExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowDataExpress { 15 | 16 | public LiteFlowLiteFlowDataExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowDataExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowElVariableRef getElVariableRef() { 33 | return findChildByClass(LiteFlowElVariableRef.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public PsiElement getString() { 39 | return findChildByType(LITEFLOW_STRING); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowPlaceHolderRefImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowPlaceHolderRefImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowPlaceHolderRef { 15 | 16 | public LiteFlowLiteFlowPlaceHolderRefImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowPlaceHolderRef(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowRefExpress getRefExpress() { 33 | return findChildByClass(LiteFlowRefExpress.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public PsiElement getNumber() { 39 | return findChildByType(LITEFLOW_NUMBER); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowUseArrayExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowUseArrayExpressImpl extends ASTWrapperPsiElement implements LiteFlowUseArrayExpress { 15 | 16 | public LiteFlowUseArrayExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitUseArrayExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowAllExpress getAllExpress() { 33 | return findNotNullChildByClass(LiteFlowAllExpress.class); 34 | } 35 | 36 | @Override 37 | @NotNull 38 | public LiteFlowRefExpress getRefExpress() { 39 | return findNotNullChildByClass(LiteFlowRefExpress.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowFnInvokeExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowFnInvokeExpressImpl extends ASTWrapperPsiElement implements LiteFlowFnInvokeExpress { 15 | 16 | public LiteFlowFnInvokeExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitFnInvokeExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowFnParamExpress getFnParamExpress() { 33 | return findNotNullChildByClass(LiteFlowFnParamExpress.class); 34 | } 35 | 36 | @Override 37 | @NotNull 38 | public LiteFlowRefExpress getRefExpress() { 39 | return findNotNullChildByClass(LiteFlowRefExpress.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowMaxWaitSecondsImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowMaxWaitSecondsImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowMaxWaitSeconds { 15 | 16 | public LiteFlowLiteFlowMaxWaitSecondsImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowMaxWaitSeconds(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowElVariableRef getElVariableRef() { 33 | return findChildByClass(LiteFlowElVariableRef.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public PsiElement getNumber() { 39 | return findChildByType(LITEFLOW_NUMBER); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowAllExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowAllExpressImpl extends ASTWrapperPsiElement implements LiteFlowAllExpress { 15 | 16 | public LiteFlowAllExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitAllExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getOpList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowOp.class); 34 | } 35 | 36 | @Override 37 | @NotNull 38 | public List getSubAllExpressList() { 39 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowSubAllExpress.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowArrayExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowArrayExpressImpl extends ASTWrapperPsiElement implements LiteFlowArrayExpress { 15 | 16 | public LiteFlowArrayExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitArrayExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getAllExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowAllExpress.class); 34 | } 35 | 36 | @Override 37 | @NotNull 38 | public List getOpList() { 39 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowOp.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowFnParamExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowFnParamExpressImpl extends ASTWrapperPsiElement implements LiteFlowFnParamExpress { 15 | 16 | public LiteFlowFnParamExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitFnParamExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getAllExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowAllExpress.class); 34 | } 35 | 36 | @Override 37 | @NotNull 38 | public List getOpList() { 39 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowOp.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | # IntelliJ Platform Artifacts Repositories 2 | # -> https://plugins.jetbrains.com/docs/intellij/intellij-artifacts.html 3 | 4 | pluginGroup = top.xystudio.plugin.idea 5 | pluginName = LiteFlowX 6 | # SemVer format -> https://semver.org 7 | pluginVersion = 1.3.2 8 | 9 | # See https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html 10 | # for insight into build numbers and IntelliJ Platform versions. 11 | pluginSinceBuild = 211 12 | 13 | # IntelliJ Platform Properties -> https://github.com/JetBrains/gradle-intellij-plugin#intellij-platform-properties 14 | platformType = IU 15 | platformVersion = 2021.1 16 | 17 | # Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html 18 | # Example: platformPlugins = com.intellij.java, com.jetbrains.php:203.4449.22 19 | platformPlugins = com.intellij.java, com.intellij.properties, org.jetbrains.plugins.yaml, org.intellij.intelliLang, JavaScript 20 | 21 | # Java language level used to compile sources and to generate the files for - 22 | # Java 11 is required since 2020.3 23 | # Java 17 is required since 2022.2 24 | # Java 21 is required since 2024.2 25 | # https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html#platformVersions 26 | javaVersion = 11 27 | 28 | # Gradle Releases -> https://github.com/gradle/gradle/releases 29 | gradleVersion = 7.4 30 | 31 | # Opt-out flag for bundling Kotlin standard library. 32 | # See https://plugins.jetbrains.com/docs/intellij/kotlin.html#kotlin-standard-library for details. 33 | # suppress inspection "UnusedProperty" 34 | kotlin.stdlib.default.dependency = false -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowMaxWaitMillisecondsImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowMaxWaitMillisecondsImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowMaxWaitMilliseconds { 15 | 16 | public LiteFlowLiteFlowMaxWaitMillisecondsImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowMaxWaitMilliseconds(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowElVariableRef getElVariableRef() { 33 | return findChildByClass(LiteFlowElVariableRef.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public PsiElement getNumber() { 39 | return findChildByType(LITEFLOW_NUMBER); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/util/AsyncUtils.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.util; 2 | 3 | import com.intellij.openapi.application.ModalityState; 4 | import com.intellij.openapi.application.ReadAction; 5 | import com.intellij.openapi.project.Project; 6 | import org.jetbrains.annotations.NotNull; 7 | import org.jetbrains.concurrency.CancellablePromise; 8 | 9 | import javax.annotation.PreDestroy; 10 | import java.util.concurrent.*; 11 | import java.util.function.Consumer; 12 | 13 | public class AsyncUtils { 14 | 15 | private static final ExecutorService EXECUTOR = new ThreadPoolExecutor( 16 | 1, 17 | 5, 18 | 5L, 19 | TimeUnit.SECONDS, 20 | new LinkedBlockingQueue<>() 21 | ); 22 | 23 | private AsyncUtils(){} 24 | 25 | @NotNull 26 | public static CancellablePromise runRead(@NotNull Project project, @NotNull Callable background, @NotNull Consumer consumer) { 27 | return runRead(project, background, ModalityState.defaultModalityState(), consumer); 28 | } 29 | 30 | @NotNull 31 | public static CancellablePromise runRead(@NotNull Project project, @NotNull Callable background, @NotNull ModalityState state, @NotNull Consumer consumer) { 32 | return ReadAction.nonBlocking(background) 33 | .inSmartMode(project) 34 | .finishOnUiThread(state, consumer) 35 | .submit(EXECUTOR); 36 | } 37 | 38 | @PreDestroy 39 | public void dispose() { 40 | EXECUTOR.shutdown(); 41 | } 42 | 43 | 44 | } 45 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowValueImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowValueImpl extends ASTWrapperPsiElement implements LiteFlowValue { 15 | 16 | public LiteFlowValueImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitValue(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowBoolean getBoolean() { 33 | return findChildByClass(LiteFlowBoolean.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public PsiElement getNumber() { 39 | return findChildByType(LITEFLOW_NUMBER); 40 | } 41 | 42 | @Override 43 | @Nullable 44 | public PsiElement getString() { 45 | return findChildByType(LITEFLOW_STRING); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowCatchExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowCatchExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowCatchExpress { 15 | 16 | public LiteFlowLiteFlowCatchExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowCatchExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowLiteFlowAllExpress getLiteFlowAllExpress() { 33 | return findChildByClass(LiteFlowLiteFlowAllExpress.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public LiteFlowLiteFlowDoExpress getLiteFlowDoExpress() { 39 | return findChildByClass(LiteFlowLiteFlowDoExpress.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/LiteFlowStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface LiteFlowStatement extends PsiElement { 9 | 10 | @Nullable 11 | LiteFlowAssignStatement getAssignStatement(); 12 | 13 | @Nullable 14 | LiteFlowBreakStatement getBreakStatement(); 15 | 16 | @Nullable 17 | LiteFlowContinueStatement getContinueStatement(); 18 | 19 | @Nullable 20 | LiteFlowFnInvokeStatement getFnInvokeStatement(); 21 | 22 | @Nullable 23 | LiteFlowForStatement getForStatement(); 24 | 25 | @Nullable 26 | LiteFlowIfStatement getIfStatement(); 27 | 28 | @Nullable 29 | LiteFlowLiteFlowAllLogicStatement getLiteFlowAllLogicStatement(); 30 | 31 | @Nullable 32 | LiteFlowLiteFlowPlaceHolderStatement getLiteFlowPlaceHolderStatement(); 33 | 34 | @Nullable 35 | LiteFlowLiteFlowStatement getLiteFlowStatement(); 36 | 37 | @Nullable 38 | LiteFlowNewStatement getNewStatement(); 39 | 40 | @Nullable 41 | LiteFlowOpSelfStatement getOpSelfStatement(); 42 | 43 | @Nullable 44 | LiteFlowReturnStatement getReturnStatement(); 45 | 46 | @NotNull 47 | List getStatementList(); 48 | 49 | @Nullable 50 | LiteFlowThreeStatement getThreeStatement(); 51 | 52 | @Nullable 53 | LiteFlowWhileStatement getWhileStatement(); 54 | 55 | @Nullable 56 | PsiElement getBlockComment(); 57 | 58 | @Nullable 59 | PsiElement getLineComment(); 60 | 61 | } 62 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowBreakExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowBreakExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowBreakExpress { 15 | 16 | public LiteFlowLiteFlowBreakExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowBreakExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowLiteFlowAllLogicExpress getLiteFlowAllLogicExpress() { 33 | return findChildByClass(LiteFlowLiteFlowAllLogicExpress.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress() { 39 | return findChildByClass(LiteFlowLiteFlowNodeRefExpress.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowIf2SubExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowIf2SubExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowIf2SubExpress { 15 | 16 | public LiteFlowLiteFlowIf2SubExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowIf2SubExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowLiteFlowIf2ElifExpress getLiteFlowIf2ElifExpress() { 33 | return findChildByClass(LiteFlowLiteFlowIf2ElifExpress.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public LiteFlowLiteFlowIf2ElseExpress getLiteFlowIf2ElseExpress() { 39 | return findChildByClass(LiteFlowLiteFlowIf2ElseExpress.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowLogicExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowLogicExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowLogicExpress { 15 | 16 | public LiteFlowLiteFlowLogicExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowLogicExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowLiteFlowAllLogicExpress getLiteFlowAllLogicExpress() { 33 | return findChildByClass(LiteFlowLiteFlowAllLogicExpress.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress() { 39 | return findChildByClass(LiteFlowLiteFlowNodeRefExpress.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowToExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowToExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowToExpress { 15 | 16 | public LiteFlowLiteFlowToExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowToExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getLiteFlowAllExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowLiteFlowAllExpress.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public LiteFlowLiteFlowDefaultExpress getLiteFlowDefaultExpress() { 39 | return findChildByClass(LiteFlowLiteFlowDefaultExpress.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/resources/images/iterator.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowIf2ElifSubExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowIf2ElifSubExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowIf2ElifSubExpress { 15 | 16 | public LiteFlowLiteFlowIf2ElifSubExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowIf2ElifSubExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowLiteFlowIf2ElifExpress getLiteFlowIf2ElifExpress() { 33 | return findChildByClass(LiteFlowLiteFlowIf2ElifExpress.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public LiteFlowLiteFlowIf2ElseExpress getLiteFlowIf2ElseExpress() { 39 | return findChildByClass(LiteFlowLiteFlowIf2ElseExpress.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowNodeRefExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowNodeRefExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowNodeRefExpress { 15 | 16 | public LiteFlowLiteFlowNodeRefExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowNodeRefExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowLiteFlowNodeRefSubExpress getLiteFlowNodeRefSubExpress() { 33 | return findChildByClass(LiteFlowLiteFlowNodeRefSubExpress.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public LiteFlowLiteFlowNodeStringSubExpress getLiteFlowNodeStringSubExpress() { 39 | return findChildByClass(LiteFlowLiteFlowNodeStringSubExpress.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowParExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowParExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowParExpress { 15 | 16 | public LiteFlowLiteFlowParExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowParExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getLiteFlowAllExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowLiteFlowAllExpress.class); 34 | } 35 | 36 | @Override 37 | @NotNull 38 | public List getLiteFlowWhenSubExpressList() { 39 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowLiteFlowWhenSubExpress.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowWhenExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowWhenExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowWhenExpress { 15 | 16 | public LiteFlowLiteFlowWhenExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowWhenExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getLiteFlowAllExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowLiteFlowAllExpress.class); 34 | } 35 | 36 | @Override 37 | @NotNull 38 | public List getLiteFlowWhenSubExpressList() { 39 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowLiteFlowWhenSubExpress.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowExpressImpl extends ASTWrapperPsiElement implements LiteFlowExpress { 15 | 16 | public LiteFlowExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getAllExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowAllExpress.class); 34 | } 35 | 36 | @Override 37 | @NotNull 38 | public List getOpList() { 39 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowOp.class); 40 | } 41 | 42 | @Override 43 | @NotNull 44 | public LiteFlowOpExpress getOpExpress() { 45 | return findNotNullChildByClass(LiteFlowOpExpress.class); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/constant/LiteFlowMethodEnum.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.constant; 2 | 3 | public class LiteFlowMethodEnum { 4 | 5 | public static final String PROCESS = "PROCESS"; 6 | 7 | public static final String PROCESS_SWITCH = "PROCESS_SWITCH"; 8 | 9 | public static final String PROCESS_IF = "PROCESS_IF"; 10 | 11 | public static final String PROCESS_FOR = "PROCESS_FOR"; 12 | 13 | public static final String PROCESS_ITERATOR = "PROCESS_ITERATOR"; 14 | 15 | public static final String PROCESS_WHILE = "PROCESS_WHILE"; 16 | 17 | public static final String PROCESS_BREAK = "PROCESS_BREAK"; 18 | 19 | public static final String PROCESS_BOOLEAN = "PROCESS_BOOLEAN"; 20 | 21 | public static final String IS_ACCESS = "IS_ACCESS"; 22 | 23 | public static final String IS_END = "IS_END"; 24 | 25 | public static final String IS_CONTINUE_ON_ERROR = "IS_CONTINUE_ON_ERROR"; 26 | 27 | public static final String GET_NODE_EXECUTOR_CLASS = "GET_NODE_EXECUTOR_CLASS"; 28 | 29 | public static final String ON_SUCCESS = "ON_SUCCESS"; 30 | 31 | public static final String ON_ERROR = "ON_ERROR"; 32 | 33 | public static final String BEFORE_PROCESS = "BEFORE_PROCESS"; 34 | 35 | public static final String AFTER_PROCESS = "AFTER_PROCESS"; 36 | 37 | public static final String[] NECESSARY_PROCESS = new String[]{ 38 | PROCESS, 39 | PROCESS_IF, 40 | PROCESS_BREAK, 41 | PROCESS_SWITCH, 42 | PROCESS_FOR, 43 | PROCESS_ITERATOR, 44 | PROCESS_WHILE, 45 | PROCESS_BOOLEAN 46 | }; 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowPlaceholderAssignExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowPlaceholderAssignExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowPlaceholderAssignExpress { 15 | 16 | public LiteFlowLiteFlowPlaceholderAssignExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowPlaceholderAssignExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowLiteFlowConditionExpress getLiteFlowConditionExpress() { 33 | return findNotNullChildByClass(LiteFlowLiteFlowConditionExpress.class); 34 | } 35 | 36 | @Override 37 | @NotNull 38 | public LiteFlowLiteFlowPlaceHolderRef getLiteFlowPlaceHolderRef() { 39 | return findNotNullChildByClass(LiteFlowLiteFlowPlaceHolderRef.class); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowThreeExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowThreeExpressImpl extends ASTWrapperPsiElement implements LiteFlowThreeExpress { 15 | 16 | public LiteFlowThreeExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitThreeExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getAllExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowAllExpress.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public LiteFlowExpress getExpress() { 39 | return findChildByClass(LiteFlowExpress.class); 40 | } 41 | 42 | @Override 43 | @Nullable 44 | public LiteFlowFnInvokeExpress getFnInvokeExpress() { 45 | return findChildByClass(LiteFlowFnInvokeExpress.class); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/functionImpl/findChainsImpl.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.functionImpl; 2 | 3 | import com.intellij.openapi.project.Project; 4 | import com.intellij.psi.PsiElement; 5 | import com.intellij.psi.search.GlobalSearchScope; 6 | import com.intellij.psi.xml.XmlTag; 7 | import com.intellij.util.xml.DomFileElement; 8 | import com.intellij.util.xml.DomService; 9 | import top.xystudio.plugin.idea.liteflowx.dom.modal.Chain; 10 | import top.xystudio.plugin.idea.liteflowx.dom.modal.Flow; 11 | 12 | import java.util.ArrayList; 13 | import java.util.List; 14 | import java.util.function.BiFunction; 15 | 16 | /** 17 | * 实现寻找Chain方法 18 | */ 19 | public class findChainsImpl implements BiFunction> { 20 | @Override 21 | public List apply(Project project, String name) { 22 | List result = new ArrayList<>(); 23 | if (name == null || name.equals("")){ 24 | return result; 25 | } 26 | List> flows = DomService.getInstance().getFileElements(Flow.class, project, GlobalSearchScope.allScope(project)); 27 | for (DomFileElement flow : flows) { 28 | for (Chain chain : flow.getRootElement().getChains()) { 29 | if (chain.getId().getStringValue() != null && chain.getId().getStringValue().equals(name)){ 30 | result.add(chain.getXmlTag()); 31 | }else if (chain.getName().getStringValue() != null && chain.getName().getStringValue().equals(name)){ 32 | result.add(chain.getXmlTag()); 33 | } 34 | } 35 | } 36 | return result; 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowIfStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowIfStatementImpl extends ASTWrapperPsiElement implements LiteFlowIfStatement { 15 | 16 | public LiteFlowIfStatementImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitIfStatement(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public LiteFlowAllExpress getAllExpress() { 33 | return findNotNullChildByClass(LiteFlowAllExpress.class); 34 | } 35 | 36 | @Override 37 | @NotNull 38 | public List getCodesList() { 39 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowCodes.class); 40 | } 41 | 42 | @Override 43 | @NotNull 44 | public List getIfStatementList() { 45 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowIfStatement.class); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/functionImpl/findElfLocalVariablesImpl.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.functionImpl; 2 | 3 | import com.intellij.openapi.project.Project; 4 | import com.intellij.psi.PsiElement; 5 | import com.intellij.psi.PsiFile; 6 | import com.intellij.psi.util.PsiTreeUtil; 7 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowCodes; 8 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowStatement; 9 | 10 | import java.util.ArrayList; 11 | import java.util.List; 12 | import java.util.function.BiFunction; 13 | 14 | public class findElfLocalVariablesImpl implements BiFunction> { 15 | 16 | private final PsiFile liteFlowFile; 17 | 18 | public findElfLocalVariablesImpl(PsiFile liteFlowFile){ 19 | this.liteFlowFile = liteFlowFile; 20 | } 21 | 22 | @Override 23 | public List apply(Project project, String name) { 24 | 25 | List result = new ArrayList<>(); 26 | 27 | LiteFlowCodes liteFlowCodes = PsiTreeUtil.getChildOfType(this.liteFlowFile, LiteFlowCodes.class); 28 | if (liteFlowCodes == null){ 29 | return result; 30 | } 31 | for (LiteFlowStatement liteFlowStatement : liteFlowCodes.getStatementList()) { 32 | try{ 33 | if(liteFlowStatement.getAssignStatement() != null && 34 | name.equals(liteFlowStatement.getAssignStatement().getAssignExpress().getRefExpress().getTypeRef().getText())){ 35 | result.add(liteFlowStatement); 36 | } 37 | }catch (Exception ignored){ } 38 | } 39 | return result; 40 | 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowAllLogicExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowAllLogicExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowAllLogicExpress { 15 | 16 | public LiteFlowLiteFlowAllLogicExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowAllLogicExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowLiteFlowAndExpress getLiteFlowAndExpress() { 33 | return findChildByClass(LiteFlowLiteFlowAndExpress.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public LiteFlowLiteFlowNotExpress getLiteFlowNotExpress() { 39 | return findChildByClass(LiteFlowLiteFlowNotExpress.class); 40 | } 41 | 42 | @Override 43 | @Nullable 44 | public LiteFlowLiteFlowOrExpress getLiteFlowOrExpress() { 45 | return findChildByClass(LiteFlowLiteFlowOrExpress.class); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowSwitchExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowSwitchExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowSwitchExpress { 15 | 16 | public LiteFlowLiteFlowSwitchExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowSwitchExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowLiteFlowDefaultExpress getLiteFlowDefaultExpress() { 33 | return findChildByClass(LiteFlowLiteFlowDefaultExpress.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress() { 39 | return findChildByClass(LiteFlowLiteFlowNodeRefExpress.class); 40 | } 41 | 42 | @Override 43 | @Nullable 44 | public LiteFlowLiteFlowToExpress getLiteFlowToExpress() { 45 | return findChildByClass(LiteFlowLiteFlowToExpress.class); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowAllExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowAllExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowAllExpress { 15 | 16 | public LiteFlowLiteFlowAllExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowAllExpress(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @Nullable 32 | public LiteFlowLiteFlowConditionExpress getLiteFlowConditionExpress() { 33 | return findChildByClass(LiteFlowLiteFlowConditionExpress.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress() { 39 | return findChildByClass(LiteFlowLiteFlowNodeRefExpress.class); 40 | } 41 | 42 | @Override 43 | @Nullable 44 | public LiteFlowLiteFlowPlaceHolderRef getLiteFlowPlaceHolderRef() { 45 | return findChildByClass(LiteFlowLiteFlowPlaceHolderRef.class); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/gen/top/xystudio/plugin/idea/liteflowx/system/language/psi/impl/LiteFlowLiteFlowIf3ExpressImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package top.xystudio.plugin.idea.liteflowx.system.language.psi.impl; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.lang.ASTNode; 7 | import com.intellij.psi.PsiElement; 8 | import com.intellij.psi.PsiElementVisitor; 9 | import com.intellij.psi.util.PsiTreeUtil; 10 | import static top.xystudio.plugin.idea.liteflowx.system.language.psi.LiteFlowTypes.*; 11 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 12 | import top.xystudio.plugin.idea.liteflowx.system.language.psi.*; 13 | 14 | public class LiteFlowLiteFlowIf3ExpressImpl extends ASTWrapperPsiElement implements LiteFlowLiteFlowIf3Express { 15 | 16 | public LiteFlowLiteFlowIf3ExpressImpl(@NotNull ASTNode node) { 17 | super(node); 18 | } 19 | 20 | public void accept(@NotNull LiteFlowVisitor visitor) { 21 | visitor.visitLiteFlowIf3Express(this); 22 | } 23 | 24 | @Override 25 | public void accept(@NotNull PsiElementVisitor visitor) { 26 | if (visitor instanceof LiteFlowVisitor) accept((LiteFlowVisitor)visitor); 27 | else super.accept(visitor); 28 | } 29 | 30 | @Override 31 | @NotNull 32 | public List getLiteFlowAllExpressList() { 33 | return PsiTreeUtil.getChildrenOfTypeAsList(this, LiteFlowLiteFlowAllExpress.class); 34 | } 35 | 36 | @Override 37 | @Nullable 38 | public LiteFlowLiteFlowAllLogicExpress getLiteFlowAllLogicExpress() { 39 | return findChildByClass(LiteFlowLiteFlowAllLogicExpress.class); 40 | } 41 | 42 | @Override 43 | @Nullable 44 | public LiteFlowLiteFlowNodeRefExpress getLiteFlowNodeRefExpress() { 45 | return findChildByClass(LiteFlowLiteFlowNodeRefExpress.class); 46 | } 47 | 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/top/xystudio/plugin/idea/liteflowx/system/toolWindow/renderer/LiteFlowTreeCellRenderer.java: -------------------------------------------------------------------------------- 1 | package top.xystudio.plugin.idea.liteflowx.system.toolWindow.renderer; 2 | 3 | import com.intellij.ui.ColoredTreeCellRenderer; 4 | import com.intellij.ui.SimpleTextAttributes; 5 | import org.jetbrains.annotations.NotNull; 6 | import top.xystudio.plugin.idea.liteflowx.system.toolWindow.beans.CategoryTree; 7 | import top.xystudio.plugin.idea.liteflowx.system.toolWindow.beans.LiteFlowElement; 8 | import top.xystudio.plugin.idea.liteflowx.system.toolWindow.frame.LiteFlowTree; 9 | 10 | import javax.swing.*; 11 | 12 | public class LiteFlowTreeCellRenderer extends ColoredTreeCellRenderer { 13 | 14 | 15 | @Override 16 | public void customizeCellRenderer(@NotNull JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) { 17 | if (value instanceof LiteFlowTree.CategoryNode){ 18 | LiteFlowTree.CategoryNode node = (LiteFlowTree.CategoryNode) value; 19 | CategoryTree data = node.getData(); 20 | setIcon(data.getIcon()); 21 | append(data.toString()); 22 | }else if(value instanceof LiteFlowTree.LiteFlowElementNode){ 23 | LiteFlowTree.LiteFlowElementNode node = (LiteFlowTree.LiteFlowElementNode) value; 24 | LiteFlowElement data = node.getData(); 25 | setIcon(data.getIcon()); 26 | append(data.getName()); 27 | String subName = data.getSubName(); 28 | if (subName != null){ 29 | append(" - " + subName, SimpleTextAttributes.GRAYED_ATTRIBUTES); 30 | } 31 | }else if (value instanceof LiteFlowTree.TreeNode) { 32 | LiteFlowTree.TreeNode node = (LiteFlowTree.TreeNode) value; 33 | append(node.toString()); 34 | } 35 | } 36 | } 37 | --------------------------------------------------------------------------------