workbench/mps-editor/source/META-INF/MPSEditor.xml (70 lines of code) (raw):

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <idea-plugin> <applicationListeners> <listener class="jetbrains.mps.nodeEditor.EditorSettingsUISettingsListener" topic="com.intellij.ide.ui.UISettingsListener"/> </applicationListeners> <extensionPoints> <extensionPoint qualifiedName="jetbrains.mps.NodeEditorFactory" area="IDEA_PROJECT" interface="jetbrains.mps.ide.editor.NodeEditorFactory"/> <extensionPoint qualifiedName="jetbrains.mps.nodeStructureViewProvider" interface="jetbrains.mps.ide.editor.NodeStructureViewProvider"/> <extensionPoint qualifiedName="com.intellij.mps.editorWarningsProvider" interface="jetbrains.mps.ide.editor.warningPanel.EditorWarningsProvider"/> <extensionPoint qualifiedName="com.intellij.mps.IntentionActionsProvider" interface="jetbrains.mps.nodeEditor.IntentionActionsProvider"/> <extensionPoint qualifiedName="jetbrains.mps.editor.highlighter.contributor" interface="jetbrains.mps.nodeEditor.HighlighterContribution" area="IDEA_PROJECT"/> </extensionPoints> <projectListeners> <listener class="jetbrains.mps.ide.editor.icons.NodeIconUpdater" topic="jetbrains.mps.nodefs.NodeFileEventListener" activeInHeadlessMode="false"/> <!-- next 2 listeners work together with MPSEditorWarningsManager project service, registered below --> <listener class="jetbrains.mps.ide.editor.warningPanel.MPSEditorWarningsManager$EditorManagerListener" topic="com.intellij.openapi.fileEditor.FileEditorManagerListener" activeInHeadlessMode="false" activeInTestMode="false" /> <listener class="jetbrains.mps.ide.editor.warningPanel.MPSEditorWarningsManager$FileStatusListener" topic="com.intellij.openapi.vcs.FileStatusListener" activeInHeadlessMode="false" activeInTestMode="false" /> </projectListeners> <extensions defaultExtensionNs="com.intellij"> <!-- requested by FileBasedIndexImpl, so, to make start-up more flat, also preload --> <applicationService serviceInterface="com.intellij.openapi.fileEditor.FileDocumentManager" overrides="true" preload="true" serviceImplementation="jetbrains.mps.ide.editor.MPSFileDocumentManagerImpl"/> <applicationService serviceImplementation="jetbrains.mps.nodeEditor.EditorSettings"/> <applicationService serviceImplementation="jetbrains.mps.intentions.IntentionsManager"/> <applicationService serviceImplementation="jetbrains.mps.nodeEditor.documentation.MPSDocumentationManager"/> <applicationService serviceImplementation="jetbrains.mps.nodeEditor.cells.contextAssistant.ContextAssistantSettings"/> <projectService serviceImplementation="jetbrains.mps.nodeEditor.hintsSettings.ConceptEditorHintSettingsComponent" /> <projectService serviceImplementation="jetbrains.mps.ide.editor.EditorTrackService" /> <projectService serviceImplementation="jetbrains.mps.nodeEditor.documentation.MPSDocumentationToolWindowManager"/> <projectService serviceImplementation="jetbrains.mps.ide.editor.NodeEditorSModelChangeListener" preload="true"/> <projectService serviceInterface="jetbrains.mps.ide.search.SearchHistoryStorage" serviceImplementation="jetbrains.mps.nodeEditor.SearchHistoryComponent"/> <!-- works in conjunction with project listeners, above. --> <projectService serviceImplementation="jetbrains.mps.ide.editor.warningPanel.MPSEditorWarningsManager" /> <projectService serviceInterface="jetbrains.mps.nodeEditor.Highlighter" serviceImplementation="jetbrains.mps.nodeEditor.Highlighter" headlessImplementation="jetbrains.mps.nodeEditor.EmptyHighlighter"/> <!-- No idea if there's any reason to keep serviceInterface == serviceImplementation, just leave it as it was with project component --> <fileEditorProvider implementation="jetbrains.mps.ide.editor.MPSFileNodeEditorProvider"/> <fileIconProvider implementation="jetbrains.mps.ide.editor.icons.NodeFileIconProvider"/> <mps.editorWarningsProvider implementation="jetbrains.mps.ide.editor.warningPanel.TransientModelWarningsProvider"/> <mps.editorWarningsProvider implementation="jetbrains.mps.ide.editor.warningPanel.PackagedModelWarningsProvider"/> <mps.editorWarningsProvider implementation="jetbrains.mps.ide.editor.warningPanel.ModelProblemsProvider"/> <mps.editorWarningsProvider implementation="jetbrains.mps.ide.editor.warningPanel.UnresolvedModelImportsProvider"/> <customizableActionGroupProvider implementation="jetbrains.mps.ide.editor.MPSEditorCustomizableActionGroupProvider"/> <!--Editor--> <applicationConfigurable groupId="editor" groupWeight="200" instance="jetbrains.mps.nodeEditor.EditorSettingsConfigurable" bundle="jetbrains.mps.nodeEditor.resources.EditorSettingsBundle" key="title.editor.settings" id="mps.editor.settings" order="before preferences.editor"/> <!--Editor Hints--> <projectConfigurable groupId="editor" groupWeight="180" dynamic="true" instance="jetbrains.mps.nodeEditor.hintsSettings.ConceptEditorHintConfigurable" displayName="MPS Editor Hints" order="after preferences.sourceCode" nonDefaultProject="true"/> </extensions> <extensions defaultExtensionNs="jetbrains.mps"> <componentPluginFactory implementation="jetbrains.mps.ide.editor.MPSEditorPlugin$Factory"/> <editor.highlighter.contributor implementation="jetbrains.mps.ide.editor.MPSValidationComponent" /> </extensions> <actions> <action id="MPS.Editor.ShowIntentionMenu" class="com.intellij.openapi.actionSystem.EmptyAction" text="Show Intention Popup"> <keyboard-shortcut first-keystroke="alt ENTER" keymap="$default"/> </action> </actions> </idea-plugin>