IdeaPlugin/mps-core/META-INF/plugin.xml (160 lines of code) (raw):

<!-- ~ Copyright 2003-2021 JetBrains s.r.o. ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License. --> <idea-plugin xmlns:xi="http://www.w3.org/2001/XInclude"> <id>jetbrains.mps.core</id> <name>MPS Core</name> <category>Custom Languages</category> <description>The plugin provides support for MPS in IDEA</description> <version>2025.1</version> <vendor url="http://www.jetbrains.com/mps/">JetBrains</vendor> <idea-version since-build="251.1" until-build="252.1"/> <depends optional="true" config-file="idea-support.xml">com.intellij.modules.java</depends> <depends optional="true" config-file="intellij-ides-support.xml">com.intellij.modules.platform</depends> <application-components> <!--component> Now an App Service, and no longer part of mps-workbench, rather mps-platform (contributed by j.m.ide.platform module activator) <interface-class>jetbrains.mps.make.IMakeService</interface-class> <implementation-class>jetbrains.mps.ide.make.WorkbenchMakeService</implementation-class> </component --> <!-- component> <implementation-class>jetbrains.mps.idea.core.navigation.NavigationSupportImpl</implementation-class> </component --> <component> <implementation-class>jetbrains.mps.idea.core.refactoring.RefactoringAccessImpl$Plug</implementation-class> </component> <component> <implementation-class>jetbrains.mps.idea.core.project.stubs.MPSGlobalLibImporter</implementation-class> </component> <!-- JdkStubSolutionManager was commented since we decided to use same logic as works in MPS with loading JDKclasses for now.In future should be uncommented and modified if necessary. --> <component> <implementation-class>jetbrains.mps.idea.core.project.stubs.JdkStubSolutionManager</implementation-class> </component> <component> <implementation-class>jetbrains.mps.idea.core.project.PluginsPathMacroCrutch</implementation-class> </component> </application-components> <xi:include href="../../../workbench/mps-platform/source/META-INF/MPSCore.xml"/> <xi:include href="../../../workbench/mps-editor/source/META-INF/MPSEditor.xml"/> <xi:include href="../../../workbench/mps-ui/source_gen/jetbrains/mps/ide/platform/actions/PlatformActions.xml" /> <xi:include href="../../../workbench/mps-editor/source_gen/jetbrains/mps/ide/editor/actions/MPSEditorActions.xml" /> <xi:include href="../../../workbench/mps-ui/source/META-INF/MPSUI.xml"/> <project-components> <component> <implementation-class>jetbrains.mps.idea.core.config.ConfigurationChecker</implementation-class> </component> <component> <implementation-class>jetbrains.mps.idea.core.project.stubs.MPSProjectLibImporter</implementation-class> </component> <component> <implementation-class>jetbrains.mps.project.MPSProject</implementation-class> </component> <component> <implementation-class>jetbrains.mps.ide.vfs.ProjectStoreDirAddToVFSSnapshot</implementation-class> </component> <component> <implementation-class>jetbrains.mps.idea.core.project.UpgradeModelsPersistence</implementation-class> </component> <component> <implementation-class>jetbrains.mps.idea.core.project.ModuleIdSynchronizer</implementation-class> </component> <component> <implementation-class>jetbrains.mps.idea.core.refactoring.RegisterMoveNodePsiParticipant</implementation-class> </component> <component> <implementation-class>jetbrains.mps.idea.core.project.module.ModuleMPSSupportInit</implementation-class> </component> </project-components> <extensionPoints> <extensionPoint qualifiedName="com.intellij.mps.modelRootContributor" beanClass="jetbrains.mps.idea.core.project.ModelRootContributorEP"/> <extensionPoint qualifiedName="com.intellij.mps.modelTemplateProvider" interface="jetbrains.mps.idea.core.actions.ModelTemplateProvider"/> <extensionPoint qualifiedName="com.intellij.mps.renameRefactoringContributor" beanClass="jetbrains.mps.idea.core.refactoring.RenameRefactoringContributorEP"/> <extensionPoint qualifiedName="com.intellij.mps.psiFactory" interface="jetbrains.mps.idea.core.psi.MPSPsiNodeFactory"/> <extensionPoint qualifiedName="com.intellij.mps.psiSourceFinder" interface="jetbrains.mps.idea.core.psi.MPS2PsiMapper"/> <extensionPoint qualifiedName="com.intellij.mps.moduleMpsSupport" interface="jetbrains.mps.idea.core.project.module.ModuleMPSSupport"/> </extensionPoints> <extensions defaultExtensionNs="com.intellij"> <mps.modelRootContributor className="jetbrains.mps.idea.core.project.stubs.ModuleLibStubProvider"/> <facetType implementation="jetbrains.mps.idea.core.facet.MPSFacetType"/> <frameworkSupport implementation="jetbrains.mps.idea.core.facet.MPSFrameworkSupportProvider"/> <mps.LanguageLibrary dir="/languages"/> <mps.renameRefactoringContributor className="jetbrains.mps.idea.core.refactoring.DefaultRenameContributor" id="mps-core-rename" order="last"/> <treeStructureProvider implementation="jetbrains.mps.idea.core.projectView.MPSTreeStructureProvider"/> <usageGroupingRuleProvider implementation="jetbrains.mps.idea.core.usages.rules.MPSUsageGroupingRuleProviderImpl"/> <errorHandler implementation="jetbrains.mps.ide.blame.CharismaReporter"/> <renameHandler implementation="jetbrains.mps.idea.core.refactoring.ModelRenameHandler"/> <renameHandler implementation="jetbrains.mps.idea.core.refactoring.MPSRenameRefactoringHandler"/> <vetoRenameCondition implementation="jetbrains.mps.idea.core.refactoring.MPSVetoRenameCondition"/> <refactoring.moveHandler implementation="jetbrains.mps.idea.core.refactoring.MPSMoveHandlerDelegate" order="first"/> <!-- isn't first a bit too much --> <!-- FIXME: mps-editor-api.jar doesn't look good in jps classpath --> <!-- FIXME: added mps-platform.jar to avoid NoClassDefFound for VisibilityUtil from baseLanguage.search 2 things should happen 1) baseLanguage.search separated into its own jar, as we shouldn't need mps-platform here 2) this jar should ideally go from this mps-core/plugin.xml to mps-java/plugin.xml It doesn't work currently (NoClassDef still occurs) most likely due to the fact that baseLanguage is part of mps-core not mps-java, so its generator works in the core jps plugin's classloader. Ideally baseLanguage must be part of mps-java --> <!-- IMPORTANT keep it in sync with build.xml runTests target, otherwise jps tests fill fail --> <compileServer.plugin classpath="jps/mps-core-jps-plugin.jar;jps/mps-core-jps-plugin-j8.jar;mps-common.jar;mpsant/mps-tool.jar;mps-core.jar;mps-references.jar;mps-openapi.jar;mps-collections.jar;mps-closures.jar;mps-tuples.jar;mps-editor-api.jar;mps-platform.jar;mps-behavior-api.jar;mps-behavior-runtime.jar;mps-boot-util.jar;mps-annotations.jar;mps-project-check.jar;mps-generator.jar;mps-textgen.jar;mps-persistence.jar;mps-constraints-runtime.jar;mps-context.jar;mps-feedback-api.jar;mps-messages-api.jar;mps-problem.jar;mps-messages-for-rules.jar;mps-messages-for-structure.jar;mps-messages-for-legacy-constraints.jar;mps-scripts-rt.jar"/> <buildProcess.parametersProvider implementation="jetbrains.mps.idea.build.MPSBuildProcessParametersProvider"/> <library.type implementation="jetbrains.mps.idea.core.library.ModuleLibraryType"/> <projectConfigurable parentId="preferences.sourceCode" displayName="MPS" instance="jetbrains.mps.ide.codeStyle.CodeStyleSettingsConfigurable" order="first"/> <projectConfigurable parentId="project.propCompiler" displayName="MPS Java Compiler" instance="jetbrains.mps.ide.compiler.CompilerSettingsConfigurable" nonDefaultProject="true"/> <lang.fileViewProviderFactory language="MPS" implementationClass="jetbrains.mps.idea.core.psi.impl.file.MPSFileViewProviderFactory"/> <analyzeStacktraceFilter implementation="jetbrains.mps.ide.platform.actions.MPSStackTraceFilter" order="first"/> <navbar implementation="jetbrains.mps.idea.core.navbar.MPSNavBarExtension" id="MPSNavbar"/> <lang.parserDefinition language="MPS" implementationClass="jetbrains.mps.idea.core.fileType.MPSParserDefinition"/> <getDataRule key="MPS_SModel" implementationClass="jetbrains.mps.idea.core.data.ModelDataRule"/> <getDataRule key="MPS_SModel_List" implementationClass="jetbrains.mps.idea.core.data.ModelsDataRule"/> <projectService serviceInterface="com.intellij.psi.search.ProjectScopeBuilder" serviceImplementation="jetbrains.mps.idea.core.project.MPSProjectScopeBuilder" overrides="true"/> <fileEditorProvider implementation="jetbrains.mps.idea.core.editor.ModelFileToRootDispatchingEditorProvider"/> <gotoClassContributor implementation="jetbrains.mps.idea.core.navigation.MPSIdeaGotoClassContributor"/> <projectService serviceImplementation="jetbrains.mps.ide.make.MakeServiceConfiguration"/> <applicationService serviceImplementation="jetbrains.mps.ide.projectView.ProjectViewSelectInProvider"/> <applicationService serviceImplementation="jetbrains.mps.ide.platform.watching.FileSystemListenersContainer"/> <projectService serviceImplementation="jetbrains.mps.idea.core.project.stubs.MultipleSdkProblemNotifier" /> <notificationGroup id="MPS facet" displayType="BALLOON" isLogByDefault="false"/> <projectService serviceImplementation="jetbrains.mps.idea.core.psi.impl.PsiModelReloadListener" /> <getDataRule key="psi.Element" implementationClass="jetbrains.mps.idea.core.psi.impl.MPSPsiElementDataRule" type="context"/> <projectService serviceImplementation="jetbrains.mps.idea.core.psi.impl.MPSPsiProvider" /> </extensions> <extensions defaultExtensionNs="jetbrains.mps"> <NodeEditorFactory implementation="jetbrains.mps.idea.core.editor.IdeaMPSEditorOpenHandler"/> </extensions> <actions> <action id="test.modelRepository" class="jetbrains.mps.idea.core.actions.TestRepository" description="Test MPS model repository"> <add-to-group group-id="ToolsMenu" relative-to-action="GenerateJavadoc" anchor="after"/> </action> <action id="jetbrains.mps.idea.core.actions.MarkModelRootAction" class="jetbrains.mps.idea.core.actions.MarkModelRootAction"> <add-to-group group-id="MarkRootGroup"/> </action> <action id="jetbrains.mps.idea.core.actions.UnmarkModelRootAction" class="jetbrains.mps.idea.core.actions.UnmarkModelRootAction"> <add-to-group group-id="MarkRootGroup"/> </action> <action id="jetbrains.mps.idea.core.actions.AddMissingDependencyAction" class="jetbrains.mps.idea.core.actions.AddMissingDependencyAction"> <add-to-group group-id="jetbrains.mps.ide.editor.actions.ActionsAsIntentions_ActionGroup"/> </action> <!--This action should be moved to MPSCore.xml as soon as we use Idea Project Tree in IDE--> <action id="jetbrains.mps.workbench.goTo.GoToModelPlatformAction" class="jetbrains.mps.workbench.goTo.GoToModelPlatformAction" text="MPS Model..."> <add-to-group group-id="GoToMenu" anchor="first"/> <keyboard-shortcut first-keystroke="ctrl alt shift M" keymap="$default"/> </action> <action id="jetbrains.mps.idea.core.actions.GoToMpsStubs" class="jetbrains.mps.idea.core.actions.GoToMpsStubs" text="MPS Stub"> <add-to-group group-id="jetbrains.mps.ide.editor.actions.GoToEditorPopupAddition_ActionGroup" anchor="first"/> <keyboard-shortcut first-keystroke="ctrl shift B" keymap="$default" /> </action> <group id="jetbrains.mps.NewGroup"> <add-to-group group-id="NewGroup" anchor="first"/> <action id="jetbrains.mps.idea.core.actions.NewRootAction" class="jetbrains.mps.idea.core.actions.NewRootAction"/> <action id="jetbrains.mps.idea.core.actions.NewModelAction" class="jetbrains.mps.idea.core.actions.NewModelAction"/> <action id="jetbrains.mps.idea.core.actions.MakeDirAModel" class="jetbrains.mps.idea.core.actions.MakeDirAModel"/> </group> </actions> </idea-plugin>