From b410c3ed9529d94211ace62f3bbe2ee21c0de2ea Mon Sep 17 00:00:00 2001
From: runner
TeamCity
the agent's Docker image.
About ten agents are available for running builds simultaneously. They are hosted at multiple different locations (in server rooms and the cloud). The agents are running Linux, except one agent, which is running Windows 10, and one is running Mac OS X.
This section is outdated, Docker is not used anymore.
++
JetBrains are also building MPS on Teamcity which can be reached via https://teamcity.jetbrains.com/project/MPS?mode=builds#all-projects ⧉. They provide downloadable artifacts, installers and have tests for different subsystems such as the typesystem, generation and also for some MPS platforms such as MPS-Extensions. All configurations starting from 2017.1 are available up to the latest MPS version which is the master branch.
@@ -1667,7 +1690,7 @@For a full list of Java features in general, visit: Java Versions and Features | marcobehler.com or A categorized list of all Java and JVM features since JDK 8 to 21 | Advanced Web Machinery ⧉
A function with Base Language code doesn't return anything when called.
@@ -2147,7 +2148,7 @@When there are many choices, a search functionality should be provided that works similarly to the code completion menu when a custom UI component is used. Similar choices can also be grouped (e.g., intentions menu ⧉ for grouping intentions).
+Where Can I find I list of available icons?
+All IntelliJ platform icons can be found in here. If you want to load icons programmatically, there are the classes MPSIcons and IdeIcons. Most icons are located in workbench/mps-icons/source ⧉.
+This section contains links to fundamental knowledge unrelated to MPS that is needed to understand the topic user experience.
@@ -1829,7 +1833,7 @@The project expression is available in tests, although you should only need it when invoking the generator or resolving nodes through the global repository.
val dataContext = DataManager.getInstance().getDataContext(toolWindow.component) -val project = MPSDataKeys.PROJECT.getData(dataContext) -val mpsProject = MPSDataKeys.MPS_PROJECT.getData(dataContext)
+If you need access to the project object, you can use a project plugin with an MPSProject instance in the init and dispose block. You can pass the instance to other classes as well. To get the IntelliJ project use ProjectHelper.toIdeaProject(project)
.
Some low-level code, like behaviors, are not supposed to start a command or interact with the UI (where some dialogs require the project/IDE frame). There's always a project for user-triggered actions, and this is the moment proper command access gets started and various UI stuff happens. It's wrong to invoke some behavior that would try to guess the project down the road. Typically, there also should not be a need to access the project in the generator.
+Some low-level code, like behaviors, are not supposed to start a command or interact with the UI (where some dialogs require the project/IDE frame). There's always a project for user-triggered actions, and this is the moment proper command access gets started and various UI stuff happens. It's wrong to invoke some behavior that would try to guess the project down the road. Typically, there also should not be a need to access the project in the generator. If you need to access it from the generator or TextGen, you can use:
+ProjectManager.getInstance().getOpenedProjects()
When you need to access the model from a different thread (concurrent access ⧉), it might be tempting to write the following code that doesn't work:
-