Skip to content

Commit 6ad036d

Browse files
Merge pull request #1522 from IETS3/feature/editor_customization
2 parents c32f3d1 + 7c469ef commit 6ad036d

File tree

44 files changed

+35385
-949
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+35385
-949
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,21 @@ The project does _not_ follow Semantic Versioning and the changes are documented
88
## November 2025
99

1010
### Added
11+
1112
- The Maven POM now contains all bundled JARs as dependencies with `provided` scope to help with automated license and
1213
vulnerability scanning.
1314

15+
- The Grammar Cells of KernelF editors can now be customized through the extension point `EditorCustomization`. Optional cells, flag cells, constant cells, substitute cells and side transformations can be customized (activation of substitutions, side transformations, description text, post-processing etc.).
1416

1517
### Fixed
18+
1619
- A bug was fixed that caused the editor of NumberLiteral to break if a property macro was used for its value.
1720
- Added missing support for IndexExpr for the operations findFirst and forEach.
1821

22+
### Improved
23+
24+
- Some editor action descriptions were improved.
25+
1926
## October 2025
2027

2128
### Added

code/languages/org.iets3.opensource/languages/org.iets3.analysis.logic.operator/models/org.iets3.analysis.logic.operator.editor.mps

Lines changed: 171 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
<imports>
1111
<import index="hm2y" ref="r:66e07cb4-a4b0-4bf3-a36d-5e9ed1ff1bd3(org.iets3.core.expr.base.structure)" />
1212
<import index="700h" ref="r:61b1de80-490d-4fee-8e95-b956503290e9(org.iets3.core.expr.collections.structure)" />
13-
<import index="5nv3" ref="r:fced0e72-e1f1-4417-91e3-2ac8660296a2(org.iets3.analysis.logic.operator.structure)" implicit="true" />
13+
<import index="oq0c" ref="r:6c6155f0-4bbe-4af5-8c26-244d570e21e4(org.iets3.core.expr.base.plugin)" />
14+
<import index="c17a" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.language(MPS.OpenAPI/)" />
15+
<import index="5nv3" ref="r:fced0e72-e1f1-4417-91e3-2ac8660296a2(org.iets3.analysis.logic.operator.structure)" />
1416
<import index="tpco" ref="r:00000000-0000-4000-0000-011c89590284(jetbrains.mps.lang.core.editor)" implicit="true" />
1517
<import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
1618
</imports>
@@ -27,6 +29,7 @@
2729
<concept id="1106270549637" name="jetbrains.mps.lang.editor.structure.CellLayout_Horizontal" flags="nn" index="2iRfu4" />
2830
<concept id="1237303669825" name="jetbrains.mps.lang.editor.structure.CellLayout_Indent" flags="nn" index="l2Vlx" />
2931
<concept id="709996738298806197" name="jetbrains.mps.lang.editor.structure.QueryFunction_SeparatorText" flags="in" index="2o9xnK" />
32+
<concept id="1142886811589" name="jetbrains.mps.lang.editor.structure.ConceptFunctionParameter_node" flags="nn" index="pncrf" />
3033
<concept id="1233148810477" name="jetbrains.mps.lang.editor.structure.InlineStyleDeclaration" flags="ng" index="tppnM" />
3134
<concept id="1080736578640" name="jetbrains.mps.lang.editor.structure.BaseEditorComponent" flags="ig" index="2wURMF">
3235
<child id="1080736633877" name="cellModel" index="2wV5jI" />
@@ -63,25 +66,75 @@
6366
</concept>
6467
</language>
6568
<language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
69+
<concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
70+
<concept id="1197027756228" name="jetbrains.mps.baseLanguage.structure.DotExpression" flags="nn" index="2OqwBi">
71+
<child id="1197027771414" name="operand" index="2Oq$k0" />
72+
<child id="1197027833540" name="operation" index="2OqNvi" />
73+
</concept>
6674
<concept id="1137021947720" name="jetbrains.mps.baseLanguage.structure.ConceptFunction" flags="in" index="2VMwT0">
6775
<child id="1137022507850" name="body" index="2VODD2" />
6876
</concept>
6977
<concept id="1070475926800" name="jetbrains.mps.baseLanguage.structure.StringLiteral" flags="nn" index="Xl_RD">
7078
<property id="1070475926801" name="value" index="Xl_RC" />
7179
</concept>
80+
<concept id="1081236700937" name="jetbrains.mps.baseLanguage.structure.StaticMethodCall" flags="nn" index="2YIFZM">
81+
<reference id="1144433194310" name="classConcept" index="1Pybhc" />
82+
</concept>
83+
<concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
84+
<child id="1068431790190" name="initializer" index="33vP2m" />
85+
</concept>
86+
<concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
87+
<reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
88+
</concept>
89+
<concept id="1225271177708" name="jetbrains.mps.baseLanguage.structure.StringType" flags="in" index="17QB3L" />
90+
<concept id="1225271408483" name="jetbrains.mps.baseLanguage.structure.IsNotEmptyOperation" flags="nn" index="17RvpY" />
91+
<concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
92+
<child id="5680397130376446158" name="type" index="1tU5fm" />
93+
</concept>
7294
<concept id="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
7395
<child id="1068580123156" name="expression" index="3clFbG" />
7496
</concept>
7597
<concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
7698
<child id="1068581517665" name="statement" index="3cqZAp" />
7799
</concept>
100+
<concept id="1068581242864" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" flags="nn" index="3cpWs8">
101+
<child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
102+
</concept>
103+
<concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
104+
<concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
105+
<reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
106+
<child id="1068499141038" name="actualArgument" index="37wK5m" />
107+
</concept>
108+
<concept id="1163668896201" name="jetbrains.mps.baseLanguage.structure.TernaryOperatorExpression" flags="nn" index="3K4zz7">
109+
<child id="1163668914799" name="condition" index="3K4Cdx" />
110+
<child id="1163668922816" name="ifTrue" index="3K4E3e" />
111+
<child id="1163668934364" name="ifFalse" index="3K4GZi" />
112+
</concept>
78113
</language>
79114
<language id="9d69e719-78c8-4286-90db-fb19c107d049" name="com.mbeddr.mpsutil.grammarcells">
115+
<concept id="1954385921685809440" name="com.mbeddr.mpsutil.grammarcells.structure.Parameter_node" flags="ng" index="313q4" />
116+
<concept id="1954385921685784800" name="com.mbeddr.mpsutil.grammarcells.structure.PostprocessFunction" flags="ig" index="315t4" />
117+
<concept id="9041925471455857605" name="com.mbeddr.mpsutil.grammarcells.structure.Cell_DescriptionText" flags="ig" index="uPpia" />
80118
<concept id="5083944728298846680" name="com.mbeddr.mpsutil.grammarcells.structure.OptionalCell" flags="ng" index="_tjkj">
119+
<child id="7011566904921631440" name="postprocess" index="vWNKz" />
81120
<child id="5083944728298846681" name="option" index="_tjki" />
82121
<child id="8945098465480008160" name="transformationText" index="ZWbT9" />
83122
</concept>
123+
<concept id="2489050352088028316" name="com.mbeddr.mpsutil.grammarcells.structure.Parameter_editorContext" flags="ng" index="2MNBq7" />
84124
<concept id="8945098465480383073" name="com.mbeddr.mpsutil.grammarcells.structure.OptionalCell_TransformationText" flags="ig" index="ZYGn8" />
125+
<concept id="848437706375087728" name="com.mbeddr.mpsutil.grammarcells.structure.ICanHaveDescriptionText" flags="ngI" index="1djCvD">
126+
<child id="848437706375087729" name="descriptionText" index="1djCvC" />
127+
</concept>
128+
<concept id="7463174232466930070" name="com.mbeddr.mpsutil.grammarcells.structure.Parameter_OriginalText" flags="ng" index="1oAbNU" />
129+
</language>
130+
<language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
131+
<concept id="2644386474301421077" name="jetbrains.mps.lang.smodel.structure.LinkIdRefExpression" flags="nn" index="359W_D">
132+
<reference id="2644386474301421078" name="conceptDeclaration" index="359W_E" />
133+
<reference id="2644386474301421079" name="linkDeclaration" index="359W_F" />
134+
</concept>
135+
<concept id="2644386474300074836" name="jetbrains.mps.lang.smodel.structure.ConceptIdRefExpression" flags="nn" index="35c_gC">
136+
<reference id="2644386474300074837" name="conceptDeclaration" index="35c_gD" />
137+
</concept>
85138
</language>
86139
<language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
87140
<concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
@@ -213,9 +266,123 @@
213266
</node>
214267
<node concept="ZYGn8" id="7yDflTqUOnr" role="ZWbT9">
215268
<node concept="3clFbS" id="7yDflTqUOns" role="2VODD2">
216-
<node concept="3clFbF" id="7yDflTqUOod" role="3cqZAp">
217-
<node concept="Xl_RD" id="7yDflTqUOoc" role="3clFbG">
218-
<property role="Xl_RC" value="&lt;" />
269+
<node concept="3cpWs8" id="60PTWgnKpsZ" role="3cqZAp">
270+
<node concept="3cpWsn" id="60PTWgnKpt0" role="3cpWs9">
271+
<property role="TrG5h" value="description" />
272+
<node concept="17QB3L" id="60PTWgnKpt1" role="1tU5fm" />
273+
<node concept="2OqwBi" id="60PTWgnKpt2" role="33vP2m">
274+
<node concept="2YIFZM" id="60PTWgnKpt3" role="2Oq$k0">
275+
<ref role="37wK5l" to="oq0c:4qv99IrBnzk" resolve="getConfig" />
276+
<ref role="1Pybhc" to="oq0c:4qv99IrBkzE" resolve="EditorCustomizationConfigHelper" />
277+
</node>
278+
<node concept="liA8E" id="60PTWgnKpt4" role="2OqNvi">
279+
<ref role="37wK5l" to="oq0c:60PTWgnKnol" resolve="getOptionalCellTransformationText" />
280+
<node concept="2YIFZM" id="60PTWgoxdpY" role="37wK5m">
281+
<ref role="37wK5l" to="oq0c:60PTWgovZKt" resolve="getIdentifier" />
282+
<ref role="1Pybhc" to="oq0c:4qv99IrBkzE" resolve="EditorCustomizationConfigHelper" />
283+
<node concept="35c_gC" id="60PTWgoxdRD" role="37wK5m">
284+
<ref role="35c_gD" to="5nv3:4QnbbAQNtj4" resolve="MultiPlus" />
285+
</node>
286+
<node concept="359W_D" id="60PTWgnKpt7" role="37wK5m">
287+
<ref role="359W_E" to="5nv3:4QnbbAQNtj4" resolve="MultiPlus" />
288+
<ref role="359W_F" to="700h:7yDflTqUOmT" resolve="typeConstraint" />
289+
</node>
290+
</node>
291+
<node concept="pncrf" id="60PTWgnKqg1" role="37wK5m" />
292+
<node concept="2MNBq7" id="60PTWgnKpta" role="37wK5m" />
293+
</node>
294+
</node>
295+
</node>
296+
</node>
297+
<node concept="3clFbF" id="60PTWgnKptb" role="3cqZAp">
298+
<node concept="3K4zz7" id="60PTWgnKptc" role="3clFbG">
299+
<node concept="37vLTw" id="60PTWgnKptd" role="3K4E3e">
300+
<ref role="3cqZAo" node="60PTWgnKpt0" resolve="description" />
301+
</node>
302+
<node concept="2OqwBi" id="60PTWgnKpte" role="3K4Cdx">
303+
<node concept="37vLTw" id="60PTWgnKptf" role="2Oq$k0">
304+
<ref role="3cqZAo" node="60PTWgnKpt0" resolve="description" />
305+
</node>
306+
<node concept="17RvpY" id="60PTWgnKptg" role="2OqNvi" />
307+
</node>
308+
<node concept="Xl_RD" id="7yDflTqUOoc" role="3K4GZi">
309+
<property role="Xl_RC" value="&lt;" />
310+
</node>
311+
</node>
312+
</node>
313+
</node>
314+
</node>
315+
<node concept="uPpia" id="60PTWgpidrq" role="1djCvC">
316+
<node concept="3clFbS" id="60PTWgpidrr" role="2VODD2">
317+
<node concept="3cpWs8" id="60PTWgpaieK" role="3cqZAp">
318+
<node concept="3cpWsn" id="60PTWgpaieL" role="3cpWs9">
319+
<property role="TrG5h" value="descriptiontext" />
320+
<node concept="17QB3L" id="60PTWgpaieM" role="1tU5fm" />
321+
<node concept="2OqwBi" id="60PTWgpaieN" role="33vP2m">
322+
<node concept="2YIFZM" id="60PTWgpaieO" role="2Oq$k0">
323+
<ref role="37wK5l" to="oq0c:4qv99IrBnzk" resolve="getConfig" />
324+
<ref role="1Pybhc" to="oq0c:4qv99IrBkzE" resolve="EditorCustomizationConfigHelper" />
325+
</node>
326+
<node concept="liA8E" id="60PTWgpaieP" role="2OqNvi">
327+
<ref role="37wK5l" to="oq0c:60PTWgnc5Jg" resolve="getOptionalCellDescriptionText" />
328+
<node concept="2YIFZM" id="60PTWgpaieQ" role="37wK5m">
329+
<ref role="37wK5l" to="oq0c:60PTWgovZKt" resolve="getIdentifier" />
330+
<ref role="1Pybhc" to="oq0c:4qv99IrBkzE" resolve="EditorCustomizationConfigHelper" />
331+
<node concept="35c_gC" id="60PTWgpig25" role="37wK5m">
332+
<ref role="35c_gD" to="5nv3:4QnbbAQNtj4" resolve="MultiPlus" />
333+
</node>
334+
<node concept="359W_D" id="60PTWgpifpX" role="37wK5m">
335+
<ref role="359W_E" to="5nv3:4QnbbAQNtj4" resolve="MultiPlus" />
336+
<ref role="359W_F" to="700h:7yDflTqUOmT" resolve="typeConstraint" />
337+
</node>
338+
</node>
339+
<node concept="313q4" id="60PTWgpieLN" role="37wK5m" />
340+
<node concept="1oAbNU" id="60PTWgpaieT" role="37wK5m" />
341+
<node concept="2MNBq7" id="60PTWgpaieU" role="37wK5m" />
342+
</node>
343+
</node>
344+
</node>
345+
</node>
346+
<node concept="3clFbF" id="60PTWgpaieV" role="3cqZAp">
347+
<node concept="3K4zz7" id="60PTWgpaieW" role="3clFbG">
348+
<node concept="37vLTw" id="60PTWgpaieX" role="3K4E3e">
349+
<ref role="3cqZAo" node="60PTWgpaieL" resolve="descriptiontext" />
350+
</node>
351+
<node concept="2OqwBi" id="60PTWgpaieY" role="3K4Cdx">
352+
<node concept="37vLTw" id="60PTWgpaieZ" role="2Oq$k0">
353+
<ref role="3cqZAo" node="60PTWgpaieL" resolve="descriptiontext" />
354+
</node>
355+
<node concept="17RvpY" id="60PTWgpaif0" role="2OqNvi" />
356+
</node>
357+
<node concept="1oAbNU" id="60PTWgpaif1" role="3K4GZi" />
358+
</node>
359+
</node>
360+
</node>
361+
</node>
362+
<node concept="315t4" id="60PTWgpuKe_" role="vWNKz">
363+
<node concept="3clFbS" id="60PTWgpuKeA" role="2VODD2">
364+
<node concept="3clFbF" id="60PTWgpuKeG" role="3cqZAp">
365+
<node concept="2OqwBi" id="60PTWgpuEPD" role="3clFbG">
366+
<node concept="2YIFZM" id="60PTWgpuEPE" role="2Oq$k0">
367+
<ref role="37wK5l" to="oq0c:4qv99IrBnzk" resolve="getConfig" />
368+
<ref role="1Pybhc" to="oq0c:4qv99IrBkzE" resolve="EditorCustomizationConfigHelper" />
369+
</node>
370+
<node concept="liA8E" id="60PTWgpuEPF" role="2OqNvi">
371+
<ref role="37wK5l" to="oq0c:60PTWgpu75o" resolve="postProcessOptionalCell" />
372+
<node concept="2YIFZM" id="60PTWgpuEPG" role="37wK5m">
373+
<ref role="37wK5l" to="oq0c:60PTWgovZKt" resolve="getIdentifier" />
374+
<ref role="1Pybhc" to="oq0c:4qv99IrBkzE" resolve="EditorCustomizationConfigHelper" />
375+
<node concept="35c_gC" id="60PTWgpwg6v" role="37wK5m">
376+
<ref role="35c_gD" to="5nv3:4QnbbAQNtj4" resolve="MultiPlus" />
377+
</node>
378+
<node concept="359W_D" id="60PTWgpwgbF" role="37wK5m">
379+
<ref role="359W_E" to="5nv3:4QnbbAQNtj4" resolve="MultiPlus" />
380+
<ref role="359W_F" to="700h:7yDflTqUOmT" resolve="typeConstraint" />
381+
</node>
382+
</node>
383+
<node concept="313q4" id="60PTWgpuEPJ" role="37wK5m" />
384+
<node concept="2MNBq7" id="60PTWgpuEPK" role="37wK5m" />
385+
</node>
219386
</node>
220387
</node>
221388
</node>

0 commit comments

Comments
 (0)