MPS 2021.3 Help

Project tool window

This tool window lets you look at your project from various viewpoints and perform the tasks such as creating new items (nodes, models, modules, and so on), opening nodes or files in the editor, navigating to the code fragment of interest, and more.

Most of the functions in this tool window are accessed as context menu commands in the content pane and via associated shortcuts.

Also, the view contains the Scratches and Consoles folder that lets you manage created scratch files, database consoles, and extension scripts.

Views

The tool window has several views:

  • Logical View. In this view, all the project nodes are shown organized logically into their containing modules, models and virtual folders.

  • File System. In this view, all the project files are shown organized by their physical location on the directory structure.

To switch between views, press Alt+Right/Alt+Left or select the desired view from the list on the title bar. You can also display each view in a separate tab: click Settings and disable the Group Tabs option.

To configure a view, use the corresponding options in the title bar context menu. The necessary options can also be accessed by clicking Settings on the title bar.

Preview files

There are two ways to preview files without opening each one in a separate tab:

  • Use the file preview popup — select a file in the Project tool window and press Space.

  • Enable the preview tab — click the Show Options Menu button and select Enable Preview Tab.

Show tree indent guides

In the Project tool window, you can display vertical lines that mark indent levels and help you better understand the hierarchy of the components in your project. To display these lines, enable Show tree indent guides on the Appearance and Behavior | Appearance page of the IDE settings Ctrl+Alt+S.

Title bar context menu

The context menu that appears by right-clicking the title bar or clicking Settings, provides settings for project views.

The following table lists and briefly explains the available commands and options.

Item

Shortcut

Description

Show Members

If this option is on, the nodes in the tree, when unfolded, will show the contained children, properties and references.

Folders Always on Top

If the option is on, virtual folders are shown above the root nodes. Otherwise, all items are sorted alphabetically, and root nodes and virtual folders appear intermixed.

Sort Roots by Concept

Root nodes of the same concept will be grouped together inside a model.

Show @descriptor models in Generators

These models are normally hidded. This option makes them visible in the tree.

Group Tabs

If this option is on, there is a list in the left-hand part of the title bar from which you can select the necessary view.

If this option is off, the views are represented by tabs which appear in the left-hand part of the title bar.

show views as tabs

View Mode

This option lets you control general appearance and behavior of the tool window.

Move to

To associate the tool window with a different tool window bar, select this command, and then select the destination tool window bar (Top, Left, Bottom or Right).

Resize

To resize the tool window by moving one of its borders, select this command, and then select the necessary Stretch to option.

Note that this command is not available for the floating mode.

Remove from Sidebar

This command hides the tool window, removes the button for showing and hiding the tool window and removes the tool window from the quick access menu (tb shown or tb hidden).

To open the tool window again (and restore the associated features), use the main menu: View | Tool Windows | <Window Name> or press Alt+1.

Hide

Shift+Escape

Hide the tool window.

Help

This command opens the description of the Project tool window in the MPS online help.

Title bar buttons

Item

Shortcut

Description

Select Opened File

Click this icon to navigate from a node open in the editor to the containing root node in the Project tool window.

This icon is not available if the Always Select Opened File option is currently on.

collapse all

Ctrl+NumPad -

Collapse all the nodes.

settings

Use this button to open a menu whose options are a subset of the title bar context menu.

Hide tool window

Shift+Escape

Hide the tool window Shift+Escape.

To hide all the tool windows, press Ctrl+Shift+F12.

Context menu commands for the content pane items

The context menu of an item provides access to all the functions available for this item.

Item

Available on

Description

New

Project root

Use this command to create new modules in the project.

Make Project

Project root

Makes all modified modules in the project.

Rebuild Project

Project root

Rebuilds all modules in the project.

Rename Project...

Project root

Allows you to rename the project.

Check Project

Project root

Runs a model checker against all modules.

Optimize Imports

Project root

Automatically removes imports that are not necessary.

Fix Module Imports

Project root

Automatically adds imports of modules that are missing.

Compile Java Files

Project root

Compiles Java sources that have changed.

Recompile Java Files

Project root

Re-compiles all Java sources.

Clean Compiled Java Files

Project root

Removes all compiled Java code.

Run 'All Tests in Project'

Project root

Collects all tests in the project and runs them.

Debug 'All Tests in Project'

Project root

Collects all tests in the project and runs them in a debugger.

Create 'All Tests in Project'

Project root

Creates a run configuration for running all tests in the project.

Project Modules

Project root

Allows you to add or remove modules to the project.

New

A Folder of Modules

Allows you to create new modules in the folder.

Make Selected Modules

A Folder of Modules

Allows you to make the modified modules in the folder.

Rebuild Selected Modules

A Folder of Modules

Allows you to rebuild the modules in the folder.

Rename

A Folder of Modules

Renames the folder.

Check Selected Modules

A Folder of Modules

Runs a model checker against the selected modules.

New

Module

Allows you to create new models in the module.

Make

Module

Allows you to make the modified models in the module.

Rebuild

Module

Allows you to rebuild all models in the module.

Check

Module

Runs a model checker against the module.

Optimize Imports

Module

Removes unused imports from the module.

Analyze

Module

Allows you to analyze the structure and dependencies of the module.

Delete

Module

Deletes the module from the project and optionally also from disk.

Copy Module Name

Module

Copies the module name into the clipboard.

Set Virtual Folder

Module

Allows you to organize modules into virtual folders. For hierarchical names use names with dots.

Rename

Module

Allows you to rename the module.

Clone

Module

Creates a clone of the module.

Scripts

Module

Allows you to run arbitrary automated scripts against the code in that module.

Compile Java Files

Module

Compiles Java sources in the module that have changed.

Recompile Java Files

Module

Re-compiles all Java sources in the module.

Clean Compiled Java Files

Module

Removes all compiled Java code from the module.

Local History

Module

Allows you to view, compare and store items in the local history of the module.

Git

Module

Allows you to trigger Git commands on items belonging to the module.

Run 'Tests in ...'

Module

Collects all tests in the module and runs them.

Debug 'Tests in ...'

Module

Collects all tests in the module and runs them in a debugger.

Create 'Tests in ...'

Module

Creates a run configuration for running all tests in the module.

Find Usages

Module

Allows you to search for usages of code of the module.

Find Concepts Usages

Module

Allows you to search for instances of concepts defined in the module (only applicable to languages).

Module Properties

Module

Allows you to view and change dependencies and properties of the module.

Check

DevKit

Runs a model checker against the DevKit.

Analyze Classpath

DevKit

Allows you to analyze classpath as it is set for the DevKit.

Delete DevKit...

DevKit

Deletes the DevKit.

Copy Module Name

DevKit

Copies the module name into the clipboard.

Set Virtual Folder

DevKit

Allows you to organize modules into virtual folders. For hierarchical names use names with dots.

Rename DevKit

DevKit

Allows you to rename the DevKit.

Find Usages

DevKit

Allows you to search for usages of code of the DevKit.

Module Properties

DevKit

Allows you to view and change dependencies and properties of the DevKit, including the included solutions and languages.

New

Model

Allows you to create new root nodes in the model.

Make Model

Model

Allows you to make the model if it has changed.

Rebuild Model

Model

Allows you to unconditionally rebuild all nodes in the model.

Preview Generated Text

Model

Allows you to see the code that gets generated for the nodes in the model.

Show Generation Plan

Model

Allows you to inspect the generation plan outrlined by the generator for the model..

Paste

Model

Pastes a root node into the model from the clipboard.

Paste as Java Class

Model

Pastes a root node of ClassConcept into the model using the text from the clipboard as a Java source.

Get Model Contents from Source

Model

Import a Java package as MPS model with BaseLanguage code.

Resolve Stub References to MPS Code

Model

Re-resolve references to point to a newly imported BaseLanguage code instead of to stub models.

Delete Model

Model

Deletes the model from the module.

Safe Delete Model

Model

Deletes the model from the module. If there are some usages of that model present in other models, the user is prompted to review those before deleting the model.

Clone Model

Model

Creates a clone of the model.

Copy Model Name

Model

Copies the model name into the clipboard.

Optimize Imports

Model

Removes unused imports from the model.

Fix Model Imports

Model

Add imports that are missing from the model.

Convert to File-Per-Root format

Model

Changes the persistence format of the model from File-per-model to File-per-root.

Analyze Model Dependencies

Model

Allows you to analyze the dependencies of the model and locate them in the code.

Check Model

Model

Runs a model checker against the model.

Find Usages

Model

Allows you to search for usages of code of the model.

Refactoring

Model

Groups actions that can rename or move the model.

Revert Memory Changes

Model

Allows you to revert back to the version of the model that is stored on disk.

Show Differences with Model on Disk

Model

Allows you to view the differences in code between the memory and the disk versions.

Local History

Model

Allows you to view, compare and store items in the local history of the model.

Git

Model

Allows you to trigger Git commands on items belonging to the model.

Scripts

Model

Allows you to run arbitrary automated scripts against the code in the model.

Run 'Tests in ...'

Model

Collects all tests in the model and runs them.

Debug 'Tests in ...'

Model

Collects all tests in the model and runs them in a debugger.

Create 'Tests in ...'

Model

Creates a run configuration for running all tests in the model.

Help

Model

Shows a help entry for the model, if available.

Model Properties

Model

Allows you to view and change dependencies and properties of the model.

New

Virtual Folder

Allows you to create new nodes in that virtual folder.

Paste

Virtual Folder

Allows you to paste nodes into that virtual folder.

Rename

Virtual Folder

Allows you to rename a virtual folder.

Preview Generated Text

Node

Allows you to see the code that gets generated for the selected node.

Set Virtual Package

Node

Allows you to set a dot-separated string that specifies a virtual folder for the selected nodes.

Expand All

Node

Fully expands all nodes inside the selected root node. This option has no effect if Show Members setting for the Project Tool Window is not selected.

Copy

Node

Use this command to copy the selected node or nodes to the clipboard.

Paste

Node

Use this command to paste a node or nodes from the clipboard into the model.

Cut

Node

Use this command to cut the selected node or nodes to the clipboard.

Copy Reference

Node

Use this command to copy a newly created reference to the selected node or nodes to the clipboard.

Copy Node FQName

Node

Use this command to copy the fully qualified name of the selected node to the clipboard.

Copy Node Reference as URL

Node

Use this command to copy a reference to the selected node as URL to the clipboard. The URL will resolve in a browser to a HTTP request that points to the localhost server running inside MPS. The internal server will return an html-formatted presentation of the original node.

Delete

Node

Deletes the node from the model.

Safe Delete

Node

Deletes the node from the model. If there are some usages of that node present in some models, the user is prompted to review those before deleting the node.

Clone Root

Node

Creates a clone of the root node in the same model.

Show Node in Explorer

Node

Opens the Node Explorer tool window, which shows the tree representing the node.

Language Debug

Node

Groups other functionality, typically used when exploring or debugging language definitions.

Find Usages

Node

Allows you to search for usages of node.

Find Usages Settings

Node

Pops up a dialog that allows you to configure the search for usages.

Refactoring

Node

Groups actions that can rename or move the node.

Show Help for Node

Node

Shows a help entry for the node, if available.

Show Help for Root Node

Node

Shows a help entry for the root node, if available.

Root node status highlights

If VCS integration is enabled for the current project, MPS uses colors to denote VCS file status in the Project tool window.

You can configure VCS file status colors on the Version Control | File Status Colors page of the IDE settings Ctrl+Alt+S.

The table below lists default file status colors and their meanings in some of the color schemes.

Color

File Status

Description

Color sample: dark green #0A7700

Added

The file in the active changelist is scheduled for addition to the repository.

Color sample: green #0EAA00

Added in not active changelist

The file in an inactive changelist is scheduled for addition to the repository. This file status is available if the Highlight files from non-active changelists option is enabled in Settings/Preferences | Version Control | Changelists.

Color sample: red #FF0000

Changelist conflict

The file in an inactive changelist has been modified in the active changelist. In this case, a new dialog will open prompting you to resolve the changelist conflict. This file status is available if all options are enabled in Settings/Preferences | Version Control | Changelists.

Color sample: dark green #0A7700

Copied

If a file is a copy of another file, its metadata is tracked, and such a file is marked as copied.

Color sample: grey #616161

Deleted

The file is scheduled for deletion from the repository.

Color sample: dull purple #773895

Deleted from file system

The file has been deleted locally, but hasn't been scheduled for deletion, and it still exists in the repository.

Color sample: light grayish blue #8AA4C8

Have changed descendants

If a file is modified, the IDE will recursively highlight all directories containing that file. This status is available if the Highlight directories that contain modified files in the Project tree option is enabled in Settings/Preferences | Version Control | Confirmation.

Color sample: bright blue #3264B4

Have immediate changed children

If a file is modified, the IDE will highlight its parent directory. This status is available if the Highlight directories that contain modified files in the Project tree option is enabled in Settings/Preferences | Version Control | Confirmation.

Color sample: dark olive #727238

Ignored

A file is intentionally untracked by VCS.

Color sample: purple #7503DC

Merged

The file is merged by your VCS as a result of an update.

Color sample: red #FF0000

Merged with conflicts

During the last update, the file has been merged with conflicts.

Color sample: red #FF0000

Merged with property conflicts

During the last update, the IDE has detected differences between the properties of the local file and its server version.

Color sample: red #FF0000

Merged with text and property conflicts

Text and property conflicts happen when two or more developers modify the same lines of a file and the same file properties.

Color sample: bright navy #0032A0

Modified

The file has changed since the last synchronization.

Color sample: blue #0047E4

Modified in not active changelist

The file in an inactive changelist has been modified. This file status is available if the Highlight files from non-active changelists option is enabled in Settings/Preferences | Version Control | Changelists.

Color sample: Olive #7C7C00

Obsolete

The file should no longer be in your working copy of the repository.

Color sample: teal #007C7C

Renamed

Since the last update, the file has been renamed.

Color sample: dark cyan #08978F

Switched

[SVN] The file is taken from a different branch than the whole project.

Color sample: brown #993300

(Unknown) Unversioned

The file exists locally, but is not in the repository, and is not scheduled for addition.

Color sample: black None (default color)

Up to date

The file hasn't been changed.

Color

File Status

Description

Color sample: dull green #629755

Added

The file in the active changelist is scheduled for addition to the repository.

Color sample: dull green #629755

Added in not active changelist

The file in an inactive changelist is scheduled for addition to the repository. This file status is available if the Highlight files from non-active changelists option is enabled in Settings/Preferences | Version Control | Changelists.

Color sample: dull red #D5756C

Changelist conflict

The file in an inactive changelist has been modified in the active changelist. In this case, a new dialog will open prompting you to resolve the changelist conflict. This file status is available if all options are enabled in Settings/Preferences | Version Control | Changelists.

Color sample: green #0A7700

Copied

If a file is a copy of another file, its metadata is tracked, and such a file is marked as copied.

Color sample: grey #6C6C6C

Deleted

The file is scheduled for deletion from the repository.

Color sample: dull purple #6C6C6C

Deleted from file system

The file has been deleted locally, but hasn't been scheduled for deletion, and it still exists in the repository.

Color sample: light blue #6897BB

Have changed descendants

If a file is modified, the IDE will recursively highlight all directories containing that file. This status is available if the Highlight directories that contain modified files in the Project tree option is enabled in Settings/Preferences | Version Control | Confirmation.

Color sample: light blue #6897BB

Have immediate changed children

If a file is modified, the IDE will highlight its parent directory. This status is available if the Highlight directories that contain modified files in the Project tree option is enabled in Settings/Preferences | Version Control | Confirmation.

Color sample: light olive #848504

Ignored

A file is intentionally untracked by VCS.

Color sample: light purple #9876AA

Merged

The file is merged by your VCS as a result of an update.

Color sample: dull red #D5756C

Merged with conflicts

During the last update, the file has been merged with conflicts.

Color sample: dull red #D5756C

Merged with property conflicts

During the last update, the IDE has detected differences between the properties of the local file and its server version.

Color sample: dull red #D5756C

Merged with text and property conflicts

Text and property conflicts happen when two or more developers modify the same lines of a file and the same file properties.

Color sample: light blue #6897BB

Modified

The file has changed since the last synchronization.

Color sample: light blue #6897BB

Modified in not active changelist

The file in an inactive changelist has been modified. This file status is available if the Highlight files from non-active changelists option is enabled in Settings/Preferences | Version Control | Changelists.

Color sample: white None (default color)

Obsolete

The file should no longer be in your working copy of the repository.

Color sample: strong cyan #3A8484

Renamed

Since the last update, the file has been renamed.

Color sample: white None (default color)

Switched

[SVN] The file is taken from a different branch than the whole project.

Color sample: soft red #D1675A

(Unknown) Unversioned

The file exists locally, but is not in the repository, and is not scheduled for addition.

Color sample: white None (default color)

Up to date

The file hasn't been changed.

Color

File Status

Description

Color sample: green #62CC47

Added

The file in the active changelist is scheduled for addition to the repository.

Color sample: green #62CC47

Added in not active changelist

The file in an inactive changelist is scheduled for addition to the repository. This file status is available if the Highlight files from non-active changelists option is enabled in Settings/Preferences | Version Control | Changelists.

Color sample: dull red #FF6666

Changelist conflict

The file in an inactive changelist has been modified in the active changelist. In this case, a new dialog will open prompting you to resolve the changelist conflict. This file status is available if all options are enabled in Settings/Preferences | Version Control | Changelists.

Color sample: green #62CC47

Copied

If a file is a copy of another file, its metadata is tracked, and such a file is marked as copied.

Color sample: orange #ED864A

Deleted

The file is scheduled for deletion from the repository.

Color sample: orange #ED864A

Deleted from file system

The file has been deleted locally, but hasn't been scheduled for deletion, and it still exists in the repository.

Color sample: vivid cyan #4FF0FF

Have changed descendants

If a file is modified, the IDE will recursively highlight all directories containing that file. This status is available if the Highlight directories that contain modified files in the Project tree option is enabled in Settings/Preferences | Version Control | Confirmation.

Color sample: vivid cyan #4FF0FF

Have immediate changed children

If a file is modified, the IDE will highlight its parent directory. This status is available if the Highlight directories that contain modified files in the Project tree option is enabled in Settings/Preferences | Version Control | Confirmation.

Color sample: light olive #A9B837

Ignored

A file is intentionally untracked by VCS.

Color sample: light purple #ED94FF

Merged

The file is merged by your VCS as a result of an update.

Color sample: dull red #FF6666

Merged with conflicts

During the last update, the file has been merged with conflicts.

Color sample: dull red #FF6666

Merged with property conflicts

During the last update, the IDE has detected differences between the properties of the local file and its server version.

Color sample: dull red #FF6666

Merged with text and property conflicts

Text and property conflicts happen when two or more developers modify the same lines of a file and the same file properties.

Color sample: vivid cyan #4FF0FF

Modified

The file has changed since the last synchronization.

Color sample: vivid cyan #4FF0FF

Modified in not active changelist

The file in an inactive changelist has been modified. This file status is available if the Highlight files from non-active changelists option is enabled in Settings/Preferences | Version Control | Changelists.

Color sample: white None (default color)

Obsolete

The file should no longer be in your working copy of the repository.

Color sample: vivid cyan #4FF0FF

Renamed

Since the last update, the file has been renamed.

Color sample: white None (default color)

Switched

[SVN] The file is taken from a different branch than the whole project.

Color sample: soft red D1675A

(Unknown) Unversioned

The file exists locally, but is not in the repository, and is not scheduled for addition.

Color sample: white None (default color)

Up to date

The file hasn't been changed.

Last modified: 12 January 2022