├── jps-plugin ├── build.gradle └── src │ └── main │ ├── resources │ └── META-INF │ │ └── services │ │ ├── org.jetbrains.jps.incremental.BuilderService │ │ └── org.jetbrains.jps.model.serialization.JpsModelSerializerExtension │ └── java │ └── io │ └── github │ └── liias │ └── monkey │ └── jps │ ├── MonkeyConstants.java │ ├── model │ ├── JpsMonkeyModuleProperties.java │ ├── JpsMonkeyGlobalProperties.java │ └── JpsMonkeyModuleType.java │ └── builder │ ├── MonkeyBuilderService.java │ └── MonkeySourceRootDescriptor.java ├── deserializer ├── build.gradle └── src │ └── main │ └── java │ └── io │ └── github │ └── liias │ └── monkey │ └── deserializer │ └── type │ ├── MonkeyTypeCollection.java │ ├── MonkeyTypeNull.java │ ├── MonkeyTypeBool.java │ ├── MonkeyTypeInt.java │ ├── MonkeyTypeFloat.java │ └── MonkeyTypeString.java ├── src ├── main │ ├── resources │ │ ├── fileTemplates │ │ │ ├── internal │ │ │ │ └── Monkey C File.mc.ft │ │ │ └── code │ │ │ │ ├── RunNoEvil Test Method.mc.ft │ │ │ │ └── RunNoEvil Test Method.mc.html │ │ ├── icons │ │ │ ├── sdk.png │ │ │ ├── addsdk.png │ │ │ ├── module.png │ │ │ ├── sdk@2x.png │ │ │ ├── mc_file.png │ │ │ ├── addsdk@2x.png │ │ │ ├── mc_file@2x.png │ │ │ ├── module@2x.png │ │ │ ├── app_settings_13.png │ │ │ └── app_settings_13@2x.png │ │ ├── inspectionDescriptions │ │ │ └── ManifestDom.html │ │ └── META-INF │ │ │ └── eclipse.xml │ ├── java │ │ ├── io │ │ │ └── github │ │ │ │ └── liias │ │ │ │ └── monkey │ │ │ │ ├── lang │ │ │ │ ├── psi │ │ │ │ │ ├── impl │ │ │ │ │ │ ├── MonkeyPsiImplUtil.java │ │ │ │ │ │ ├── MonkeyDocCommentImpl.java │ │ │ │ │ │ └── AbstractMonkeyPsiClass.java │ │ │ │ │ ├── MonkeyExecutionScope.java │ │ │ │ │ ├── MonkeyClass.java │ │ │ │ │ ├── MonkeyReference.java │ │ │ │ │ ├── MonkeyPsiCompositeElement.java │ │ │ │ │ ├── MonkeyDocComment.java │ │ │ │ │ ├── MonkeyComponent.java │ │ │ │ │ ├── MonkeyElementType.java │ │ │ │ │ ├── MonkeyTokenType.java │ │ │ │ │ ├── MonkeyNamedElement.java │ │ │ │ │ └── MonkeyFile.java │ │ │ │ ├── lexer │ │ │ │ │ └── MonkeyLexer.java │ │ │ │ ├── file │ │ │ │ │ ├── MonkeyFileTypeFactory.java │ │ │ │ │ └── MonkeyFileType.java │ │ │ │ ├── MonkeyLanguage.java │ │ │ │ ├── highlighting │ │ │ │ │ └── MonkeySyntaxHighlighterFactory.java │ │ │ │ ├── parser │ │ │ │ │ ├── MonkeyParserUtil.java │ │ │ │ │ └── MonkeyTokenTypesSets.java │ │ │ │ ├── resolve │ │ │ │ │ ├── ComponentNameScopeProcessor.java │ │ │ │ │ └── MonkeyResolveProcessor.java │ │ │ │ └── ide │ │ │ │ │ ├── refactoring │ │ │ │ │ └── MonkeyRefactoringSupportProvider.java │ │ │ │ │ ├── structure │ │ │ │ │ └── MonkeyStructureViewFactory.java │ │ │ │ │ ├── navigation │ │ │ │ │ └── MonkeyGoToSymbolContributor.java │ │ │ │ │ └── MonkeyBraceMatcher.java │ │ │ │ ├── project │ │ │ │ ├── dom │ │ │ │ │ ├── manifest │ │ │ │ │ │ ├── Language.java │ │ │ │ │ │ ├── Products.java │ │ │ │ │ │ ├── Languages.java │ │ │ │ │ │ ├── Permissions.java │ │ │ │ │ │ ├── Manifest.java │ │ │ │ │ │ ├── NoNamespaceAttributeValue.java │ │ │ │ │ │ ├── UsesPermission.java │ │ │ │ │ │ ├── ManifestDomElement.java │ │ │ │ │ │ ├── ManifestDomInspection.java │ │ │ │ │ │ ├── Product.java │ │ │ │ │ │ ├── ManifestDomFileDescription.java │ │ │ │ │ │ └── Application.java │ │ │ │ │ ├── sdk │ │ │ │ │ │ └── projectinfo │ │ │ │ │ │ │ ├── AppPermissions.java │ │ │ │ │ │ │ ├── PermissionMap.java │ │ │ │ │ │ │ ├── AppTypes.java │ │ │ │ │ │ │ ├── Permissions.java │ │ │ │ │ │ │ ├── PermissionMaps.java │ │ │ │ │ │ │ ├── NewProjectFilesMaps.java │ │ │ │ │ │ │ ├── File.java │ │ │ │ │ │ │ ├── ProjectInfo.java │ │ │ │ │ │ │ ├── ProjectInfoDomFileDescription.java │ │ │ │ │ │ │ ├── ProjectInfoDomElement.java │ │ │ │ │ │ │ ├── AppType.java │ │ │ │ │ │ │ ├── Permission.java │ │ │ │ │ │ │ └── NewProjectFileMap.java │ │ │ │ │ └── ManifestResourceProvider.java │ │ │ │ ├── module │ │ │ │ │ ├── MonkeyConstants.java │ │ │ │ │ └── util │ │ │ │ │ │ └── ExternalTemplateUtil.java │ │ │ │ ├── ui │ │ │ │ │ └── module │ │ │ │ │ │ ├── AppType.java │ │ │ │ │ │ ├── MonkeyModuleWizardStep.java │ │ │ │ │ │ ├── newProject │ │ │ │ │ │ └── MonkeyApplicationModifiedSettingsStep.java │ │ │ │ │ │ └── MonkeyTemplateChooser.form │ │ │ │ ├── runconfig │ │ │ │ │ ├── running │ │ │ │ │ │ ├── MonkeyModuleConfigurationProducer.java │ │ │ │ │ │ ├── MonkeyRunConfigurationModule.java │ │ │ │ │ │ ├── MonkeyModuleBasedConfiguration.java │ │ │ │ │ │ └── MonkeyRunningState.java │ │ │ │ │ ├── testing │ │ │ │ │ │ ├── MonkeyTestModuleConfigurationProducer.java │ │ │ │ │ │ ├── MonkeyTestRunConfigurationModule.java │ │ │ │ │ │ ├── MonkeySearchForTestsTask.java │ │ │ │ │ │ └── MonkeyTestConfigurationType.java │ │ │ │ │ ├── AbstractMonkeyRunConfigurationModule.java │ │ │ │ │ ├── MonkeyProgramRunner.java │ │ │ │ │ ├── DeploymentTarget.java │ │ │ │ │ ├── TargetDevice.java │ │ │ │ │ └── TargetSdkVersion.java │ │ │ │ └── sdk │ │ │ │ │ └── skeleton │ │ │ │ │ ├── MonkeyCSymbol.java │ │ │ │ │ └── MonkeyCMethod.java │ │ │ │ ├── ide │ │ │ │ ├── actions │ │ │ │ │ ├── appsettings │ │ │ │ │ │ ├── AppSettingsAction.java │ │ │ │ │ │ ├── json │ │ │ │ │ │ │ └── SettingsAndLanguages.java │ │ │ │ │ │ ├── form │ │ │ │ │ │ │ ├── BooleanFieldModel.java │ │ │ │ │ │ │ ├── FloatFieldModel.java │ │ │ │ │ │ │ └── StringFieldModel.java │ │ │ │ │ │ ├── SettingDeserializer.java │ │ │ │ │ │ └── AppSettingsDialog.java │ │ │ │ │ ├── CreateMonkeyFileAction.java │ │ │ │ │ └── ApiDocsAction.java │ │ │ │ └── conf │ │ │ │ │ └── KeyGenerator.java │ │ │ │ └── Utils.java │ │ └── icons │ │ │ └── MonkeyIcons.java │ └── gen │ │ └── io │ │ └── github │ │ └── liias │ │ └── monkey │ │ └── lang │ │ └── psi │ │ ├── MonkeyAndExpression.java │ │ ├── MonkeyShiftOp.java │ │ ├── MonkeyAdditiveExpression.java │ │ ├── MonkeyEqualityExpression.java │ │ ├── MonkeyRelationalOp.java │ │ ├── MonkeyBitwiseOperator.java │ │ ├── MonkeyConditionalExpression.java │ │ ├── MonkeyExclusiveOrExpression.java │ │ ├── MonkeyInclusiveOrExpression.java │ │ ├── MonkeyAssignmentOperator.java │ │ ├── MonkeyBlingExpression.java │ │ ├── MonkeyConditionalOrExpression.java │ │ ├── MonkeyThisExpression.java │ │ ├── MonkeyConditionalAndExpression.java │ │ ├── MonkeyMultiplicativeExpression.java │ │ ├── MonkeyId.java │ │ ├── MonkeyComponentName.java │ │ ├── MonkeyAnnotation.java │ │ ├── MonkeyModifiers.java │ │ ├── MonkeyParExpression.java │ │ ├── MonkeyShiftExpression.java │ │ ├── MonkeySwitchLabel.java │ │ ├── MonkeyArguments.java │ │ ├── MonkeyBlock.java │ │ ├── MonkeyCatches.java │ │ ├── MonkeyReferenceExpression.java │ │ ├── MonkeyClassBody.java │ │ ├── MonkeyModuleBody.java │ │ ├── MonkeySymbol.java │ │ ├── MonkeyExpressionList.java │ │ ├── MonkeyBitwiseExpression.java │ │ ├── MonkeyQualifiedName.java │ │ ├── MonkeyRelationalExpression.java │ │ ├── MonkeyArrayInitializer.java │ │ ├── MonkeyDictionaryCreator.java │ │ ├── MonkeyFormalParameterDeclarations.java │ │ ├── MonkeyHasExpression.java │ │ ├── MonkeyVariableDeclarationList.java │ │ ├── MonkeyEnumConstant.java │ │ ├── MonkeyCatchClause.java │ │ ├── MonkeyCatchParameter.java │ │ ├── MonkeyTryStatement.java │ │ ├── MonkeyCreator.java │ │ ├── MonkeySwitchBlockStatementGroups.java │ │ ├── MonkeyArrayCreator.java │ │ ├── MonkeyEnumDeclaration.java │ │ ├── MonkeyInstanceOfExpression.java │ │ ├── MonkeyExpression.java │ │ ├── MonkeyForInit.java │ │ ├── MonkeyUsingDeclaration.java │ │ ├── MonkeyVariableInitializer.java │ │ ├── MonkeyBlockStatement.java │ │ ├── MonkeyFieldDeclaration.java │ │ ├── MonkeyFieldDeclarationList.java │ │ ├── MonkeyVariableDeclaration.java │ │ ├── MonkeySwitchBlockStatementGroup.java │ │ ├── MonkeySelector.java │ │ ├── MonkeyConstDeclaration.java │ │ ├── MonkeyModuleDeclaration.java │ │ ├── MonkeyObjectCreator.java │ │ ├── MonkeyIdentifierSuffix.java │ │ ├── MonkeyForStatement.java │ │ ├── MonkeyClassDeclaration.java │ │ ├── MonkeyFunctionDeclaration.java │ │ ├── MonkeyKeyValueInitializer.java │ │ ├── MonkeyUnaryExpression.java │ │ ├── MonkeyLiteral.java │ │ ├── MonkeyClassBodyMembers.java │ │ ├── MonkeyStatement.java │ │ ├── MonkeyModuleBodyMembers.java │ │ └── impl │ │ ├── MonkeyShiftOpImpl.java │ │ ├── MonkeyAndExpressionImpl.java │ │ ├── MonkeyRelationalOpImpl.java │ │ ├── MonkeyThisExpressionImpl.java │ │ ├── MonkeyBlingExpressionImpl.java │ │ ├── MonkeyBitwiseOperatorImpl.java │ │ ├── MonkeyAdditiveExpressionImpl.java │ │ ├── MonkeyEqualityExpressionImpl.java │ │ ├── MonkeyAssignmentOperatorImpl.java │ │ ├── MonkeyConditionalExpressionImpl.java │ │ ├── MonkeyExclusiveOrExpressionImpl.java │ │ ├── MonkeyInclusiveOrExpressionImpl.java │ │ ├── MonkeyConditionalOrExpressionImpl.java │ │ ├── MonkeyConditionalAndExpressionImpl.java │ │ ├── MonkeyMultiplicativeExpressionImpl.java │ │ ├── MonkeyIdImpl.java │ │ ├── MonkeyComponentNameImpl.java │ │ ├── MonkeyAnnotationImpl.java │ │ ├── MonkeyModifiersImpl.java │ │ ├── MonkeySwitchLabelImpl.java │ │ ├── MonkeySymbolImpl.java │ │ ├── MonkeyClassBodyImpl.java │ │ ├── MonkeyParExpressionImpl.java │ │ ├── MonkeyBlockImpl.java │ │ ├── MonkeyModuleBodyImpl.java │ │ ├── MonkeyReferenceExpressionImpl.java │ │ ├── MonkeyCatchesImpl.java │ │ ├── MonkeyArgumentsImpl.java │ │ ├── MonkeyShiftExpressionImpl.java │ │ ├── MonkeyExpressionListImpl.java │ │ ├── MonkeyQualifiedNameImpl.java │ │ ├── MonkeyBitwiseExpressionImpl.java │ │ ├── MonkeyRelationalExpressionImpl.java │ │ ├── MonkeyArrayInitializerImpl.java │ │ ├── MonkeyDictionaryCreatorImpl.java │ │ ├── MonkeyVariableDeclarationListImpl.java │ │ ├── MonkeyFormalParameterDeclarationsImpl.java │ │ ├── MonkeyCreatorImpl.java │ │ ├── MonkeyHasExpressionImpl.java │ │ ├── MonkeyEnumConstantImpl.java │ │ ├── MonkeySwitchBlockStatementGroupsImpl.java │ │ ├── MonkeyCatchClauseImpl.java │ │ ├── MonkeyCatchParameterImpl.java │ │ ├── MonkeyTryStatementImpl.java │ │ ├── MonkeyArrayCreatorImpl.java │ │ ├── MonkeyForInitImpl.java │ │ ├── MonkeyBlockStatementImpl.java │ │ ├── MonkeyExpressionImpl.java │ │ ├── MonkeyInstanceOfExpressionImpl.java │ │ ├── MonkeyVariableInitializerImpl.java │ │ ├── MonkeyEnumDeclarationImpl.java │ │ ├── MonkeyFieldDeclarationImpl.java │ │ ├── MonkeyUsingDeclarationImpl.java │ │ ├── MonkeyVariableDeclarationImpl.java │ │ ├── MonkeyFieldDeclarationListImpl.java │ │ ├── MonkeySelectorImpl.java │ │ ├── MonkeySwitchBlockStatementGroupImpl.java │ │ ├── MonkeyConstDeclarationImpl.java │ │ ├── MonkeyIdentifierSuffixImpl.java │ │ ├── MonkeyObjectCreatorImpl.java │ │ ├── MonkeyModuleDeclarationImpl.java │ │ └── MonkeyForStatementImpl.java └── test │ └── java │ └── io │ └── github │ └── liias │ └── monkey │ └── project │ └── sdk │ ├── TestLoadingDevicesList.java │ └── SkeletonTest.java ├── .gitignore ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── settings.gradle ├── .travis.yml ├── gradle.properties └── yard-decompiler └── build.gradle /jps-plugin/build.gradle: -------------------------------------------------------------------------------- 1 | jar.archiveName = "jps-plugin.jar" -------------------------------------------------------------------------------- /deserializer/build.gradle: -------------------------------------------------------------------------------- 1 | jar.archiveName = "deserializer.jar" -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/internal/Monkey C File.mc.ft: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .idea/ 3 | .gradle/ 4 | .sandbox/ 5 | build/ 6 | out/ 7 | -------------------------------------------------------------------------------- /src/main/resources/icons/sdk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liias/monkey/HEAD/src/main/resources/icons/sdk.png -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liias/monkey/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /src/main/resources/icons/addsdk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liias/monkey/HEAD/src/main/resources/icons/addsdk.png -------------------------------------------------------------------------------- /src/main/resources/icons/module.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liias/monkey/HEAD/src/main/resources/icons/module.png -------------------------------------------------------------------------------- /src/main/resources/icons/sdk@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liias/monkey/HEAD/src/main/resources/icons/sdk@2x.png -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/code/RunNoEvil Test Method.mc.ft: -------------------------------------------------------------------------------- 1 | (:test) 2 | function test${NAME}() { 3 | ${BODY} 4 | } -------------------------------------------------------------------------------- /src/main/resources/icons/mc_file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liias/monkey/HEAD/src/main/resources/icons/mc_file.png -------------------------------------------------------------------------------- /src/main/resources/icons/addsdk@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liias/monkey/HEAD/src/main/resources/icons/addsdk@2x.png -------------------------------------------------------------------------------- /src/main/resources/icons/mc_file@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liias/monkey/HEAD/src/main/resources/icons/mc_file@2x.png -------------------------------------------------------------------------------- /src/main/resources/icons/module@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liias/monkey/HEAD/src/main/resources/icons/module@2x.png -------------------------------------------------------------------------------- /settings.gradle: -------------------------------------------------------------------------------- 1 | rootProject.name = 'monkey' 2 | include ':jps-plugin' 3 | include ':deserializer' 4 | include ':yard-decompiler' 5 | -------------------------------------------------------------------------------- /src/main/resources/icons/app_settings_13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liias/monkey/HEAD/src/main/resources/icons/app_settings_13.png -------------------------------------------------------------------------------- /src/main/resources/icons/app_settings_13@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/liias/monkey/HEAD/src/main/resources/icons/app_settings_13@2x.png -------------------------------------------------------------------------------- /jps-plugin/src/main/resources/META-INF/services/org.jetbrains.jps.incremental.BuilderService: -------------------------------------------------------------------------------- 1 | io.github.liias.monkey.jps.builder.MonkeyBuilderService -------------------------------------------------------------------------------- /jps-plugin/src/main/resources/META-INF/services/org.jetbrains.jps.model.serialization.JpsModelSerializerExtension: -------------------------------------------------------------------------------- 1 | io.github.liias.monkey.jps.model.JpsMonkeyModelSerializerExtension -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/psi/impl/MonkeyPsiImplUtil.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.psi.impl; 2 | 3 | 4 | public class MonkeyPsiImplUtil { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: java 2 | jdk: 3 | - oraclejdk8 4 | 5 | # blacklist 6 | branches: 7 | except: 8 | - legacy 9 | 10 | # whitelist 11 | branches: 12 | only: 13 | - master -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/manifest/Language.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.manifest; 2 | 3 | public interface Language extends ManifestDomElement { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/psi/MonkeyExecutionScope.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.psi; 2 | 3 | public interface MonkeyExecutionScope extends MonkeyPsiCompositeElement { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/psi/MonkeyClass.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.psi; 2 | 3 | public interface MonkeyClass extends MonkeyComponent { 4 | MonkeyClassBodyMembers getBodyMembers(); 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/sdk/projectinfo/AppPermissions.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.sdk.projectinfo; 2 | 3 | public interface AppPermissions extends ProjectInfoDomElement { 4 | } 5 | -------------------------------------------------------------------------------- /src/main/resources/inspectionDescriptions/ManifestDom.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Required XML attribute is missing. 4 | 5 | Warns user about missing required attributes in manifest.xml. 6 | 7 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/psi/MonkeyReference.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.psi; 2 | 3 | import com.intellij.psi.PsiReference; 4 | 5 | public interface MonkeyReference extends MonkeyExpression, PsiReference { 6 | } 7 | 8 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/manifest/Products.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.manifest; 2 | 3 | import java.util.List; 4 | 5 | public interface Products extends ManifestDomElement { 6 | List getProducts(); 7 | } -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/sdk/projectinfo/PermissionMap.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.sdk.projectinfo; 2 | 3 | public interface PermissionMap extends ProjectInfoDomElement { 4 | Permissions getPermissions(); 5 | } 6 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/psi/MonkeyPsiCompositeElement.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.psi; 2 | 3 | import com.intellij.psi.NavigatablePsiElement; 4 | 5 | public interface MonkeyPsiCompositeElement extends NavigatablePsiElement { 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/manifest/Languages.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.manifest; 2 | 3 | import java.util.List; 4 | 5 | public interface Languages extends ManifestDomElement { 6 | List getLanguages(); 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/manifest/Permissions.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.manifest; 2 | 3 | import java.util.List; 4 | 5 | public interface Permissions extends ManifestDomElement { 6 | List getUsesPermissions(); 7 | } -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/sdk/projectinfo/AppTypes.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.sdk.projectinfo; 2 | 3 | import java.util.List; 4 | 5 | public interface AppTypes extends ProjectInfoDomElement { 6 | List getAppTypes(); 7 | } 8 | -------------------------------------------------------------------------------- /jps-plugin/src/main/java/io/github/liias/monkey/jps/MonkeyConstants.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.jps; 2 | 3 | public class MonkeyConstants { 4 | public static final String MODULE_TYPE_ID = "MONKEY_C_MODULE"; 5 | public static final String SDK_TYPE_ID = "MonkeyCSDK"; 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/psi/MonkeyDocComment.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.psi; 2 | 3 | import com.intellij.psi.PsiComment; 4 | import com.intellij.psi.PsiDocCommentBase; 5 | 6 | public interface MonkeyDocComment extends PsiComment, PsiDocCommentBase { 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/manifest/Manifest.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.manifest; 2 | 3 | public interface Manifest extends ManifestDomElement { 4 | NoNamespaceAttributeValue getVersion(); 5 | 6 | Application getApplication(); 7 | } -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- 1 | name=monkey 2 | ideaVersion=2018.1.1 3 | javaVersion=1.8 4 | downloadIdeaSources=true 5 | 6 | pluginVersion=0.3.8 7 | 8 | publishUsername=user 9 | publishPassword=password 10 | publishChannel= 11 | 12 | #org.gradle.java.home=C:/Program Files/Java/jdk1.8.0_121 13 | -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Sun Aug 07 00:56:56 EEST 2016 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-bin.zip 7 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/sdk/projectinfo/Permissions.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.sdk.projectinfo; 2 | 3 | import java.util.List; 4 | 5 | public interface Permissions extends ProjectInfoDomElement { 6 | List getPermissions(); 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/lexer/MonkeyLexer.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.lexer; 2 | 3 | import com.intellij.lexer.FlexAdapter; 4 | 5 | public class MonkeyLexer extends FlexAdapter { 6 | public MonkeyLexer() { 7 | super(new _MonkeyLexer()); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/module/MonkeyConstants.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.module; 2 | 3 | public class MonkeyConstants { 4 | public static final String MODULE_TYPE_ID = "MONKEY_C_MODULE"; 5 | public static final String SDK_TYPE_ID = "MonkeyCSDK"; 6 | } 7 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/sdk/projectinfo/PermissionMaps.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.sdk.projectinfo; 2 | 3 | import java.util.List; 4 | 5 | public interface PermissionMaps extends ProjectInfoDomElement { 6 | List getPermissionMaps(); 7 | } 8 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/ui/module/AppType.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.ui.module; 2 | 3 | public interface AppType { 4 | String WATCH_APP = "watch-app"; 5 | String WIDGET = "widget"; 6 | String DATA_FIELD = "datafield"; 7 | String WATCH_FACE = "watchface"; 8 | } 9 | -------------------------------------------------------------------------------- /src/main/resources/META-INF/eclipse.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/sdk/projectinfo/NewProjectFilesMaps.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.sdk.projectinfo; 2 | 3 | import java.util.List; 4 | 5 | public interface NewProjectFilesMaps extends ProjectInfoDomElement { 6 | List getNewProjectFileMaps(); 7 | } 8 | -------------------------------------------------------------------------------- /jps-plugin/src/main/java/io/github/liias/monkey/jps/model/JpsMonkeyModuleProperties.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.jps.model; 2 | 3 | import java.io.File; 4 | 5 | public class JpsMonkeyModuleProperties { 6 | public String TARGET_DEVICE_ID; 7 | public String TARGET_SDK_VERSION; 8 | public File DEVELOPER_KEY_PATH; 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/sdk/projectinfo/File.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.sdk.projectinfo; 2 | 3 | import com.intellij.util.xml.GenericAttributeValue; 4 | 5 | public interface File extends ProjectInfoDomElement { 6 | GenericAttributeValue getType(); 7 | 8 | String getValue(); 9 | } 10 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/manifest/NoNamespaceAttributeValue.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.manifest; 2 | 3 | import com.intellij.util.xml.GenericAttributeValue; 4 | import com.intellij.util.xml.Namespace; 5 | 6 | @Namespace("") 7 | public interface NoNamespaceAttributeValue extends GenericAttributeValue { 8 | } 9 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/psi/MonkeyComponent.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.psi; 2 | 3 | import com.intellij.psi.PsiNameIdentifierOwner; 4 | import org.jetbrains.annotations.Nullable; 5 | 6 | public interface MonkeyComponent extends MonkeyPsiCompositeElement, PsiNameIdentifierOwner { 7 | @Nullable 8 | MonkeyComponentName getComponentName(); 9 | } -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyAndExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyAndExpression extends MonkeyExpression { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyShiftOp.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyShiftOp extends MonkeyPsiCompositeElement { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyAdditiveExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyAdditiveExpression extends MonkeyExpression { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyEqualityExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyEqualityExpression extends MonkeyExpression { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyRelationalOp.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyRelationalOp extends MonkeyPsiCompositeElement { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyBitwiseOperator.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyBitwiseOperator extends MonkeyPsiCompositeElement { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyConditionalExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyConditionalExpression extends MonkeyExpression { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyExclusiveOrExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyExclusiveOrExpression extends MonkeyExpression { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyInclusiveOrExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyInclusiveOrExpression extends MonkeyExpression { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyAssignmentOperator.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyAssignmentOperator extends MonkeyPsiCompositeElement { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyBlingExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyBlingExpression extends MonkeyExpression, MonkeyReference { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyConditionalOrExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyConditionalOrExpression extends MonkeyExpression { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyThisExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyThisExpression extends MonkeyExpression, MonkeyReference { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyConditionalAndExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyConditionalAndExpression extends MonkeyExpression { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyMultiplicativeExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyMultiplicativeExpression extends MonkeyExpression { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /deserializer/src/main/java/io/github/liias/monkey/deserializer/type/MonkeyTypeCollection.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.deserializer.type; 2 | 3 | import java.util.LinkedList; 4 | import java.util.List; 5 | 6 | public interface MonkeyTypeCollection { 7 | int getChildCount(); 8 | 9 | void fill(LinkedList deserializedQueue); 10 | 11 | List getChildren(); 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/sdk/projectinfo/ProjectInfo.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.sdk.projectinfo; 2 | 3 | public interface ProjectInfo extends ProjectInfoDomElement { 4 | AppPermissions getAppPermissions(); 5 | 6 | AppTypes getAppTypes(); 7 | 8 | PermissionMaps getPermissionMaps(); 9 | 10 | NewProjectFilesMaps getNewProjectFilesMaps(); 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/sdk/projectinfo/ProjectInfoDomFileDescription.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.sdk.projectinfo; 2 | 3 | import com.intellij.util.xml.DomFileDescription; 4 | 5 | public class ProjectInfoDomFileDescription extends DomFileDescription { 6 | public ProjectInfoDomFileDescription() { 7 | super(ProjectInfo.class, "monkeybrains"); 8 | } 9 | } -------------------------------------------------------------------------------- /yard-decompiler/build.gradle: -------------------------------------------------------------------------------- 1 | jar.archiveName = "yard-decompiler.jar" 2 | 3 | group 'io.github.liias' 4 | version '0.2.3' 5 | 6 | apply plugin: 'java' 7 | 8 | sourceCompatibility = 1.8 9 | 10 | repositories { 11 | mavenCentral() 12 | } 13 | 14 | dependencies { 15 | compile group: 'org.jsoup', name: 'jsoup', version: '1.9.1' 16 | testCompile group: 'junit', name: 'junit', version: '4.11' 17 | } 18 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyId.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyId extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | PsiElement getIdentifier(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyComponentName.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyComponentName extends MonkeyNamedElement { 9 | 10 | @NotNull 11 | MonkeyId getId(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyAnnotation.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyAnnotation extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | MonkeySymbol getSymbol(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyModifiers.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyModifiers extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyAnnotation getAnnotation(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyParExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyParExpression extends MonkeyExpression { 9 | 10 | @NotNull 11 | MonkeyExpression getExpression(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyShiftExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyShiftExpression extends MonkeyExpression { 9 | 10 | @NotNull 11 | List getShiftOpList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeySwitchLabel.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeySwitchLabel extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyExpression getExpression(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyArguments.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyArguments extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getExpressionList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyBlock.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyBlock extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getBlockStatementList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyCatches.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyCatches extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getCatchClauseList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyReferenceExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyReferenceExpression extends MonkeyExpression, MonkeyReference { 9 | 10 | @NotNull 11 | MonkeyId getId(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyClassBody.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyClassBody extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyClassBodyMembers getClassBodyMembers(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyModuleBody.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyModuleBody extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyModuleBodyMembers getModuleBodyMembers(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeySymbol.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeySymbol extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyReferenceExpression getReferenceExpression(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyExpressionList.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyExpressionList extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getExpressionList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/manifest/UsesPermission.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.manifest; 2 | 3 | import com.intellij.spellchecker.xml.NoSpellchecking; 4 | import com.intellij.util.xml.NameValue; 5 | import com.intellij.util.xml.Required; 6 | 7 | public interface UsesPermission extends ManifestDomElement { 8 | @NameValue 9 | @NoSpellchecking 10 | @Required 11 | NoNamespaceAttributeValue getId(); 12 | } -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyBitwiseExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyBitwiseExpression extends MonkeyExpression { 9 | 10 | @NotNull 11 | List getBitwiseOperatorList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyQualifiedName.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyQualifiedName extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getComponentNameList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyRelationalExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyRelationalExpression extends MonkeyExpression { 9 | 10 | @NotNull 11 | List getRelationalOpList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/manifest/ManifestDomElement.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.manifest; 2 | 3 | import com.intellij.util.xml.*; 4 | 5 | @DefinesXml 6 | @Namespace(ManifestDomElement.IQ_NAMESPACE_PREFIX) 7 | @NameStrategy(JavaNameStrategy.class) 8 | public interface ManifestDomElement extends DomElement { 9 | String IQ_NAMESPACE_PREFIX = "iq"; 10 | String IQ_NAMESPACE = "http://www.garmin.com/xml/connectiq"; 11 | } 12 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/sdk/projectinfo/ProjectInfoDomElement.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.sdk.projectinfo; 2 | 3 | import com.intellij.util.xml.DefinesXml; 4 | import com.intellij.util.xml.DomElement; 5 | import com.intellij.util.xml.JavaNameStrategy; 6 | import com.intellij.util.xml.NameStrategy; 7 | 8 | @DefinesXml 9 | @NameStrategy(JavaNameStrategy.class) 10 | public interface ProjectInfoDomElement extends DomElement { 11 | } -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyArrayInitializer.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyArrayInitializer extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getVariableInitializerList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/sdk/projectinfo/AppType.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.sdk.projectinfo; 2 | 3 | import com.intellij.util.xml.GenericAttributeValue; 4 | 5 | public interface AppType extends ProjectInfoDomElement { 6 | GenericAttributeValue getId(); 7 | 8 | GenericAttributeValue getValue(); 9 | 10 | GenericAttributeValue getName(); 11 | 12 | GenericAttributeValue getDescription(); 13 | } -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyDictionaryCreator.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyDictionaryCreator extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getKeyValueInitializerList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyFormalParameterDeclarations.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyFormalParameterDeclarations extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getComponentNameList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/runconfig/running/MonkeyModuleConfigurationProducer.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.runconfig.running; 2 | 3 | import io.github.liias.monkey.project.runconfig.AbstractMonkeyModuleConfigurationProducer; 4 | 5 | public class MonkeyModuleConfigurationProducer extends AbstractMonkeyModuleConfigurationProducer { 6 | public MonkeyModuleConfigurationProducer() { 7 | super(MonkeyConfigurationType.getInstance()); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyHasExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyHasExpression extends MonkeyExpression { 9 | 10 | @NotNull 11 | MonkeyExpression getExpression(); 12 | 13 | @Nullable 14 | MonkeySymbol getSymbol(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyVariableDeclarationList.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyVariableDeclarationList extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getVariableDeclarationList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyEnumConstant.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyEnumConstant extends MonkeyComponent { 9 | 10 | @NotNull 11 | MonkeyComponentName getComponentName(); 12 | 13 | @Nullable 14 | PsiElement getIntliteral(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyCatchClause.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyCatchClause extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | MonkeyBlock getBlock(); 12 | 13 | @NotNull 14 | MonkeyCatchParameter getCatchParameter(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyCatchParameter.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyCatchParameter extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | MonkeyId getId(); 12 | 13 | @Nullable 14 | MonkeyQualifiedName getQualifiedName(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyTryStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyTryStatement extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getBlockList(); 12 | 13 | @Nullable 14 | MonkeyCatches getCatches(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyCreator.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyCreator extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyArrayCreator getArrayCreator(); 12 | 13 | @Nullable 14 | MonkeyObjectCreator getObjectCreator(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/psi/MonkeyElementType.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.psi; 2 | 3 | import com.intellij.psi.tree.IElementType; 4 | import io.github.liias.monkey.lang.MonkeyLanguage; 5 | import org.jetbrains.annotations.NonNls; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | public class MonkeyElementType extends IElementType { 9 | public MonkeyElementType(@NotNull @NonNls String debugName) { 10 | super(debugName, MonkeyLanguage.INSTANCE); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/runconfig/testing/MonkeyTestModuleConfigurationProducer.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.runconfig.testing; 2 | 3 | import io.github.liias.monkey.project.runconfig.AbstractMonkeyModuleConfigurationProducer; 4 | 5 | public class MonkeyTestModuleConfigurationProducer extends AbstractMonkeyModuleConfigurationProducer { 6 | protected MonkeyTestModuleConfigurationProducer() { 7 | super(MonkeyTestConfigurationType.getInstance()); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeySwitchBlockStatementGroups.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeySwitchBlockStatementGroups extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getSwitchBlockStatementGroupList(); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/psi/MonkeyTokenType.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.psi; 2 | 3 | import com.intellij.psi.tree.IElementType; 4 | import io.github.liias.monkey.lang.MonkeyLanguage; 5 | import org.jetbrains.annotations.NonNls; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | public class MonkeyTokenType extends IElementType { 9 | 10 | public MonkeyTokenType(@NotNull @NonNls String debugName) { 11 | super(debugName, MonkeyLanguage.INSTANCE); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyArrayCreator.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyArrayCreator extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyDictionaryCreator getDictionaryCreator(); 12 | 13 | @Nullable 14 | MonkeyExpression getExpression(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyEnumDeclaration.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyEnumDeclaration extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getEnumConstantList(); 12 | 13 | @NotNull 14 | MonkeyModifiers getModifiers(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyInstanceOfExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyInstanceOfExpression extends MonkeyExpression { 9 | 10 | @NotNull 11 | MonkeyExpression getExpression(); 12 | 13 | @Nullable 14 | MonkeyQualifiedName getQualifiedName(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyExpression extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyAssignmentOperator getAssignmentOperator(); 12 | 13 | @NotNull 14 | List getExpressionList(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyForInit.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyForInit extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyExpressionList getExpressionList(); 12 | 13 | @Nullable 14 | MonkeyVariableDeclarationList getVariableDeclarationList(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyUsingDeclaration.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyUsingDeclaration extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyComponentName getComponentName(); 12 | 13 | @NotNull 14 | List getExpressionList(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyVariableInitializer.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyVariableInitializer extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyArrayInitializer getArrayInitializer(); 12 | 13 | @Nullable 14 | MonkeyExpression getExpression(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyBlockStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyBlockStatement extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyStatement getStatement(); 12 | 13 | @Nullable 14 | MonkeyVariableDeclarationList getVariableDeclarationList(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyFieldDeclaration.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyFieldDeclaration extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | MonkeyComponentName getComponentName(); 12 | 13 | @Nullable 14 | MonkeyVariableInitializer getVariableInitializer(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/runconfig/AbstractMonkeyRunConfigurationModule.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.runconfig; 2 | 3 | import com.intellij.execution.configurations.RunConfigurationModule; 4 | import com.intellij.openapi.project.Project; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public abstract class AbstractMonkeyRunConfigurationModule extends RunConfigurationModule { 8 | public AbstractMonkeyRunConfigurationModule(@NotNull Project project) { 9 | super(project); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyFieldDeclarationList.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyFieldDeclarationList extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getFieldDeclarationList(); 12 | 13 | @NotNull 14 | MonkeyModifiers getModifiers(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyVariableDeclaration.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyVariableDeclaration extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | MonkeyComponentName getComponentName(); 12 | 13 | @Nullable 14 | MonkeyVariableInitializer getVariableInitializer(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeySwitchBlockStatementGroup.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeySwitchBlockStatementGroup extends MonkeyPsiCompositeElement { 9 | 10 | @NotNull 11 | List getBlockStatementList(); 12 | 13 | @NotNull 14 | MonkeySwitchLabel getSwitchLabel(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeySelector.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeySelector extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyArguments getArguments(); 12 | 13 | @Nullable 14 | MonkeyExpression getExpression(); 15 | 16 | @Nullable 17 | PsiElement getIdentifier(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/file/MonkeyFileTypeFactory.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.file; 2 | 3 | import com.intellij.openapi.fileTypes.FileTypeConsumer; 4 | import com.intellij.openapi.fileTypes.FileTypeFactory; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public class MonkeyFileTypeFactory extends FileTypeFactory { 8 | @Override 9 | public void createFileTypes(@NotNull FileTypeConsumer consumer) { 10 | consumer.consume(MonkeyFileType.INSTANCE, MonkeyFileType.INSTANCE.getDefaultExtension()); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/runconfig/testing/MonkeyTestRunConfigurationModule.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.runconfig.testing; 2 | 3 | import com.intellij.openapi.project.Project; 4 | import io.github.liias.monkey.project.runconfig.AbstractMonkeyRunConfigurationModule; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public class MonkeyTestRunConfigurationModule extends AbstractMonkeyRunConfigurationModule { 8 | public MonkeyTestRunConfigurationModule(@NotNull Project project) { 9 | super(project); 10 | } 11 | } -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/sdk/projectinfo/Permission.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.sdk.projectinfo; 2 | 3 | import com.intellij.util.xml.Attribute; 4 | import com.intellij.util.xml.GenericAttributeValue; 5 | 6 | public interface Permission extends ProjectInfoDomElement { 7 | GenericAttributeValue getId(); 8 | 9 | GenericAttributeValue getName(); 10 | 11 | GenericAttributeValue getDescription(); 12 | 13 | @Attribute("module") 14 | GenericAttributeValue getModuleName(); 15 | } 16 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyConstDeclaration.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyConstDeclaration extends MonkeyComponent { 9 | 10 | @Nullable 11 | MonkeyComponentName getComponentName(); 12 | 13 | @Nullable 14 | MonkeyExpression getExpression(); 15 | 16 | @NotNull 17 | MonkeyModifiers getModifiers(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyModuleDeclaration.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyModuleDeclaration extends MonkeyComponent { 9 | 10 | @Nullable 11 | MonkeyComponentName getComponentName(); 12 | 13 | @NotNull 14 | MonkeyModifiers getModifiers(); 15 | 16 | @Nullable 17 | MonkeyModuleBody getModuleBody(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyObjectCreator.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyObjectCreator extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyArguments getArguments(); 12 | 13 | @Nullable 14 | MonkeyClassBody getClassBody(); 15 | 16 | @NotNull 17 | List getExpressionList(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyIdentifierSuffix.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyIdentifierSuffix extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyArguments getArguments(); 12 | 13 | @NotNull 14 | List getExpressionList(); 15 | 16 | @Nullable 17 | PsiElement getIdentifier(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/sdk/projectinfo/NewProjectFileMap.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.sdk.projectinfo; 2 | 3 | import com.intellij.util.xml.GenericAttributeValue; 4 | 5 | import java.util.List; 6 | 7 | public interface NewProjectFileMap extends ProjectInfoDomElement { 8 | GenericAttributeValue getAppType(); 9 | 10 | GenericAttributeValue getName(); 11 | 12 | GenericAttributeValue getBaseDir(); 13 | 14 | GenericAttributeValue getDescription(); 15 | 16 | List getFiles(); 17 | } 18 | -------------------------------------------------------------------------------- /deserializer/src/main/java/io/github/liias/monkey/deserializer/type/MonkeyTypeNull.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.deserializer.type; 2 | 3 | public class MonkeyTypeNull extends MonkeyType { 4 | private byte type = Type.NULL; 5 | 6 | @Override 7 | public Object getValue() { 8 | return null; 9 | } 10 | 11 | @Override 12 | public int getSize() { 13 | return 0; 14 | } 15 | 16 | @Override 17 | public byte[] serialize() { 18 | return new byte[]{type}; 19 | } 20 | 21 | @Override 22 | public String toString() { 23 | return "Null"; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/MonkeyLanguage.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang; 2 | 3 | import com.intellij.lang.Language; 4 | import org.jetbrains.annotations.NotNull; 5 | 6 | public class MonkeyLanguage extends Language { 7 | public static final MonkeyLanguage INSTANCE = new MonkeyLanguage(); 8 | 9 | private MonkeyLanguage() { 10 | super("MonkeyC"); 11 | } 12 | 13 | @NotNull 14 | @Override 15 | public String getDisplayName() { 16 | return "Monkey C"; 17 | } 18 | 19 | @Override 20 | public boolean isCaseSensitive() { 21 | return true; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/psi/MonkeyNamedElement.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.psi; 2 | 3 | import com.intellij.navigation.NavigationItem; 4 | import com.intellij.psi.PsiNameIdentifierOwner; 5 | import com.intellij.psi.PsiNamedElement; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | /* 9 | Every element which can be renamed or referenced 10 | needs to implement com.intellij.psi.PsiNamedElement interface. 11 | */ 12 | public interface MonkeyNamedElement extends MonkeyPsiCompositeElement, PsiNamedElement, NavigationItem, PsiNameIdentifierOwner { 13 | @NotNull 14 | MonkeyId getId(); 15 | } -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/runconfig/running/MonkeyRunConfigurationModule.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.runconfig.running; 2 | 3 | import com.intellij.execution.configurations.RunConfigurationModule; 4 | import com.intellij.openapi.project.Project; 5 | import io.github.liias.monkey.project.runconfig.AbstractMonkeyRunConfigurationModule; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | public class MonkeyRunConfigurationModule extends AbstractMonkeyRunConfigurationModule { 9 | public MonkeyRunConfigurationModule(@NotNull Project project) { 10 | super(project); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyForStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyForStatement extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyExpression getExpression(); 12 | 13 | @Nullable 14 | MonkeyExpressionList getExpressionList(); 15 | 16 | @Nullable 17 | MonkeyForInit getForInit(); 18 | 19 | @NotNull 20 | MonkeyStatement getStatement(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyClassDeclaration.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyClassDeclaration extends MonkeyClass { 9 | 10 | @Nullable 11 | MonkeyClassBody getClassBody(); 12 | 13 | @Nullable 14 | MonkeyComponentName getComponentName(); 15 | 16 | @NotNull 17 | List getExpressionList(); 18 | 19 | @NotNull 20 | MonkeyModifiers getModifiers(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/ManifestResourceProvider.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom; 2 | 3 | import com.intellij.javaee.ResourceRegistrar; 4 | import com.intellij.javaee.StandardResourceProvider; 5 | 6 | public class ManifestResourceProvider implements StandardResourceProvider { 7 | public static final String CONNECTIQ_NAMESPACE = "http://www.garmin.com/xml/connectiq"; 8 | 9 | @Override 10 | public void registerResources(ResourceRegistrar registrar) { 11 | // so that IDEA wouldn't whine about unregistered schema 12 | registrar.addIgnoredResource(CONNECTIQ_NAMESPACE); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/manifest/ManifestDomInspection.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.manifest; 2 | 3 | import com.intellij.util.xml.highlighting.BasicDomElementsInspection; 4 | import org.jetbrains.annotations.Nls; 5 | import org.jetbrains.annotations.NotNull; 6 | 7 | public class ManifestDomInspection extends BasicDomElementsInspection { 8 | public ManifestDomInspection() { 9 | super(ManifestDomElement.class); 10 | } 11 | 12 | @Override 13 | @Nls 14 | @NotNull 15 | public String getDisplayName() { 16 | return "Unresolved References"; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/ide/actions/appsettings/AppSettingsAction.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.ide.actions.appsettings; 2 | 3 | import com.intellij.openapi.actionSystem.AnAction; 4 | import com.intellij.openapi.actionSystem.AnActionEvent; 5 | import com.intellij.openapi.project.DumbAware; 6 | 7 | public class AppSettingsAction extends AnAction implements DumbAware { 8 | public AppSettingsAction() { 9 | super("App Settings Editor"); 10 | } 11 | 12 | @Override 13 | public void actionPerformed(AnActionEvent e) { 14 | AppSettingsDialog dialog = new AppSettingsDialog(e.getProject()); 15 | dialog.show(); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyFunctionDeclaration.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyFunctionDeclaration extends MonkeyComponent { 9 | 10 | @Nullable 11 | MonkeyBlock getBlock(); 12 | 13 | @NotNull 14 | MonkeyComponentName getComponentName(); 15 | 16 | @Nullable 17 | MonkeyFormalParameterDeclarations getFormalParameterDeclarations(); 18 | 19 | @NotNull 20 | MonkeyModifiers getModifiers(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/ide/actions/appsettings/json/SettingsAndLanguages.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.ide.actions.appsettings.json; 2 | 3 | import java.util.List; 4 | import java.util.Map; 5 | 6 | @SuppressWarnings("unused") 7 | public class SettingsAndLanguages { 8 | private List settings; 9 | private Map> languages; 10 | 11 | public List getSettings() { 12 | return settings; 13 | } 14 | 15 | // language name ("valyrian" for default), translation key, translated value 16 | public Map> getLanguages() { 17 | return languages; 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/highlighting/MonkeySyntaxHighlighterFactory.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.highlighting; 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 MonkeySyntaxHighlighterFactory extends SyntaxHighlighterFactory { 10 | @NotNull 11 | @Override 12 | public SyntaxHighlighter getSyntaxHighlighter(Project project, VirtualFile virtualFile) { 13 | return new MonkeySyntaxHighlighter(); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/test/java/io/github/liias/monkey/project/sdk/TestLoadingDevicesList.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.sdk; 2 | 3 | import io.github.liias.monkey.project.runconfig.TargetDevice; 4 | import io.github.liias.monkey.project.sdk.devices.DevicesReader; 5 | import org.junit.Test; 6 | 7 | import java.util.List; 8 | 9 | public class TestLoadingDevicesList { 10 | 11 | @Test 12 | public void testSomething() { 13 | String sdkBinPath = "D:\\connectiq\\connectiq-sdk-win-1.2.9\\bin\\"; 14 | DevicesReader devicesReader = new DevicesReader(sdkBinPath); 15 | List targetDevices = devicesReader.parseDevicesXml(); 16 | System.out.println(targetDevices); 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyKeyValueInitializer.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyKeyValueInitializer extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyCreator getCreator(); 12 | 13 | @NotNull 14 | List getExpressionList(); 15 | 16 | @Nullable 17 | MonkeyIdentifierSuffix getIdentifierSuffix(); 18 | 19 | @Nullable 20 | MonkeyLiteral getLiteral(); 21 | 22 | @Nullable 23 | MonkeySymbol getSymbol(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/parser/MonkeyParserUtil.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.parser; 2 | 3 | import com.intellij.lang.PsiBuilder; 4 | import com.intellij.lang.parser.GeneratedParserUtilBase; 5 | import io.github.liias.monkey.lang.psi.MonkeyTypes; 6 | 7 | public class MonkeyParserUtil extends GeneratedParserUtilBase { 8 | public static boolean strictID(PsiBuilder builder_, int level_) { 9 | final PsiBuilder.Marker marker_ = builder_.mark(); 10 | final boolean result_ = consumeToken(builder_, MonkeyTypes.IDENTIFIER); 11 | if (result_) { 12 | marker_.done(MonkeyTypes.ID); 13 | return true; 14 | } 15 | marker_.rollbackTo(); 16 | return false; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyUnaryExpression.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyUnaryExpression extends MonkeyExpression { 9 | 10 | @Nullable 11 | MonkeyCreator getCreator(); 12 | 13 | @Nullable 14 | MonkeyExpression getExpression(); 15 | 16 | @Nullable 17 | MonkeyIdentifierSuffix getIdentifierSuffix(); 18 | 19 | @Nullable 20 | MonkeyLiteral getLiteral(); 21 | 22 | @NotNull 23 | List getSelectorList(); 24 | 25 | @Nullable 26 | MonkeySymbol getSymbol(); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyLiteral.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyLiteral extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | PsiElement getCharliteral(); 12 | 13 | @Nullable 14 | PsiElement getDoubleliteral(); 15 | 16 | @Nullable 17 | PsiElement getFloatliteral(); 18 | 19 | @Nullable 20 | PsiElement getHexLiteral(); 21 | 22 | @Nullable 23 | PsiElement getIntliteral(); 24 | 25 | @Nullable 26 | PsiElement getLongliteral(); 27 | 28 | @Nullable 29 | PsiElement getString(); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/runconfig/testing/MonkeySearchForTestsTask.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.runconfig.testing; 2 | 3 | import com.intellij.execution.ExecutionException; 4 | import com.intellij.execution.testframework.SearchForTestsTask; 5 | import com.intellij.openapi.project.Project; 6 | import org.jetbrains.annotations.Nullable; 7 | 8 | import java.net.ServerSocket; 9 | 10 | public class MonkeySearchForTestsTask extends SearchForTestsTask { 11 | public MonkeySearchForTestsTask(@Nullable Project project, ServerSocket socket) { 12 | super(project, socket); 13 | } 14 | 15 | @Override 16 | protected void search() throws ExecutionException { 17 | 18 | } 19 | 20 | @Override 21 | protected void onFound() { 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/runconfig/MonkeyProgramRunner.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.runconfig; 2 | 3 | import com.intellij.execution.configurations.RunProfile; 4 | import com.intellij.execution.executors.DefaultRunExecutor; 5 | import com.intellij.execution.runners.DefaultProgramRunner; 6 | import org.jetbrains.annotations.NotNull; 7 | 8 | public class MonkeyProgramRunner extends DefaultProgramRunner { 9 | @NotNull 10 | @Override 11 | public String getRunnerId() { 12 | return "MonkeyCRunner"; 13 | } 14 | 15 | @Override 16 | public boolean canRun(@NotNull String executorId, @NotNull RunProfile profile) { 17 | return profile instanceof AbstractMonkeyModuleBasedConfiguration && DefaultRunExecutor.EXECUTOR_ID.equals(executorId); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyClassBodyMembers.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyClassBodyMembers extends MonkeyExecutionScope { 9 | 10 | @NotNull 11 | List getClassDeclarationList(); 12 | 13 | @NotNull 14 | List getConstDeclarationList(); 15 | 16 | @NotNull 17 | List getEnumDeclarationList(); 18 | 19 | @NotNull 20 | List getFieldDeclarationListList(); 21 | 22 | @NotNull 23 | List getFunctionDeclarationList(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyStatement.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyStatement extends MonkeyPsiCompositeElement { 9 | 10 | @Nullable 11 | MonkeyBlock getBlock(); 12 | 13 | @Nullable 14 | MonkeyExpression getExpression(); 15 | 16 | @Nullable 17 | MonkeyForStatement getForStatement(); 18 | 19 | @NotNull 20 | List getStatementList(); 21 | 22 | @Nullable 23 | MonkeySwitchBlockStatementGroups getSwitchBlockStatementGroups(); 24 | 25 | @Nullable 26 | MonkeyTryStatement getTryStatement(); 27 | 28 | @Nullable 29 | PsiElement getIdentifier(); 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/manifest/Product.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.manifest; 2 | 3 | import com.intellij.spellchecker.xml.NoSpellchecking; 4 | import com.intellij.util.xml.NameValue; 5 | import com.intellij.util.xml.Required; 6 | 7 | public interface Product extends ManifestDomElement { 8 | @NameValue 9 | @NoSpellchecking 10 | @Required 11 | NoNamespaceAttributeValue getId(); 12 | 13 | // pattern "[0-9a-zA-Z]{3}-[0-9a-zA-Z]{5}-[0-9a-zA-Z]{2}" 14 | NoNamespaceAttributeValue getPartNumber(); 15 | 16 | NoNamespaceAttributeValue getFilename(); 17 | 18 | NoNamespaceAttributeValue getMinFirmwareVersion(); 19 | 20 | NoNamespaceAttributeValue getMaxFirmwareVersion(); 21 | 22 | NoNamespaceAttributeValue getSig(); 23 | 24 | NoNamespaceAttributeValue getSigFormat(); 25 | } -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/MonkeyModuleBodyMembers.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.psi; 3 | 4 | import java.util.List; 5 | import org.jetbrains.annotations.*; 6 | import com.intellij.psi.PsiElement; 7 | 8 | public interface MonkeyModuleBodyMembers extends MonkeyExecutionScope { 9 | 10 | @NotNull 11 | List getClassDeclarationList(); 12 | 13 | @NotNull 14 | List getConstDeclarationList(); 15 | 16 | @NotNull 17 | List getEnumDeclarationList(); 18 | 19 | @NotNull 20 | List getFieldDeclarationListList(); 21 | 22 | @NotNull 23 | List getFunctionDeclarationList(); 24 | 25 | @NotNull 26 | List getModuleDeclarationList(); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/ide/conf/KeyGenerator.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.ide.conf; 2 | 3 | import java.io.IOException; 4 | import java.nio.file.Files; 5 | import java.nio.file.Path; 6 | import java.security.KeyPair; 7 | import java.security.KeyPairGenerator; 8 | import java.security.NoSuchAlgorithmException; 9 | import java.security.PrivateKey; 10 | 11 | public class KeyGenerator { 12 | public static void generate(Path outputKeyPath) { 13 | try { 14 | KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA"); 15 | keyGen.initialize(4096); 16 | KeyPair pair = keyGen.generateKeyPair(); 17 | 18 | PrivateKey privateKey = pair.getPrivate(); 19 | byte[] keyBytes = privateKey.getEncoded(); 20 | Files.write(outputKeyPath, keyBytes); 21 | } catch (NoSuchAlgorithmException | IOException e) { 22 | e.printStackTrace(); 23 | } 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/manifest/ManifestDomFileDescription.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.manifest; 2 | 3 | import com.intellij.icons.AllIcons; 4 | import com.intellij.openapi.util.Iconable; 5 | import com.intellij.util.xml.DomFileDescription; 6 | import org.jetbrains.annotations.Nullable; 7 | 8 | import javax.swing.*; 9 | 10 | public class ManifestDomFileDescription extends DomFileDescription { 11 | public ManifestDomFileDescription() { 12 | super(Manifest.class, "manifest", ManifestDomElement.IQ_NAMESPACE_PREFIX); 13 | } 14 | 15 | @Override 16 | protected void initializeFileDescription() { 17 | registerNamespacePolicy(ManifestDomElement.IQ_NAMESPACE_PREFIX, ManifestDomElement.IQ_NAMESPACE); 18 | } 19 | 20 | @Nullable 21 | @Override 22 | public Icon getFileIcon(@Iconable.IconFlags int flags) { 23 | return AllIcons.FileTypes.Manifest; 24 | } 25 | } -------------------------------------------------------------------------------- /deserializer/src/main/java/io/github/liias/monkey/deserializer/type/MonkeyTypeBool.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.deserializer.type; 2 | 3 | import java.nio.ByteBuffer; 4 | 5 | public class MonkeyTypeBool extends MonkeyType { 6 | private byte type = MonkeyType.Type.BOOLEAN; 7 | 8 | final boolean value; 9 | 10 | public MonkeyTypeBool(ByteBuffer bb) { 11 | value = bb.get() > 0; 12 | } 13 | 14 | public MonkeyTypeBool(Boolean value) { 15 | this.value = value; 16 | } 17 | 18 | @Override 19 | public Boolean getValue() { 20 | return value; 21 | } 22 | 23 | @Override 24 | public int getSize() { 25 | return 1; 26 | } 27 | 28 | @Override 29 | public byte[] serialize() { 30 | return new byte[]{ 31 | type, 32 | (byte) (value ? 0x01 : 0x00) 33 | }; 34 | } 35 | 36 | @Override 37 | public String toString() { 38 | return String.valueOf(value); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/test/java/io/github/liias/monkey/project/sdk/SkeletonTest.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.sdk; 2 | 3 | import io.github.liias.monkey.project.sdk.skeleton.ApiReader; 4 | import io.github.liias.monkey.yard.YardDecompiler; 5 | import org.junit.Ignore; 6 | import org.junit.Test; 7 | 8 | import java.io.File; 9 | 10 | public class SkeletonTest { 11 | 12 | @Test 13 | @Ignore 14 | public void testSomething() { 15 | String sdkBinPath = "C:\\Users\\madis\\Downloads\\iqsdk" + File.separator + "bin" + File.separator; 16 | ApiReader apiReader = new ApiReader(sdkBinPath); 17 | apiReader.parseApiDebugXml(); 18 | } 19 | 20 | @Test 21 | @Ignore 22 | public void testSomething2() { 23 | String docDirPath = "D:\\connectiq\\connectiq-sdk-win-1.2.9\\doc\\"; 24 | YardDecompiler yardDecompiler = new YardDecompiler(docDirPath); 25 | String parsed = yardDecompiler.parse(); 26 | System.out.println(parsed); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /deserializer/src/main/java/io/github/liias/monkey/deserializer/type/MonkeyTypeInt.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.deserializer.type; 2 | 3 | import java.nio.ByteBuffer; 4 | 5 | public class MonkeyTypeInt extends MonkeyType { 6 | private byte type = Type.INT; 7 | 8 | private final int value; 9 | 10 | public MonkeyTypeInt(ByteBuffer bb) { 11 | value = bb.getInt(); 12 | } 13 | 14 | public MonkeyTypeInt(Integer value) { 15 | this.value = value; 16 | } 17 | 18 | @Override 19 | public Integer getValue() { 20 | return value; 21 | } 22 | 23 | @Override 24 | public int getSize() { 25 | return 4; 26 | } 27 | 28 | @Override 29 | public byte[] serialize() { 30 | ByteBuffer bb = ByteBuffer.allocate(1 + getSize()); 31 | bb.put(type); 32 | bb.putInt(value); 33 | return bb.array(); 34 | } 35 | 36 | @Override 37 | public String toString() { 38 | return String.valueOf(value); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /jps-plugin/src/main/java/io/github/liias/monkey/jps/model/JpsMonkeyGlobalProperties.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.jps.model; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | import org.jetbrains.jps.model.JpsElement; 5 | import org.jetbrains.jps.model.ex.JpsElementBase; 6 | 7 | import java.io.File; 8 | 9 | public class JpsMonkeyGlobalProperties extends JpsElementBase implements JpsElement { 10 | private File developerKeyPath; 11 | 12 | public JpsMonkeyGlobalProperties(File developerKeyPath) { 13 | this.developerKeyPath = developerKeyPath; 14 | } 15 | 16 | public File getDeveloperKeyPath() { 17 | return developerKeyPath; 18 | } 19 | 20 | @NotNull 21 | @Override 22 | public JpsMonkeyGlobalProperties createCopy() { 23 | return new JpsMonkeyGlobalProperties(developerKeyPath); 24 | } 25 | 26 | @Override 27 | public void applyChanges(@NotNull JpsMonkeyGlobalProperties modified) { 28 | } 29 | } -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/psi/impl/MonkeyDocCommentImpl.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.psi.impl; 2 | 3 | import com.intellij.extapi.psi.ASTWrapperPsiElement; 4 | import com.intellij.lang.ASTNode; 5 | import com.intellij.psi.PsiElement; 6 | import com.intellij.psi.tree.IElementType; 7 | import io.github.liias.monkey.lang.psi.MonkeyDocComment; 8 | import org.jetbrains.annotations.NotNull; 9 | import org.jetbrains.annotations.Nullable; 10 | 11 | public class MonkeyDocCommentImpl extends ASTWrapperPsiElement implements MonkeyDocComment { 12 | 13 | public MonkeyDocCommentImpl(@NotNull ASTNode node) { 14 | super(node); 15 | } 16 | 17 | @Nullable 18 | @Override 19 | public PsiElement getOwner() { 20 | final PsiElement parent = getParent(); 21 | 22 | // TODO: implement 23 | return null; 24 | } 25 | 26 | @Override 27 | public IElementType getTokenType() { 28 | return getNode().getElementType(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /deserializer/src/main/java/io/github/liias/monkey/deserializer/type/MonkeyTypeFloat.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.deserializer.type; 2 | 3 | import java.nio.ByteBuffer; 4 | 5 | public class MonkeyTypeFloat extends MonkeyType { 6 | private byte type = MonkeyType.Type.FLOAT; 7 | 8 | private final float value; 9 | 10 | public MonkeyTypeFloat(ByteBuffer bb) { 11 | value = bb.getFloat(); 12 | } 13 | 14 | public MonkeyTypeFloat(Float value) { 15 | this.value = value; 16 | } 17 | 18 | @Override 19 | public Float getValue() { 20 | return value; 21 | } 22 | 23 | @Override 24 | public int getSize() { 25 | return 4; 26 | } 27 | 28 | @Override 29 | public byte[] serialize() { 30 | ByteBuffer bb = ByteBuffer.allocate(1+ getSize()); 31 | bb.put(type); 32 | bb.putFloat(value); 33 | return bb.array(); 34 | } 35 | 36 | @Override 37 | public String toString() { 38 | return String.valueOf(value); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyShiftOpImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyShiftOpImpl extends MonkeyPsiCompositeElementImpl implements MonkeyShiftOp { 14 | 15 | public MonkeyShiftOpImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitShiftOp(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/resolve/ComponentNameScopeProcessor.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.resolve; 2 | 3 | import com.intellij.psi.PsiElement; 4 | import com.intellij.psi.ResolveState; 5 | import com.intellij.psi.scope.BaseScopeProcessor; 6 | import com.intellij.psi.scope.PsiScopeProcessor; 7 | import io.github.liias.monkey.lang.psi.MonkeyComponentName; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | import java.util.Set; 11 | 12 | public class ComponentNameScopeProcessor extends BaseScopeProcessor implements PsiScopeProcessor { 13 | @NotNull 14 | private final Set myResult; 15 | 16 | public ComponentNameScopeProcessor(final @NotNull Set result) { 17 | this.myResult = result; 18 | } 19 | 20 | @Override 21 | public boolean execute(@NotNull PsiElement element, @NotNull ResolveState state) { 22 | MonkeyComponentName componentName = (MonkeyComponentName) element; 23 | myResult.add(componentName); 24 | return true; 25 | } 26 | 27 | } 28 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/ide/actions/CreateMonkeyFileAction.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.ide.actions; 2 | 3 | import com.intellij.ide.actions.CreateFileFromTemplateAction; 4 | import com.intellij.ide.actions.CreateFileFromTemplateDialog; 5 | import com.intellij.openapi.project.Project; 6 | import com.intellij.psi.PsiDirectory; 7 | import icons.MonkeyIcons; 8 | 9 | public class CreateMonkeyFileAction extends CreateFileFromTemplateAction { 10 | public CreateMonkeyFileAction() { 11 | super("Monkey C File", "Monkey C File", MonkeyIcons.FILE); 12 | } 13 | 14 | @Override 15 | protected void buildDialog(Project project, PsiDirectory directory, CreateFileFromTemplateDialog.Builder builder) { 16 | builder 17 | .setTitle("New Monkey C File") 18 | .addKind("Monkey C File", MonkeyIcons.FILE, "Monkey C File.mc"); 19 | } 20 | 21 | @Override 22 | protected String getActionName(PsiDirectory directory, String newName, String templateName) { 23 | return "Create Monkey C file {newName}"; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/module/util/ExternalTemplateUtil.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.module.util; 2 | 3 | import com.intellij.openapi.vfs.CharsetToolkit; 4 | import org.apache.velocity.app.VelocityEngine; 5 | import org.apache.velocity.runtime.RuntimeConstants; 6 | import org.apache.velocity.runtime.log.NullLogChute; 7 | 8 | public class ExternalTemplateUtil { 9 | private static VelocityEngine newVelocityEngine() { 10 | VelocityEngine engine = new VelocityEngine(); 11 | engine.setProperty(RuntimeConstants.RUNTIME_LOG_LOGSYSTEM, new NullLogChute()); 12 | engine.setProperty(RuntimeConstants.INPUT_ENCODING, CharsetToolkit.UTF8); 13 | engine.setProperty(RuntimeConstants.PARSER_POOL_SIZE, 3); 14 | engine.setProperty(RuntimeConstants.RESOURCE_LOADER, "includes"); 15 | engine.init(); 16 | return engine; 17 | } 18 | 19 | private static final VelocityEngine engine = newVelocityEngine(); 20 | 21 | public static VelocityEngine getEngine() { 22 | return engine; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyAndExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyAndExpressionImpl extends MonkeyExpressionImpl implements MonkeyAndExpression { 14 | 15 | public MonkeyAndExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitAndExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyRelationalOpImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyRelationalOpImpl extends MonkeyPsiCompositeElementImpl implements MonkeyRelationalOp { 14 | 15 | public MonkeyRelationalOpImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitRelationalOp(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyThisExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyThisExpressionImpl extends MonkeyReferenceImpl implements MonkeyThisExpression { 14 | 15 | public MonkeyThisExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitThisExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyBlingExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyBlingExpressionImpl extends MonkeyReferenceImpl implements MonkeyBlingExpression { 14 | 15 | public MonkeyBlingExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitBlingExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/file/MonkeyFileType.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.file; 2 | 3 | import com.intellij.openapi.fileTypes.LanguageFileType; 4 | import icons.MonkeyIcons; 5 | import io.github.liias.monkey.lang.MonkeyLanguage; 6 | import org.jetbrains.annotations.NotNull; 7 | import org.jetbrains.annotations.Nullable; 8 | 9 | import javax.swing.*; 10 | 11 | public class MonkeyFileType extends LanguageFileType { 12 | public static final MonkeyFileType INSTANCE = new MonkeyFileType(); 13 | 14 | private MonkeyFileType() { 15 | super(MonkeyLanguage.INSTANCE); 16 | } 17 | 18 | @NotNull 19 | @Override 20 | public String getName() { 21 | return "Monkey C"; 22 | } 23 | 24 | @NotNull 25 | @Override 26 | public String getDescription() { 27 | return "Monkey C source file"; 28 | } 29 | 30 | @NotNull 31 | @Override 32 | public String getDefaultExtension() { 33 | return "mc"; 34 | } 35 | 36 | @Nullable 37 | @Override 38 | public Icon getIcon() { 39 | return MonkeyIcons.FILE; 40 | } 41 | } -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/ui/module/MonkeyModuleWizardStep.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.ui.module; 2 | 3 | import com.intellij.ide.util.projectWizard.ModuleWizardStep; 4 | import com.intellij.ide.util.projectWizard.WizardContext; 5 | import io.github.liias.monkey.project.module.MonkeyModuleBuilder; 6 | 7 | import javax.swing.*; 8 | 9 | public class MonkeyModuleWizardStep extends ModuleWizardStep { 10 | private final MonkeyTemplateChooser myAppPropertiesEditor; 11 | 12 | private JPanel myPanel; 13 | 14 | public MonkeyModuleWizardStep(MonkeyModuleBuilder moduleBuilder, WizardContext context) { 15 | myAppPropertiesEditor = new MonkeyTemplateChooser(moduleBuilder, context); 16 | 17 | myPanel = new JPanel(); 18 | myPanel.setLayout(new OverlayLayout(myPanel)); 19 | myPanel.add(myAppPropertiesEditor.getContentPanel()); 20 | } 21 | 22 | @Override 23 | public JComponent getComponent() { 24 | return myPanel; 25 | 26 | } 27 | 28 | @Override 29 | public void updateDataModel() { 30 | 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyBitwiseOperatorImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyBitwiseOperatorImpl extends MonkeyPsiCompositeElementImpl implements MonkeyBitwiseOperator { 14 | 15 | public MonkeyBitwiseOperatorImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitBitwiseOperator(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyAdditiveExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyAdditiveExpressionImpl extends MonkeyExpressionImpl implements MonkeyAdditiveExpression { 14 | 15 | public MonkeyAdditiveExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitAdditiveExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyEqualityExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyEqualityExpressionImpl extends MonkeyExpressionImpl implements MonkeyEqualityExpression { 14 | 15 | public MonkeyEqualityExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitEqualityExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/sdk/skeleton/MonkeyCSymbol.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.sdk.skeleton; 2 | 3 | public class MonkeyCSymbol { 4 | private String name; 5 | private String documentation; 6 | 7 | public void setName(String name) { 8 | this.name = name; 9 | } 10 | 11 | public void setDocumentation(String documentation) { 12 | this.documentation = parseHtmlText(documentation); 13 | } 14 | 15 | private String parseHtmlText(String htmlText) { 16 | String text = htmlText; 17 | text = text.replaceAll("
", System.getProperty("line.separator")); 18 | text = text.replaceAll("<.*>", ""); 19 | return text.trim(); 20 | } 21 | 22 | public boolean startsWith(String start) { 23 | return name.startsWith(start); 24 | } 25 | 26 | public void replace(String target, String replacement) { 27 | name = name.replace(target, replacement); 28 | } 29 | 30 | public String getName() { 31 | return name; 32 | } 33 | 34 | public String getDocumentation() { 35 | return documentation; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyAssignmentOperatorImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyAssignmentOperatorImpl extends MonkeyPsiCompositeElementImpl implements MonkeyAssignmentOperator { 14 | 15 | public MonkeyAssignmentOperatorImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitAssignmentOperator(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /jps-plugin/src/main/java/io/github/liias/monkey/jps/builder/MonkeyBuilderService.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.jps.builder; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | import org.jetbrains.jps.builders.BuildTargetType; 5 | import org.jetbrains.jps.incremental.BuilderService; 6 | import org.jetbrains.jps.incremental.ModuleLevelBuilder; 7 | import org.jetbrains.jps.incremental.TargetBuilder; 8 | 9 | import java.util.Arrays; 10 | import java.util.Collections; 11 | import java.util.List; 12 | 13 | public class MonkeyBuilderService extends BuilderService { 14 | 15 | @NotNull 16 | @Override 17 | public List> getTargetTypes() { 18 | return Arrays.asList(MonkeyBuildTargetType.PRODUCTION); 19 | } 20 | 21 | @NotNull 22 | @Override 23 | public List createModuleLevelBuilders() { 24 | return Collections.emptyList(); 25 | } 26 | 27 | @NotNull 28 | @Override 29 | public List> createBuilders() { 30 | return Collections.singletonList(new MonkeyBuilder()); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyConditionalExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyConditionalExpressionImpl extends MonkeyExpressionImpl implements MonkeyConditionalExpression { 14 | 15 | public MonkeyConditionalExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitConditionalExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyExclusiveOrExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyExclusiveOrExpressionImpl extends MonkeyExpressionImpl implements MonkeyExclusiveOrExpression { 14 | 15 | public MonkeyExclusiveOrExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitExclusiveOrExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyInclusiveOrExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyInclusiveOrExpressionImpl extends MonkeyExpressionImpl implements MonkeyInclusiveOrExpression { 14 | 15 | public MonkeyInclusiveOrExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitInclusiveOrExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyConditionalOrExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyConditionalOrExpressionImpl extends MonkeyExpressionImpl implements MonkeyConditionalOrExpression { 14 | 15 | public MonkeyConditionalOrExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitConditionalOrExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/icons/MonkeyIcons.java: -------------------------------------------------------------------------------- 1 | package icons; 2 | 3 | import com.intellij.icons.AllIcons; 4 | import com.intellij.openapi.util.IconLoader; 5 | import com.intellij.ui.LayeredIcon; 6 | 7 | import javax.swing.*; 8 | 9 | public class MonkeyIcons { 10 | private static Icon load(String path) { 11 | return IconLoader.getIcon(path, MonkeyIcons.class); 12 | } 13 | 14 | public static final Icon FILE = load("/icons/mc_file.png"); // 16 15 | 16 | public static final Icon SDK = load("/icons/sdk.png"); // 16 17 | public static final Icon ADD_SDK = load("/icons/addsdk.png"); // 16 18 | public static final Icon MODULE24 = load("/icons/module.png"); // 24 19 | public static final Icon MODULE16 = load("/icons/sdk.png"); // 16 20 | public static final Icon MODULE_TEST_16 = new LayeredIcon(MODULE16, AllIcons.Nodes.JunitTestMark); // 16 21 | 22 | public static final Icon APP_SETTINGS13 = load("/icons/app_settings_13.png"); // 13 23 | 24 | public static final Icon SAVE16 = AllIcons.RunConfigurations.SaveTempConfig; 25 | public static final Icon REFRESH16 = AllIcons.Actions.Refresh; 26 | } 27 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyConditionalAndExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyConditionalAndExpressionImpl extends MonkeyExpressionImpl implements MonkeyConditionalAndExpression { 14 | 15 | public MonkeyConditionalAndExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitConditionalAndExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyMultiplicativeExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyMultiplicativeExpressionImpl extends MonkeyExpressionImpl implements MonkeyMultiplicativeExpression { 14 | 15 | public MonkeyMultiplicativeExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitMultiplicativeExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/dom/manifest/Application.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.dom.manifest; 2 | 3 | import com.intellij.spellchecker.xml.NoSpellchecking; 4 | import com.intellij.util.xml.NameValue; 5 | import com.intellij.util.xml.Required; 6 | 7 | public interface Application extends ManifestDomElement { 8 | @Required 9 | NoNamespaceAttributeValue getEntry(); 10 | 11 | // min length 32 12 | @Required 13 | NoNamespaceAttributeValue getId(); 14 | 15 | @Required 16 | NoNamespaceAttributeValue getLauncherIcon(); 17 | 18 | // actually, if the attribute is not set, then some default is used, 19 | // but can't be empty. Makes sense to set anyway 20 | @Required(false) 21 | NoNamespaceAttributeValue getMinSdkVersion(); 22 | 23 | @NameValue 24 | @Required 25 | @NoSpellchecking 26 | NoNamespaceAttributeValue getName(); 27 | 28 | @Required 29 | NoNamespaceAttributeValue getType(); 30 | 31 | Products getProducts(); 32 | 33 | Permissions getPermissions(); 34 | 35 | Languages getLanguages(); 36 | } -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/ide/actions/appsettings/form/BooleanFieldModel.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.ide.actions.appsettings.form; 2 | 3 | import com.intellij.ui.components.OnOffButton; 4 | import io.github.liias.monkey.ide.actions.appsettings.json.Setting; 5 | 6 | import javax.swing.*; 7 | import java.util.Map; 8 | 9 | // config type: boolean 10 | public class BooleanFieldModel extends FieldModel { 11 | private final OnOffButton component; 12 | 13 | public BooleanFieldModel(Setting setting, Map translations) { 14 | super(setting, translations); 15 | this.component = createComponent(); 16 | } 17 | 18 | public OnOffButton createComponent() { 19 | Boolean value = setting.getValueAsBoolean(); 20 | OnOffButton onOffButton = new OnOffButton(); 21 | onOffButton.setSelected(value); 22 | applyGenericProperties(onOffButton); 23 | return onOffButton; 24 | } 25 | 26 | @Override 27 | public JComponent getComponent() { 28 | return component; 29 | } 30 | 31 | @Override 32 | public Boolean getValue() { 33 | return component.isSelected(); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/ide/refactoring/MonkeyRefactoringSupportProvider.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.ide.refactoring; 2 | 3 | import com.intellij.lang.refactoring.RefactoringSupportProvider; 4 | import com.intellij.psi.PsiElement; 5 | import com.intellij.psi.search.LocalSearchScope; 6 | import io.github.liias.monkey.lang.psi.MonkeyNamedElement; 7 | import io.github.liias.monkey.lang.resolve.MonkeyComponentType; 8 | import org.jetbrains.annotations.NotNull; 9 | import org.jetbrains.annotations.Nullable; 10 | 11 | public class MonkeyRefactoringSupportProvider extends RefactoringSupportProvider { 12 | @Override 13 | public boolean isInplaceRenameAvailable(@NotNull PsiElement elementToRename, PsiElement nameSuggestionContext) { 14 | return elementToRename instanceof MonkeyNamedElement && 15 | elementToRename.getUseScope() instanceof LocalSearchScope; 16 | } 17 | 18 | @Override 19 | public boolean isMemberInplaceRenameAvailable(@NotNull PsiElement elementToRename, @Nullable PsiElement context) { 20 | return MonkeyComponentType.typeOf(elementToRename) == MonkeyComponentType.FIELD; 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/ide/structure/MonkeyStructureViewFactory.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.ide.structure; 2 | 3 | import com.intellij.ide.structureView.StructureViewBuilder; 4 | import com.intellij.ide.structureView.StructureViewModel; 5 | import com.intellij.ide.structureView.TreeBasedStructureViewBuilder; 6 | import com.intellij.lang.PsiStructureViewFactory; 7 | import com.intellij.openapi.editor.Editor; 8 | import com.intellij.psi.PsiFile; 9 | import org.jetbrains.annotations.NotNull; 10 | import org.jetbrains.annotations.Nullable; 11 | 12 | public class MonkeyStructureViewFactory implements PsiStructureViewFactory { 13 | @Override 14 | public StructureViewBuilder getStructureViewBuilder(final PsiFile psiFile) { 15 | return new TreeBasedStructureViewBuilder() { 16 | @Override 17 | @NotNull 18 | public StructureViewModel createStructureViewModel(@Nullable Editor editor) { 19 | return new MonkeyStructureViewModel(psiFile, editor); 20 | } 21 | 22 | @Override 23 | public boolean isRootNodeShown() { 24 | return false; 25 | } 26 | }; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyIdImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyIdImpl extends MonkeyPsiCompositeElementImpl implements MonkeyId { 14 | 15 | public MonkeyIdImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitId(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public PsiElement getIdentifier() { 31 | return findNotNullChildByType(IDENTIFIER); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/ide/actions/ApiDocsAction.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.ide.actions; 2 | 3 | import com.intellij.ide.BrowserUtil; 4 | import com.intellij.openapi.actionSystem.AnAction; 5 | import com.intellij.openapi.actionSystem.AnActionEvent; 6 | import com.intellij.openapi.project.DumbAware; 7 | import com.intellij.openapi.project.Project; 8 | import com.intellij.openapi.projectRoots.Sdk; 9 | import com.intellij.openapi.roots.ProjectRootManager; 10 | import io.github.liias.monkey.project.sdk.MonkeySdkType; 11 | 12 | public class ApiDocsAction extends AnAction implements DumbAware { 13 | public ApiDocsAction() { 14 | super("Browse API Documentation"); 15 | } 16 | 17 | @Override 18 | public void actionPerformed(AnActionEvent e) { 19 | Project project = e.getProject(); 20 | Sdk projectSdk = ProjectRootManager.getInstance(project).getProjectSdk(); 21 | if (!(projectSdk.getSdkType() instanceof MonkeySdkType)) { 22 | return; 23 | } 24 | String apiDocPath = MonkeySdkType.getApiDocPath(projectSdk); 25 | String framesHtmlPath = apiDocPath + "frames.html"; 26 | BrowserUtil.browse(framesHtmlPath); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/ide/actions/appsettings/form/FloatFieldModel.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.ide.actions.appsettings.form; 2 | 3 | import com.intellij.ui.components.JBTextField; 4 | import io.github.liias.monkey.ide.actions.appsettings.json.Setting; 5 | 6 | import javax.swing.*; 7 | import java.util.Map; 8 | import java.util.Objects; 9 | 10 | // config type: numeric 11 | public class FloatFieldModel extends FieldModel { 12 | private final JBTextField component; 13 | 14 | public FloatFieldModel(Setting setting, Map translations) { 15 | super(setting, translations); 16 | this.component = createComponent(); 17 | } 18 | 19 | public JBTextField createComponent() { 20 | String valueAsString = Objects.toString(setting.getValueAsFloat(), null); 21 | JBTextField jbTextField = new JBTextField(valueAsString); 22 | 23 | applyGenericProperties(jbTextField); 24 | return jbTextField; 25 | } 26 | 27 | @Override 28 | public JComponent getComponent() { 29 | return component; 30 | } 31 | 32 | @Override 33 | public Float getValue() { 34 | return Float.valueOf(component.getText()); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyComponentNameImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyComponentNameImpl extends MonkeyNamedElementImpl implements MonkeyComponentName { 14 | 15 | public MonkeyComponentNameImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitComponentName(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public MonkeyId getId() { 31 | return findNotNullChildByClass(MonkeyId.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyAnnotationImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyAnnotationImpl extends MonkeyPsiCompositeElementImpl implements MonkeyAnnotation { 14 | 15 | public MonkeyAnnotationImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitAnnotation(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public MonkeySymbol getSymbol() { 31 | return findNotNullChildByClass(MonkeySymbol.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyModifiersImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyModifiersImpl extends MonkeyPsiCompositeElementImpl implements MonkeyModifiers { 14 | 15 | public MonkeyModifiersImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitModifiers(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyAnnotation getAnnotation() { 31 | return findChildByClass(MonkeyAnnotation.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeySwitchLabelImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeySwitchLabelImpl extends MonkeyPsiCompositeElementImpl implements MonkeySwitchLabel { 14 | 15 | public MonkeySwitchLabelImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitSwitchLabel(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyExpression getExpression() { 31 | return findChildByClass(MonkeyExpression.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeySymbolImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeySymbolImpl extends MonkeyPsiCompositeElementImpl implements MonkeySymbol { 14 | 15 | public MonkeySymbolImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitSymbol(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyReferenceExpression getReferenceExpression() { 31 | return findChildByClass(MonkeyReferenceExpression.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/ui/module/newProject/MonkeyApplicationModifiedSettingsStep.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.ui.module.newProject; 2 | 3 | import com.intellij.ide.util.projectWizard.SdkSettingsStep; 4 | import com.intellij.ide.util.projectWizard.SettingsStep; 5 | import com.intellij.openapi.projectRoots.SdkTypeId; 6 | import com.intellij.openapi.util.Condition; 7 | import io.github.liias.monkey.project.module.MonkeyModuleBuilder; 8 | import org.jetbrains.annotations.NotNull; 9 | 10 | public class MonkeyApplicationModifiedSettingsStep extends SdkSettingsStep { 11 | protected MonkeyModuleBuilder myBuilder; 12 | 13 | public MonkeyApplicationModifiedSettingsStep(@NotNull final MonkeyModuleBuilder builder, @NotNull SettingsStep settingsStep) { 14 | super(settingsStep, builder, builder::isSuitableSdkType); 15 | myBuilder = builder; 16 | 17 | final String applicationName = builder.getName(); 18 | if (applicationName != null && applicationName.length() > 0) { 19 | settingsStep.getModuleNameField().setText(applicationName); 20 | } 21 | } 22 | 23 | @Override 24 | public void updateDataModel() { 25 | super.updateDataModel(); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyClassBodyImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyClassBodyImpl extends MonkeyPsiCompositeElementImpl implements MonkeyClassBody { 14 | 15 | public MonkeyClassBodyImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitClassBody(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyClassBodyMembers getClassBodyMembers() { 31 | return findChildByClass(MonkeyClassBodyMembers.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyParExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyParExpressionImpl extends MonkeyExpressionImpl implements MonkeyParExpression { 14 | 15 | public MonkeyParExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitParExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public MonkeyExpression getExpression() { 31 | return findNotNullChildByClass(MonkeyExpression.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyBlockImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyBlockImpl extends MonkeyPsiCompositeElementImpl implements MonkeyBlock { 14 | 15 | public MonkeyBlockImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitBlock(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getBlockStatementList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyBlockStatement.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyModuleBodyImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyModuleBodyImpl extends MonkeyPsiCompositeElementImpl implements MonkeyModuleBody { 14 | 15 | public MonkeyModuleBodyImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitModuleBody(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyModuleBodyMembers getModuleBodyMembers() { 31 | return findChildByClass(MonkeyModuleBodyMembers.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyReferenceExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyReferenceExpressionImpl extends MonkeyReferenceImpl implements MonkeyReferenceExpression { 14 | 15 | public MonkeyReferenceExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitReferenceExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public MonkeyId getId() { 31 | return findNotNullChildByClass(MonkeyId.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyCatchesImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyCatchesImpl extends MonkeyPsiCompositeElementImpl implements MonkeyCatches { 14 | 15 | public MonkeyCatchesImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitCatches(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getCatchClauseList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyCatchClause.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/Utils.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey; 2 | 3 | import com.intellij.execution.configurations.GeneralCommandLine; 4 | import com.intellij.openapi.util.SystemInfo; 5 | import com.intellij.openapi.vfs.CharsetToolkit; 6 | 7 | import java.util.ArrayList; 8 | import java.util.List; 9 | 10 | public class Utils { 11 | public static GeneralCommandLine createGeneralCommandLine(String workDirectory, String exePath) { 12 | if (SystemInfo.isMac) { 13 | String macExePath = exePath; 14 | List parameters = new ArrayList<>(); 15 | 16 | // .app files are opened with open command? 17 | if (exePath.endsWith(".app")) { 18 | macExePath = "open"; 19 | parameters.add(exePath); 20 | parameters.add("--args"); 21 | } 22 | 23 | return new GeneralCommandLine() 24 | .withWorkDirectory(workDirectory) 25 | .withExePath(macExePath) 26 | .withParameters(parameters) 27 | .withCharset(CharsetToolkit.UTF8_CHARSET); 28 | } 29 | 30 | return new GeneralCommandLine() 31 | .withWorkDirectory(workDirectory) 32 | .withExePath(exePath) 33 | .withCharset(CharsetToolkit.UTF8_CHARSET); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/runconfig/DeploymentTarget.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.runconfig; 2 | 3 | public class DeploymentTarget { 4 | public static final DeploymentTarget SIMULATOR = new DeploymentTarget("SIMULATOR", "Simulator"); 5 | public static final DeploymentTarget DEVICE = new DeploymentTarget("DEVICE", "Device"); 6 | 7 | private String id; 8 | private String name; 9 | 10 | public DeploymentTarget(String id, String name) { 11 | this.id = id; 12 | this.name = name; 13 | } 14 | 15 | public String getName() { 16 | return name; 17 | } 18 | 19 | 20 | public String getId() { 21 | return id; 22 | } 23 | 24 | public void setId(String id) { 25 | this.id = id; 26 | } 27 | 28 | @Override 29 | public String toString() { 30 | return getName(); 31 | } 32 | 33 | // only id matters 34 | @Override 35 | public boolean equals(Object o) { 36 | if (this == o) return true; 37 | if (o == null || getClass() != o.getClass()) return false; 38 | DeploymentTarget that = (DeploymentTarget) o; 39 | return id.equals(that.id); 40 | } 41 | 42 | @Override 43 | public int hashCode() { 44 | return id.hashCode(); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src/main/resources/fileTemplates/code/RunNoEvil Test Method.mc.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 |
6 | This is a template used to create a test method in a Run No Evil test class. 7 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
Predefined variables will take the following values:
${NAME} name of the created method.
${BODY} generated method body.
25 | 26 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyArgumentsImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyArgumentsImpl extends MonkeyPsiCompositeElementImpl implements MonkeyArguments { 14 | 15 | public MonkeyArgumentsImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitArguments(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getExpressionList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyExpression.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/psi/impl/AbstractMonkeyPsiClass.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.psi.impl; 2 | 3 | 4 | import com.intellij.lang.ASTNode; 5 | import io.github.liias.monkey.lang.psi.MonkeyClass; 6 | import io.github.liias.monkey.lang.psi.MonkeyClassBody; 7 | import io.github.liias.monkey.lang.psi.MonkeyClassBodyMembers; 8 | import io.github.liias.monkey.lang.psi.MonkeyClassDeclaration; 9 | import org.jetbrains.annotations.NotNull; 10 | 11 | abstract public class AbstractMonkeyPsiClass extends AbstractMonkeyComponentImpl implements MonkeyClass { 12 | public AbstractMonkeyPsiClass(@NotNull ASTNode node) { 13 | super(node); 14 | } 15 | 16 | @Override 17 | public MonkeyClassBodyMembers getBodyMembers() { 18 | if (this instanceof MonkeyClassDeclaration) { 19 | MonkeyClassDeclaration monkeyClassDeclaration = (MonkeyClassDeclaration) this; 20 | MonkeyClassBody classBody = monkeyClassDeclaration.getClassBody(); 21 | if (classBody != null) { 22 | return classBody.getClassBodyMembers(); 23 | } 24 | } 25 | return null; 26 | } 27 | 28 | 29 | @Override 30 | public String toString() { 31 | return "MonkeyClassDeclaration:" + getName(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyShiftExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyShiftExpressionImpl extends MonkeyExpressionImpl implements MonkeyShiftExpression { 14 | 15 | public MonkeyShiftExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitShiftExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getShiftOpList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyShiftOp.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyExpressionListImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyExpressionListImpl extends MonkeyPsiCompositeElementImpl implements MonkeyExpressionList { 14 | 15 | public MonkeyExpressionListImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitExpressionList(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getExpressionList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyExpression.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyQualifiedNameImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyQualifiedNameImpl extends MonkeyPsiCompositeElementImpl implements MonkeyQualifiedName { 14 | 15 | public MonkeyQualifiedNameImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitQualifiedName(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getComponentNameList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyComponentName.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyBitwiseExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyBitwiseExpressionImpl extends MonkeyExpressionImpl implements MonkeyBitwiseExpression { 14 | 15 | public MonkeyBitwiseExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitBitwiseExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getBitwiseOperatorList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyBitwiseOperator.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyRelationalExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyRelationalExpressionImpl extends MonkeyExpressionImpl implements MonkeyRelationalExpression { 14 | 15 | public MonkeyRelationalExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitRelationalExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getRelationalOpList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyRelationalOp.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/sdk/skeleton/MonkeyCMethod.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.sdk.skeleton; 2 | 3 | import java.util.ArrayList; 4 | import java.util.List; 5 | 6 | public class MonkeyCMethod extends MonkeyCSymbol { 7 | private final String parentName; 8 | List params = new ArrayList<>(); 9 | 10 | public MonkeyCMethod(String parentName) { 11 | this.parentName = parentName; 12 | } 13 | 14 | public void addParameter(MonkeyCMethodParam param) { 15 | params.add(param); 16 | } 17 | 18 | /*public String getAdditionalProposalInfo() 19 | { 20 | if ((mDocumentation == null) && (mParameters.isEmpty()) && (mReturnVal == null)) { 21 | return null; 22 | } 23 | StringBuilder sb = new StringBuilder(); 24 | sb.append(mDocumentation != null ? mDocumentation : ""); 25 | sb.append("\n"); 26 | if (!mParameters.isEmpty()) 27 | { 28 | sb.append("\nParameters:\n"); 29 | for (MonkeyCMethodParam param : mParameters) { 30 | sb.append("" + param.getName() + "" + param.getDocumentation() + "\n"); 31 | } 32 | sb.append("\n"); 33 | } 34 | sb.append(mReturnVal.getDocumentation()); 35 | 36 | return sb.toString(); 37 | }*/ 38 | } 39 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyArrayInitializerImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyArrayInitializerImpl extends MonkeyPsiCompositeElementImpl implements MonkeyArrayInitializer { 14 | 15 | public MonkeyArrayInitializerImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitArrayInitializer(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getVariableInitializerList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyVariableInitializer.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyDictionaryCreatorImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyDictionaryCreatorImpl extends MonkeyPsiCompositeElementImpl implements MonkeyDictionaryCreator { 14 | 15 | public MonkeyDictionaryCreatorImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitDictionaryCreator(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getKeyValueInitializerList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyKeyValueInitializer.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/ide/navigation/MonkeyGoToSymbolContributor.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.ide.navigation; 2 | 3 | import com.intellij.navigation.ChooseByNameContributor; 4 | import com.intellij.navigation.NavigationItem; 5 | import com.intellij.openapi.project.Project; 6 | import io.github.liias.monkey.lang.psi.MonkeyComponentName; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | import java.util.List; 10 | import java.util.stream.Collectors; 11 | 12 | public class MonkeyGoToSymbolContributor implements ChooseByNameContributor { 13 | @NotNull 14 | @Override 15 | public String[] getNames(Project project, boolean includeNonProjectItems) { 16 | List collect = ContributorHelper.getVariants(project, includeNonProjectItems).stream() 17 | .map(MonkeyComponentName::getName) 18 | .collect(Collectors.toList()); 19 | return collect.stream().toArray(String[]::new); 20 | } 21 | 22 | @NotNull 23 | @Override 24 | public NavigationItem[] getItemsByName(String name, String pattern, Project project, boolean includeNonProjectItems) { 25 | return ContributorHelper.getVariants(project, includeNonProjectItems).stream() 26 | .filter(i -> i.getName().equals(name)) 27 | .toArray(NavigationItem[]::new); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/runconfig/running/MonkeyModuleBasedConfiguration.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.runconfig.running; 2 | 3 | import com.intellij.execution.ExecutionException; 4 | import com.intellij.execution.Executor; 5 | import com.intellij.execution.configurations.ConfigurationFactory; 6 | import com.intellij.execution.configurations.RunProfileState; 7 | import com.intellij.execution.runners.ExecutionEnvironment; 8 | import io.github.liias.monkey.project.runconfig.AbstractMonkeyModuleBasedConfiguration; 9 | import io.github.liias.monkey.project.runconfig.AbstractMonkeyRunConfigurationModule; 10 | import org.jetbrains.annotations.NotNull; 11 | import org.jetbrains.annotations.Nullable; 12 | 13 | public class MonkeyModuleBasedConfiguration extends AbstractMonkeyModuleBasedConfiguration { 14 | 15 | public MonkeyModuleBasedConfiguration(String name, @NotNull AbstractMonkeyRunConfigurationModule configurationModule, @NotNull ConfigurationFactory factory) { 16 | super(name, configurationModule, factory); 17 | } 18 | 19 | @Nullable 20 | @Override 21 | public RunProfileState getState(@NotNull Executor executor, @NotNull ExecutionEnvironment environment) throws ExecutionException { 22 | return new MonkeyRunningState(environment); 23 | } 24 | } -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/ide/MonkeyBraceMatcher.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.ide; 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 io.github.liias.monkey.lang.psi.MonkeyTypes; 8 | import org.jetbrains.annotations.NotNull; 9 | import org.jetbrains.annotations.Nullable; 10 | 11 | public class MonkeyBraceMatcher implements PairedBraceMatcher { 12 | private static final BracePair[] BRACE_PAIRS = new BracePair[]{ 13 | new BracePair(MonkeyTypes.LPAREN, MonkeyTypes.RPAREN, false), 14 | new BracePair(MonkeyTypes.LBRACE, MonkeyTypes.RBRACE, true), 15 | new BracePair(MonkeyTypes.LBRACKET, MonkeyTypes.RBRACKET, false), 16 | new BracePair(MonkeyTypes.LT, MonkeyTypes.GT, false) 17 | }; 18 | 19 | 20 | @Override 21 | public BracePair[] getPairs() { 22 | return BRACE_PAIRS; 23 | } 24 | 25 | @Override 26 | public boolean isPairedBracesAllowedBeforeType(@NotNull IElementType lbraceType, @Nullable IElementType contextType) { 27 | return true; 28 | } 29 | 30 | @Override 31 | public int getCodeConstructStart(PsiFile file, int openingBraceOffset) { 32 | return openingBraceOffset; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyVariableDeclarationListImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyVariableDeclarationListImpl extends MonkeyPsiCompositeElementImpl implements MonkeyVariableDeclarationList { 14 | 15 | public MonkeyVariableDeclarationListImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitVariableDeclarationList(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getVariableDeclarationList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyVariableDeclaration.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyFormalParameterDeclarationsImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyFormalParameterDeclarationsImpl extends MonkeyPsiCompositeElementImpl implements MonkeyFormalParameterDeclarations { 14 | 15 | public MonkeyFormalParameterDeclarationsImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitFormalParameterDeclarations(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getComponentNameList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyComponentName.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyCreatorImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyCreatorImpl extends MonkeyPsiCompositeElementImpl implements MonkeyCreator { 14 | 15 | public MonkeyCreatorImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitCreator(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyArrayCreator getArrayCreator() { 31 | return findChildByClass(MonkeyArrayCreator.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyObjectCreator getObjectCreator() { 37 | return findChildByClass(MonkeyObjectCreator.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyHasExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyHasExpressionImpl extends MonkeyExpressionImpl implements MonkeyHasExpression { 14 | 15 | public MonkeyHasExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitHasExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public MonkeyExpression getExpression() { 31 | return findNotNullChildByClass(MonkeyExpression.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeySymbol getSymbol() { 37 | return findChildByClass(MonkeySymbol.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyEnumConstantImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyEnumConstantImpl extends AbstractMonkeyComponentImpl implements MonkeyEnumConstant { 14 | 15 | public MonkeyEnumConstantImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitEnumConstant(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public MonkeyComponentName getComponentName() { 31 | return findNotNullChildByClass(MonkeyComponentName.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public PsiElement getIntliteral() { 37 | return findChildByType(INTLITERAL); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeySwitchBlockStatementGroupsImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeySwitchBlockStatementGroupsImpl extends MonkeyPsiCompositeElementImpl implements MonkeySwitchBlockStatementGroups { 14 | 15 | public MonkeySwitchBlockStatementGroupsImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitSwitchBlockStatementGroups(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getSwitchBlockStatementGroupList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeySwitchBlockStatementGroup.class); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyCatchClauseImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyCatchClauseImpl extends MonkeyPsiCompositeElementImpl implements MonkeyCatchClause { 14 | 15 | public MonkeyCatchClauseImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitCatchClause(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public MonkeyBlock getBlock() { 31 | return findNotNullChildByClass(MonkeyBlock.class); 32 | } 33 | 34 | @Override 35 | @NotNull 36 | public MonkeyCatchParameter getCatchParameter() { 37 | return findNotNullChildByClass(MonkeyCatchParameter.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyCatchParameterImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyCatchParameterImpl extends MonkeyPsiCompositeElementImpl implements MonkeyCatchParameter { 14 | 15 | public MonkeyCatchParameterImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitCatchParameter(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public MonkeyId getId() { 31 | return findNotNullChildByClass(MonkeyId.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyQualifiedName getQualifiedName() { 37 | return findChildByClass(MonkeyQualifiedName.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyTryStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyTryStatementImpl extends MonkeyPsiCompositeElementImpl implements MonkeyTryStatement { 14 | 15 | public MonkeyTryStatementImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitTryStatement(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getBlockList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyBlock.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyCatches getCatches() { 37 | return findChildByClass(MonkeyCatches.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/runconfig/running/MonkeyRunningState.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.runconfig.running; 2 | 3 | import com.intellij.execution.ExecutionException; 4 | import com.intellij.execution.ExecutionResult; 5 | import com.intellij.execution.Executor; 6 | import com.intellij.execution.runners.ExecutionEnvironment; 7 | import com.intellij.execution.runners.ProgramRunner; 8 | import com.intellij.execution.ui.ConsoleView; 9 | import io.github.liias.monkey.project.runconfig.AbstractMonkeyRunningState; 10 | import io.github.liias.monkey.project.runconfig.DeploymentTarget; 11 | import org.jetbrains.annotations.NotNull; 12 | 13 | // Starts app in simulatorHelper 14 | public class MonkeyRunningState extends AbstractMonkeyRunningState { 15 | public MonkeyRunningState(ExecutionEnvironment environment) { 16 | super(environment, false); 17 | } 18 | 19 | @Override 20 | @NotNull 21 | public ExecutionResult execute(@NotNull final Executor executor, @NotNull final ProgramRunner runner) throws ExecutionException { 22 | ConsoleView console = createConsole(executor); 23 | 24 | if (DeploymentTarget.DEVICE.getId().equals(getConfiguration().getDeploymentTargetId())) { 25 | return runOnRealDevice(console); 26 | } 27 | 28 | runSimulator(console); 29 | 30 | return runOnSimulator(console, executor); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyArrayCreatorImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyArrayCreatorImpl extends MonkeyPsiCompositeElementImpl implements MonkeyArrayCreator { 14 | 15 | public MonkeyArrayCreatorImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitArrayCreator(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyDictionaryCreator getDictionaryCreator() { 31 | return findChildByClass(MonkeyDictionaryCreator.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyExpression getExpression() { 37 | return findChildByClass(MonkeyExpression.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyForInitImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyForInitImpl extends MonkeyPsiCompositeElementImpl implements MonkeyForInit { 14 | 15 | public MonkeyForInitImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitForInit(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyExpressionList getExpressionList() { 31 | return findChildByClass(MonkeyExpressionList.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyVariableDeclarationList getVariableDeclarationList() { 37 | return findChildByClass(MonkeyVariableDeclarationList.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/runconfig/TargetDevice.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.runconfig; 2 | 3 | public class TargetDevice { 4 | public static final TargetDevice DEFAULT_DEVICE = new TargetDevice("vivoactive", "vívoactive®"); 5 | 6 | private String id; 7 | private String name; 8 | 9 | public TargetDevice() { 10 | } 11 | 12 | public TargetDevice(String id, String name) { 13 | this.id = id; 14 | this.name = name; 15 | } 16 | 17 | public void setId(String id) { 18 | this.id = id; 19 | } 20 | 21 | public String getId() { 22 | return id; 23 | } 24 | 25 | public String getName() { 26 | return name != null ? name : id; 27 | } 28 | 29 | public void setName(String name) { 30 | this.name = name; 31 | } 32 | 33 | // only id matters 34 | @Override 35 | public boolean equals(Object o) { 36 | if (this == o) return true; 37 | if (o == null || getClass() != o.getClass()) return false; 38 | TargetDevice that = (TargetDevice) o; 39 | return id.equals(that.id); 40 | } 41 | 42 | @Override 43 | public int hashCode() { 44 | return id.hashCode(); 45 | } 46 | 47 | public static TargetDevice fromId(String targetDeviceId) { 48 | return new TargetDevice(targetDeviceId, targetDeviceId); 49 | } 50 | 51 | @Override 52 | public String toString() { 53 | return getName(); 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyBlockStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyBlockStatementImpl extends MonkeyPsiCompositeElementImpl implements MonkeyBlockStatement { 14 | 15 | public MonkeyBlockStatementImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitBlockStatement(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyStatement getStatement() { 31 | return findChildByClass(MonkeyStatement.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyVariableDeclarationList getVariableDeclarationList() { 37 | return findChildByClass(MonkeyVariableDeclarationList.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyExpressionImpl extends MonkeyPsiCompositeElementImpl implements MonkeyExpression { 14 | 15 | public MonkeyExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyAssignmentOperator getAssignmentOperator() { 31 | return findChildByClass(MonkeyAssignmentOperator.class); 32 | } 33 | 34 | @Override 35 | @NotNull 36 | public List getExpressionList() { 37 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyExpression.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyInstanceOfExpressionImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyInstanceOfExpressionImpl extends MonkeyExpressionImpl implements MonkeyInstanceOfExpression { 14 | 15 | public MonkeyInstanceOfExpressionImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitInstanceOfExpression(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public MonkeyExpression getExpression() { 31 | return findNotNullChildByClass(MonkeyExpression.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyQualifiedName getQualifiedName() { 37 | return findChildByClass(MonkeyQualifiedName.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/psi/MonkeyFile.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.psi; 2 | 3 | import com.intellij.extapi.psi.PsiFileBase; 4 | import com.intellij.openapi.fileTypes.FileType; 5 | import com.intellij.psi.FileViewProvider; 6 | import com.intellij.psi.PsiElement; 7 | import com.intellij.psi.ResolveState; 8 | import com.intellij.psi.scope.PsiScopeProcessor; 9 | import io.github.liias.monkey.lang.MonkeyLanguage; 10 | import io.github.liias.monkey.lang.file.MonkeyFileType; 11 | import io.github.liias.monkey.lang.psi.impl.MonkeyPsiCompositeElementImpl; 12 | import org.jetbrains.annotations.NotNull; 13 | 14 | public class MonkeyFile extends PsiFileBase { 15 | public MonkeyFile(@NotNull FileViewProvider viewProvider) { 16 | super(viewProvider, MonkeyLanguage.INSTANCE); 17 | } 18 | 19 | @NotNull 20 | @Override 21 | public FileType getFileType() { 22 | return MonkeyFileType.INSTANCE; 23 | } 24 | 25 | @Override 26 | public String toString() { 27 | return "Monkey C File: " + getName(); 28 | } 29 | 30 | @Override 31 | public boolean processDeclarations(@NotNull PsiScopeProcessor processor, @NotNull ResolveState state, PsiElement lastParent, @NotNull PsiElement place) { 32 | return MonkeyPsiCompositeElementImpl.processDeclarationsImpl(this, processor, state) 33 | && super.processDeclarations(processor, state, lastParent, place); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyVariableInitializerImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyVariableInitializerImpl extends MonkeyPsiCompositeElementImpl implements MonkeyVariableInitializer { 14 | 15 | public MonkeyVariableInitializerImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitVariableInitializer(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyArrayInitializer getArrayInitializer() { 31 | return findChildByClass(MonkeyArrayInitializer.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyExpression getExpression() { 37 | return findChildByClass(MonkeyExpression.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyEnumDeclarationImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyEnumDeclarationImpl extends MonkeyPsiCompositeElementImpl implements MonkeyEnumDeclaration { 14 | 15 | public MonkeyEnumDeclarationImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitEnumDeclaration(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getEnumConstantList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyEnumConstant.class); 32 | } 33 | 34 | @Override 35 | @NotNull 36 | public MonkeyModifiers getModifiers() { 37 | return findNotNullChildByClass(MonkeyModifiers.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyFieldDeclarationImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyFieldDeclarationImpl extends MonkeyPsiCompositeElementImpl implements MonkeyFieldDeclaration { 14 | 15 | public MonkeyFieldDeclarationImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitFieldDeclaration(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public MonkeyComponentName getComponentName() { 31 | return findNotNullChildByClass(MonkeyComponentName.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyVariableInitializer getVariableInitializer() { 37 | return findChildByClass(MonkeyVariableInitializer.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyUsingDeclarationImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyUsingDeclarationImpl extends MonkeyPsiCompositeElementImpl implements MonkeyUsingDeclaration { 14 | 15 | public MonkeyUsingDeclarationImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitUsingDeclaration(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyComponentName getComponentName() { 31 | return findChildByClass(MonkeyComponentName.class); 32 | } 33 | 34 | @Override 35 | @NotNull 36 | public List getExpressionList() { 37 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyExpression.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyVariableDeclarationImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyVariableDeclarationImpl extends MonkeyPsiCompositeElementImpl implements MonkeyVariableDeclaration { 14 | 15 | public MonkeyVariableDeclarationImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitVariableDeclaration(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public MonkeyComponentName getComponentName() { 31 | return findNotNullChildByClass(MonkeyComponentName.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyVariableInitializer getVariableInitializer() { 37 | return findChildByClass(MonkeyVariableInitializer.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /jps-plugin/src/main/java/io/github/liias/monkey/jps/builder/MonkeySourceRootDescriptor.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.jps.builder; 2 | 3 | import com.intellij.openapi.util.io.FileUtilRt; 4 | import org.jetbrains.annotations.NotNull; 5 | import org.jetbrains.jps.builders.BuildRootDescriptor; 6 | import org.jetbrains.jps.builders.BuildTarget; 7 | 8 | import java.io.File; 9 | import java.io.FileFilter; 10 | 11 | public class MonkeySourceRootDescriptor extends BuildRootDescriptor { 12 | private final File root; 13 | private final MonkeyBuildTarget monkeyBuildTarget; 14 | 15 | public MonkeySourceRootDescriptor(File root, MonkeyBuildTarget monkeyBuildTarget) { 16 | this.root = root; 17 | this.monkeyBuildTarget = monkeyBuildTarget; 18 | } 19 | 20 | @NotNull 21 | @Override 22 | public String getRootId() { 23 | return root.getAbsolutePath(); 24 | } 25 | 26 | @Override 27 | public File getRootFile() { 28 | return root; 29 | } 30 | 31 | @Override 32 | public BuildTarget getTarget() { 33 | return monkeyBuildTarget; 34 | } 35 | 36 | @NotNull 37 | @Override 38 | public FileFilter createFileFilter() { 39 | return file -> FileUtilRt.extensionEquals(file.getName(), "mc"); 40 | } 41 | 42 | @Override 43 | public String toString() { 44 | return "MonkeySourceRootDescriptor{" + 45 | "root=" + root + 46 | ", monkeyBuildTarget=" + monkeyBuildTarget + 47 | '}'; 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyFieldDeclarationListImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyFieldDeclarationListImpl extends MonkeyPsiCompositeElementImpl implements MonkeyFieldDeclarationList { 14 | 15 | public MonkeyFieldDeclarationListImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitFieldDeclarationList(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getFieldDeclarationList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyFieldDeclaration.class); 32 | } 33 | 34 | @Override 35 | @NotNull 36 | public MonkeyModifiers getModifiers() { 37 | return findNotNullChildByClass(MonkeyModifiers.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/parser/MonkeyTokenTypesSets.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.parser; 2 | 3 | import com.intellij.psi.TokenType; 4 | import com.intellij.psi.tree.TokenSet; 5 | import io.github.liias.monkey.lang.psi.MonkeyTypes; 6 | 7 | public interface MonkeyTokenTypesSets { 8 | TokenSet STRINGS = TokenSet.create(MonkeyTypes.STRING, MonkeyTypes.CHARLITERAL); 9 | TokenSet COMMENTS = TokenSet.create(MonkeyTypes.SINGLE_LINE_COMMENT, MonkeyTypes.SINGLE_LINE_DOC_COMMENT, MonkeyTypes.BLOCK_COMMENT); 10 | TokenSet WHITE_SPACES = TokenSet.create(TokenType.WHITE_SPACE); 11 | 12 | TokenSet BUILT_IN_IDENTIFIERS = TokenSet.create( 13 | MonkeyTypes.AND, 14 | MonkeyTypes.AS, 15 | MonkeyTypes.BLING, 16 | MonkeyTypes.CLASS, 17 | MonkeyTypes.CONST, 18 | MonkeyTypes.DO, 19 | MonkeyTypes.ELSE, 20 | MonkeyTypes.ENUM, 21 | MonkeyTypes.EXTENDS, 22 | MonkeyTypes.FALSE, 23 | MonkeyTypes.FOR, 24 | MonkeyTypes.FUNCTION, 25 | MonkeyTypes.HAS, 26 | MonkeyTypes.HIDDEN, 27 | MonkeyTypes.IF, 28 | MonkeyTypes.INSTANCEOF, 29 | MonkeyTypes.MODULE, 30 | MonkeyTypes.NATIVE, 31 | MonkeyTypes.NEW, 32 | MonkeyTypes.NULL, 33 | MonkeyTypes.OR, 34 | MonkeyTypes.RETURN, 35 | MonkeyTypes.SELF, 36 | MonkeyTypes.STATIC, 37 | MonkeyTypes.THIS, 38 | MonkeyTypes.TRUE, 39 | MonkeyTypes.USING, 40 | MonkeyTypes.VAR, 41 | MonkeyTypes.WHILE 42 | ); 43 | 44 | 45 | } 46 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeySelectorImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeySelectorImpl extends MonkeyPsiCompositeElementImpl implements MonkeySelector { 14 | 15 | public MonkeySelectorImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitSelector(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyArguments getArguments() { 31 | return findChildByClass(MonkeyArguments.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyExpression getExpression() { 37 | return findChildByClass(MonkeyExpression.class); 38 | } 39 | 40 | @Override 41 | @Nullable 42 | public PsiElement getIdentifier() { 43 | return findChildByType(IDENTIFIER); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeySwitchBlockStatementGroupImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeySwitchBlockStatementGroupImpl extends MonkeyPsiCompositeElementImpl implements MonkeySwitchBlockStatementGroup { 14 | 15 | public MonkeySwitchBlockStatementGroupImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitSwitchBlockStatementGroup(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @NotNull 30 | public List getBlockStatementList() { 31 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyBlockStatement.class); 32 | } 33 | 34 | @Override 35 | @NotNull 36 | public MonkeySwitchLabel getSwitchLabel() { 37 | return findNotNullChildByClass(MonkeySwitchLabel.class); 38 | } 39 | 40 | } 41 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/ide/actions/appsettings/SettingDeserializer.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.ide.actions.appsettings; 2 | 3 | import com.google.gson.*; 4 | import io.github.liias.monkey.ide.actions.appsettings.json.Setting; 5 | 6 | import java.lang.reflect.Type; 7 | 8 | public class SettingDeserializer implements JsonDeserializer { 9 | 10 | @Override 11 | public Setting deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { 12 | Setting setting = new Gson().fromJson(json, Setting.class); // use default Gson object 13 | 14 | final JsonObject jsonObject = json.getAsJsonObject(); 15 | JsonElement defaultValueElement = jsonObject.get("defaultValue"); 16 | Object defaultValue = getDefaultValueConsideringValueType(setting.getValueType(), defaultValueElement); 17 | setting.setDefaultValue(defaultValue); 18 | setting.setValue(defaultValue); 19 | return setting; 20 | } 21 | 22 | private static Object getDefaultValueConsideringValueType(Setting.ValueType valueType, JsonElement defaultValueElement) { 23 | switch (valueType) { 24 | case BOOLEAN: 25 | return defaultValueElement.getAsBoolean(); 26 | case STRING: 27 | return defaultValueElement.getAsString(); 28 | case NUMBER: 29 | return defaultValueElement.getAsInt(); 30 | case FLOAT: 31 | return defaultValueElement.getAsFloat(); 32 | } 33 | throw new IllegalArgumentException("unknown valueType"); 34 | } 35 | } -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyConstDeclarationImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyConstDeclarationImpl extends AbstractMonkeyComponentImpl implements MonkeyConstDeclaration { 14 | 15 | public MonkeyConstDeclarationImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitConstDeclaration(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyComponentName getComponentName() { 31 | return findChildByClass(MonkeyComponentName.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyExpression getExpression() { 37 | return findChildByClass(MonkeyExpression.class); 38 | } 39 | 40 | @Override 41 | @NotNull 42 | public MonkeyModifiers getModifiers() { 43 | return findNotNullChildByClass(MonkeyModifiers.class); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyIdentifierSuffixImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyIdentifierSuffixImpl extends MonkeyPsiCompositeElementImpl implements MonkeyIdentifierSuffix { 14 | 15 | public MonkeyIdentifierSuffixImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitIdentifierSuffix(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyArguments getArguments() { 31 | return findChildByClass(MonkeyArguments.class); 32 | } 33 | 34 | @Override 35 | @NotNull 36 | public List getExpressionList() { 37 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyExpression.class); 38 | } 39 | 40 | @Override 41 | @Nullable 42 | public PsiElement getIdentifier() { 43 | return findChildByType(IDENTIFIER); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyObjectCreatorImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyObjectCreatorImpl extends MonkeyPsiCompositeElementImpl implements MonkeyObjectCreator { 14 | 15 | public MonkeyObjectCreatorImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitObjectCreator(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyArguments getArguments() { 31 | return findChildByClass(MonkeyArguments.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyClassBody getClassBody() { 37 | return findChildByClass(MonkeyClassBody.class); 38 | } 39 | 40 | @Override 41 | @NotNull 42 | public List getExpressionList() { 43 | return PsiTreeUtil.getChildrenOfTypeAsList(this, MonkeyExpression.class); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyModuleDeclarationImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyModuleDeclarationImpl extends AbstractMonkeyComponentImpl implements MonkeyModuleDeclaration { 14 | 15 | public MonkeyModuleDeclarationImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitModuleDeclaration(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyComponentName getComponentName() { 31 | return findChildByClass(MonkeyComponentName.class); 32 | } 33 | 34 | @Override 35 | @NotNull 36 | public MonkeyModifiers getModifiers() { 37 | return findNotNullChildByClass(MonkeyModifiers.class); 38 | } 39 | 40 | @Override 41 | @Nullable 42 | public MonkeyModuleBody getModuleBody() { 43 | return findChildByClass(MonkeyModuleBody.class); 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/ide/actions/appsettings/form/StringFieldModel.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.ide.actions.appsettings.form; 2 | 3 | import com.intellij.ui.components.JBPasswordField; 4 | import com.intellij.ui.components.JBTextField; 5 | import io.github.liias.monkey.ide.actions.appsettings.json.Setting; 6 | 7 | import javax.swing.*; 8 | import java.util.Map; 9 | 10 | // config type: alphaNumeric, phone, email, url, password 11 | public class StringFieldModel extends FieldModel { 12 | private final JTextField component; 13 | 14 | public StringFieldModel(Setting setting, Map translations) { 15 | super(setting, translations); 16 | this.component = createComponent(); 17 | } 18 | 19 | public JTextField createComponent() { 20 | Setting.ConfigType configType = setting.getConfigType(); 21 | String value = setting.getValueAsString(); 22 | JTextField jTextField; 23 | if (configType == Setting.ConfigType.PASSWORD) { 24 | JBPasswordField jbPasswordField = new JBPasswordField(); 25 | jbPasswordField.setText(value); 26 | jTextField = jbPasswordField; 27 | } else { 28 | JBTextField jbTextField = new JBTextField(value); 29 | jTextField = jbTextField; 30 | } 31 | 32 | applyGenericProperties(jTextField); 33 | return jTextField; 34 | } 35 | 36 | @Override 37 | public JComponent getComponent() { 38 | return component; 39 | } 40 | 41 | @Override 42 | public String getValue() { 43 | return component.getText(); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/ide/actions/appsettings/AppSettingsDialog.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.ide.actions.appsettings; 2 | 3 | import com.intellij.CommonBundle; 4 | import com.intellij.openapi.project.Project; 5 | import com.intellij.openapi.ui.DialogWrapper; 6 | import org.jetbrains.annotations.NotNull; 7 | import org.jetbrains.annotations.Nullable; 8 | 9 | import javax.swing.*; 10 | import java.awt.event.ActionEvent; 11 | import java.util.stream.Stream; 12 | 13 | public class AppSettingsDialog extends DialogWrapper { 14 | private final AppSettingsForm appSettingsForm; 15 | 16 | protected AppSettingsDialog(@Nullable Project project) { 17 | super(project, true, IdeModalityType.MODELESS); 18 | 19 | setTitle("App Settings Editor"); 20 | setCancelButtonText(CommonBundle.getCloseButtonText()); 21 | appSettingsForm = new AppSettingsForm(project, this); 22 | init(); 23 | } 24 | 25 | @Nullable 26 | @Override 27 | protected JComponent createCenterPanel() { 28 | return appSettingsForm.getPanel(); 29 | } 30 | 31 | @NotNull 32 | @Override 33 | protected Action[] createActions() { 34 | DialogWrapperAction sendAction = new DialogWrapperAction("Send Settings") { 35 | { 36 | putValue(DEFAULT_ACTION, Boolean.TRUE); 37 | } 38 | 39 | @Override 40 | protected void doAction(ActionEvent e) { 41 | appSettingsForm.sendSettingsToSimulator(); 42 | } 43 | }; 44 | 45 | return Stream.of(sendAction, getCancelAction()) 46 | .toArray(Action[]::new); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/runconfig/TargetSdkVersion.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.runconfig; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | 5 | public class TargetSdkVersion { 6 | public static final TargetSdkVersion VERSION_1_2_X = new TargetSdkVersion("1.2.1", "1.2.x"); 7 | public static final TargetSdkVersion VERSION_1_3_X = new TargetSdkVersion("1.3.1", "1.3.x"); 8 | public static final TargetSdkVersion VERSION_2_1_X = new TargetSdkVersion("2.1.1", "2.1.x"); 9 | public static final TargetSdkVersion VERSION_2_2_X = new TargetSdkVersion("2.2.0", "2.2.x"); 10 | 11 | private String id; 12 | private String name; 13 | 14 | public TargetSdkVersion(@NotNull String id, String name) { 15 | this.id = id; 16 | this.name = name; 17 | } 18 | 19 | public String getId() { 20 | return id; 21 | } 22 | 23 | public String getName() { 24 | return name != null ? name : id; 25 | } 26 | 27 | public static TargetSdkVersion fromId(String targetSdkVersionId) { 28 | return new TargetSdkVersion(targetSdkVersionId, targetSdkVersionId); 29 | } 30 | 31 | // only id matters 32 | @Override 33 | public boolean equals(Object o) { 34 | if (this == o) return true; 35 | if (o == null || getClass() != o.getClass()) return false; 36 | TargetSdkVersion that = (TargetSdkVersion) o; 37 | return id.equals(that.id); 38 | } 39 | 40 | @Override 41 | public int hashCode() { 42 | return id.hashCode(); 43 | } 44 | 45 | @Override 46 | public String toString() { 47 | return getName(); 48 | } 49 | } 50 | 51 | -------------------------------------------------------------------------------- /jps-plugin/src/main/java/io/github/liias/monkey/jps/model/JpsMonkeyModuleType.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.jps.model; 2 | 3 | import org.jetbrains.annotations.NotNull; 4 | import org.jetbrains.jps.model.JpsElementFactory; 5 | import org.jetbrains.jps.model.JpsElementTypeWithDefaultProperties; 6 | import org.jetbrains.jps.model.JpsSimpleElement; 7 | import org.jetbrains.jps.model.ex.JpsElementTypeBase; 8 | import org.jetbrains.jps.model.java.JavaResourceRootType; 9 | import org.jetbrains.jps.model.java.JavaSourceRootType; 10 | import org.jetbrains.jps.model.module.JpsModuleType; 11 | 12 | public class JpsMonkeyModuleType extends JpsElementTypeBase> 13 | implements JpsModuleType>, 14 | JpsElementTypeWithDefaultProperties> { 15 | 16 | public static final JavaSourceRootType MONKEY_SOURCE_ROOT_TYPE = JavaSourceRootType.SOURCE; 17 | public static final JavaSourceRootType MONKEY_TEST_SOURCE_ROOT_TYPE = JavaSourceRootType.TEST_SOURCE; 18 | public static final JavaResourceRootType MONKEY_RESOURCE_ROOT_TYPE = JavaResourceRootType.RESOURCE; 19 | public static final JavaResourceRootType MONKEY_TEST_RESOURCE_ROOT_TYPE = JavaResourceRootType.TEST_RESOURCE; 20 | 21 | public static final JpsMonkeyModuleType INSTANCE = new JpsMonkeyModuleType(); 22 | 23 | @NotNull 24 | @Override 25 | public JpsSimpleElement createDefaultProperties() { 26 | return JpsElementFactory.getInstance().createSimpleElement(new JpsMonkeyModuleProperties()); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/lang/resolve/MonkeyResolveProcessor.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.lang.resolve; 2 | 3 | import com.intellij.psi.PsiElement; 4 | import com.intellij.psi.ResolveState; 5 | import com.intellij.psi.scope.BaseScopeProcessor; 6 | import com.intellij.psi.scope.PsiScopeProcessor; 7 | import io.github.liias.monkey.lang.psi.MonkeyComponentName; 8 | import org.jetbrains.annotations.NotNull; 9 | import org.jetbrains.annotations.Nullable; 10 | 11 | import java.util.List; 12 | 13 | /** 14 | * Gathers declarations for reference 15 | */ 16 | public class MonkeyResolveProcessor extends BaseScopeProcessor implements PsiScopeProcessor { 17 | private final List myResult; 18 | private final String myName; 19 | 20 | public MonkeyResolveProcessor(List result, String name) { 21 | this.myResult = result; 22 | this.myName = name; 23 | } 24 | 25 | @Override 26 | public boolean execute(@NotNull PsiElement element, @NotNull ResolveState state) { 27 | if (!(element instanceof MonkeyComponentName)) return true; 28 | MonkeyComponentName componentName = (MonkeyComponentName) element; 29 | final PsiElement parentElement = componentName.getParent(); 30 | 31 | if (this.myName.equals(componentName.getName()) 32 | //&& !isMember(MonkeyComponentType.typeOf(parentElement)) 33 | ) { 34 | myResult.add(componentName); 35 | return false; 36 | } 37 | 38 | return true; 39 | } 40 | 41 | private static boolean isMember(final @Nullable MonkeyComponentType componentType) { 42 | return componentType == MonkeyComponentType.FIELD; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/ui/module/MonkeyTemplateChooser.form: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | -------------------------------------------------------------------------------- /src/main/java/io/github/liias/monkey/project/runconfig/testing/MonkeyTestConfigurationType.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.project.runconfig.testing; 2 | 3 | import com.intellij.execution.configuration.ConfigurationFactoryEx; 4 | import com.intellij.execution.configurations.*; 5 | import com.intellij.openapi.project.Project; 6 | import icons.MonkeyIcons; 7 | import org.jetbrains.annotations.NotNull; 8 | 9 | public class MonkeyTestConfigurationType extends ConfigurationTypeBase { 10 | private final ConfigurationFactoryEx factory; 11 | 12 | protected MonkeyTestConfigurationType() { 13 | super("MonkeyCApplicationTest", "Monkey C Application Test", "Configuration to run a Connect IQ unit tests", MonkeyIcons.MODULE_TEST_16); 14 | 15 | factory = new ConfigurationFactoryEx(this) { 16 | @Override 17 | public void onNewConfigurationCreated(@NotNull RunConfiguration configuration) { 18 | final ModuleBasedConfiguration moduleBasedConfiguration = (ModuleBasedConfiguration) configuration; 19 | moduleBasedConfiguration.onNewConfigurationCreated(); 20 | } 21 | 22 | @NotNull 23 | public RunConfiguration createTemplateConfiguration(@NotNull Project project) { 24 | return new MonkeyTestModuleBasedConfiguration("", new MonkeyTestRunConfigurationModule(project), this); 25 | } 26 | }; 27 | addFactory(factory); 28 | } 29 | 30 | public ConfigurationFactory getFactory() { 31 | return factory; 32 | } 33 | 34 | @NotNull 35 | public static MonkeyTestConfigurationType getInstance() { 36 | return ConfigurationTypeUtil.findConfigurationType(MonkeyTestConfigurationType.class); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /src/main/gen/io/github/liias/monkey/lang/psi/impl/MonkeyForStatementImpl.java: -------------------------------------------------------------------------------- 1 | // This is a generated file. Not intended for manual editing. 2 | package io.github.liias.monkey.lang.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 io.github.liias.monkey.lang.psi.MonkeyTypes.*; 11 | import io.github.liias.monkey.lang.psi.*; 12 | 13 | public class MonkeyForStatementImpl extends MonkeyPsiCompositeElementImpl implements MonkeyForStatement { 14 | 15 | public MonkeyForStatementImpl(ASTNode node) { 16 | super(node); 17 | } 18 | 19 | public void accept(@NotNull MonkeyVisitor visitor) { 20 | visitor.visitForStatement(this); 21 | } 22 | 23 | public void accept(@NotNull PsiElementVisitor visitor) { 24 | if (visitor instanceof MonkeyVisitor) accept((MonkeyVisitor)visitor); 25 | else super.accept(visitor); 26 | } 27 | 28 | @Override 29 | @Nullable 30 | public MonkeyExpression getExpression() { 31 | return findChildByClass(MonkeyExpression.class); 32 | } 33 | 34 | @Override 35 | @Nullable 36 | public MonkeyExpressionList getExpressionList() { 37 | return findChildByClass(MonkeyExpressionList.class); 38 | } 39 | 40 | @Override 41 | @Nullable 42 | public MonkeyForInit getForInit() { 43 | return findChildByClass(MonkeyForInit.class); 44 | } 45 | 46 | @Override 47 | @NotNull 48 | public MonkeyStatement getStatement() { 49 | return findNotNullChildByClass(MonkeyStatement.class); 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /deserializer/src/main/java/io/github/liias/monkey/deserializer/type/MonkeyTypeString.java: -------------------------------------------------------------------------------- 1 | package io.github.liias.monkey.deserializer.type; 2 | 3 | import java.nio.ByteBuffer; 4 | import java.nio.charset.StandardCharsets; 5 | 6 | public class MonkeyTypeString extends MonkeyType { 7 | private byte type = Type.STRING; 8 | 9 | // offset in bytes from the beginning of the string block 10 | private int offset; 11 | 12 | private String value; 13 | 14 | public MonkeyTypeString(ByteBuffer bb) { 15 | this.offset = bb.getInt(); 16 | } 17 | 18 | public MonkeyTypeString(String value) { 19 | this.value = value; 20 | } 21 | 22 | @Override 23 | public int getSize() { 24 | return 4; 25 | } 26 | 27 | @Override 28 | public byte[] serialize() { 29 | ByteBuffer bb = ByteBuffer.allocate(1 + getSize()); 30 | bb.put(type); 31 | bb.putInt(offset); 32 | return bb.array(); 33 | } 34 | 35 | @Override 36 | public String getValue() { 37 | return value; 38 | } 39 | 40 | public void setValue(String value) { 41 | this.value = value; 42 | } 43 | 44 | public void setOffset(int offset) { 45 | this.offset = offset; 46 | } 47 | 48 | public int getOffset() { 49 | return offset; 50 | } 51 | 52 | @Override 53 | public String toString() { 54 | return value; 55 | } 56 | 57 | public byte[] serializeString() { 58 | byte[] valueAsBytes = value.getBytes(StandardCharsets.UTF_8); 59 | ByteBuffer bb = ByteBuffer.allocate(2 + valueAsBytes.length + 1); 60 | bb.putShort((short) (valueAsBytes.length + 1)); 61 | bb.put(valueAsBytes); 62 | bb.put((byte) 0); 63 | return bb.array(); 64 | } 65 | } 66 | --------------------------------------------------------------------------------