Skip to content

Extension Points

For a list of IntelliJ extensions, look at Extension Point and Listener List | IntelliJ SDK ⧉. The following table lists MPS extension points that use the IntelliJ mechanism.

Qualified name Interface Description
com.intellij.mps.VisibleModuleMask VisibleModuleMask ⧉ controls the visibility of MPS modules
com.intellij.mps.modelRootFactory ModelRootFactory ⧉ factory, which creates model roots
jetbrains.mps.nodeStructureViewProvider NodeStructureViewProvider ⧉ provider for the structure tool in the lower left corner
com.intellij.mps.editorWarningsProvider EditorWarningsProvider ⧉ provider for warnings that are shown above the editor (e.g., the node is in a read-only model)
mps.CodeNavigationProvider CodeNavigationProvider ⧉ opener for generated code files
mps.ModelValidator ModelValidator ⧉ validate a list of models
com.intellij.mps.modelRootEntry ModelRootEntry ⧉ UI entry in the module properties dialog corresponding to the specific model root
com.intellij.mps.facetTabFactory FacetTabEP ⧉ custom facets (e.g., ideaPlugin facet)
com.intellij.mps.modelTemplateProvider ModelTemplateProvider ⧉ create new models using a template
com.intellij.mps.renameRefactoringContributor RenameRefactoringContributor ⧉ contribution to the rename refactoring action
jetbrains.mps.debugger.PositionProvider PositionProvider ⧉ source position of current debugger line

The following sections are about MPS extension points ⧉.


Name Interface Description
GeneratorCache ⧉ GenerationCacheContainer ⧉ cache container for the generator
NodeRenamer ⧉ lambda ⧉ rename node action
HttpRequestHandlerEP ⧉ IHttpRequestHandlerFactory ⧉ handle requests to the HTTP server
MoveModelParticipantEP ⧉ MoveModelRefactoringParticipant ⧉ move model refactoring action
MoveNodeParticipantEP ⧉ MoveNodeRefactoringParticipant ⧉ move node refactoring action
PersistentRefactoringParticipantsEP ⧉ Iterable ⧉ refactoring action
RenameNodeParticipantEP ⧉ RenameNodeRefactoringParticipant ⧉ rename node action
MoveNodesActionEP ⧉ MoveNodesAction ⧉ move nodes action
customContainers ⧉ lambda ⧉ custom collection container
ActionIDs ⧉ List ⧉ action IDs for tests
LanguageAspectsEP ⧉ LanguageAspectDescriptor ⧉ automatic gen. language descriptors


Name Interface Description
CustomLayouts ⧉ LayoutFactory ⧉ custom layouts for the Java JUNG diagram language
ToolsSanityCheckerProvider ⧉ ToolsAvailabilityChecker ⧉ check if external tools are available
HttpRequestHandlers ⧉ IRequestHandler ⧉ handle requests to the HTTP server
ServletProvider ⧉ IServletProvider ⧉ the provider of the servlet
CCMenuExtensionsDescriptors ⧉ ICCMenuExtensionsDescriptor ⧉ code completion menu extension
customValueRenderer ⧉ CustomValueRenderer ⧉ renderer for custom values in the trace explorer
MULTILINGUAL_PROVIDERS ⧉ ILanguageProvider ⧉ language provider for multilingual
InterpreterExtensionPoint ⧉ IInterpreter ⧉ custom interpreter implementation
HttpServerConfigChangeListener ⧉ IHttpServerConfigChangeListener ⧉ listener for config changes of the HTTP server
TargetModifiers ⧉ ITargetCreationActionModifier ⧉ modify the target creation in the code completion menu
TargetSetupExtensions ⧉ ITargetSetupExtension ⧉ modify the target setup in the code completion menu
wizardExtensions ⧉ ExtensionProvider ⧉ add a step to a wizard
RichstringEvaluator ⧉ IRichstringEvaluator ⧉ evaluate a richstring


Name Interface Description
IdentityCalculators ⧉ IdentityCalculator ⧉ identity calculators for the model merger
GlobalDiagramMouseListener ⧉ MouseListener ⧉ mouse listeners for diagrams
diagramPaletteEntryProvider ⧉ IPaletteEntryExtensionProvider ⧉ entry provider for diagrams
diagramConnectionTypesProvider ⧉ IConnectionTypesExtensionProvider ⧉ connection types provider for diagrams
DragSelectionHandlerEP ⧉ IDragSelectionHandler ⧉ drag selection handler
ModelMergeExt ⧉ MergePolicySpec ⧉ merge policy specifications for model merger


Name Interface Description
recordIsComparable ⧉ RecordIsComparable ⧉ custom comparator for records
solverfactories ⧉ SolverTaskFactory ⧉ factory for creating solver tasks
primitiveTypeMapper ⧉ PrimitiveTypeMapper ⧉ basic methods of primitive KernelF types
constraintViolationHandler ⧉ ConstraintViolationHandler ⧉ handler for KernelF constraint violations
mutatorContributions ⧉ MutatorFactory ⧉ factory for creating mutators
runtimeResolverConfig ⧉ RuntimeResolverConfig ⧉ configuration for runtime resolver (e.g, functions resolving)
nameCompletionProvider ⧉ NameCompletionProvider ⧉ name completion provider for nodes of type INamedConcept + a prefix
identifierConfigurator ⧉ IdentifierConfigurator ⧉ configuration for identifiers (allow umlauts/paragraphs)
nixHandler ⧉ NixHandler ⧉ handler for empty ('nothing') values
mandatoryAttributesProviderEP ⧉ IMandatoryAttributesProvider ⧉ provider for mandatory attributes