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>