Skip to content

Commit

Permalink
Merge pull request #704 from JetBrains/feature/statistics_collection
Browse files Browse the repository at this point in the history
Add a simple tool to list dependencies used in the project in a file
  • Loading branch information
HeikoBecker authored Dec 12, 2023
2 parents 69abea0 + 1497888 commit cc0a6c1
Show file tree
Hide file tree
Showing 12 changed files with 1,025 additions and 1 deletion.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,6 @@ scripts/.mps-caches

# Generated during the build
/kotlin-js-store/

# Generated by statistics plugin
code/dependencies.txt
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@ All notable changes to this project are documented in this file.
Format of the log is _loosely_ based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
The project does _not_ follow Semantic Versioning and the changes are documented in reverse chronological order, grouped by calendar month.

## December 2023
## Dezember 2023

### Added

- A new language `de.itemis.mps.statistics` was added that adds a new menu `MPS Statistics` to the `Tools` menu. The containing action writes a file `dependencies.txt` to the root folder. It contains all the used dependencies of the current project.
- de.slisson.mps.tables: tables now support a new property `column UI actions (experimental)`: This property adds actions to the MPS toolbar to add a new column above/below the current column or to delete the current column. These actions only work for simple tables that are based on rows (default: *false*).

## November 2023
Expand Down
1 change: 1 addition & 0 deletions code/.mps/modules.xml
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,7 @@
<modulePath path="$PROJECT_DIR$/solutions/de.itemis.model.merge.simple.demo/de.itemis.model.merge.simple.demo.msd" folder="modelmerger2" />
<modulePath path="$PROJECT_DIR$/solutions/de.itemis.model.merge.test.integration/de.itemis.model.merge.test.integration.msd" folder="modelmerger2" />
<modulePath path="$PROJECT_DIR$/solutions/de.itemis.model.merge.test/de.itemis.model.merge.test.msd" folder="modelmerger2" />
<modulePath path="$PROJECT_DIR$/statistics/de.itemis.mps.statistics.mpl" folder="statistics" />
<modulePath path="$PROJECT_DIR$/structurecheck/languages/de.slisson.mps.structurecheck/de.slisson.mps.structurecheck.mpl" folder="structurecheck" />
<modulePath path="$PROJECT_DIR$/structurecheck/solutions/de.slisson.mps.structurecheck.runtime/de.slisson.mps.structurecheck.runtime.msd" folder="structurecheck" />
<modulePath path="$PROJECT_DIR$/structurecheck/solutions/de.slisson.mps.structurecheck.sandbox/de.slisson.mps.structurecheck.sandbox.msd" folder="structurecheck" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13800,6 +13800,106 @@
</node>
</node>
</node>
<node concept="2G$12M" id="4bHoaiHvgTl" role="3989C9">
<property role="TrG5h" value="group.de.itemis.mps.statistics" />
<node concept="1E1JtD" id="4bHoaiHviN7" role="2G$12L">
<property role="BnDLt" value="true" />
<property role="TrG5h" value="de.itemis.mps.statistics" />
<property role="3LESm3" value="72570c50-58ae-43ff-a0b7-71d2b3908271" />
<node concept="398BVA" id="4bHoaiHvjIf" role="3LF7KH">
<ref role="398BVh" node="2fo8bJE$D4t" resolve="extensions.code" />
<node concept="2Ry0Ak" id="4bHoaiHvkfb" role="iGT6I">
<property role="2Ry0Am" value="statistics" />
<node concept="2Ry0Ak" id="4bHoaiHvkso" role="2Ry0An">
<property role="2Ry0Am" value="de.itemis.mps.statistics.mpl" />
</node>
</node>
</node>
<node concept="1SiIV0" id="4bHoaiHvl1t" role="3bR37C">
<node concept="3bR9La" id="4bHoaiHvl1u" role="1SiIV1">
<ref role="3bR37D" to="ffeo:1TaHNgiIbJb" resolve="MPS.Platform" />
</node>
</node>
<node concept="1BupzO" id="4bHoaiHvl1A" role="3bR31x">
<property role="3ZfqAx" value="models" />
<property role="1Hdu6h" value="true" />
<property role="1HemKv" value="true" />
<node concept="3LXTmp" id="4bHoaiHvl1B" role="1HemKq">
<node concept="398BVA" id="4bHoaiHvl1v" role="3LXTmr">
<ref role="398BVh" node="2fo8bJE$D4t" resolve="extensions.code" />
<node concept="2Ry0Ak" id="4bHoaiHvl1w" role="iGT6I">
<property role="2Ry0Am" value="statistics" />
<node concept="2Ry0Ak" id="4bHoaiHvl1x" role="2Ry0An">
<property role="2Ry0Am" value="models" />
</node>
</node>
</node>
<node concept="3qWCbU" id="4bHoaiHvl1C" role="3LXTna">
<property role="3qWCbO" value="**/*.mps, **/*.mpsr, **/.model" />
</node>
</node>
</node>
<node concept="1yeLz9" id="4bHoaiHvl1D" role="1TViLv">
<property role="TrG5h" value="de.itemis.mps.statistics.generator" />
<property role="3LESm3" value="6da50d99-f028-49bf-8b4c-bdb71ec99406" />
<node concept="1BupzO" id="4bHoaiHvl1N" role="3bR31x">
<property role="3ZfqAx" value="generator/templates" />
<property role="1Hdu6h" value="true" />
<property role="1HemKv" value="true" />
<node concept="3LXTmp" id="4bHoaiHvl1O" role="1HemKq">
<node concept="398BVA" id="4bHoaiHvl1E" role="3LXTmr">
<ref role="398BVh" node="2fo8bJE$D4t" resolve="extensions.code" />
<node concept="2Ry0Ak" id="4bHoaiHvl1F" role="iGT6I">
<property role="2Ry0Am" value="statistics" />
<node concept="2Ry0Ak" id="4bHoaiHvl1G" role="2Ry0An">
<property role="2Ry0Am" value="generator" />
<node concept="2Ry0Ak" id="4bHoaiHvl1H" role="2Ry0An">
<property role="2Ry0Am" value="templates" />
</node>
</node>
</node>
</node>
<node concept="3qWCbU" id="4bHoaiHvl1P" role="3LXTna">
<property role="3qWCbO" value="**/*.mps, **/*.mpsr, **/.model" />
</node>
</node>
</node>
</node>
</node>
</node>
<node concept="m$_wf" id="4bHoaiHvmsq" role="3989C9">
<property role="m$_wk" value="de.itemis.mps.statistics" />
<node concept="3_J27D" id="4bHoaiHvmss" role="m$_yQ">
<node concept="3Mxwew" id="4bHoaiHvo31" role="3MwsjC">
<property role="3MwjfP" value="MPS language dependency information" />
</node>
</node>
<node concept="3_J27D" id="4bHoaiHvmsu" role="m_cZH">
<node concept="3Mxwew" id="4bHoaiHvo33" role="3MwsjC">
<property role="3MwjfP" value="de.itemis.mps.statistics" />
</node>
</node>
<node concept="3_J27D" id="4bHoaiHvmsw" role="m$_w8">
<node concept="3Mxwey" id="4bHoaiHvomR" role="3MwsjC">
<ref role="3Mxwex" node="4MKCCgA1ncQ" resolve="versionNumber" />
</node>
</node>
<node concept="3_J27D" id="4bHoaiHvo9D" role="3s6cr7">
<node concept="3Mxwew" id="4bHoaiHvogh" role="3MwsjC">
<property role="3MwjfP" value="List used MPS dependencies in a txt file" />
</node>
</node>
<node concept="2iUeEo" id="4bHoaiHvoE_" role="2iVFfd">
<property role="2iUeEt" value="itemis AG" />
<property role="2iUeEu" value="https://www.itemis.com/en/it-services/methods-and-tools/mps" />
</node>
<node concept="m$f5U" id="4bHoaiHvpbr" role="m$_yh">
<ref role="m$f5T" node="4bHoaiHvgTl" resolve="group.de.itemis.mps.statistics" />
</node>
<node concept="m$_yC" id="4bHoaiHvqQ$" role="m$_yJ">
<ref role="m$_y1" to="ffeo:4k71ibbKLe8" resolve="jetbrains.mps.core" />
</node>
</node>
<node concept="2G$12M" id="2jlBy7bQlGk" role="3989C9">
<property role="TrG5h" value="group.treenotation" />
<node concept="1E1JtA" id="2jlBy7bQp6P" role="2G$12L">
Expand Down Expand Up @@ -14566,6 +14666,10 @@
<ref role="m_rDy" node="6lSuB9eYUwh" resolve="de.itemis.mps.editor.pagination" />
<node concept="pUk6x" id="6lSuB9eYZaj" role="pUk7w" />
</node>
<node concept="m$_wl" id="4bHoaiHvro9" role="39821P">
<ref role="m_rDy" node="4bHoaiHvmsq" resolve="de.itemis.mps.statistics" />
<node concept="pUk6x" id="4bHoaiHvrBL" role="pUk7w" />
</node>
</node>
</node>
<node concept="1l3spW" id="6$6tsX_CERA">
Expand Down
114 changes: 114 additions & 0 deletions code/statistics/de.itemis.mps.statistics.mpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
<?xml version="1.0" encoding="UTF-8"?>
<language namespace="de.itemis.mps.statistics" uuid="72570c50-58ae-43ff-a0b7-71d2b3908271" languageVersion="0" moduleVersion="0">
<models>
<modelRoot contentPath="${module}" type="default">
<sourceRoot location="models" />
</modelRoot>
</models>
<facets>
<facet type="java">
<classes generated="true" path="${module}/classes_gen" />
</facet>
</facets>
<accessoryModels />
<generators>
<generator alias="main" namespace="de.itemis.mps.statistics.generator" uuid="6da50d99-f028-49bf-8b4c-bdb71ec99406">
<models>
<modelRoot contentPath="${module}/generator" type="default">
<sourceRoot location="templates" />
</modelRoot>
</models>
<facets>
<facet type="java">
<classes generated="true" path="${module}/generator/classes_gen" />
</facet>
</facets>
<external-templates />
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
<language slang="l:fd392034-7849-419d-9071-12563d152375:jetbrains.mps.baseLanguage.closures" version="0" />
<language slang="l:83888646-71ce-4f1c-9c53-c54016f6ad4f:jetbrains.mps.baseLanguage.collections" version="1" />
<language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
<language slang="l:760a0a8c-eabb-4521-8bfd-65db761a9ba3:jetbrains.mps.baseLanguage.logging" version="0" />
<language slang="l:a247e09e-2435-45ba-b8d2-07e93feba96a:jetbrains.mps.baseLanguage.tuples" version="0" />
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="2" />
<language slang="l:b401a680-8325-4110-8fd3-84331ff25bef:jetbrains.mps.lang.generator" version="4" />
<language slang="l:d7706f63-9be2-479c-a3da-ae92af1e64d5:jetbrains.mps.lang.generator.generationContext" version="2" />
<language slang="l:289fcc83-6543-41e8-a5ca-768235715ce4:jetbrains.mps.lang.generator.generationParameters" version="0" />
<language slang="l:446c26eb-2b7b-4bf0-9b35-f83fa582753e:jetbrains.mps.lang.modelapi" version="0" />
<language slang="l:3a13115c-633c-4c5c-bbcc-75c4219e9555:jetbrains.mps.lang.quotation" version="5" />
<language slang="l:13744753-c81f-424a-9c1b-cf8943bf4e86:jetbrains.mps.lang.sharedConcepts" version="0" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="19" />
<language slang="l:c7fb639f-be78-4307-89b0-b5959c3fa8c8:jetbrains.mps.lang.text" version="0" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
</languageVersions>
<dependencyVersions>
<module reference="3f233e7f-b8a6-46d2-a57f-795d56775243(Annotations)" version="0" />
<module reference="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" version="0" />
<module reference="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" version="0" />
<module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
<module reference="72570c50-58ae-43ff-a0b7-71d2b3908271(de.itemis.mps.statistics)" version="0" />
<module reference="6da50d99-f028-49bf-8b4c-bdb71ec99406(de.itemis.mps.statistics.generator)" version="0" />
<module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
</dependencyVersions>
<mapping-priorities />
</generator>
</generators>
<sourcePath />
<dependencies>
<dependency reexport="false">742f6602-5a2f-4313-aa6e-ae1cd4ffdc61(MPS.Platform)</dependency>
</dependencies>
<languageVersions>
<language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
<language slang="l:443f4c36-fcf5-4eb6-9500-8d06ed259e3e:jetbrains.mps.baseLanguage.classifiers" version="0" />
<language slang="l:fd392034-7849-419d-9071-12563d152375:jetbrains.mps.baseLanguage.closures" version="0" />
<language slang="l:83888646-71ce-4f1c-9c53-c54016f6ad4f:jetbrains.mps.baseLanguage.collections" version="1" />
<language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
<language slang="l:760a0a8c-eabb-4521-8bfd-65db761a9ba3:jetbrains.mps.baseLanguage.logging" version="0" />
<language slang="l:a247e09e-2435-45ba-b8d2-07e93feba96a:jetbrains.mps.baseLanguage.tuples" version="0" />
<language slang="l:aee9cad2-acd4-4608-aef2-0004f6a1cdbd:jetbrains.mps.lang.actions" version="4" />
<language slang="l:f159adf4-3c93-40f9-9c5a-1f245a8697af:jetbrains.mps.lang.aspect" version="2" />
<language slang="l:af65afd8-f0dd-4942-87d9-63a55f2a9db1:jetbrains.mps.lang.behavior" version="2" />
<language slang="l:3f4bc5f5-c6c1-4a28-8b10-c83066ffa4a1:jetbrains.mps.lang.constraints" version="6" />
<language slang="l:e51810c5-7308-4642-bcb6-469e61b5dd18:jetbrains.mps.lang.constraints.msg.specification" version="0" />
<language slang="l:47257bf3-78d3-470b-89d9-8c3261a61d15:jetbrains.mps.lang.constraints.rules" version="0" />
<language slang="l:5dae8159-ab99-46bb-a40d-0cee30ee7018:jetbrains.mps.lang.constraints.rules.kinds" version="0" />
<language slang="l:134c38d4-e3af-4d9e-b069-1c7df0a4005d:jetbrains.mps.lang.constraints.rules.skeleton" version="0" />
<language slang="l:3ad5badc-1d9c-461c-b7b1-fa2fcd0a0ae7:jetbrains.mps.lang.context" version="0" />
<language slang="l:ea3159bf-f48e-4720-bde2-86dba75f0d34:jetbrains.mps.lang.context.defs" version="0" />
<language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="2" />
<language slang="l:f4ad079d-bc71-4ffb-9600-9328705cf998:jetbrains.mps.lang.descriptor" version="0" />
<language slang="l:18bc6592-03a6-4e29-a83a-7ff23bde13ba:jetbrains.mps.lang.editor" version="14" />
<language slang="l:ad93155d-79b2-4759-b10c-55123e763903:jetbrains.mps.lang.messages" version="0" />
<language slang="l:446c26eb-2b7b-4bf0-9b35-f83fa582753e:jetbrains.mps.lang.modelapi" version="0" />
<language slang="l:d4615e3b-d671-4ba9-af01-2b78369b0ba7:jetbrains.mps.lang.pattern" version="2" />
<language slang="l:28f9e497-3b42-4291-aeba-0a1039153ab1:jetbrains.mps.lang.plugin" version="5" />
<language slang="l:ef7bf5ac-d06c-4342-b11d-e42104eb9343:jetbrains.mps.lang.plugin.standalone" version="0" />
<language slang="l:3a13115c-633c-4c5c-bbcc-75c4219e9555:jetbrains.mps.lang.quotation" version="5" />
<language slang="l:982eb8df-2c96-4bd7-9963-11712ea622e5:jetbrains.mps.lang.resources" version="2" />
<language slang="l:b3551702-269c-4f05-ba61-58060cef4292:jetbrains.mps.lang.rulesAndMessages" version="0" />
<language slang="l:d8f591ec-4d86-4af2-9f92-a9e93c803ffa:jetbrains.mps.lang.scopes" version="0" />
<language slang="l:13744753-c81f-424a-9c1b-cf8943bf4e86:jetbrains.mps.lang.sharedConcepts" version="0" />
<language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="19" />
<language slang="l:c72da2b9-7cce-4447-8389-f407dc1158b7:jetbrains.mps.lang.structure" version="9" />
<language slang="l:c7fb639f-be78-4307-89b0-b5959c3fa8c8:jetbrains.mps.lang.text" version="0" />
<language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
<language slang="l:7a5dda62-9140-4668-ab76-d5ed1746f2b2:jetbrains.mps.lang.typesystem" version="5" />
<language slang="l:c9d137c4-3259-44f8-80ff-33ab2b506ee4:jetbrains.mps.lang.util.order" version="0" />
<language slang="l:696c1165-4a59-463b-bc5d-902caab85dd0:jetbrains.mps.make.facet" version="0" />
</languageVersions>
<dependencyVersions>
<module reference="3f233e7f-b8a6-46d2-a57f-795d56775243(Annotations)" version="0" />
<module reference="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" version="0" />
<module reference="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" version="0" />
<module reference="1ed103c3-3aa6-49b7-9c21-6765ee11f224(MPS.Editor)" version="0" />
<module reference="498d89d2-c2e9-11e2-ad49-6cf049e62fe5(MPS.IDEA)" version="0" />
<module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
<module reference="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61(MPS.Platform)" version="0" />
<module reference="72570c50-58ae-43ff-a0b7-71d2b3908271(de.itemis.mps.statistics)" version="0" />
<module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
<module reference="a9e4c532-c5f5-4bb7-99ef-42abb73bbb70(jetbrains.mps.lang.descriptor.aspects)" version="0" />
</dependencyVersions>
<extendedLanguages />
</language>

24 changes: 24 additions & 0 deletions ...statistics/generator/templates/[email protected]
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:4d1807ec-dae7-4b22-a4f5-b2ea8260b47f(de.itemis.mps.statistics.generator.templates@generator)">
<persistence version="9" />
<languages>
<devkit ref="a2eb3a43-fcc2-4200-80dc-c60110c4862d(jetbrains.mps.devkit.templates)" />
</languages>
<imports>
<import index="h45r" ref="r:efd1ffdb-47aa-4326-b09f-33ddd6d4726f(de.itemis.mps.statistics.structure)" />
</imports>
<registry>
<language id="b401a680-8325-4110-8fd3-84331ff25bef" name="jetbrains.mps.lang.generator">
<concept id="1095416546421" name="jetbrains.mps.lang.generator.structure.MappingConfiguration" flags="ig" index="bUwia" />
</language>
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
<property id="1169194664001" name="name" index="TrG5h" />
</concept>
</language>
</registry>
<node concept="bUwia" id="5Mtf2XriAiQ">
<property role="TrG5h" value="main" />
</node>
</model>

12 changes: 12 additions & 0 deletions code/statistics/models/de.itemis.mps.statistics.behavior.mps
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:5040915b-5b25-4a70-b0b0-4a7c77383988(de.itemis.mps.statistics.behavior)">
<persistence version="9" />
<languages>
<use id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel" version="19" />
<use id="af65afd8-f0dd-4942-87d9-63a55f2a9db1" name="jetbrains.mps.lang.behavior" version="2" />
<devkit ref="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
</languages>
<imports />
<registry />
</model>

19 changes: 19 additions & 0 deletions code/statistics/models/de.itemis.mps.statistics.constraints.mps
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<model ref="r:d4991840-2dae-4645-bc76-8372b4005cb5(de.itemis.mps.statistics.constraints)">
<persistence version="9" />
<languages>
<use id="5dae8159-ab99-46bb-a40d-0cee30ee7018" name="jetbrains.mps.lang.constraints.rules.kinds" version="0" />
<use id="ea3159bf-f48e-4720-bde2-86dba75f0d34" name="jetbrains.mps.lang.context.defs" version="0" />
<use id="e51810c5-7308-4642-bcb6-469e61b5dd18" name="jetbrains.mps.lang.constraints.msg.specification" version="0" />
<use id="134c38d4-e3af-4d9e-b069-1c7df0a4005d" name="jetbrains.mps.lang.constraints.rules.skeleton" version="0" />
<use id="b3551702-269c-4f05-ba61-58060cef4292" name="jetbrains.mps.lang.rulesAndMessages" version="0" />
<use id="3f4bc5f5-c6c1-4a28-8b10-c83066ffa4a1" name="jetbrains.mps.lang.constraints" version="6" />
<use id="13744753-c81f-424a-9c1b-cf8943bf4e86" name="jetbrains.mps.lang.sharedConcepts" version="0" />
<use id="3ad5badc-1d9c-461c-b7b1-fa2fcd0a0ae7" name="jetbrains.mps.lang.context" version="0" />
<use id="ad93155d-79b2-4759-b10c-55123e763903" name="jetbrains.mps.lang.messages" version="0" />
<devkit ref="00000000-0000-4000-0000-5604ebd4f22c(jetbrains.mps.devkit.aspect.constraints)" />
</languages>
<imports />
<registry />
</model>

Loading

0 comments on commit cc0a6c1

Please sign in to comment.