Skip to content

Commit 4c2bdaf

Browse files
authored
Merge pull request #770 from IETS3/feature/sortable-enums
Enumerations can have an order
2 parents d2053d0 + e03a55d commit 4c2bdaf

File tree

13 files changed

+4283
-525
lines changed

13 files changed

+4283
-525
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ All notable changes to this project are documented in this file.
55
Format of the log is _loosely_ based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
66
The project does _not_ follow Semantic Versioning and the changes are documented in reverse chronological order, grouped by calendar month.
77

8+
## February 2024
9+
10+
### Added
11+
12+
- Enumerations can have an order by declaration, by literal or by value ascociated with the literal
13+
814
## January 2024
915

1016
### Changed

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.genjava.simpleTypes/generator/template/[email protected]

Lines changed: 61 additions & 104 deletions
Large diffs are not rendered by default.

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.genjava.toplevel/generator/template/[email protected]

Lines changed: 1260 additions & 347 deletions
Large diffs are not rendered by default.

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.toplevel/models/org/iets3/core/expr/toplevel/behavior.mps

Lines changed: 61 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4155,8 +4155,43 @@
41554155
<node concept="3Tm1VV" id="7k6A8WfrczT" role="1B3o_S" />
41564156
<node concept="3clFbS" id="7k6A8WfrczY" role="3clF47">
41574157
<node concept="3clFbF" id="7k6A8WfrdvE" role="3cqZAp">
4158-
<node concept="3clFbT" id="7k6A8WfrdvD" role="3clFbG">
4159-
<property role="3clFbU" value="true" />
4158+
<node concept="2OqwBi" id="6XnzqFdo_8c" role="3clFbG">
4159+
<node concept="2OqwBi" id="6XnzqFdovsO" role="2Oq$k0">
4160+
<node concept="2OqwBi" id="6XnzqFdou2B" role="2Oq$k0">
4161+
<node concept="13iPFW" id="6XnzqFdotKR" role="2Oq$k0" />
4162+
<node concept="3TrEf2" id="6XnzqFdouxy" role="2OqNvi">
4163+
<ref role="3Tt5mk" to="yv47:7D7uZV2dYz3" resolve="record" />
4164+
</node>
4165+
</node>
4166+
<node concept="3Tsc0h" id="6XnzqFdowk$" role="2OqNvi">
4167+
<ref role="3TtcxE" to="yv47:xu7xcKioz5" resolve="members" />
4168+
</node>
4169+
</node>
4170+
<node concept="2HwmR7" id="6XnzqFdoFPB" role="2OqNvi">
4171+
<node concept="1bVj0M" id="6XnzqFdoFPD" role="23t8la">
4172+
<node concept="3clFbS" id="6XnzqFdoFPE" role="1bW5cS">
4173+
<node concept="3clFbF" id="6XnzqFdoG8v" role="3cqZAp">
4174+
<node concept="2OqwBi" id="6XnzqFdoNpr" role="3clFbG">
4175+
<node concept="2OqwBi" id="6XnzqFdoJ4n" role="2Oq$k0">
4176+
<node concept="37vLTw" id="6XnzqFdoG8u" role="2Oq$k0">
4177+
<ref role="3cqZAo" node="6XnzqFdoFPF" resolve="it" />
4178+
</node>
4179+
<node concept="2qgKlT" id="6XnzqFdoMUC" role="2OqNvi">
4180+
<ref role="37wK5l" to="pbu6:4WLweXm3SW5" resolve="type" />
4181+
</node>
4182+
</node>
4183+
<node concept="2qgKlT" id="6XnzqFdoOrs" role="2OqNvi">
4184+
<ref role="37wK5l" to="pbu6:7k6A8Wfp3IU" resolve="canBeSorted" />
4185+
</node>
4186+
</node>
4187+
</node>
4188+
</node>
4189+
<node concept="Rh6nW" id="6XnzqFdoFPF" role="1bW2Oz">
4190+
<property role="TrG5h" value="it" />
4191+
<node concept="2jxLKc" id="6XnzqFdoFPG" role="1tU5fm" />
4192+
</node>
4193+
</node>
4194+
</node>
41604195
</node>
41614196
</node>
41624197
</node>
@@ -7913,6 +7948,30 @@
79137948
<node concept="10P_77" id="jqB9UdpI4l" role="3clF45" />
79147949
<node concept="3Tm1VV" id="jqB9UdpI4m" role="1B3o_S" />
79157950
</node>
7951+
<node concept="13i0hz" id="365yA_OEvG0" role="13h7CS">
7952+
<property role="TrG5h" value="canBeSorted" />
7953+
<ref role="13i0hy" to="pbu6:7k6A8Wfp3IU" resolve="canBeSorted" />
7954+
<node concept="3clFbS" id="365yA_OEvG3" role="3clF47">
7955+
<node concept="3cpWs6" id="365yA_OEwPd" role="3cqZAp">
7956+
<node concept="2OqwBi" id="wlV$3lt5ui" role="3cqZAk">
7957+
<node concept="2OqwBi" id="365yA_OEyf_" role="2Oq$k0">
7958+
<node concept="2OqwBi" id="365yA_OEx4D" role="2Oq$k0">
7959+
<node concept="13iPFW" id="365yA_OEwPH" role="2Oq$k0" />
7960+
<node concept="3TrEf2" id="365yA_OExNY" role="2OqNvi">
7961+
<ref role="3Tt5mk" to="yv47:67Y8mp$DN3N" resolve="enum" />
7962+
</node>
7963+
</node>
7964+
<node concept="3TrEf2" id="6PMVc5H_mrd" role="2OqNvi">
7965+
<ref role="3Tt5mk" to="yv47:6PMVc5H_jOd" resolve="order" />
7966+
</node>
7967+
</node>
7968+
<node concept="3x8VRR" id="wlV$3lt7CQ" role="2OqNvi" />
7969+
</node>
7970+
</node>
7971+
</node>
7972+
<node concept="10P_77" id="365yA_OEwhE" role="3clF45" />
7973+
<node concept="3Tm1VV" id="365yA_OEwhF" role="1B3o_S" />
7974+
</node>
79167975
</node>
79177976
<node concept="13h7C7" id="7cphKbKo1DJ">
79187977
<property role="3GE5qa" value="record.group" />

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.toplevel/models/org/iets3/core/expr/toplevel/constraints.mps

Lines changed: 74 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2145,20 +2145,84 @@
21452145
<node concept="2YIFZM" id="3sWKo0E1oTl" role="3clFbG">
21462146
<ref role="37wK5l" to="o8zo:4IP40Bi3eAf" resolve="forNamedElements" />
21472147
<ref role="1Pybhc" to="o8zo:4IP40Bi3e_R" resolve="ListScope" />
2148-
<node concept="2OqwBi" id="3sWKo0E1q7j" role="37wK5m">
2149-
<node concept="2OqwBi" id="3sWKo0E1pgO" role="2Oq$k0">
2150-
<node concept="2rP1CM" id="3sWKo0E1oVE" role="2Oq$k0" />
2151-
<node concept="2Xjw5R" id="3sWKo0E1prS" role="2OqNvi">
2152-
<node concept="1xMEDy" id="3sWKo0E1prU" role="1xVPHs">
2153-
<node concept="chp4Y" id="3sWKo0E1pws" role="ri$Ld">
2154-
<ref role="cht4Q" to="yv47:xu7xcKinTJ" resolve="IRecordDeclaration" />
2148+
<node concept="2OqwBi" id="6XnzqFdp7O9" role="37wK5m">
2149+
<node concept="2OqwBi" id="3sWKo0E1q7j" role="2Oq$k0">
2150+
<node concept="2OqwBi" id="3sWKo0E1pgO" role="2Oq$k0">
2151+
<node concept="2rP1CM" id="3sWKo0E1oVE" role="2Oq$k0" />
2152+
<node concept="2Xjw5R" id="3sWKo0E1prS" role="2OqNvi">
2153+
<node concept="1xMEDy" id="3sWKo0E1prU" role="1xVPHs">
2154+
<node concept="chp4Y" id="3sWKo0E1pws" role="ri$Ld">
2155+
<ref role="cht4Q" to="yv47:xu7xcKinTJ" resolve="IRecordDeclaration" />
2156+
</node>
21552157
</node>
2158+
<node concept="1xIGOp" id="3sWKo0E1pJ9" role="1xVPHs" />
21562159
</node>
2157-
<node concept="1xIGOp" id="3sWKo0E1pJ9" role="1xVPHs" />
2160+
</node>
2161+
<node concept="2qgKlT" id="4opGcINclsz" role="2OqNvi">
2162+
<ref role="37wK5l" to="nu60:1qrYg08iahZ" resolve="effectiveMembers" />
21582163
</node>
21592164
</node>
2160-
<node concept="2qgKlT" id="4opGcINclsz" role="2OqNvi">
2161-
<ref role="37wK5l" to="nu60:1qrYg08iahZ" resolve="effectiveMembers" />
2165+
<node concept="3zZkjj" id="6XnzqFdp8hf" role="2OqNvi">
2166+
<node concept="1bVj0M" id="6XnzqFdp8hh" role="23t8la">
2167+
<node concept="3clFbS" id="6XnzqFdp8hi" role="1bW5cS">
2168+
<node concept="3clFbF" id="6XnzqFdp8B9" role="3cqZAp">
2169+
<node concept="2OqwBi" id="6XnzqFdpaOD" role="3clFbG">
2170+
<node concept="2OqwBi" id="6XnzqFdp93E" role="2Oq$k0">
2171+
<node concept="37vLTw" id="6XnzqFdp8B8" role="2Oq$k0">
2172+
<ref role="3cqZAo" node="6XnzqFdp8hj" resolve="it" />
2173+
</node>
2174+
<node concept="2qgKlT" id="6XnzqFdpau1" role="2OqNvi">
2175+
<ref role="37wK5l" to="pbu6:4WLweXm3SW5" resolve="type" />
2176+
</node>
2177+
</node>
2178+
<node concept="2qgKlT" id="6XnzqFdpbAz" role="2OqNvi">
2179+
<ref role="37wK5l" to="pbu6:7k6A8Wfp3IU" resolve="canBeSorted" />
2180+
</node>
2181+
</node>
2182+
</node>
2183+
</node>
2184+
<node concept="Rh6nW" id="6XnzqFdp8hj" role="1bW2Oz">
2185+
<property role="TrG5h" value="it" />
2186+
<node concept="2jxLKc" id="6XnzqFdp8hk" role="1tU5fm" />
2187+
</node>
2188+
</node>
2189+
</node>
2190+
</node>
2191+
</node>
2192+
</node>
2193+
</node>
2194+
</node>
2195+
</node>
2196+
</node>
2197+
<node concept="1M2fIO" id="wlV$3ktrJW">
2198+
<property role="3GE5qa" value="enum" />
2199+
<ref role="1M2myG" to="yv47:6PMVc5H_jO2" resolve="EnumSortByValue" />
2200+
<node concept="9S07l" id="wlV$3ktrJX" role="9Vyp8">
2201+
<node concept="3clFbS" id="wlV$3ktrJY" role="2VODD2">
2202+
<node concept="3clFbF" id="wlV$3ktrNX" role="3cqZAp">
2203+
<node concept="1Wc70l" id="wlV$3kttnB" role="3clFbG">
2204+
<node concept="2OqwBi" id="wlV$3ktwMj" role="3uHU7w">
2205+
<node concept="2OqwBi" id="wlV$3ktuja" role="2Oq$k0">
2206+
<node concept="1PxgMI" id="wlV$3kttKx" role="2Oq$k0">
2207+
<property role="1BlNFB" value="true" />
2208+
<node concept="chp4Y" id="wlV$3kttWP" role="3oSUPX">
2209+
<ref role="cht4Q" to="yv47:67Y8mp$DMUI" resolve="EnumDeclaration" />
2210+
</node>
2211+
<node concept="nLn13" id="wlV$3kttsp" role="1m5AlR" />
2212+
</node>
2213+
<node concept="3TrEf2" id="wlV$3ktwp1" role="2OqNvi">
2214+
<ref role="3Tt5mk" to="yv47:2MpPNJw_h8y" resolve="type" />
2215+
</node>
2216+
</node>
2217+
<node concept="2qgKlT" id="wlV$3ktxmx" role="2OqNvi">
2218+
<ref role="37wK5l" to="pbu6:7k6A8Wfp3IU" resolve="canBeSorted" />
2219+
</node>
2220+
</node>
2221+
<node concept="2OqwBi" id="wlV$3ktss2" role="3uHU7B">
2222+
<node concept="nLn13" id="wlV$3ktrNW" role="2Oq$k0" />
2223+
<node concept="1mIQ4w" id="wlV$3ktsG8" role="2OqNvi">
2224+
<node concept="chp4Y" id="wlV$3ktsMd" role="cj9EA">
2225+
<ref role="cht4Q" to="yv47:67Y8mp$DMUI" resolve="EnumDeclaration" />
21622226
</node>
21632227
</node>
21642228
</node>

code/languages/org.iets3.opensource/languages/org.iets3.core.expr.toplevel/models/org/iets3/core/expr/toplevel/editor.mps

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
<import index="i6kd" ref="r:2261c766-d7b6-49d7-91bd-1207e471af0b(org.iets3.core.expr.lambda.editor)" implicit="true" />
4545
<import index="tpcu" ref="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" implicit="true" />
4646
<import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
47+
<import index="tpco" ref="r:00000000-0000-4000-0000-011c89590284(jetbrains.mps.lang.core.editor)" implicit="true" />
4748
</imports>
4849
<registry>
4950
<language id="18bc6592-03a6-4e29-a83a-7ff23bde13ba" name="jetbrains.mps.lang.editor">
@@ -154,6 +155,9 @@
154155
<concept id="1136917249679" name="jetbrains.mps.lang.editor.structure.CellKeyMap_IsApplicableFunction" flags="in" index="2Pz7Y7" />
155156
<concept id="1136917288805" name="jetbrains.mps.lang.editor.structure.CellKeyMap_ExecuteFunction" flags="in" index="2PzhpH" />
156157
<concept id="1078938745671" name="jetbrains.mps.lang.editor.structure.EditorComponentDeclaration" flags="ig" index="PKFIW" />
158+
<concept id="1078939183254" name="jetbrains.mps.lang.editor.structure.CellModel_Component" flags="sg" stub="3162947552742194261" index="PMmxH">
159+
<reference id="1078939183255" name="editorComponent" index="PMmxG" />
160+
</concept>
157161
<concept id="1164914519156" name="jetbrains.mps.lang.editor.structure.CellMenuPart_ReplaceNode_CustomNodeConcept" flags="ng" index="UkePV">
158162
<reference id="1164914727930" name="replacementConcept" index="Ul1FP" />
159163
</concept>
@@ -1984,7 +1988,28 @@
19841988
</node>
19851989
</node>
19861990
</node>
1987-
<node concept="3F0ifn" id="3WWvqarUGzF" role="3EZMnx">
1991+
<node concept="_tjkj" id="365yA_N$Zyn" role="3EZMnx">
1992+
<node concept="uPpia" id="wlV$3lDYlI" role="1djCvC">
1993+
<node concept="3clFbS" id="wlV$3lDYlJ" role="2VODD2">
1994+
<node concept="3clFbF" id="wlV$3lDYqr" role="3cqZAp">
1995+
<node concept="Xl_RD" id="wlV$3lDYqq" role="3clFbG">
1996+
<property role="Xl_RC" value="define the order how enum entries get compared to each other" />
1997+
</node>
1998+
</node>
1999+
</node>
2000+
</node>
2001+
<node concept="3EZMnI" id="6ww1tcsEGEg" role="_tjki">
2002+
<node concept="3F0ifn" id="6ww1tcsEGEv" role="3EZMnx">
2003+
<property role="3F0ifm" value="order" />
2004+
</node>
2005+
<node concept="3F1sOY" id="wlV$3lAU9q" role="3EZMnx">
2006+
<ref role="1NtTu8" to="yv47:6PMVc5H_jOd" resolve="order" />
2007+
</node>
2008+
<node concept="2iRfu4" id="6ww1tcsEGEj" role="2iSdaV" />
2009+
<node concept="VPM3Z" id="6ww1tcsEGEk" role="3F10Kt" />
2010+
</node>
2011+
</node>
2012+
<node concept="3F0ifn" id="365yA_NB4Ey" role="3EZMnx">
19882013
<property role="3F0ifm" value="{" />
19892014
</node>
19902015
<node concept="1QoScp" id="3WWvqarUG5J" role="3EZMnx">
@@ -4932,5 +4957,12 @@
49324957
</node>
49334958
</node>
49344959
</node>
4960+
<node concept="24kQdi" id="wlV$3lAU9R">
4961+
<property role="3GE5qa" value="enum" />
4962+
<ref role="1XX52x" to="yv47:wlV$3kt3Ry" resolve="AbstractEnumSortOrder" />
4963+
<node concept="PMmxH" id="6ww1tcsEGJG" role="2wV5jI">
4964+
<ref role="PMmxG" to="tpco:2wZex4PafBj" resolve="alias" />
4965+
</node>
4966+
</node>
49354967
</model>
49364968

0 commit comments

Comments
 (0)